技術

ZFSのプールがインポート出来なくなった原因(仮説)など

前回・前々回と(もう1ヶ月以上経つんですね)ZFSのプールがインポート出来なくてどうのこうのと書きましたが、どうも原因はハードウェアの故障にあったようです。

ああいう問題の場合、ハードウェアから疑ってみるというのは鉄則ですが、「スパースファイルを消してから調子が悪くなった→ZFSとスパースファイルは相性が悪い」と思い込んでしまい、視野狭窄に陥っておりました。

なぜ1ヶ月以上も経った今なのかといいますと、またちょうど前回と同じように大きめのファイルを消した後に同じような問題が発生したからです。

今回もimportして放置で大丈夫だろうとタカをくくってたんですが、数日やってもなかなかzfsコマンドが通るところまで行かず…。
それでも粘ったらimportできるようになり、問題のないデータセットをマウントするところまでは行けたんですが、問題のあったデータセットをマウントできるところまでは行けませんでした。

ちょっとヤバい感じがしたので、マウント出来たデータセットから大事なファイルだけバックアップしようとしたら、やたらと遅くてしかもコピーに失敗したりするという、かなり悲惨な状態に。

そんなこんなやってたらついにサーバ自体が起動しなくなって、ここではじめてハードウェアを疑いはじめるという情けない状態でした。

分解してCPUとメモリだけつないだ状態でCMOSクリアして電源入れてみましたが起動せず(BIOS画面が出ない)、他のマシンでテストしたところCPUとメモリは問題なさそうだったので、マザーボードが逝ってしまわれたという結論に達しました。

この段階で、マザボのSATAコントローラの通信品質が経時劣化してたのが先月からの不具合の原因であり、それがさらに進んで起動できないところまで行ってしまったのではないか、と考えました。

ZFSのデータ構造が破壊されていなければ、マザボ交換で復活するはずと思いまして、新たなマザボを調達して試してみたんですが、問題のあったデータセットがマウント出来なかったり、速度がやたら遅かったりと、相変わらずでした。

ここでちょっと目の前が真っ暗になったんですが、ここでふとHDDかSATAケーブルに問題があるんじゃないかと思いつきまして、(なぜか)ddでデバイスファイルから直読みして転送速度をはかってみました。

すると、1台だけ全く読み出せないHDDがありまして、そのデバイスファイル名を元にS.M.A.R.Tを確認してみたら、Raw_Read_Error_Rateが1万超!という凄まじい状態でした。
普通だと1カウントされるだけで警戒した方がいいと言われてる項目ですね。
(増加傾向になければあまり気にしなくてもいいかもしれませんが)

問題のHDDを取り外してみると、importからマウント、ファイルへのアクセスまでサックサクになりました。
(raidz2なので2台までHDDが壊れてもデータは読み出せるのです)

マウント出来た部分かつ普段よく使う部分をざっとしか確認してませんが、ファイルは壊れてなかったようです。
さすがZFS。

問題のあったデータセットについては、マウントしようとするとまだ空き領域の回復処理?もしくはチェックディスク的な処理?が走るみたいで、最終的にマウント出来るかどうかはまだ分からないんですが、多分出来るだろうと思います。
結果はまたここに書こうと思います。

今回のように「ディスクが実質壊れてるのにシステムに壊れてると認識されてない状態」というのも起きうるわけで、ZFSに限らずですが冗長性の許す範囲内でディスクが壊れても大丈夫だし、壊れたらちゃんとDEGRADEDするもんだと思い込んでると、厄介なことになりかねませんね。

気になるのはマザボとHDDが壊れた順番ですが、今となっては確実に調べる方法はないですが、通常ならHDDの故障→マザボに無理が掛かって故障という順番かと思います。

ただ、壊れたマザボはH67MA-E45(H67のB3ステッピング)なのですが、実は以前H67M-D2−B3(同じくH67のB3ステッピング)を使っていて、先月や今回と似たような問題が起きて交換したした記憶があります。
(交換した理由はそれだけではなく他のものが主だったと思います)
(ちなみに今回はP8H77-M LEにしました)

あの大問題になったB2ステッピングの不具合(SATA2.0の通信品質の経時劣化)は、B3ステッピングで解決されたハズですが、急遽対策せざるを得なかったためにもしかしたら通常使用で問題ないレベルに軽減されただけで根本的な解決がされてなかったのかななんて邪推してしまいます。

そして、調べてみるとH67MA-E45自体もちらほらと個別の不具合報告があったりします。

以上の事を踏まえると、壊れはじめたのはもしかしたらマザボが先かもなんて思ったりしています。

あと、壊れたHDDについては、WD20EARSなのでメーカー(Western Digital)のRMA保証を利用することにしました。
交換保証を受けるにはHDDを特定の方法で梱包して海外へ発送する必要がありますが、そのあたりは調べると具体的な手順の説明がたくさん出てきますのでここには書きません。

まだ交換品が到着してない段階ですが、実際発送してみて思ったのは、当たり前のことですが、WDが指定してる部分はそのとおり守った方がいいけど、それ以外の部分はその関係者に聞いた方がいいかもということです。

自分の場合は郵便局からSAL便で発送しましたが、その時記入させられたCN22(税関告知書)の”For commercial items only”の欄にもネットで調べた通りに記入したら、個人はそこ書かなくていいよと言われました。
修正ペンで消してくれたので書きなおしは必要なかったですが、手間になるかもしれないので書き方はその場で聞いたほうが無難かなと思います。

コメントを残す

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



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

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