「形あるもの、いつかは壊れる」

これは古今東西、今も昔も変わらぬ真理ですが、毎年暑い時期になるとその壊れる確率がなんとなく上がってくるものがあります。

それがこれ。

みんなが大好きなハードディスクです。

電子デバイス全般的に言えることですが、熱に弱い。
というか、これそのものが発熱体なこともあり、こと気温が上昇する夏場になると、こいつが天に召される機会が多くなるように思います。

空調完備のサーバー室やデータセンターの中に設置してある機器に関しても、やっぱり夏場になるとディスクが死ぬ機会が多いような気がするのは不思議ですが…太陽からの磁力線や宇宙線の影響でしょうか?

ともあれ、夏はHDDに関しては鬼門となる時期のようです。

さてそんなある夏の日。
家に帰ってメールチェックをするも、サーバからの反応が無い。

そればかりか、メールに限らずサーバからの反応が一切無い。ハングアップ状態。

メモリでも死んだか、はたまた調子の悪いギガビットカード用のドライバが刺さったかなと思いつつリセットボタンをポチ。
いつまで待っても起動してこないので、モニタを繋げて見てみると…

  ↓サーバのモニタ画面

うぉッ!まじッすか!!!!!

予防線としてsmartmontoolsでSMART情報見張ってたのにッ!!!

こいつは大事なメールサーバ、
しかもIMAPなので全てのメールデータがこの中にッ!!!!!

これは何としても救い出さねばなるまい!!!!!!!

現場検証とレスキュー方針の決定

さてHDDが死んだのは分かった。
問題は何故、どのように死んだか。
これをもとに復旧対策を立てましょう。

被災HDDを取り外して単体で電源を接続すると…なんとスピンアップしない!

ヘッド固着か何かでディスクプラッタが回転したくても出来ないような場合には、電源投入の際に多少なりとも回転しようとする音なり振動なり鼓動なりが感じ取れるものの、今回の場合は全くの無反応。

また、ヘッドが動こうとする音すらもしないので、モーターやヘッド部分のハード的な損傷というよりは制御基板の損傷が疑われる状況です。
制御基板が正常な状態で、モーターもヘッドも一気に壊れるというのは、ちょっと考えづらいですからね...

基板損傷でよくあるのが、チップ焼損などのわかりやすい事例。

例えばこういうパターン。

  ↓パワーMOSFET焼損?

  ↓ダイオード焼損

  ↓制御チップ焼損

いずれも身の毛もよだつ事例ばっかりですが、今回被災したディスクの基板を眺めてみても、特に目立った損傷は見受けられず。

そんな場合に疑われるのがヒューズ切れですが、基板上のテストポイントをテスターで当たってみても12V,5V共に来ている事を確認。 ヒューズ飛んだぐらいなら手持ちのポリスイッチか何かに交換して一丁上がりだったんだけどなあ。チッ。

どうも本格的な根本原因の特定にはかなり時間が掛かりそうなので、ここは復旧優先で丸ごと基板交換といきましょう。

ドナーを探す

今回死んだのはHGST Deskstar P7K500シリーズの500GBモデル(HDP725050GLA360)です。
2008年ぐらいに購入したSATAのHDDで、当時としては安くて静かでそこそこ売れていた模様。

基板交換を行うには、全く同一の個体、できれば製造日が近い物を選ぶ必要があるのですが、そんなに簡単にうまくいく物でしょうか。

とりあえずヤフオクを見てみると

おお、さすがに売れただけあって結構出品されてるもんですな。
お値段はおおよそ3500円ぐらい。送料入れると4500円弱?

プラッタやヘッドは死んでてもいいから基板だけで安く欲しいんだけど、そんなニッチな需要を満たす物はさすがに無い模様。

金には換えられないデータとはいえ、送料まで含めると割高感があるなあと思って入札できないのは貧乏だからでしょうか…

