RAIDを同一ロットのHDDで組むのは禁じ手

RAIDを同一ロットのHDDで組むのは禁じ手#interest_aeおがた (@xtetsuji) です。

同一ロットのHDDでRAIDを組むと良いよとパソコンショップが喧伝してセットで売るというニュース、最近良く目にするようになって気になっています。

強制するわけではありませんが、個人的に同一ロットのHDDでRAIDを組むことは避けたほうがいいです。特に、知識のあるパソコンショップが率先してこのようなキャンペーンを組むことに疑問を覚えるというか、どういう意図があるのか理解に苦しみます。

同一ロットのHDDは同時期に壊れる

なぜ同一ロットでRAIDを組んではいけないのか。それは端的に言えば、同一ロットのHDDは同時期に壊れることが多いからです。

この事について触れたプロのページはあまり見つからないようなんですが、例えば以下のページでその危険性に少し触れています。

私がこんなことを言っても、「完全に同時には壊れないでしょう」とか「相性問題とか考えたら同一ロットのほうが安心」という人はいるでしょう。

あくまで私の経験ですが、実際に同一ロットのHDDがほぼ同時に故障した例に数回遭遇しています。私はストレージ業者に務めたこともない平凡なプログラマーにすぎないですが、そんな私でも10年程度の業務経験の中で何回かこのようなことを経験しているので、確率的には無視できない高さじゃないでしょうか。

「完全に同時に壊れたの?」と言われると、さすがに完全同時ではありません。ただ、一番最短だったのが、1台目が壊れたあとに2台目が壊れるまで40分弱という事例がありました。40分だったらすぐ入れ替えられるという人もいるかもしれませんが、これが発生したのは深夜で、しかも遠方にあるデータセンターでした。これだとさすがに40分では太刀打ちできない。

この事故のあとは2日くらい徹夜でした。

RAID5のシステム自体が壊れると復旧はほぼ不可能

ハードウェアであれば故障すれば修理すればいいわけですし、例えば3本のHDDのRAID5のシステムで1台のHDDが壊れた場合、すぐに故障したHDDを取り替えれば済みますし、それがRAID5の目的である耐障害性の向上でもあります。

ただ、RAIDシステム全体が壊れると復旧は現実的に不可能と思ったほうがいいかもしれません

RAIDにあまり詳しくない人向け。話を単純に、RAID5で3本のHDDを搭載している場合とします。この場合、1台のHDDの故障の場合はデータを取り返すことができます。これは他の2台のHDDに故障した1台のHDDに記録してあった情報を分散して記録しているからです。これをパリティといいます。パリティはどのHDDにも他の2台のHDDの記録情報が分散されていて、1台の故障に耐えることができます。ただ、この構成の場合、同時に2台のHDDが故障した場合はRAID5を通常の方法で復旧させることができなくなります。

色々なRAIDがありますが話を単純化して、前述のような3本のHDDのRAID5で2台のHDDが故障した場合、どのように復旧すればいいでしょうか。

例えば、故障したHDDのうちの1台の故障の原因がディスクの記録面(プラッタ)の問題ではなく、例えば回転軸などの別の問題でかつ、故障した後に変なデータをHDDが書き込んだりせずおとなしく停止した場合、回転軸などの部品を取り替えることでHDD自体のデータを復旧させることができますが、これはよほど運が良かった場合だと思ったほうがいいでしょう。

実際にプラッタの故障でなくても、現代的なOSは記録メディアの劣化防止や応答速度の向上のために書き込み命令(write(1)など)を暗にバッファするもので、いきなりHDDが停止したらプラッタに書き込まれている磁気情報に一切の不整合がないということはないでしょう。Linuxユーザにはおなじみかもしれませんが、ファイルシステム上でこれを解消するのがfsckです。ただfsckはファイルシステムレベルの不整合の解消であって、RAID5のパリティが分散されたHDDの1台を取り出して磁気情報を何かするということは想定外です。

つまり、3台のHDDで構成されたRAID5のうち2台が同時に故障するというRAID5システム自体の故障には、手軽な方法で復旧することはできないということです。

実際、故障HDDからデータを復旧させる業者がたくさんいることをご存知の方はいるかもしれません。ただ、これらの業者が普通に対応できるのは、プラッタ以外の破損で故障した単独のHDDを駆動するようにして、ファイルシステム上の不整合を可能な限り復旧することです。

RAIDシステムの破壊の場合、対応できる復旧業者は限られ、かつ通常のHDDの故障よりも高額な修理費用を払ったうえで調査に数週間数ヶ月かかった挙句、復旧不能という判断を下されることも多いとききます。

実際、データ消失事故を起こしたサービスの動き方をウォッチしていると、このRAIDシステムの破損ではないかと思わせるような事例もあります。

繰り返し言いますが、同一ロットのHDDだと本当に同時期に壊れると思ったほうがいいです

初期不良を取り除くエイジングは長年の経年劣化には対応しない

電化製品の初期不良を取り除く「エイジング」という言葉を知っている方もいらっしゃると思いますが、これはそのロット独特の長期間使用における故障を見抜くものでは当然ないということです。むしろ初期不良品が取り除かれることによって、同一ロット製品が長い間平行して稼働する事が多いという悩ましい時代になりました。

端的に表現すれば、いわゆる「ソニータイマー」のようなもの、といえば納得できるでしょうか。

RAIDとバックアップは違う

よく見かける勘違いなのですが、RAIDとバックアップは明確に違います。「そりゃ当然でしょ」という読者の方は安心ですが、念のため。

RAIDは複数台のHDDを一台のHDDに見立てた時に、その仮想的な「一台のHDD」の耐障害性を高めるものです。3台のHDDの故障率がそれぞれ p1, p2, p3 だったとき、少なくとも2台が同時期に壊れる確率はざっくり計算で p1p2 + p2p3 + p3p1になるでしょう。

故障率が p の1台のHDD を故障率が 3p^2 (pが十分小さければ 3p^2 < p)の別のHDDにデータを移して置き換えたといっても、これをバックアップだという人はいないでしょう。RAIDがバックアップだという人は、これをバックアップだというくらい奇妙だということです。

バックアップの場合はデータの上書き事故の場合などに取り返しが付きますが、RAIDではそれもできません。NetAppなどの商用ストレージ製品にはナイトリーバックアップなどの機能があったりしますが、これも商用ストレージ製品のシステム全体の故障には無力ですし、ディザスタリカバリなどにも対応できません。

だれが同一ロットのHDDによるRAIDを勧めているのか

謎なのは、この同一ロットのHDDによるRAIDを勧めている人の顔が見えないということです。私が知らない合理的な理由があるのであればぜひとも勉強したいので情報お待ちしています。RAIDの夜明けであれば別として、2015年でRAIDによるHDDの相性問題という話も聴きません。

私の考えとしましては、パソコンメーカーは同一時期の故障を回避するような別ロット・別メーカーのHDDを組み合わせ、かつ相性問題などもない構成のRAIDを見繕って売るべきではないでしょうか。

一人でも多くの人を、データ消失のリスクから遠ざけたい。それが私の願いです。

RAIDを同一ロットのHDDで組むのは禁じ手」への2件のフィードバック

  1. からたち

    同一ロットを使わないのが、RAIDのつぼ。
    売るため 大事な部分を あえて 言わない。

    返信
  2. ピンバック: NASで使うHDDの選定 | あくまで暫定措置としてのブログ

コメントを残す

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