Een homelabopstelling met twee nodes voor ontwikkelaars die willen experimenteren en stabiele diensten willen draaien.

Eva Wong is de technisch schrijver en vaste knutselaar bij ZimaSpace. Als levenslange geek met een passie voor homelabs en open-sourcesoftwareis ze gespecialiseerd in het vertalen van complexe technische concepten naar toegankelijke, praktische handleidingen. Eva vindt dat self-hosting leuk moet zijn en niet intimiderend. Met haar tutorials helpt ze de community om hardware-installaties te doorgronden, van het bouwen van hun eerste NAS tot het beheersen van Docker-containers.

Geef de ene node een saaie, stabiele rol voor diensten en maak de tweede node wegwerpbaar genoeg om hem na experimenten opnieuw op te bouwen zonder het dagelijkse werk te onderbreken.

Twee machines zorgen niet automatisch voor hoge beschikbaarheid, gedeelde opslag of een veilige quorum. De praktische opzet is een asymmetrisch paar: een stabiele node met gecontroleerde wijzigingen en beschermde applicatiegegevens, plus een labnode waarop kernels, hypervisors, clusters, GPU's en netwerkconfiguraties vaak kunnen veranderen. Herstel blijft afhankelijk van back-ups, tenzij elke dienst bewust wordt gerepliceerd.

Definieer stabiele en experimentele serviceklassen

Deel diensten in op basis van de gevolgen van uitval, niet op basis van de technologie. DNS, wachtwoordbeheer, Git-hosting, een containerregister, monitoring en domotica kunnen stabiel zijn als anderen of dagelijkse workflows ervan afhankelijk zijn. Een Kubernetes-lab, een nieuwe opslagdriver, een nachtelijke buildimage, een testdatabase of een onbekende firewall kan experimenteel zijn, zelfs als die dezelfde container-runtime gebruikt.

Een discussie in de community over het buitensporige onderhoud van zelfgehoste diensten vatte de werkregel helder samen: houd productie en experimenten gescheiden. Het patroon met een stabiele server en een experimentele server verkleint de kans dat een experiment in de avond het herstelvenster van de volgende ochtend opslokt.

Wijs voor elke dienst een eigenaar aan en bepaal de aanvaardbare uitvaltijd, de locatie van de gegevens, de bron voor herstel en het updatevenster. Als die zaken onbekend zijn, is de dienst niet klaar voor de stabiele node. Als de dienst opnieuw kan worden aangemaakt vanuit code en wegwerpgegevens, hoort hij op de experimentele node totdat de operationele belasting duidelijk is.

Geef elke node een vaste rol

Gebruik voor de stabiele node conservatieve updates, een gespiegelde of anderszins herstelbare indeling voor het opstarten en applicatiegegevens, voorspelbare DNS en voldoende vrij geheugen om normale piekbelasting op te vangen. Laat deze node niet de verzamelplek worden voor elk USB-apparaat of passthrough-experiment, alleen omdat hij altijd aanstaat.

De experimentele node kan geneste virtualisatie, alternatieve distributies, build-runners, tijdelijke databases, GPU- of USB-passthrough en clusteragents hosten. Houd de inrichting reproduceerbaar met infrastructuurbestanden, scripts of gedocumenteerde stappen. Het opnieuw opbouwen ervan moet een geplande oefening zijn, geen crisis.

Een uitgebreid voorbeeld van het plannen van een homelab houdt stabiele workloads eveneens op de ene host en werk dat kan stukgaan op een andere. Die scheiding van opslag-, reken- en experimentele hosts laat ook zien waarom monitoring en netwerksegmentatie het hele systeem moeten omvatten, in plaats van alleen de node die waarschijnlijk opnieuw wordt geïnstalleerd.

Scheid netwerk-, identiteits- en updatepaden

Gebruik vaste beheeradressen, lokale DNS-namen en een beheernetwerk of strikt afgebakende firewallregels. De experimentele node mag verbinding maken met pakketspiegels, registers en testnetwerken, maar mag geen onbeperkte schrijftoegang hebben tot de status van stabiele applicaties. Beheertoegang moet beschikbaar blijven, ook als een lab-bridge-, overlay- of VPN-configuratie niet meer werkt.

