Vad gör att en ZFS-datamängd verkar tom efter att den har monterats utan problem?

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.

En ZFS-dataset kan rapporteras som monterad men ändå se tom ut när de förväntade uppgifterna finns i en underordnad dataset, döljs av en monteringspunkt eller använder en annan importrot.

Flaggan för monterad visar att en dataset är ansluten till en sökväg; den bevisar inte att sökvägen är den som ett program eller en användare förväntar sig, att underordnade dataset är monterade under den eller att en krypterad underordnad dataset har låsts upp. En tom överordnad dataset kan vara helt felfri medan alla verkliga filer finns i underordnade dataset. Börja med att jämföra datasetegenskaper, refererat utrymme, monteringstabeller och katalogvyn innan du kopierar data eller ändrar poolens struktur.

Jämför datasetens utrymme med katalogen du öppnade

Notera datasetens namn samt värdena för USED, REFER, AVAIL, MOUNTPOINT och MOUNTED. Lista sedan den exakta katalog som visas för användaren eller programmet.

Om datasetens rapporterade mängd refererade data är nästan noll kan filerna tillhöra en underordnad dataset, ögonblicksbild, klon eller en annan dataset med ett liknande namn. FreeBSD:s ZFS-handbok beskriver dataset som separat hanterade filsystem, så användningen på poolnivå och en öppnad katalog representerar inte nödvändigtvis samma dataset.

Dra inte slutsatsen att data har gått förlorade enbart utifrån den grafiska filhanteraren. Jämför ZFS-egenskaperna, operativsystemets monteringstabell och ett lokalt root-skal på värddatorn som befinner sig utanför containrar eller begränsade programnamnrymder.

Kontrollera mountpoint, mounted och canmount tillsammans

Kontrollera om datasetens monteringspunkt är explicit angiven eller ärvd, om den faktiskt är monterad på den sökvägen och om canmount är on, off eller noauto.

Oracles vägledning om ZFS-egenskaper förklarar att mountpoint och canmount avgör om en dataset monteras automatiskt, endast monteras när det begärs eller enbart används för att föra vidare egenskaper till underordnade dataset.

En dataset kan tillhandahålla ärvda egenskaper till sina underordnade dataset samtidigt som den avsiktligt förblir omonterad. Omvänt kan en dataset med en äldre monteringspunkt se korrekt ut i ZFS-egenskaperna men vara beroende av en separat monteringspost i systemet som inte kördes.

Inspektera monteringar av överordnade och underordnade dataset

Lista hela datasethierarkin under poolen och sortera den efter monteringspunkt. Jämför den överordnade dataset med varje underordnad dataset som ska innehålla användarfiler, programdata, säkerhetskopior eller medier.

En tom överordnad dataset är vanlig när den endast finns för att organisera egenskaper och monteringspunkter. FreeBSD:s ZFS-datasetnamnrymd behandlar varje underordnad dataset som en egen hanterad dataset, så pool/data kan vara tom medan pool/data/photos innehåller de faktiska filerna.

Om den överordnade dataset monteras men en underordnad dataset inte gör det, ska den underordnade dataset felsökas separat. Kontrollera canmount, krypteringsnycklar, motstridiga monteringspunkter, misslyckade importer och om en tjänst startade innan monteringen av den underordnade dataset var klar.

-15% OFF
Single board computer zimaboard2

Kontrollera om monteringen dolde filer som redan fanns i katalogen

Filer kan finnas i den vanliga katalogen innan en dataset monteras ovanpå den. När ZFS-dataseten väl är monterad döljs de underliggande filerna från sökvägen, även om de fortfarande finns i rotfilsystemet.

Avmontera dataset endast under ett kontrollerat underhållsfönster och inspektera den underliggande katalogen från värddatorn. Linux handbok för montering anger att befintligt innehåll i monteringspunkten blir osynligt medan det monterade filsystemet använder sökvägen.

Det omvända felet kan också inträffa: en förväntad ZFS-montering misslyckas, så att den tomma underliggande katalogen visas för användare och containrar. Då kan en felfri dataset se tom ut, trots att den helt enkelt inte är ansluten till den sökväg som används.

Uteslut alternativ rot och äldre monteringsbeteende

Kontrollera om poolen importerades med en alternativ rot, ett återställningsalternativ, en tillfällig monteringssökväg eller ett annat poolnamn. En dataset kan vara korrekt monterad under en prefixed återställningssökväg i stället för på sin normala produktionsplats.

Om en pool importeras med en alternativ rot skrivs datasetens monteringsplatser om i förhållande till den tillfälliga roten. Ubuntus referens för zpool import dokumenterar att -R anger altroot, medan -N kan importera utan att montera filsystem.

Inspektera även dataset vars monteringspunkt är legacy. I det läget hanterar ZFS inte monteringen automatiskt, så operativsystemets monteringskonfiguration blir den källa som gäller.

Kontrollera krypterade underordnade dataset och monteringsnamnrymder för containrar

En krypterad underordnad dataset kan förbli otillgänglig efter att den överordnade dataset har monterats om nyckeln inte har lästs in eller monteringen av den underordnade dataset misslyckades. Den överordnade katalogen ser då tom eller ofullständig ut trots att poolen är online.

Kontrollera nyckelstatus och monteringsstatus för alla krypterade underordnade dataset och jämför sedan värddatorns sökväg med sökvägen som visas i containern. Canonicals LXD-dokumentation förklarar att diskresurser i containrar mappar källor på värddatorn till separata instanssökvägar, så en underordnad dataset som är synlig på värddatorn ändå kan saknas i en äldre containermontering.

Om värddatorn ser data men en container inte gör det, inspektera containerns bind-källa och monteringsspridning. En container som skapades innan den underordnade ZFS-dataseten monterades kan fortsätta att se den underliggande tomma katalogen tills tjänsten återskapas eller monteringen sprids korrekt.

Återställ rätt vy utan att kopiera dataset

Åtgärda den minsta bekräftade egenskapen eller sökvägen: montera den saknade underordnade dataset, korrigera en ärvd monteringspunkt, ta bort en oavsiktlig alternativ rot, reparera den äldre monteringsposten, läs in krypteringsnyckeln eller återskapa containern med rätt bind-källa.

ZimaSpaces checklista för återställning av hemmaservrar ger en närliggande regel: verifiera lagringslagret och monteringsstatusen innan du kör reparationsverktyg eller återställer data.

Diagnosen är klar när den förväntade dataset och dess underordnade monteringar visas på avsedda sökvägar, refererat utrymme överensstämmer med synliga filer, programmen ser samma träd som värddatorn och layouten består efter export, import, omstart av tjänster och omstart av systemet.

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.