En homelabb med två noder för utvecklare som vill experimentera och ha stabila tjänster

Eva Wong är teknisk skribent och händig hemmabyggare på ZimaSpace. Som tekniknörd sedan barnsben med ett brinnande intresse för hemlabb och programvara med öppen källkodspecialiserar hon sig på att göra komplexa tekniska koncept begripliga genom praktiska, praktiska guider. Eva tycker att självhosting ska vara roligt, inte avskräckande. Genom sina handledningar hjälper hon communityn att göra hårdvaruinstallationer mindre mystiska, från att bygga sin första NAS till att bemästra Docker-containrar.

Ge den ena noden en stabil tjänsteroll utan krusiduller och gör den andra tillräckligt förbrukningsbar för att kunna byggas om efter experiment utan att störa det dagliga arbetet.

Två maskiner innebär inte automatiskt hög tillgänglighet, delad lagring eller säker kvorumhantering. Den praktiska lösningen är ett asymmetriskt par: en stabil nod med kontrollerade ändringar och skyddat applikationstillstånd, plus en labbnod där kärnor, hypervisorer, kluster, GPU:er och nätverk kan ändras ofta. Återställning är fortfarande beroende av säkerhetskopior, om inte varje tjänst uttryckligen replikeras.

Definiera stabila och experimentella tjänsteklasser

Lista tjänster efter konsekvens, inte teknik. DNS, lösenordshantering, Git-hosting, ett containerregister, övervakning och hemautomation kan vara stabila om andra personer eller dagliga arbetsflöden är beroende av dem. Ett Kubernetes-labb, en ny lagringsdrivrutin, en nattlig byggavbildning, en testdatabas eller en okänd brandvägg kan vara experimentell även om den använder samma containermiljö.

En diskussion i communityn om överdrivet underhåll av självhostade tjänster fångade driftregeln tydligt: håll produktion och experiment åtskilda. Mönstret med stabil server och experimentserver minskar risken för att ett kvällsexperiment slukar nästa morgons återställningstid.

Ange för varje tjänst en ansvarig person, godtagbar avbrottstid, dataplats, återställningskälla och uppdateringsfönster. Om detta är okänt är tjänsten inte redo för den stabila noden. Om den kan återskapas från kod och data som kan kasseras hör den hemma på experimentnoden tills arbetsbördan för driften är känd.

Tilldela varje nod en permanent roll

Den stabila noden bör använda försiktiga uppdateringar, en speglad eller på annat sätt återställningsbar layout för uppstart och programdata, förutsägbar DNS och tillräckligt med ledigt minne för att klara normala belastningstoppar. Den ska inte bli platsen där varje USB-enhet eller genomkopplingsexperiment hamnar bara för att den alltid är på.

Experimentnoden kan köra nästlad virtualisering, alternativa distributioner, byggkörningar, tillfälliga databaser, GPU- eller USB-genomkoppling och klusteragenter. Se till att den kan provisioneras reproducerbart med infrastrukturfiler, skript eller dokumenterade steg. Att bygga om den ska vara en planerad övning, inte en kris.

Ett detaljerat exempel på planering av en hemlabbsmiljö håller på samma sätt stabila arbetsbelastningar på en värd och sådant som kan gå sönder på en annan. Den här separeringen av lagring, beräkning och experimentvärdar visar också varför övervakning och nätverkssegmentering måste omfatta hela systemet i stället för att bara finnas på noden som mest sannolikt ominstalleras.

Separera nätverks-, identitets- och uppdateringsvägar

Använd fasta administrationsadresser, lokala DNS-namn och ett administrationsnätverk eller noggrant avgränsade brandväggsregler. Experimentnoden kan initiera anslutningar till paketspeglar, register och testnätverk, men den bör inte ha obegränsad skrivåtkomst till stabil applikationsdata. Administrativ åtkomst bör förbli tillgänglig även om en laboratoriebrygga, ett överläggsnätverk eller en VPN-konfiguration slutar fungera.