はっ、そういえば我らがプアマンズの見方、「じゃんぱら」があるではないか!
早速検索!

うおおおおおおおお!在庫潤沢!しかも安い!
しかも、会社帰りに寄れるから送料も掛からない!

世界は俺の為に回っている!

そうと決まれば

いや〜、外回り、暑かったなあ〜

今回、幸運なことに同月生産のHDDを入手することができました。
基板を見比べてみても全く同じですし、HDD単体で動作テストをしてみましたが特に問題なし。
無事ドナーが見つかって一安心です。

あとは、制御基板をスワップして電源を入れればOK牧場!

・・・え?

スワッピング大作戦

さて健全な個体が入手できたので、もったいないですがこれから制御基板だけいただくことにしましょう。

基板はトルクス8番のねじでディスク本体に留まっているので、それを外し、さらにモーター部分とつながっているフラットケーブルを外せば基板が外れます。

被災ディスクも同様に制御基板を取り外し、基板を交換。
外したときと逆の手順で装着すればスワップ完了です。

さぁ、電源を入れてみましょう!

USB-SATA変換ケーブルキットを使って、HDD本体へ電源を投入すると....
おお!スピンアップしたぞ!

しかし...どうも様子がおかしい。

電源を入れてスピンアップした後は、ヘッドが「カカカカッ、カッカーッ!」っと動いてパワーオンセルフテスト(POST)を行う筈だが、それがない。
最初に「カカッ」と動いて、それっきり。

なーんか嫌な感じですが、祈る気持ちでUSB-SATA変換ケーブルを接続してみると…

接続のタイミングを変えつつ何度か試してみるも、やっぱり駄目。

何故だ?何故だ?もしや基板スワップの際にドナー基板を壊したか?
慌てて基板とディスクを元の組み合わせに戻し、ドナーHDDを再度認識させると、こちらはうまくいく。

ということは、ディスクと基板との間で紐付いている何かがある?

Deskstar P7K500に関する情報を再度調べてみると、とあるHDD復旧業者のサイトに気になる一文が。

囲み部分意訳:

HGSTのHDDは、制御基板の発熱過多により基板上の部品が損傷を受ける場合がある。

そのような場合でも、同一機種の基板を持ってきて単純に交換するようなことはしてはならない。
それを行うとHDD上のデータを復旧させる可能性は限りなくゼロになり、そればかりかドナーとなった基板もロックされ、元のディスクに戻してもスピンアップしなくなる。

これは、最近のHDDは基板とディスクとの間で整合性チェックを行う作りになっており、チェックに失敗するとディスク・基板の双方をロックするようになっているからである。

我々が基板交換を行う際には、ドナーとなる基板上の不揮発メモリ中に含まれる整合性パラメータを書き換えることで、基板とディスクとの整合性を確保する。

やっぱり、基板とディスクとで紐付けが取られているのね。
で、その紐付きデータは基板上の不揮発性メモリ上に乗ってる、と。
さらに、今回は大丈夫だったものの、迂闊に基板スワップを試みると、最悪二度と復旧できなくなるばかりかドナーHDDも使えなくなる、と。
そしてこの業者の場合は、ステキなソフトとハードを使うことで紐付きデータを書き換えた上で基板スワップを行っている、と。

うーん。
どうしようかな。

なるほど。
試してみよう。

二階建て大作戦

ヘッドの制御やヘッドからのデータ受け渡しは元の壊れた基板を使い、モーター駆動だけはドナーとなる基板を使うというプランです。
これは、「元の基板で壊れた箇所はモーター駆動の部分だけ」かつ「モーター駆動とそれ以外の制御は完全独立」という、だいぶご都合主義な前提が必要になる、かなり安直なプランですが、さて...

このように、基板を二階建てにします。
上側がモーター制御用のドナー基板。
下側はもともとHDDに付いていた、今回損傷を受けた基板。

このように、モーターからのフラットケーブルは上側のドナー基板へ接続します。