Besturingsvlak Stabiele node Experimentele node Grens
Updates Gepland en omkeerbaar Regelmatig en opnieuw op te bouwen Start beide systemen nooit tegelijk opnieuw op
Identiteit Primaire geheimen en serviceaccounts Kortlevende testinloggegevens Geen gekopieerde beheertokens
Opslag Applicatiegegevens in eigen beheer Tijdelijke en vervangbare datasets Back-ups zijn standaard niet schrijfbaar gekoppeld
Netwerk Beperkte service-VLAN's en vaste DNS Lab-VLAN's, overlays, passthroughtests Beheerpad blijft onafhankelijk
Implementatie Vastgepinde versies en wijzigingslogboek Branches, nachtelijke images, tijdelijke clusters Promotie is expliciet

Maak de experimentele node niet de enige router, DNS-server, back-upcontroller of opslagplaats voor geheimen voor de stabiele node. Daarmee draai je de beoogde afhankelijkheid om. Gedeelde observability mag op de stabiele node draaien, maar exporteer de configuratie ervan en stuur waarschuwingen naar een plek die bereikbaar blijft als een van beide machines uitvalt.

Single board computer zimaboard2

Maak een back-up van gegevens zonder een gedeelde foutbron te creëren

Maak een back-up van de stabiele serviceconfiguratie en databases naar opslag die niet wordt gewist wanneer een van beide nodes uitvalt. Een VM op dezelfde host een momentopname geven is handig om terug te draaien, maar biedt geen bescherming als de host uitvalt. Test ten minste één bestandsherstel en één databaseherstel voordat je de stabiele node betrouwbaar noemt.

Bescherm voor de experimentele node de broncode, infrastructuurdefinities, licentiebestanden en testgegevens die kostbaar zijn om opnieuw te maken. Maak standaard geen back-ups van volledige wegwerpbare VM's; een reproduceerbare image en een herstelscript maken de afbakening duidelijker en beperken de groei van de bewaaromvang.

Twee nodes moeten ook niet automatisch een cluster worden genoemd. De analyse van ZimaSpace over één grote server versus meerdere kleine nodes legt uit waarom quorum, verplaatsbaarheid van gegevens en onafhankelijke storingspaden van belang zijn voordat meerdere systemen beschikbaarheid bieden.

Valideer foutisolatie en groeitriggers

Schakel de experimentele node uit en controleer of stabiele DNS, authenticatie, repositories, dashboards en back-ups nog werken. Isoleer vervolgens de stabiele node en controleer of het lab kan worden beheerd of opnieuw opgebouwd zonder ongedocumenteerde bestanden ervan te lezen. Herstel ten slotte één stabiele service op reservecapaciteit of een tijdelijke VM om te bewijzen dat de herstelprocedure werkt.

Het ontwerp slaagt wanneer het vernietigen van de experimentele node geen gegevensverlies of uitval van dagelijkse services veroorzaakt, afgezien van de opgegeven afhankelijkheden, en het patchen van de stabiele node niet vereist dat het labnetwerk wordt ontmanteld. Leg afhankelijkheden van gedeelde switches, UPS'en, NAS en internet eerlijk vast; twee servers op één stekkerdoos vormen geen twee afzonderlijke stroomstoringsdomeinen.

Voeg pas een derde node toe wanneer een benoemde workload quorum, doorlopend onderhoud of geteste failover nodig heeft. Voeg speciale opslag toe wanneer de gegevensgroei of hersteltijd de capaciteit van een van beide hosts overstijgt. Behoud tot die tijd het asymmetrische model met twee nodes: stabiele services veranderen langzaam, experimenten blijven eenvoudig weg te doen en back-ups, niet het aantal systemen, zorgen voor herstel.

Definitieve installatieregel

Behandel de twee systemen als twee bedrijfszones, niet als een miniatuurcluster met hoge beschikbaarheid: stabiele services beheren beschermde status en gecontroleerde wijzigingen, terwijl experimenten gebruikmaken van vervangbare rekenkracht. Voeg alleen complexiteit toe wanneer een geteste herstel- of beschikbaarheidsvereiste daarom vraagt.

NAS- en serverconfiguratie

Meer om te lezen

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.