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
Code: Alles auswählen
zpool import zdata -f
cannot import 'zdata': one or more devices is currently unavailable
Ä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? 39930