Om ZimaOS datamigrering verkar ha fastnat på en låg procentandel när du flyttar data till en nyskapad RAID, bör du först kontrollera RAID-återuppbyggnaden och undvika att avbryta migreringen på måfå. Ett migreringsgränssnitt kan se fruset ut även när lagringslagret fortfarande omsynkroniseras i bakgrunden.
I källfallet låg migreringen kvar på 6 % och webbgränssnittet blev svårt att använda, men cat /proc/mdstat visade att RAID1-matrisen bara hade kommit ungefär halvvägs genom en mycket långsam omsynkronisering. Det är en lagringsarbetsbelastning, inte ett bevis på att själva migreringsuppgiften har kraschat.
Varför datamigrering kan verka ha fastnat under RAID-omsynkronisering
När du skapar eller bygger om en RAID-matris orsakas ihållande läsningar och skrivningar på dess medlemsdiskar. Om du startar en stor datamigrering samtidigt konkurrerar båda åtgärderna om diskbandbredd och I/O-latens.
Den aktuella guiden för ZimaOS datamigrering anger att migreringen tar över gränssnittet medan den pågår och flyttar hela kategorier, till exempel Docker-avbildningar, Docker-applikationsdata och användarmappar. Stora jobb kan därför ta betydligt längre tid än vad gränssnittet uppskattar när målmatrisen är belastad.
Steg 1: Kontrollera RAID-återuppbyggnadens status från terminalen
Kör:
cat /proc/mdstat
För en Linux-md-RAID letar du efter termer som om synkronisering, återställning, eller en förloppsprocent. En frisk RAID1 med två diskar visar vanligtvis att båda medlemmarna är i [UU]. Om en omsynkronisering pågår, notera procentandelen, beräknad sluttid och hastighet.
Vad en mycket lång beräknad tid betyder
En lång beräknad tid kan orsakas av långsamma diskar, problem med USB-/SATA-länken, konkurrerande arbetsbelastningar eller avsiktligt begränsad md-om synkronisering. Det betyder inte i sig att matrisen är trasig. Kontrollera igen efter 10–30 minuter och verifiera att procentandelen ökar.
Steg 2: Bekräfta att systemet fortfarande utför nyttigt arbete
Om /proc/mdstat ökar med tiden är lagringslagret aktivt. Du behöver inte installera iotop bara för att bevisa det. ZimaOS är ett operativsystem i appliance-stil, så att lägga till värdpaket med konventionella distributionsarbetsflöden är inte den rekommenderade felsökningsmetoden.
Du kan också kontrollera om filerna fortfarande är åtkomliga från en annan klient. I källfallet fungerade dataåtkomsten från en dator och telefonappen fortfarande, även när webbgränssnittet för migreringen låg kvar på 6 %.
Steg 3: Stoppa inte Docker och avbryt inte migreringen först
Att stoppa Docker kan ta bort tjänster som ZimaOS webbgränssnitt är beroende av, vilket kan få systemet att se sämre ut utan att lagringsåtgärden löses. Om du avbryter en migrering mitt under kopieringen kan vissa kategorier dessutom bli kvar på den gamla platsen medan andra hamnar på den nya.
Vänta tills den aktiva RAID-återställningen är klar, såvida arrayen inte helt har slutat göra framsteg eller diskarna tydligt visar maskinvarufel.
När bör du misstänka att migreringen verkligen har fastnat?
Utred saken vidare om alla dessa förhållanden kvarstår under en längre tid:
- migreringsprocenten ändras inte;
-
/proc/mdstatinte visar någon aktiv ombyggnad eller ombyggnadens procenttal aldrig ökar; - diskaktiviteten i praktiken saknas;
- destinationen har tillräckligt med ledigt utrymme;
- det inte finns några uppenbara nätverks- eller strömavbrott.
Samla då in den exakta ZimaOS-versionen, källans och destinationens lagringstyper, migreringskategori, RAID-status och relevanta loggar innan du startar om.
Använd det aktuella arbetsflödet för datamigrering
I aktuella versioner av ZimaOS finns den här funktionen under Inställningar → Datamigrering. Verktyget kan flytta Docker-avbildningar, Docker-programdata och användarmappar på kategorinivå. Om du bara behöver flytta ett program använder du arbetsflödet för programmets lagringssökväg i stället för att migrera alla program samtidigt.
I datamigreringsguiden förklaras hur hanterad migrering skiljer sig från att flytta mappar manuellt.
Så förhindrar du samma problem nästa gång
Låt en nyskapad RAID-array slutföra synkroniseringen innan du startar en omfattande migrering av appdata eller användardata. Bekräfta att destinationen är felfri och har tillräckligt med ledigt utrymme, och migrera sedan en kategori i taget. Det minskar konkurrerande I/O och gör det enklare att isolera fel.
Ha också en aktuell säkerhetskopia av oersättlig data. RAID-synkronisering och datamigrering är båda lagringsåtgärder; ingen av dem bör betraktas som en säkerhetskopia.
Vanliga frågor
Kan jag starta om ZimaOS om datamigreringen har fastnat på 6 %?
Inte som första steg. Kontrollera RAID- och lagringsaktiviteten först. Om arrayen aktivt omsynkroniseras bör du låta den slutföras, såvida det inte finns ett maskinvaru- eller säkerhetsskäl att stoppa den.
Varför anger migreringsuppskattningen minuter när det tar timmar?
Uppskattningen kan inte fullt ut ta hänsyn till en långsam RAID-ombyggnad, hårt belastade diskar eller stora mängder små filer. Mät det faktiska förloppet i stället för att förlita dig på den ursprungliga uppskattningen.
Betyder [UU] att RAID1 är felfritt?
För ett md-RAID1 med två medlemmar, [UU] betyder att båda förväntade medlemmarna finns med. Det betyder inte att en omsynkronisering redan har slutförts, så kontrollera även förloppsraden.
Bör jag installera iotop på ZimaOS?
Vanligtvis inte för den här diagnosen. /proc/mdstat svarar redan på om md-RAID håller på att byggas om, och om man undviker onödiga ändringar av värddatorns paket blir felsökningen enklare.
