Så flyttar du containerdata till en SSD-pool utan att bryta monteringssökvägarna

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.

Flytta datakällan på värdsidan till SSD:n samtidigt som varje destinationssökväg på containersidan förblir oförändrad.

En säker migrering behandlar den aktuella monteringskartan som ett gränssnittskontrakt. Containrar, databaser och medieappar förväntar sig sökvägar som /config, /data eller /media, oavsett vilken disk som tillhandahåller dem. Arbetsflödet måste stoppa skrivningar, montera SSD:n förutsägbart, kopiera ägarskap och metadata, uppdatera endast källan på värdsidan, verifiera den nya monteringen före uppstart och behålla originaldata tills ett fullständigt återställningstest har godkänts.

Inventera alla aktuella källor och containrarnas destinationer

Exportera Compose-filen eller informationen från containerinspektionen och lista alla bind-monteringar, namngivna volymer, tmpfs-monteringar, databaskataloger, cacheminnen, transkodningssökvägar och medieplatser. Dokumentera värdkällan och containerns destination separat.

En praktisk guide för volymmigrering börjar med att lokalisera de aktuella datafilerna och stoppa containrarna innan de kopieras till en ny diskplats. Den inventeringen förhindrar att konfigurationsdata lämnas kvar på systemdisken.

Markera vilka sökvägar som innehåller auktoritativt tillstånd, återskapningsbar cache och stora mediefiler. Anta inte att en mapp med namnet data innehåller all beständig programdata.

Montera SSD-poolen förutsägbart innan Docker startar

Skapa SSD-filsystemet eller poolen, identifiera den med ett stabilt UUID eller poolnamn och montera den på den slutliga sökvägen på värdsidan. Kontrollera ledigt utrymme, förväntade filsystemsfunktioner och skrivåtkomst efter en omstart.

Att flytta Docker-data till extern lagring kan misslyckas när disken saknas eller monteras på en annan sökväg under uppstarten. Ett aktuellt fall med extern SSD visar hur en flytt av Docker-lagring ändrar beroendet av den avsedda monteringssökvägen.

Konfigurera tjänsteordning eller automonteringsbeteende så att Docker aldrig skapar en tom reservkatalog på systemdisken. Avbryt om SSD:n inte är monterad på exakt den förväntade sökvägen.

Stoppa skrivande processer och kopiera data med bevarade metadata

Stoppa programmet och alla beroenden som kan skriva till dess data, inklusive databaser, indexerare, nedladdare och bakgrundsjobb. För databaser ska du använda en programkonsistent dump eller en ren avstängning innan du kopierar råfiler.

En diskussion om containrar i Synology rekommenderar att en Docker-hanterad volym flyttas till en bind-montering först efter att volymdata har identifierats och innehållet har bevarats på den nya källan för bind-monteringen.

Kopiera rekursivt och bevara ägarskap, behörigheter, tidsstämplar, länkar, ACL:er och utökade attribut där detta stöds. Kör en torr jämförelse eller kontrollera ett urval med kontrollsummor efter kopieringen och innan Compose ändras.

-15% OFF
Single board computer zimaboard2

Ändra endast källsökvägen på värdsidan

Behåll destinationen i containern oförändrad. Ändra till exempel /oldpool/app:/config till /ssdpool/app:/config i stället för att lära programmet en ny intern sökväg.

Bind-monteringar exponerar en exakt plats på värden via en stabil sökväg inne i containern. En lagringsöversikt förklarar att denna direkta mappning är användbar när administratörer behöver kontroll över sökvägen på värdsidan.

Genom att bevara destinationen undviker du att bryta sönder programdatabaser, biblioteksreferenser, skript, behörigheter och konfigurationsvärden som lagrar sökvägen på containersidan.

Återställ ägarskap, etiketter och databasens konsistens

Jämför de numeriska UID- och GID-värden som avbildningen förväntar sig med ägarskapet på SSD:n. Återställ även ACL:er, SELinux-etiketter, AppArmor-tillåtelser och monteringsalternativ som krävs för låsning eller minnesmappade filer.

En guide för migrering av Docker-lagring i macOS påpekar att en flytt av Docker-data kräver att hela lagringsavbildningen kopieras och att du sedan bekräftar att körmiljön använder den nya lagringsplatsen. På Linux-baserade NAS-system är motsvarande kontroll att varje konfigurerad källa pekar på den monterade SSD:n.

Starta enbart databasen och granska återställningsloggarna innan du startar beroende appar. Om den rapporterar korruption eller saknade filer ska du stoppa och återgå till originalkopian i stället för att låta programmen initiera en tom databas.

Genomför bytet med en återställningsväg och testa hela arbetsflödet

Starta stacken i beroendeordning och verifiera konfiguration, dataposter i databasen, behörigheter, mediebibliotek, uppladdningar, nedladdningar, uppdateringar och återskapande av containrar. Kontrollera att nya skrivningar hamnar på SSD:n och att systemdisken inte längre växer.

ZimaSpace-artikeln om att en Docker-bind-montering plötsligt blir skrivskyddad beskriver nästa felsökningssteg om den migrerade sökvägen monteras men avvisar skrivningar.

Håll de gamla datafilerna frånkopplade och oförändrade tills säkerhetskopiorna och en andra återskapning av containrarna har lyckats från SSD-sökvägen. Ta bort den gamla källan först efter att en återställningsövning har visat att du kan återställa Compose-filen, monteringarna, databaserna och programtillståndet.

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.