Kontrollplan Stabil nod Experimentnod Gräns
Uppdateringar Schemalagd och reversibel Frekvent och möjlig att återskapa Starta aldrig om båda samtidigt
Identitet Primära hemligheter och tjänstekonton Kortlivade testautentiseringsuppgifter Inga kopierade administratörstoken
Lagring Ägd applikationsdata Arbetsdata och utbytbara datamängder Säkerhetskopior är inte monterade med skrivåtkomst som standard
Nätverk Begränsade tjänste-VLAN och fast DNS Laboratorie-VLAN, överläggsnätverk, tester med direkt genomströmning Administrationsvägen förblir oberoende
Driftsättning Fastlåsta versioner och ändringslogg Grenar, nattliga avbildningar, kortlivade kluster Uppgradering sker uttryckligen

Gör inte experimentnoden till den enda routern, DNS-servern, säkerhetskopieringsstyrenheten eller hemlighetslagringen för den stabila noden. Då vänds det avsedda beroendeförhållandet. Gemensam övervakning kan finnas på den stabila noden, men exportera dess konfiguration och skicka larm till en plats som förblir tillgänglig om någon av maskinerna slutar fungera.

Single board computer zimaboard2

Säkerhetskopiera tillstånd utan att skapa en gemensam felpunkt

Säkerhetskopiera stabil tjänstekonfiguration och databaser till lagring som inte raderas tillsammans med någon av noderna. Det är användbart att ta en ögonblicksbild av en virtuell maskin på samma värd för att kunna återställa ett tidigare läge, men det skyddar inte mot att värden går förlorad. Testa att återställa minst en fil och en databas innan du betraktar den stabila noden som tillförlitlig.

För experimentnoden ska du skydda källkod, infrastrukturdefinitioner, licensfiler och alla testdatamängder som är kostsamma att återskapa. Undvik att som standard säkerhetskopiera hela virtuella maskiner som ändå kan kastas; en återskapningsbar avbildning och ett återställningsskript gör gränsen tydligare och minskar ökningen av lagringsbehovet.

Två noder ska inte heller beskrivas som ett automatiskt kluster. ZimaSpaces analys av en stor server jämfört med flera små noder förklarar varför kvorum, dataförflyttning och oberoende felvägar spelar roll innan flera datorer ger tillgänglighet.

Validera felisolering och tillväxttrösklar

Stäng av experimentnoden och bekräfta att stabil DNS, autentisering, kodförråd, kontrollpaneler och säkerhetskopior fortfarande fungerar. Isolera sedan den stabila noden och bekräfta att labbet kan administreras eller byggas upp på nytt utan att läsa odokumenterade filer från den. Återställ slutligen en stabil tjänst till ledig kapacitet eller en tillfällig virtuell maskin så att återställningsförfarandet är beprövat.

Designen är godkänd när det inte leder till dataförlust eller avbrott i dagliga tjänster utöver deklarerade beroenden att förstöra experimentnoden, samtidigt som det går att patcha den stabila noden utan att labbnätverket behöver monteras ned. Dokumentera beroenden av gemensam switch, UPS, NAS och internet öppet; två servrar på samma grenuttag skapar inte två separata strömfelzoner.

Lägg till en tredje nod endast när en namngiven arbetsbelastning behöver kvorum, rullande underhåll eller testad redundans. Lägg till dedikerad lagring när datatillväxten eller återställningstiden överskrider kapaciteten hos någon av värdarnas roller. Bevara tills vidare den asymmetriska tvånodsmodellen: stabila tjänster ändras långsamt, experiment är enkla att kasta bort och säkerhetskopiorna - inte antalet datorer - står för återställningen.

Slutlig konfigurationsregel

Behandla paret som två driftszoner, inte som ett litet hög­tillgänglighetskluster: stabila tjänster hanterar skyddat tillstånd och kontrollerade ändringar, medan experimenten använder beräkningsresurser som kan slängas. Lägg bara till komplexitet när ett testat krav på återställning eller tillgänglighet kräver det.

Installation av NAS och server

Mer att läsa

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.