技術

ZFSのプールがインポート出来なくなった問題が解決した

事情は前回の記事を見ていただくとして、あれから唯一マウントできないデータセットと格闘しておりました。
といっても、mount -t zfs tank/Hoge /mnt/HogeTmpを実行してマシンが止まるまで放置というのを繰り返すだけなんですが。
(自動マウントされると色々厄介なのでデータセットのmountpoint属性をlegacyに設定済み)

マシンが止まるまでの時間を伸ばそうと思い、他から8GBのメモリを抜いてきて計16GBにして試したら、逆に止まるまでの時間が短くなって首をひねったりなどありました。
(ただし空き領域の回復は8GBのときより早かった気が)
ですがあれから”止まるまでマウント放置”を数回やったら、普通にマウント出来るようになりました。
回復した空き容量は、やはりあの消した巨大スパースファイルの実容量とちょうど同じぐらいでした。

自動マウントを有効にして、zpool import tankも試してみたところ、普通にインポート出来ました。

ただその後、何度か再起動した後、zpool status -v tankとやったら、2つほどCRCエラーが出てたので、
一旦zpool clear tankした後、scrubをかけてエラーが無いことを確認しました。
(2TBx6のraidz2、使用率90%弱でscrubに30時間ほどかかりました)

やはり、例のデータセットのマウントでハングしてたように見えた現象は、厳密に言うとハングではなくて、空き容量を回復するという正常な処理だったように思えます。
ただその回復処理に別の問題があって途中でマシンが応答を返さなくなってただけでしょう。

ときたま今回のようなヤバ気な問題が起きたり、通常の処理の範囲を超えることに関して関連ツールの出力がユーザーに対してやさしくなかったりなどありますが、オペミスさえしなければ最終的にはなんとか復旧出来るあたり、ZFS(raidz2)のデータを守る能力は高いと思えます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です



※画像をクリックして別の画像を表示

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください