
x86 プロセッサで Solaris 10 を実行しているシステム上の既存の zpool のディスクを交換するのに問題があります。zpool は元々 2 つのミラー スライスで作成されました。ドライブの 1 つが故障したため、物理的に新しいドライブと交換しました。prvtoc と fmthard を実行して、動作中のドライブから新しいドライブにディスク ラベルをコピーしました。
prtvtoc /dev/rdsk/c1t0d0s2 >/tmp/c1t0d0s2.out
fmthard -s /tmp/c1t0d0s2.out >/dev/rdsk/c1t1d0s2
その後、新しいドライブをオンラインにしようとしましたが、デバイスにまだ障害があるという警告が表示されました。
$ zpool online pool c1t1d0s6
warning: device 'c1t1d0s6' onlined, but remains in faulted state
zpool status -v の出力は次のとおりです。
NAME STATE READ WRITE CKSUM
pool DEGRADED 0 0 0
mirror-0 DEGRADED 0 0 0
c1t0d0s6 ONLINE 0 0 0
c1t1d0s6 UNAVAIL 0 0 0 corrupted data
(c1t1d0 は交換されたドライブです。)
次に、c1t1d0 を再びオフラインにして、zpool replace コマンドを実行してみましたが、これも機能しませんでした。
$ zpool replace pool c1t1d0s6
invalid vdev specification
use '-f' to override the following errors:
/dev/dsk/c1t1d0s6 overlaps with /dev/dsk/c1t1d0s2
何が起こっているのか知っている人はいませんか? 「-f」フラグを使用しても安全ですか?
編集:zpool replace -f を実行すると、次のようになります。
pool: pool
state: DEGRADED
status: The pool is formatted using an older on-disk format. The pool can
still be used, but some features are unavailable.
action: Upgrade the pool using 'zpool upgrade'. Once this is done, the
pool will no longer be accessible on older software versions.
scrub: none requested
config:
NAME STATE READ WRITE CKSUM
pool DEGRADED 0 0 0
mirror-0 DEGRADED 0 0 0
c1t0d0s6 ONLINE 0 0 0
replacing-1 UNAVAIL 0 0 0 insufficient replicas
c1t1d0s6/old OFFLINE 0 0 0
c1t1d0s6 UNAVAIL 0 342 0 experienced I/O failures
iostat -e の出力で、新しいドライブにエラーが表示されます。新しいドライブも故障している可能性がありますか?
編集2: 何が起こっているのかわかりません。同じ手順で別のドライブを試しました。zpool replace -f を実行した後、zfs プールはスクラブを実行しましたが、ステータス出力は次のようになります。
pool: pool
state: ONLINE
status: The pool is formatted using an older on-disk format. The pool can
still be used, but some features are unavailable.
action: Upgrade the pool using 'zpool upgrade'. Once this is done, the
pool will no longer be accessible on older software versions.
scrub: scrub completed after 12h56m with 0 errors on Wed Aug 29 06:49:16 2012
config:
NAME STATE READ WRITE CKSUM
pool ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
c1t0d0s6 ONLINE 0 0 0
replacing-1 ONLINE 5.54M 19.9M 0
c1t1d0s6/old UNAVAIL 0 0 0 corrupted data
c1t1d0s6 UNAVAIL 0 0 0 corrupted data
c1t1d0s6 をオフラインにした後、zpool ステータスの出力は次のようになります。
pool: pool
state: ONLINE
status: The pool is formatted using an older on-disk format. The pool can
still be used, but some features are unavailable.
action: Upgrade the pool using 'zpool upgrade'. Once this is done, the
pool will no longer be accessible on older software versions.
scrub: scrub completed after 12h56m with 0 errors on Wed Aug 29 06:49:16 2012
config:
NAME STATE READ WRITE CKSUM
pool ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
c1t0d0s6 ONLINE 0 0 0
replacing-1 ONLINE 5.54M 19.9M 0
c1t1d0s6/old UNAVAIL 0 0 0 corrupted data
c1t1d0s6 UNAVAIL 0 0 0 corrupted data
わかりません。システムは c1t0d0s6 のミラーを使用して c1t1d0s6 を置き換えることができるはずではないですか?
答え1
のアラートをクリアしましたかfmadm
? そしてzpool clear
... スイッチを使用して zpool replace を実行するのは安全です-f
が、不良ディスクをすでに削除していない限り、あなたの記述は間違っていると思います。
http://docs.oracle.com/cd/E19253-01/819-5461/gbcet/index.html
答え2
ケーブルまたはドライブ スレッドとスロットを確認してください。ノイズの多い SATA 接続はエラーを引き起こし、fmadm はその情報を使用してデバイスに障害が発生したかどうかを判断します。ドライブが不良だと思ったことがありますが、それは ZFS が有効なデータを確実に取得していないことに気付いただけでした。SATA ケーブルが挟まっていることに気付き、交換して実行したところzpool clear
、zpool scrub
エラーはなくなりました。