SMART値はすべて正常範囲内だった。再割り当てセクター数はゼロ、Raw Read Error Rateも問題なし。温度も38℃で安定していた。それなのに、NASは深夜にアラートメールを送ってきた。「RAID degraded — ドライブ2が応答しない」。
この矛盾は珍しくない。HDDの健康診断ツールとして広く知られるSMART(Self-Monitoring, Analysis and Reporting Technology)は、磁気面の状態を精密に記録する。ただし記録できる範囲には明確な限界がある。SATAケーブルの接触不良、PHYレイヤーのノイズ、PCBのコントローラ不良——これらはSMARTのレーダーに映らない。「SMARTが正常」は「ディスクが正常」を意味しない。「磁気面が正常」を意味するに過ぎない。
トラブルシューティングは、その前提を疑うところから始まる。
Part 1: SMARTは何を見ているのか
深夜、ハクアの作業デスク。QNAPのWeb管理画面が警告を表示している
うわ。またアラートメール来た。「RAID degraded」って書いてあるんだけど、SMART見たら全項目グリーンなんだよね。再割り当てセクター数: 0、Raw Read Error Rate: 0、温度38℃で正常。どういうこと。
あら。落ち着いて状況を整理しましょう。まず聞きますわ——SMARTって、何を測定しているんですか?
え、そんな基本的なこと?ディスクの健康状態でしょ。セクターが壊れてるとか、ヘッドの読み取りが怪しいとか、温度とか……
「ディスクの健康状態」というのは広い言葉ですわね。もっと具体的に。何の健康状態?
(考え込む) あー……磁気面、かな。磁気ディスク上のデータが読み書きできるかどうか。
そうですわ。SMARTが監視しているのは、あくまでも磁気面とそれに関連するメカニカルな動作です。では聞きますわ。SATAコネクタの接触不良は、SMARTで検出できますか?
……できない、よね。磁気面関係ないし。
ふふ。正解です。
SMARTが監視できる範囲と、監視できない範囲をまとめると次のようになる。
| 監視できるもの | 監視できないもの |
|---|---|
| 磁気面のセクター不良 | SATAコネクタの接触不良 |
| ヘッドの読み取りエラー率 | PHYレイヤーのノイズ・CRCエラー |
| スピンドルモーターの状態 | PCB上のSATAコントローラチップ |
| 温度・通電時間 | ケーブルの劣化 |
つまりボク、SMARTがグリーンだから「ディスクは正常」って思い込んでたけど、それは「磁気面が正常」でしかなかったってこと?
その通りですわ。診断の前提が間違っていたんです。SMARTに映らないレイヤーは、別の方法で読む必要がある。ハクアちゃん、dmesgは確認しましたか?
してない。やってみる。
Part 2: dmesgを読む
ハクアがターミナルを開き、SSHでNASに接続する
えーと、dmesg | grep ata2 で絞り込んでみたら……こんなログが出てきた。
ata2: SATA link down
ata2: SError: { PHYRdyChg 10B8B }
ata2: limiting SATA link speed to 1.5 Gbps
なんだこれ。
一行ずつ読みましょう。最初の「SATA link down」は?
そのまんま、SATAリンクが切れたってことじゃん。でも物理的にケーブル抜いてないよ。
抜いていないのに切れた。それはつまり?
間欠的に切れてる、ってこと?接触不良みたいな。
正確ですわ。次の行。「SError: { PHYRdyChg 10B8B }」。SErrorは何ですか?
SATAエラーレジスタ……かな。PHYRdyChgって書いてある。PHY Ready Changed——物理リンクの状態が変化した、って意味?
そうですわ。物理層(PHYレイヤー)でリンクの切断と再接続が繰り返されています。続いて「10B8B」は?
あー、これ知ってる。8b10bエンコーディング。SATAが信号を送るときに8ビットを10ビットに変換する方式で——エラーがあったってことだから、ケーブルかコネクタにノイズが乗ってる。
ふふ。ちゃんと分かるじゃないですか。最後の行は?
リンク速度を1.5Gbpsに制限してる。本来は6Gbpsのはずなのに。OSが自動でフォールバックしてる。
信号品質が悪すぎて、速度を落とすことでなんとか通信を維持しようとしているわけですわ。このログが揃えば、問題がどのレイヤーにあるか絞り込めますわね。
SErrorレジスタに出現する主要なフラグを整理しておく。dmesgを読む際の早見表として活用したい。
| フラグ | 意味 | 疑うべき箇所 |
|---|---|---|
| PHYRdyChg | 物理リンクの不安定な切断 | コネクタ、ケーブル |
| 10B8B | 8b10bエンコーディングエラー | ケーブル品質、PHYチップ |
| BadCRC | CRCチェック失敗 | ケーブル品質 |
| UnrecovData | 読み取り不能データ | セクター不良(SMARTに出る) |
今回はPHYRdyChgと10B8Bが出てる。ケーブルかコネクタが怪しいってわかった。でも、NAS内部のケーブルって気軽に交換できるもんじゃないじゃん。犯人をどう特定するの。
良い質問ですわ。「切り分け」の話をしましょう。
Part 3: ベイスワップテストで犯人を特定する
ハクアちゃん、エラーが「ディスク側」の原因か「NAS本体(ベイやケーブル)側」の原因か、どうやって区別しますか?
うーん。ディスクを別のベイに移して、エラーがついてくるかどうか見る?
その通りですわ。それが「ベイスワップテスト」です。順序立てて実行しなさい。
ベイスワップテストの手順は以下の通りだ。RAIDが冗長性を持っているうちに実施することが前提になる。
- RAIDデグレード状態のまま放置(再構築しない)
- NASをシャットダウンして電源を落とす
- 問題のディスクを別の空きベイに移動する(ベイ2→ベイ4など)
- 元のベイ2は空のままにしておく
- 起動後、
dmesgでSErrorが「ベイ4(新しいスロット)」に追従しているか確認 - 追従していた場合 → ディスク側の問題(SATA PHY回路またはPCBコントローラ)
- 残留していた場合(ベイ2で引き続きエラー) → NAS本体側の問題(ケーブル、コネクタ、マザーボード)
なるほど。エラーがディスクと一緒に動くなら、ディスクが悪い。同じベイに留まるなら、NASが悪い。
単純だけれど確実な方法ですわ。実行した結果は?
(少し間があって) ……ベイ4に移したら、ベイ4でSError出た。ディスクが悪い。
SMARTは正常なのに、ディスク側の問題ですわ。SATAのPHY回路はHDDのPCB基板上にあります。磁気面はまったく問題ない——だからSMARTには何も出ない。でもSATAのインターフェース部分が劣化していた。
SMARTが見えない場所が壊れてたってこと。
そうですわ。ところで、そのディスクのモデルナンバーを教えてもらえますか?
ST8000DM004。SeagateのBarraCuda、8TBのやつ。安かったから4台まとめて買ったんだよね。
(少し間があって) あら。それは……最初から問題がありましたわね。
Part 4: なぜそのディスクが選ばれてはいけなかったのか
ST8000DM004はNAS用のドライブだと思いますか?
え、違うの?8TBで安かったし、容量大きければいいじゃんって思って。
BarraCudaシリーズはデスクトップ向けですわ。SeagateのNAS向けラインはIronWolfです。この違いは単なるマーケティングではありませんわ。
でもHDDって内部構造は一緒でしょ。磁気円盤が回って、ヘッドが読み書きするだけじゃん。
表面的には同じですわ。でも設計目標が根本的に違います。まず記録方式から。ST8000DM004はSMR(Shingled Magnetic Recording)を採用していますわ。
SMR。あー、書き込みがトロいやつ。
正確に言うと、ランダム書き込み性能が大幅に劣化します。SMRはトラックを重ね書きすることで密度を上げる方式ですが、書き換えが必要なとき、周辺トラックも巻き込んで再書き込みする。RAIDの再構築中は大量のランダム書き込みが発生します。SMRドライブにはそれが苦手なんですわ。
RAID再構築のときに遅くなるってこと?
遅くなるだけでなく、タイムアウトが発生してRAIDコントローラが「ディスクが応答しない」と判断するリスクがある。もう一つ、稼働時間の問題もありますわ。
BarraCuda(DM004)とIronWolf(VN002)を比較すると、差は歴然だ。
| 項目 | BarraCuda(DM004) | IronWolf(VN002) |
|---|---|---|
| 用途 | デスクトップ | NAS |
| 記録方式 | SMR | CMR |
| 想定稼働時間 | 2,400時間/年 | 8,760時間/年 |
| RVセンサー | なし | あり |
| RAID最適化 | なし | あり |
| 保証期間 | 2年 | 3年 |
想定稼働時間が2,400時間って……NASは8,760時間稼働するのに、そこまで想定されてないの?
デスクトップ向けですから、夜間はシャットダウンすることを前提にしていますわ。NASは24時間365日稼働が通常です。設計想定を大幅に超えた使い方をしていたことになる。
そんな。全然知らなかった。
RVセンサーも重要ですわ。Rotational Vibration——複数台のHDDが同一筐体に搭載されると、お互いの回転振動が干渉します。IronWolfにはその振動を検知・補正するセンサーが搭載されていますが、BarraCudaにはない。
4台まとめて搭載したら、振動がもろに影響するってこと。
ふふ。5,000円の節約が、後から大きなコストになりましたわね。
(うなだれる) うわ。言わないで。
Linux・NASのHDD選定についてはハードウェア選定全般の考え方でも関連する視点を紹介している。CPUやメモリと同様、「用途に合った仕様を選ぶ」という原則はストレージにも当てはまる。
Part 5: 修理できるか + 同ロットリスク
で、このディスク、直せる?データは入ってないから別にいいんだけど、念のため。
PHYレイヤーの障害に対する選択肢はいくつかありますわ。現実的な順に整理しましょう。
教えて。
一つ目、接点クリーナーによるコネクタ清掃。SATAコネクタの酸化が原因なら効果があることもありますが、PHY回路そのものが劣化している場合は効果が薄い。
それは試したよ。変わらなかった。
二つ目、PCB交換。同モデルの基板を入手して載せ替える方法ですわ。ただし、HDDのPCBにはドライブ固有のファームウェアデータを持つROMチップが搭載されています。そのチップも移植しないとデータが読めなくなる。今回はデータが空とのことなので手順は省略できますが、作業リスクは残りますわ。
ROMチップの移植って、半田付けが必要じゃん。
三つ目、PCBのリフロー。半田クラックが原因の場合、ヒートガンで再溶融させることで回復することがある。ただし成功率は低く、失敗するとPCBを完全に損傷するリスクがありますわ。
四つ目は?
データ復旧専門業者への依頼ですわ。今回はデータなしとのことなので不要ですが、本番データが入っていた場合はこれ一択です。クリーンルームでの作業になるため費用は高い。他の手段を試してから持ち込むと、成功率が下がりますわよ。
データ空だから今回は捨てるとして……問題は同じロットで4台買ってることなんだよね。
そこが本質的なリスクですわ。同時期・同ロットのHDDは製造上の個体差が少ない分、劣化もほぼ同じタイミングで起きる可能性が高い。
つまり残り3台も時間の問題かもしれない、ってこと。
RAIDは冗長性を提供しますが、同時多発的な障害には弱いんです。RAID5なら1台の障害には耐えられる。でも再構築中に2台目が落ちたら、データは全損する。同ロット4台構成のRAIDは、その危険性を抱えていますわ。
RAID入れてるから安心、って思い込みも危ないんだ。
冗長性は「時間を稼ぐ仕組み」であって、「障害を防ぐ仕組み」ではありませんわ。dmesgの読み方やLinuxコマンドの基礎を身につけておくと、こういった兆候を早期にキャッチできますわよ。
dmesgをちゃんと読む習慣、つけないといけないね。
SMARTが正常でも油断できない3つの理由
今回のトラブルから得られる教訓を整理しておく。
SMARTはHDDの健康診断として優れたツールだが、監視範囲は磁気面とメカニカルな動作に限られている。SATAのPHYレイヤー、PCBコントローラ、ケーブルやコネクタの劣化はSMARTに反映されない。「SMART正常 = ディスク正常」という思い込みが診断を遅らせる。
dmesgのSErrorフラグはPHYレイヤー障害の直接的な証拠だ。PHYRdyChgと10B8Bが出ていれば、物理接続レイヤーの問題を疑う。ベイスワップテストを使えば、ディスク側の障害とNAS本体側の障害を効率よく切り分けられる。
NAS用途には、最初からNAS向けに設計されたCMRドライブを選ぶことが重要だ。BarraCudaのようなデスクトップ向けSMRドライブは、稼働時間・RVセンサー・RAID最適化のいずれの点でも不足している。価格差は実際のリスクを反映している。
同ロット複数台構成では、同時期劣化のリスクがある。RAIDの冗長性を過信せず、定期的なdmesgモニタリングと早期のディスク交換を習慣にしたい。