Dwuwęzłowa konfiguracja domowego laboratorium dla programistów, którzy chcą prowadzić eksperymenty i utrzymywać stabilne usługi

Eva Wong jest Technicznym pisarzem i stałym majsterkowiczem w ZimaSpace. Całe życie geek z pasją do homelabów i oprogramowania open-source, specjalizuje się w tłumaczeniu skomplikowanych koncepcji technicznych na przystępne, praktyczne przewodniki. Eva wierzy, że samodzielne hostowanie powinno być zabawą, a nie czymś onieśmielającym. Poprzez swoje samouczki umożliwia społeczności rozwiewanie tajemnic konfiguracji sprzętu, od budowy pierwszego NAS po opanowanie kontenerów Docker.

Przypisz jednemu węzłowi nudną, stabilną rolę usługową, a drugi przygotuj tak, aby można go było łatwo odbudować po eksperymentach bez przerywania codziennej pracy.

Dwie maszyny nie tworzą automatycznie wysokiej dostępności, współdzielonej pamięci masowej ani bezpiecznego kworum. Praktyczny projekt to para asymetryczna: stabilny węzeł z kontrolowanymi zmianami i chronionym stanem aplikacji oraz węzeł laboratoryjny, na którym jądra, hipernadzorcy, klastry, procesory GPU i konfiguracje sieciowe mogą często się zmieniać. Odzyskiwanie nadal opiera się na kopiach zapasowych, chyba że każda usługa zostanie celowo zreplikowana.

Zdefiniuj klasy usług stabilnych i eksperymentalnych

Wymień usługi według konsekwencji, a nie technologii. DNS, zarządzanie hasłami, hosting Git, rejestr kontenerów, monitoring i automatyka domowa mogą być stabilne, jeśli zależą od nich inni użytkownicy lub codzienne przepływy pracy. Laboratorium Kubernetes, nowy sterownik pamięci masowej, nocny obraz kompilacyjny, testowa baza danych lub nieznana zapora sieciowa mogą być eksperymentalne, nawet jeśli korzystają z tego samego środowiska uruchomieniowego kontenerów.

Dyskusja społeczności dotycząca nadmiernych obowiązków związanych z samodzielnym hostingiem jasno uchwyciła zasadę działania: produkcję i zabawę należy trzymać osobno. Wzorzec stabilnego serwera i serwera do eksperymentów zmniejsza ryzyko, że wieczorny eksperyment pochłonie poranne okno na odzyskiwanie sprawności.

Dla każdej usługi określ właściciela, akceptowalny czas awarii, lokalizację danych, źródło przywracania i okno aktualizacji. Jeśli te informacje nie są znane, usługa nie jest gotowa na stabilny węzeł. Jeśli można ją odtworzyć z kodu i danych tymczasowych, powinna trafić na węzeł eksperymentalny do czasu poznania obciążenia operacyjnego.

Przypisz każdemu węzłowi stałą rolę

Stabilny węzeł powinien korzystać z zachowawczych aktualizacji, lustrzanego lub innego możliwego do odzyskania układu rozruchowego i danych aplikacji, przewidywalnego DNS-u oraz wystarczającego zapasu pamięci, aby obsłużyć typowe szczyty obciążenia. Nie powinien stawać się miejscem docelowym dla każdego urządzenia USB ani każdego eksperymentu z przekazywaniem urządzeń tylko dlatego, że działa przez cały czas.

Węzeł eksperymentalny może obsługiwać zagnieżdżoną wirtualizację, alternatywne dystrybucje, runnery kompilacji, tymczasowe bazy danych, przekazywanie procesora GPU lub USB oraz agentów klastra. Utrzymuj powtarzalne dostarczanie za pomocą plików infrastruktury, skryptów lub udokumentowanych kroków. Jego odbudowa powinna być zaplanowanym ćwiczeniem, a nie kryzysem.

Podobny, szczegółowy przykład planowania homelabu również utrzymuje stabilne obciążenia na jednym hoście, a podatne na awarie prace na drugim. Taki podział hostów pamięci masowej, obliczeniowych i eksperymentalnych pokazuje też, dlaczego monitoring i segmentacja sieci muszą obejmować cały system, zamiast znajdować się wyłącznie na węźle, który najprawdopodobniej zostanie ponownie zainstalowany.

Oddziel ścieżki sieciowe, tożsamościowe i aktualizacji

Używaj stałych adresów zarządzania, lokalnych nazw DNS oraz sieci zarządzającej lub ściśle określonych reguł zapory. Węzeł eksperymentalny może inicjować połączenia z serwerami lustrzanymi pakietów, rejestrami i sieciami testowymi, ale nie powinien mieć nieograniczonego dostępu z prawem zapisu do stabilnego stanu aplikacji. Dostęp administracyjny powinien pozostać dostępny nawet wtedy, gdy konfiguracja mostu laboratoryjnego, sieci nakładkowej lub VPN-u ulegnie awarii.