2枚の基板への電源投入タイミングが同一になるよう、二股SATA電源ケーブルを使用し、分岐元で電源のON/OFFを制御。
さて、どうなるか?
いざ勝負の時!

モーターが回転しただけでした。
まじめにやりますかね...

スワッピング大作戦その2

前述のリカバリ業者のサイトにあった文言を信じるとすれば、基板上にある不揮発性メモリ(EEPROM)をどうにかしてあげる必要があるようです。

ROMライタがあれば話は簡単ですが、ここは愛と勇気だけが友達の貧乏ラボラトリ。
そんなものはありません。

必要なのは基板上にあるEEPROM上のデータ。
では、これをEEPROMごと移植してはどうだろう?

それなら必要な物は愛と勇気と半田ゴテ。
すべてある!よし、GO。

これがそのEEPROM。
ローム社のRL76?で、SOP8パッケージです。
こうしてみると大きさが分からないですが、結構小さいッスよー?

これを基板上から引っぺがしますが、ピンを1本1本浮かせてると曲げたり折ったりして危険だし、何より時間が掛かるので、今回はこうやって外します。

一旦全部の足にハンダを盛って、

片列のハンダを一気に溶かしたところで持ち上げて基板から分離させます。
馴れてくると両列の半田を一気にばばっと溶かし、ピンセットでひょいっとつまんで外すことも出来ますが、私はヘタレなのでこの方法で。
もう反対側の列も同様に、一列一気にハンダを溶かし、溶けたところでピンセットでつまんで持ち上げればOK。
モタモタしてるとすぐにハンダが固まってしまうので、手早くやる必要があります。

取り外し完了。
パターンに余分に乗ったハンダは、ハンダ吸い取り線で吸って綺麗にしてあげましょう。
また、足したハンダから出たヤニもアルコールで拭いて綺麗にしておきます。

取り外したEEPROM。
大きさが分からない?

これでどうだ。
小さいぞー

これを被災基板とドナー基板の両方に対して行い、EEPROMを取り外します。
どっちがどっちか分からなくならないよう、印を付けておくことを忘れないように。
両方とも取り外せたら、被災基板に乗っていたEEPROMをドナー基板に移植します。

端っこの1ピンだけ軽くハンダ付けして大凡の位置決めを行い、位置が決まったら全ピンを丁寧に半田付けしていきます。

移植が完了したら、いざ、パワーオン!

お、今度はなんだか期待が持てそうな起動音がしてるよ...?

そしてUSB-SATA変換ケーブルを接続!
結果やいかに!

やったぜ!

その後

その後このHDDはサーバへ接続され、幾度にも渡るfsckと大量のlost+found行きファイル、そして多少の犠牲を払いつつも、その大部分のデータをサルベージすることに成功。被害を最小限にとどめることができました。

またその被災HDDについては、その後詳細なチェックを行ったところ、基板損傷のタイミングでディスク上にも何らかの物理的損傷を受けたのか、一部読み書きに不安定なセクタが出るなど信頼性に欠ける状態となっていました。

そのため、必要なデータを取り出し終わった段階で再度EEPROMの移植を行い、ドナーディスクとして今回用意したディスクを今後の運用ディスクとして使用することにしました。

更に、今回の反省を踏まえ、

  • HDDの冷却
  • HDDを1台追加し、二重化(ソフトウェアRAIDによるミラーリング)

を実施。もう二度と同じ事を行わなくても済むよう、ソフト面、ハード面の双方から対策を取りました。

ちなみにHDDの冷却はこんな感じ。

AINEXのHDC-503BKを使い、2台のHDDに対してファンで送風することで冷却を行わせています。
ただでさえ「熱で基板が死ぬ」と言われているHDDですから、少しは気にかけないといけないですね。

今年の夏も暑くなりそうです。
皆さんもHDDの熱中症対策はぬかりなく。