ZFSは砕けない

投稿者: | 2016年12月31日

年の瀬、公園で糞寒い中でも元気な子供達を遊ばせていると、家で掃除をしてくれていた妻からビデオ通話が入った。曰く、サーバのケーブルが抜けちゃった!

映像を見ると、抜けたのは外付けHD箱(まだこいつが動いている!)のeSATAケーブルのようだ。これ、抜けやすいんだよね…。しかたない。気にしないで、と返事して外遊びを続けた。
しばらくして帰宅して、ケーブルを再接続してからサーバの様子を見ると、メインのpoolは外付け箱のディスク群に頼らず本体だけで動くのでおいておくとして、メディアファイル置き場にしていたpoolがUNAVAIL状態に落ちていた。ディスクは繋がっているのにおかしいな。と、dmesgを見るとこんなもので埋め尽くされていた。

うわー。軽く調べると、これはケーブル不良・接触不良の疑いがある。慌ててケーブルを抜くと埃だらけ…。やばい。埃を除去して再接続すると、今度はこう来た。

ありゃりゃ。GPTが壊れた?でも、rawデバイスでpoolに入れているから、GPTがどうの出てくるのはおかしい。ということで、このpoolを構成している2台のディスクの頭の方を見てみる。

なるほど、片方にEFIディスクラベルが残っており、GEOMがそれを拾ってしまったようだ。なぜ今になって問題となったのかはわからないが、変な信号でどこかが壊れたか、それによって回復処理が走ったとか?
さて、ZFS On-Disk Specification(悲しいかな、オフィシャルな置き場所は失われたのでググって探そう)のSection 1.3によれば、ZFSボリュームの頭に置かれるvdev labelの頭の8KBはブランク、つまりZFSでは関知しないようなので、クリアしてしまおう。

しばらくすると、ボリュームがZFSで認識されるようになったので、zpool importで無事poolが復活した。ああ、よかった。今年もデータロスなく年を越せそうです。

コメントを残す

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