『Linux/debian』 zfsでトラブル poolのエラーでマシンが起動できなくなったときの対処法

昨日、ファイルサーバーのバックアップを走らせたまま寝て、本日起床したところ、サーバーマシンがおかしい。
BIOS画面が立ち上がる前の段階でリブートをくり返しているぽい。

このような場合は、CPUファンが問題なことが多いので確認してみたところ、ファンはきちんと動いているようだ。
それでもおかしいので、同じCPUとファンが残っていたため、それらに置き換えて再起動。
ここで無事に立ち上がったのだが、立ち上げシーケンス中にzfsサービスを起動するところで止まってしまう。

starting zfs subfilesystem swap

と出たところで止まる。
USBキーボードを抜き差ししたり、電源ボタンを押したりするとログが出るので、ハングアップはしていない。

起動デバイスのSSDを別マシンにつないで起動させてみたところ、起動した。
→SSDにトラブル発生では無い

ここで考えられるのは、snapshotの転送中に電源が落ちたため、poolが壊れて起動時にチェックシーケンスが走っていること。
と言うことは、しばらく放置しておけば起動しそうだが起動する気配が無いので対策を考えることに。

raidzを組んでいたため、Diskを1台または2台つないだ状態で起動させたら起動した。
色々組み合わせを変えても2台までなら起動するが、3台になると起動しない。

ぶっちゃけ、まだバックアップが作成されていない状況なのでおかしくなったバックアップ先のプールを削除して、一から作り直しても問題ない。
その様なときにどうやってpoolを削除するか。
つまりは、FAULTED状態でアクセス出来ないpoolの削除の仕方です。
答えは、export。

zpool export vol2

でOK。
このあと、Diskを3台つないで起動させたら無事に起動しました。

poolを再作成するときは、

zpool create vol2 -f raidz ada4 ada5 ada6

-fオプションが必要でした。

ファイルが沢山存在する状態など、poolを再作成できない場合ですが、Disk2台つないだ状態で起動させたら、resilver状態になったので、2台の状態でDiskの同期が終わったら3台目をつないで、再度resilverって手順で戻るのでは無いかと予想しています。

しかし、なぜ再起動を繰り返すようになったのかが解っていない。
ログも残っていないし。

コメントを残す

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