web-dev-qa-db-ja.com

1つのデバイスは正常であるが一時的にオフラインであった障害のあるzpoolからどのように回復しますか?

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を置き換えることができませんでした。そこで、onlineing、offlineing、clearing、replaceing、およびscrubingの組み合わせを試しました。今私はここで立ち往生しています:

[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
7
Josh

デバイスを交換する必要があるかどうかを判断し、「zpool clear」を使用してエラーをクリアするか、デバイスを「zpool replace」に交換します。

最初の一時的な障害の後で、zpool clearエラーをクリアします。

ドライブの交換であるかのように見せたい場合は、ドライブをプールに再度追加する前に、ドライブからデータを消去する必要があるでしょう。

8
MikeyB

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.
1
Wumms

試行したさまざまなコマンドの出力は何ですか? -fそれらのいずれかをオンにしますか?

実行しましたかzpool clear poolname device-name

あなたの場合、zpool clear farcryz1 da4-再同期プロセスが進行しているはずです。

1
ewwhite