zfsトラブル
急に応答がなくなったので、リセットかけたらカーネルパニックと来た。取りあえずリードオンリーでマウントできるまでは復旧したのでその記録。
取りあえず、シングルユーザーモードで起動させる。GRUBの選択画面でエディットモードに入って起動オプションに"-s"をつけて起動。
起動中にやはりカーネルパニック。取りあえずディスクアレイ取り外し。
何の問題もなく起動したので内蔵のみで構成されているrpoolは無事。tankがまずいみたい。この状態でディスクアレイを繋げるとすぐに認識して自動的にtankを復旧させようとしてカーネルパニック。よって取りあえずexport。
exportしているのでディスクアレイをつなげても、自動復旧はかからない。次のコマンドは問題なく終了。
# zdb -d -e tank Dataset tank [ZPL], ID 16, cr_txg 1, 38.6K, 9 objects
しかしながら次のコマンドはコアダンプする。
# zdb -b -e tank Traversing all blocks to verify nothing leaked ... error: zfs: freeing free segment (offset=1168830076928 size=3072) Abort (コアダンプ)
取りあえず一度scrubをかけるべく次のコマンドを実行するも状況変わらず。
# zdb -AAA -e tank ...省略... Traversing all blocks to verify nothing leaked ... WARNING: zfs: freeing free segment (offset=1168830076928 size=3072) WARNING: zfs: freeing free segment (offset=1168830071808 size=2048) WARNING: zfs: freeing free segment (offset=1193191384064 size=14336) WARNING: zfs: freeing free segment (offset=2204444383232 size=14336) WARNING: zfs: freeing free segment (offset=2210434022400 size=2048) WARNING: zfs: freeing free segment (offset=2210434027520 size=3072) WARNING: zfs: allocating allocated segment(offset=2817498546176 size=512) WARNING: zfs: allocating allocated segment(offset=2817498546176 size=512) WARNING: zfs: allocating allocated segment(offset=2817498546176 size=512) WARNING: zfs: allocating allocated segment(offset=2817498546176 size=512) WARNING: zfs: allocating allocated segment(offset=2817498546176 size=512) WARNING: zfs: allocating allocated segment(offset=2817498546176 size=512) WARNING: zfs: allocating allocated segment(offset=2817498546176 size=512) WARNING: zfs: allocating allocated segment(offset=2817498546176 size=512) ...省略...
# zdb -b -e tank Traversing all blocks to verify nothing leaked ... error: zfs: freeing free segment (offset=1168830076928 size=3072) Abort (コアダンプ) # zdb -A -b -e tank Traversing all blocks to verify nothing leaked ... error: zfs: freeing free segment (offset=1168830076928 size=3072) Abort (コアダンプ) # zdb -AA -b -e tank Traversing all blocks to verify nothing leaked ... WARNING: zfs: freeing free segment (offset=1168830076928 size=3072) WARNING: zfs: freeing free segment (offset=1168830071808 size=2048) WARNING: zfs: freeing free segment (offset=1193191384064 size=14336) Assertion failed: sm->sm_space == space (0x2eff28c00 == 0x2eff24000), file ../../../uts/common/fs/zfs/space_map.c, line 355 Abort (コアダンプ)
自動復旧は無理そうなのであきらめて取りあえずリードオンリでマウント。
# zpool import -o readonly=on tank
後は新しいHDDを買ってきてストレージプールを新しく作って、その中にsendないしrsyncで移せば復旧完了。新しいHDDいくらぐらいするかな。