Checklista för verifiering av Btrfs-förälder före rensning av ögonblicksbilder

Eva Wong är Teknisk skribent och den boende fixaren på ZimaSpace. En livslång nörd med en passion för hemma-labb och öppen källkod, hon specialiserar sig på att översätta komplexa tekniska koncept till tillgängliga, praktiska guider. Eva tror att självhosting ska vara roligt, inte skrämmande. Genom sina handledningar ger hon gemenskapen verktyg att avmystifiera hårdvaruinstallationer, från att bygga sin första NAS till att bemästra Docker-containrar.

Ta inte bort en Btrfs-förälder för send bara för att den ser gammal ut. Bevisa först att det finns en nyare skrivskyddad ögonblicksbild på båda sidor och att den kan användas i nästa inkrementella cykel.

På en hem-NAS-enhet har ögonblicksbilder på källan och destinationen ofta liknande namn, trots att deras replikeringsroller skiljer sig åt. Rensning blir riskabel när ett rotationsjobb bara ser ålder och inte vilket par som utgör basen för nästa sändning. Börja med en skrivskyddad inventering, identifiera det senaste lyckade käll-till-destinationsparet, testa ett nyare barn mot det och behåll den föregående destinationen tills ännu en inkrementell mottagning har slutförts.

Inventera det aktuella föräldraparet på båda systemen

Lista källans under­volym, alla skrivskyddade ögonblicksbilder för send och alla mottagna ögonblicksbilder på destinationen. Registrera sökväg, skapandetid, skrivskyddsstatus, under­volym-ID, UUID, föräldrarelation och mottagaridentitet när sådan information finns. Para ihop den senaste lyckade källögonblicksbilden med den kopia som faktiskt mottogs, inte bara med en katalog med liknande namn.

En fungerande sekvens för Btrfs send och receive behåller den föregående ögonblicksbilden på båda systemen innan den används som förälder för nästa inkrementella dataström.

Om paret tydligt finns och är skrivskyddat markerar du det som skyddat. Om endast namnen matchar granskar du den mottagna relationen och replikeringsloggen innan du fortsätter. Om destinationskopian saknas ska du stoppa rensningen och planera en ny fullständig sändning eller en annan verifierad bas. Att ta bort källans ögonblicksbild kan inte reparera mottagarens saknade historik.

Bevisa att en nyare ögonblicksbild kan bli nästa förälder

Skapa nästa skrivskyddade ögonblicksbild på källan efter att inventeringen har sparats. Använd den skyddade källögonblicksbilden som uttrycklig förälder och skicka det nya barnet till avsedd destination eller en mellanlagringssökväg. Spara slutstatus och logg och jämför sedan ett urval av ändrade och oförändrade filer i den mottagna ögonblicksbilden.

Inkrementella replikeringsskript bör göra beroendet tydligt. Ett praktiskt arbetsflöde för rotation av ögonblicksbilder fungerar bara när de ögonblicksbilder som sändlogiken förväntar sig finns kvar.

Gör det nya paret till kandidat för rensning först när mottagningen lyckas och destinationsögonblicksbilden går att läsa. Ett fel om att föräldern inte hittas, en skrivbar källögonblicksbild, fel dataset eller en dataström som oväntat motsvarar en fullständig kopia innebär att testet misslyckades. Låt det gamla paret vara orört medan du korrigerar sökvägen eller bygger om basen.

Rensa först när föräldrarollen har gått vidare

Uppdatera lagringsposten innan du tar bort något. Markera de nyligen verifierade käll- och destinationsögonblicksbilderna som aktivt par, behåll det omedelbart föregående paret som en kortsiktig reserv och förhandsgranska vilka äldre ögonblicksbilder rensningsjobbet skulle ta bort. Förhandsgranskningen ska endast innehålla föregångare som inte längre behövs för nästa sändning eller återställningsplan.

En filändring kan följa med till en nyare ögonblicksbild och skickas från en befintlig bas, så framtida inkrementell historik beror på bevarade relationer mellan ögonblicksbilder, inte på att en gammal skrivskyddad ögonblicksbild redigeras.

Avbryt rensningen om den aktiva föräldern, reservparet, den nyaste mottagna ögonblicksbilden eller ett overifierat övergivet objekt finns med i borttagningslistan. Ta bort ögonblicksbilder i små grupper och lista om båda systemen efter varje grupp. Låt inte separata rotationsjobb för källa och destination gå vidare oberoende av varandra utan att dela samma post över skyddade par.

Kör nästa inkrementella cykel innan du avvecklar reserven

Skapa efter rensningen en kontrollerad filändring och en ny skrivskyddad ögonblicksbild. Kör nästa inkrementella sändning från den nyligen befordrade föräldern. Den andra cykeln bevisar att rensningsposten, skriptet och destinationens tillstånd stämmer överens. Den första lyckade sändningen testade inte ensam miljön efter rensningen.

Om en ögonblicksbild inte kan tas bort eftersom den fortfarande används ska du skilja lagringslogiken från den aktiva Btrfs-sändningssökvägen innan du drar slutsatsen att föräldrakartan är fel.

Checklistan är godkänd när det andra barnet tas emot utan fel, de förväntade filerna finns på plats, det aktiva paret fortfarande är skrivskyddat och nästa schemalagda körning väljer det automatiskt. Avveckla reserven först efter detta resultat. Stoppa och återställ det föregående paret till skyddad status om nästa sändning rapporterar en saknad förälder, riktas mot fel under­volym eller föreslår en oväntad fullständig överföring.

Support och tips

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.