zpoolでエラー大発生

 ZFSにはデータの整合性が保たれているか確認するコマンドがある。zpool scrubコマンドがそれだ。
RAIDZボリュームに対してscrub処理をすると、もしもデータに欠損があった場合パリティを元にデータが再計算され、復元されるようになっている。
通常のRAID 5と同様、ディスクの数が足りなかった場合データの復元は不可能になり、失われてしまう。
今回scrub結果を見ると

# zpool status
  pool: zhome
 state: ONLINE
status: One or more devices has experienced an error resulting in data
        corruption.  Applications may be affected.
action: Restore the file in question if possible.  Otherwise restore the
        entire pool from backup.
   see: http://www.sun.com/msg/ZFS-8000-8A
 scrub: scrub completed after 10h19m with 174 errors on Tue Sep 20 16:48:02 2011
(中略)
errors: 174 data errors, use '-v' for a list

と表示された。これはまずい。慌てて

# zpool status -v
とすると

errors: Permanent errors have been detected in the following files:
    /home/なんたらかんたら1
    /home/なんたらかんたら2

という形で、8個のファイルが壊れているということがわかった。
ところで不可解なのは、174個エラーがあったのに壊れたファイルは5つしかなかったということだ。ひとつのファイルの中に複数のエラーがあったのだろうか。それとも実体ファイルではないメタデータにもエラーがあるが表示されないということだろうか。まさかどのファイルが壊れたかもわからない、それが169個あるということではなかろうな?

 とにかく、動作の怪しいハードディスクを置き換えていくことが急務だ。