erledigt u gelöst: ZFS: UNAVAIL missing device

Probleme mit Samba, NFS, FTP und Co.
Antworten
Benutzeravatar
manes
Beiträge: 958
Registriert: 27.08.2007 11:26:54
Wohnort: Köln
Kontaktdaten:

erledigt u gelöst: ZFS: UNAVAIL missing device

Beitrag von manes » 09.08.2017 22:20:00

Hallo Forum,

im vergangenen Jahr habe ich mir einen neuen Server aufgesetzt: Debian, ZFSonLinux, poolname zdata. 8 Festplatten, je zwei als mirror aufgesetzt:
mirror-0: 2x Seagate.
mirror-1: 2xHitachi.
mirror-2: nochmal 2x Seagate.
mirror-3: 2x WD.
Fehler eins: die Festplatten sind jeweils gleiche Modelle.
Neulich habe ich eine Handvoll Fehler im zpool status gefunden. Betroffen war mirror-2 mit Seagate-Platten. Ein zpool scrub zdata wollte nicht loslegen, da immer wieder ein resilvering initiert, aber nie abgeschlossen wurde.
Fehler zwei: Ich habe erst spät kapiert, daß zunächst einer, dann beide Controller der Platten starben und anhaltend unzuverlässige Daten gelesen und geschrieben wurden.
Fehler drei: Ein replace der "gesunderen" Platte wurde ausgerechnet unterbrochen von einem Stromausfall, der durch ein anderes defektes Gerät im Haushalt verursacht wurde.
Eine der sterbenden Platten habe ich zwischenzeitlich mit dd auf eine neue, größere Platte gespiegelt.
Ein weiterer mirror (mirror-0) , ebenfalls mit Seagate-Platten, wirft auch schon Fehler, die anscheinend gesündere Platte wird gerade mit dd auf eine neue gespiegelt und ist deshalb gerade unavail.
Vielfache, im Nachhinein teilweise für mich nicht mehr nachvollziehbare unbeholfene Bemühungen :? , das ganze noch zu retten, blieben ohne Erfolg.

Jetzt jedenfalls habe ich die grundsätzlich gesunden vorhandenen Platten, die sterbenden Platten und eine mit dd kopierte Platte mit sicherlich teilweise korrupte Daten. Auf einzelne Dateien kann ich gut verzichten, aber den Pool als ganzes möchte ich unbedingt retten. Der Pool kommt aber nicht mehr hoch:

Code: Alles auswählen

zpool import -f
pool: zdata
id: 1343310357846896221
state: UNAVAIL
status: One or more devices were being resilvered.
action: The pool cannot be imported due to damaged devices or data.
config:

        zdata             UNAVAIL  missing device
          mirror-0        DEGRADED
            dm-name-n8_2  UNAVAIL
            dm-name-n8_3  ONLINE
          mirror-1        ONLINE
            n8_0          ONLINE
            n8_1          ONLINE
          mirror-2        DEGRADED
            dm-name-n8_4  ONLINE
            dm-name-n8_5  UNAVAIL
          mirror-3        ONLINE
            n8_7          ONLINE
            dm-name-n8_6  ONLINE
und

Code: Alles auswählen

zpool import zdata -f
cannot import 'zdata': one or more devices is currently unavailable
(Das wechselhafte Namensschema ist wohl auch meinen wiederholten Versuchen nach Schadensbegrenzung zu verdanken.)

Äh? Jeder mirror hat mindestens ein device, das als online angegeben wird, aber trotzdem missing device? Kann mir jemand einen Tip geben, wie ich herausfinde, welches device ich tauschen muß, damit der pool importiert werden kann?
(Die üblichen Verdächtigen wie FreeBSD-Wiki und die Oracle-Doku habe ich schon hoch- und runtergelesen und habe nichts gefunden).
Danke im Vorabbereich!

edit: vielleicht kann jemand etwas anfangen mit dem output von zdb? NoPaste-Eintrag39930
Zuletzt geändert von manes am 15.08.2017 16:58:27, insgesamt 2-mal geändert.
Sometimes you have a programming problem and it seems like the best solution is to use regular expressions; now you have two problems.
David Mertz