Płaszczyzna sterowania Stabilny węzeł Węzeł eksperymentalny Granica
Aktualizacje Zaplanowane i odwracalne Częste i możliwe do odbudowania Nigdy nie łącz ponownych uruchomień obu węzłów
Tożsamość Główne sekrety i konta usług Krótkotrwałe dane uwierzytelniające do testów Nie kopiuj tokenów administracyjnych
Pamięć masowa Stan należący do aplikacji Tymczasowe i zastępowalne zbiory danych Kopie zapasowe nie są domyślnie montowane z prawem zapisu
Sieć Ograniczone sieci VLAN usług i stały DNS Laboratoryjne sieci VLAN, sieci nakładkowe, testy przekazywania urządzeń Ścieżka zarządzania pozostaje niezależna
Wdrażanie Zablokowane wersje i dziennik zmian Gałęzie, obrazy nocne, tymczasowe klastry Promocja jest jawna

Nie używaj węzła eksperymentalnego jako jedynego routera, serwera DNS, kontrolera kopii zapasowych ani magazynu sekretów dla stabilnego węzła. Odwracałoby to zamierzoną zależność. Wspólny monitoring może działać na stabilnym węźle, ale eksportuj jego konfigurację i wysyłaj alerty w miejsce, które pozostanie osiągalne w razie awarii jednej z maszyn.

-15% OFF

Twórz kopie zapasowe stanu bez tworzenia wspólnego punktu awarii

Twórz kopie konfiguracji stabilnych usług i baz danych na pamięci masowej, która nie zostanie wymazana wraz z żadnym z węzłów. Migawka maszyny wirtualnej na tym samym hoście jest przydatna do wycofania zmian, ale nie jest kopią zapasową na wypadek utraty hosta. Przetestuj co najmniej jedno przywracanie pliku i jedno przywracanie bazy danych, zanim uznasz stabilny węzeł za niezawodny.

W przypadku węzła eksperymentalnego chroń kod źródłowy, definicje infrastruktury, pliki licencyjne oraz wszystkie zbiory danych testowych, których odtworzenie byłoby kosztowne. Domyślnie unikaj tworzenia kopii całych tymczasowych maszyn wirtualnych; powtarzalny obraz i skrypt przywracania wyraźniej wyznaczają granicę i ograniczają wzrost przechowywanych kopii.

Dwóch węzłów również nie należy opisywać jako automatycznego klastra. Analiza ZimaSpace dotycząca jednego dużego serwera w porównaniu z wieloma małymi węzłami wyjaśnia, dlaczego kworum, mobilność danych i niezależne ścieżki awarii mają znaczenie, zanim wiele urządzeń zapewni dostępność.

Zweryfikuj izolację awarii i kryteria rozbudowy

Wyłącz węzeł eksperymentalny i potwierdź, że stabilny DNS, uwierzytelnianie, repozytoria, pulpity nawigacyjne i kopie zapasowe nadal działają. Następnie odizoluj stabilny węzeł i potwierdź, że laboratorium można administrować lub odbudować bez odczytywania nieudokumentowanych plików z tego węzła. Na koniec przywróć jedną stabilną usługę na wolnej przestrzeni lub tymczasowej maszynie wirtualnej, aby potwierdzić procedurę odzyskiwania.

Projekt można uznać za udany, gdy zniszczenie węzła eksperymentalnego nie powoduje utraty danych ani przerwy w działaniu codziennych usług poza zadeklarowanymi zależnościami, a aktualizacja stabilnego węzła nie wymaga demontażu sieci laboratoryjnej. Uczciwie zapisz zależności od wspólnego przełącznika, zasilacza UPS, serwera NAS i internetu; dwa serwery podłączone do jednej listwy zasilającej nie tworzą dwóch domen awarii zasilania.

Dodaj trzeci węzeł dopiero wtedy, gdy określone obciążenie wymaga kworum, konserwacji kroczącej lub przetestowanego przełączania awaryjnego. Dodaj dedykowaną pamięć masową, gdy wzrost ilości danych lub czas przywracania przekroczy możliwości roli któregokolwiek hosta. Do tego czasu zachowaj asymetryczny model dwóch węzłów: stabilne usługi zmieniają się powoli, eksperymenty pozostają łatwe do odrzucenia, a odzyskiwanie zapewniają kopie zapasowe, nie liczba urządzeń.

Końcowa zasada konfiguracji

Traktuj tę parę jako dwie strefy operacyjne, a nie miniaturowy klaster wysokiej dostępności: stabilne usługi posiadają chroniony stan i kontrolowane zmiany, natomiast eksperymenty korzystają z tymczasowych zasobów obliczeniowych. Dodawaj złożoność tylko wtedy, gdy wymaga tego przetestowany wymóg odzyskiwania lub dostępności.

Konfiguracja NAS i serwera

Więcej do przeczytania

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.