Raidz構成に4 TBの2 TB USBディスクを備えたzpoolがあります。
[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
プールをテストするために、ドライブをオフラインにすることなく、いずれかのドライブからUSBケーブルを抜いてドライブ障害をシミュレートしました。
[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
データはまだあり、プールはまだオンラインです。すごい!次に、プールを復元してみましょう。ドライブを接続し直し、上記の指示に従ってzpool replace
コマンドを発行しました。
[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'
ええと...役に立たない... zpool clear farcryz1
を試してみましたが、まったく役に立ちませんでした。それでもda4
を置き換えることができませんでした。そこで、online
ing、offline
ing、clear
ing、replace
ing、およびscrub
ingの組み合わせを試しました。今私はここで立ち往生しています:
[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
Zpool内の1つのデバイスが予期せず切断され(ただし、障害が発生したデバイスではない)、この状態から回復するにはどうすればよいですか?
編集:要求に応じて、tail
/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
デバイスを交換する必要があるかどうかを判断し、「zpool clear」を使用してエラーをクリアするか、デバイスを「zpool replace」に交換します。
最初の一時的な障害の後で、zpool clear
エラーをクリアします。
ドライブの交換であるかのように見せたい場合は、ドライブをプールに再度追加する前に、ドライブからデータを消去する必要があるでしょう。
zpool clear
で修正できない場合は、zpool labelclear <partition>
( http://zfsonlinux.org で利用可能)を使用してzfsにディスクを忘れさせる zfs-v0以降.6.2 )。
デバイス全体を使用してzpoolを作成した場合でも注意してください。 /dev/sda
zfsが作成したパーティションを指定する必要があります。 /dev/sda1
。
(クレジットはDeHackEdに移動します https://github.com/zfsonlinux/zfs/issues/2076 )
zpool manpage から:
zpool labelclear [-f] device
Removes ZFS label information from the specified device. The device
must not be part of an active pool configuration.
-f Treat exported or foreign devices as inactive.
試行したさまざまなコマンドの出力は何ですか? -f
それらのいずれかをオンにしますか?
実行しましたかzpool clear poolname device-name
?
あなたの場合、zpool clear farcryz1 da4
-再同期プロセスが進行しているはずです。