Benutzeravatar
sbruder
Beiträge: 333
Registriert: 24.06.2016 13:54:36
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Franken

Re: ZFS: UNAVAIL missing device

Beitrag von sbruder » 09.08.2017 23:35:42

schon mal mit
https://serverfault.com/a/563037 hat geschrieben:'zpool import -F', 'zpool import -X', 'zpool import -T' (danger!)
versucht?

Benutzeravatar
manes
Beiträge: 958
Registriert: 27.08.2007 11:26:54
Wohnort: Köln
Kontaktdaten:

Re: ZFS: UNAVAIL missing device

Beitrag von manes » 10.08.2017 21:19:59

danke, sbruder, für den link. alles --force hat leider keinen erfolg, solange sich das zfs über ein fehlendes device beklagt. wie ich herausfinden kann, welches das nun ist, weiß ich nicht, finde dazu auch nix im netz und habe mich mit einem cross posting an ein internationales publikum gewandt: https://unix.stackexchange.com/questions/385319
Sometimes you have a programming problem and it seems like the best solution is to use regular expressions; now you have two problems.
David Mertz

Benutzeravatar
manes
Beiträge: 958
Registriert: 27.08.2007 11:26:54
Wohnort: Köln
Kontaktdaten:

Re: erledigt u gelöst: ZFS: UNAVAIL missing device

Beitrag von manes » 15.08.2017 19:47:35

Letztlich habe ich eine Lösung für mein Problem gefunden. Den Datenbestand konnte ich nahezu vollständig wiederherstellen.
Ich habe zpool import zdata mit jeweils vier der acht Platten in unterschiedlicher Konstellation versucht, und letztlich habe ich einen Pool zum Laufen gebracht.

Code: Alles auswählen

	NAME                       STATE     READ WRITE CKSUM
	zdata                      DEGRADED     0     0     0
	  mirror-0                 DEGRADED     0     0     0
	    dm-name-n8_2           ONLINE       0     0     0  (resilvering)
	    11141007683912581709   UNAVAIL      0     0     0  was /dev/disk/by-id/dm-name-n8_3
	  mirror-1                 DEGRADED     0     0     0
	    16620393607066428577   FAULTED      0     0     0  was /dev/disk/by-id/dm-name-n8_0
	    dm-name-n8_0           ONLINE       0     0     0
	  mirror-2                 DEGRADED     0     0     0
	    replacing-0            DEGRADED    85     0     0
	      1051730541091272780  FAULTED      0     0     0  was /dev/disk/by-id/dm-name-n8_4
	      dm-name-n8_6         ONLINE       0     0    85  (resilvering)
	    dm-name-n8_4           ONLINE       0     0     0  (resilvering)
	  mirror-3                 DEGRADED     0     0     0
	    dm-name-n8_5           ONLINE       0     0     0
	    13833275275194605312   FAULTED      0     0     0  was /dev/disk/by-id/dm-name-n8_6
Nach meinem laienhaften Verständnis speichert zfs die relevanten Pooldaten sehr redundant mehrfach auf jedem der beteiligten Datenträger. Daß ich abhängig von der jeweiligen Platten-Zusammenstellung unterschiedliche status-Meldungen bekommen habe, und in den meisten Kombinationen ein zdata UNAVAIL, führe ich mir nun auf den Stromausfall zurück und daß zfs keine Gelegenheit hatte, konsistente Pooldaten auf den Geräten zu hinterlegen. Das paßt nicht zum Copy-on-Write, aber was weiß ich schon.
Jedenfalls konnte ich nahezu alle Daten von den Platten auf ein Backup retten. Geschätzter Verlust: zwei Wochen Freizeit und ein paar GB ersetzbare Audiodateien. Glückwunsch! Wieder mehr Glück als Verstand gehabt.
Sometimes you have a programming problem and it seems like the best solution is to use regular expressions; now you have two problems.
David Mertz

Antworten