zfsのディスク復旧(raidz編)

ひさしぶりに、opensolaris のハードディスクが壊れました。
そして、raidzの復旧方法を忘れないように書いときます。


前提として、ディスクが壊れてるのはわかっているのですが、
どのディスクが壊れているか、わかりません。
自宅のサーバなので、ディスクそれぞれにランプとかありません。
かといって、raidz1 で一つ壊れている状態なので間違ったのを付け替えるといろいろアウトになります。
というのを避ける手順です。


zpool status で確認。
zpool destroy dpool で(dpoolはプール名)zpoolの状態を破棄。(zpool import -D dpoolで復旧できます)
3つの内、ひとつのディスクを付け替え。
zpool import -D dpool で復旧

あたりだった場合

zpool status で確認して、
6138943079200700489 UNAVAIL 0 0 0 was /dev/dsk/c11d0s0
こんなかんじで表示されるので
zpool replace dpool c11d0 とすると復旧。


はずれだった場合

zpool status で確認すると、
エラーが出てるディスクが残っていて、正常なのを交換してしまっている。
まずは、おちつく。
zpool destroy dpool で zpool の状態を破棄。
ハードディスクを元の状態に戻す。
zpool import -D dpool で復旧。
zpool desroy dpool でzpool の状態を破棄。
次のディスクへ・・・


まったくもって、保障はできませんし、
最新の nexenta なんかだと、もっといい方法あるかも。
でも、ハード故障以外に opensolaris が調子が悪いことがまったくないので
なかなかバージョンアップとかに踏み込めません。