Ich habe einen Zpool mit 4 2 TB USB-Festplatten in einer RAIDZ-Konfiguration:
[root@chef /mnt/Chef]# zpool status farcryz1
pool: farcryz1
state: ONLINE
scrub: none requested
config:
NAME STATE READ WRITE CKSUM
farcryz1 ONLINE 0 0 0
raidz1 ONLINE 0 0 0
da1 ONLINE 0 0 0
da2 ONLINE 0 0 0
da3 ONLINE 0 0 0
da4 ONLINE 0 0 0
Um den Pool zu testen, habe ich einen Laufwerksfehler simuliert, indem ich das USB-Kabel von einem der Laufwerke gezogen habe, ohne es offline zu schalten:
[root@chef /mnt/Chef]# zpool status farcryz1
pool: farcryz1
state: ONLINE
status: One or more devices has experienced an unrecoverable error. An
attempt was made to correct the error. Applications are unaffected.
action: Determine if the device needs to be replaced, and clear the errors
using 'zpool clear' or replace the device with 'zpool replace'.
see: http://www.sun.com/msg/ZFS-8000-9P
scrub: none requested
config:
NAME STATE READ WRITE CKSUM
farcryz1 ONLINE 0 0 0
raidz1 ONLINE 0 0 0
da4 ONLINE 22 4 0
da3 ONLINE 0 0 0
da1 ONLINE 0 0 0
da2 ONLINE 0 0 0
errors: No known data errors
Daten sind immer noch da, Pool immer noch online. Großartig! Versuchen wir nun, den Pool wiederherzustellen. Ich steckte das Laufwerk wieder ein und gab den zpool replace
Befehl aus, wie ich oben angewiesen wurde:
[root@chef /mnt/Chef]# zpool replace farcryz1 da4
invalid vdev specification
use '-f' to override the following errors:
/dev/da4 is part of active pool 'farcryz1'
Ähm ... Das ist nicht hilfreich ... Also habe ich es versucht zpool clear farcryz1
, aber das hat überhaupt nicht geholfen. Ich konnte es immer noch nicht ersetzen da4
. Also habe ich eine Kombination aus online
ing, offline
ing, clear
ing, replace
ing und scrub
ing ausprobiert . Jetzt stecke ich hier fest:
[root@chef /mnt/Chef]# zpool status -v farcryz1
pool: farcryz1
state: DEGRADED
status: One or more devices could not be used because the label is missing or
invalid. Sufficient replicas exist for the pool to continue
functioning in a degraded state.
action: Replace the device using 'zpool replace'.
see: http://www.sun.com/msg/ZFS-8000-4J
scrub: scrub completed after 0h2m with 0 errors on Fri Sep 9 13:43:34 2011
config:
NAME STATE READ WRITE CKSUM
farcryz1 DEGRADED 0 0 0
raidz1 DEGRADED 0 0 0
da4 UNAVAIL 9 0 0 experienced I/O failures
da3 ONLINE 0 0 0
da1 ONLINE 0 0 0
da2 ONLINE 0 0 0
errors: No known data errors
[root@chef /mnt/Chef]# zpool replace farcryz1 da4
cannot replace da4 with da4: da4 is busy
Wie kann ich mich von dieser Situation erholen, in der ein Gerät in meinem Zpool unerwartet getrennt wurde (aber kein ausgefallenes Gerät ist) und jetzt wieder zurück ist und bereit ist, erneut ausgelagert zu werden?
EDIT: Wie gewünscht, ein tail
von dmesg
:
(ses3:umass-sim4:4:0:1): removing device entry
(da4:umass-sim4:4:0:0): removing device entry
ugen3.2: <Western Digital> at usbus3
umass4: <Western Digital My Book 1140, class 0/0, rev 3.00/10.03, addr 1> on usbus3
da4 at umass-sim4 bus 4 scbus6 target 0 lun 0
da4: <WD My Book 1140 1003> Fixed Direct Access SCSI-6 device
da4: 400.000MB/s transfers
da4: 1907697MB (3906963456 512 byte sectors: 255H 63S/T 243197C)
ses3 at umass-sim4 bus 4 scbus6 target 0 lun 1
ses3: <WD SES Device 1003> Fixed Enclosure Services SCSI-6 device
ses3: 400.000MB/s transfers
ses3: SCSI-3 SES Device
GEOM: da4: partition 1 does not start on a track boundary.
GEOM: da4: partition 1 does not end on a track boundary.
GEOM: da4: partition 1 does not start on a track boundary.
GEOM: da4: partition 1 does not end on a track boundary.
ugen3.2: <Western Digital> at usbus3 (disconnected)
umass4: at uhub3, port 1, addr 1 (disconnected)
(da4:umass-sim4:4:0:0): lost device
(da4:umass-sim4:4:0:0): removing device entry
(ses3:umass-sim4:4:0:1): lost device
(ses3:umass-sim4:4:0:1): removing device entry
ugen3.2: <Western Digital> at usbus3
umass4: <Western Digital My Book 1140, class 0/0, rev 3.00/10.03, addr 1> on usbus3
da4 at umass-sim4 bus 4 scbus6 target 0 lun 0
da4: <WD My Book 1140 1003> Fixed Direct Access SCSI-6 device
da4: 400.000MB/s transfers
da4: 1907697MB (3906963456 512 byte sectors: 255H 63S/T 243197C)
ses3 at umass-sim4 bus 4 scbus6 target 0 lun 1
ses3: <WD SES Device 1003> Fixed Enclosure Services SCSI-6 device
ses3: 400.000MB/s transfers
ses3: SCSI-3 SES Device
dd if=/dev/zero of=/dev/da4 bs=1M
?zpool replace farcryz1 da4
antwortete danach mitcannot replace da4 with da4: no such pool or dataset
. Aber das Anschließen eines anderen USB-Laufwerks alsda4
und dann das neu auf Null gesetzte 2-TB-Laufwerk danachda5
erlaubte es mirzpool replace farcryz1 da4 da5
. Vielen Dank!Was waren die Ausgaben der verschiedenen Befehle, die Sie ausprobiert haben? Haben Sie versucht
-f
, einen von ihnen einzuschalten?Haben Sie laufen
zpool clear poolname device-name
?In Ihrem Fall
zpool clear farcryz1 da4
- Das hätte den Resilvering-Prozess in Gang bringen sollen.quelle
zpool clear farcryz1 da4
, und es erzeugt keine Ausgabe und überhaupt keine Änderung. Ich habe das gerade getan und sehe jetztda4 UNAVAIL 3 0 0 experienced I/O failures
.dmesg
?Wenn
zpool clear
dies nicht behoben wird, können Sie zfs veranlassen, die Festplatte mit zu vergessenzpool labelclear <partition>
(verfügbar unter http://zfsonlinux.org seit zfs-v0.6.2 ).Beachten Sie, dass Sie, selbst wenn Sie den zpool mit einem ganzen Gerät
/dev/sda
erstellt haben, z/dev/sda1
. B. die Partition angeben müssen, die zfs erstellt hat, z .(Credits gehen an DeHackEd, https://github.com/zfsonlinux/zfs/issues/2076 )
Aus einer zpool-Manpage :
quelle