まさか構築して1年以内にHDDがやられるとは思いませんでした。しかもエラーが現れたのはZFSのscrub処理によってで、しかもSMARTの報告で確定するくらいのもの。はじめは「とりあえず再チェックかければなんとかなるかな…?」と思っていましたが…
HDD1台が不良セクタを大量に出す事態に
まず問題になったのはzpoolのstatusから。たま~にコマンド経由で何か問題がないかチェックをかけていますが、そのとき出てきた状態。ちなみにstatusなどのメッセージはちょっと控えていないので状態だけ。とりあえずこんな状態でした。
$ sudo zpool status … NAME STATE READ WRITE CKSUM tank DEGRADED 0 0 0 raidz2-0 DEGRADED 0 0 0 zfs1 ONLINE 0 0 0 zfs2 ONLINE 0 0 0 zfs3 DEGRADED 0 0 170 too many errors zfs4 ONLINE 0 0 0 zfs5 ONLINE 0 0 0 zfs6 ONLINE 0 0 0 zfs7 ONLINE 0 0 0 zfs8 ONLINE 0 0 0 …
zfs3だけ 大量のCheckSumエラーを出している状態です。不思議に思い一度zpool clearによりエラーを一度クリアして再度scrubによりチェックサムを確認させると同じような状態になったので「こりゃまずいのでは?」と思い、smartmontoolsを入れて問題のドライブの状態を見てみると…
$ sudo smartctl -a /dev/sde … 4 Start_Stop_Count 0x0032 100 100 020 Old_age Always - 65 5 Reallocated_Sector_Ct 0x0033 100 100 010 Pre-fail Always - 936 7 Seek_Error_Rate 0x000f 075 060 045 Pre-fail Always - 33243485 …
はい、明らかな 不良セクタの発生でした。冒頭にも書きましたが(HDDを10台同時とはいえ)稼働させて1年もたたずに1台目がやられてしまうとはびっくりです。とりあえずびっくりもしてられないので回復作業に取りかかります。念のために1台だけ予備のドライブがあるのでそれを取り付けます。
ZFSからRAIDZ系の回復作業を行う
ZFSでRAIDZ系を使っているときは対象のパーティションはDEGRADED状態ですがアクセスは可能ですので慌てなくても大丈夫です。後は取り外せる状態にして物理的に電源を落として交換orホットスワップによる交換を行い、再構築を行わせるだけです。まずは取り外す準備として壊れてしまったドライブを無効にする処理を行います。コマンドはzpool offlineです。
$ sudo zpool offline tank zfs3 $ sudo zpool status … NAME STATE READ WRITE CKSUM tank DEGRADED 0 0 0 raidz2-0 DEGRADED 0 0 0 zfs1 ONLINE 0 0 0 zfs2 ONLINE 0 0 0 zfs3 OFFLINE 0 0 170 too many errors zfs4 ONLINE 0 0 0 zfs5 ONLINE 0 0 0 zfs6 ONLINE 0 0 0 zfs7 ONLINE 0 0 0 zfs8 ONLINE 0 0 0 …
上のようにすると取り外しの準備ができます。対象のドライブがOFFLINEになっていますね。これを行った後で当該のドライブを取り外し、予備のドライブと交換します。面倒だったのはどれが/dev/sdeにあたるか、という問題。構築時にも書きましたがSATA3I10-PCIEの特性で端子(物理ドライブ)の順番と認識されているドライブの順番が一致していないので順番を間違えないように交換する必要があります。確認してみると今回対象になっていたのは物理的に一番下に来ていたドライブでした。
あとは交換してパーティションを組み直して終わりです。ドライブが交換されただけなので認識順番が変わらないことを使うとそのまま/dev/sdeになるため、
$ sudo parted /dev/sde - mklabel gpt - mkpart zfs3 zfs 2048s -1s
でzfs3の領域が元に戻り、ZFSに再構築を行わせれば完了です。
$ sudo zpool replace tank zfs3
さすがに8TBもあるとかなり時間がかかるようですので気長に待ちましょう。RAIDZ2のよいところは2台故障まで耐えられるので1台の修復中であればそこまで怖がる必要がないことですね。完了したらTwitterにでもつぶやいておきます。
壊れたドライブはどうしようか…
最後はこれ。1年もたたず(というか半年すらたっていない)ので保証とか効かないかな…とは考えています。さすがにさらに予備を買っておくのはどうかと思いますので、なんとかしたいところですね。