RAIDを組む時に注意したいポイント

ぱくたそ

こんにちは。不可思議絵の具です。

いつもは直球のハウツー記事ばっかり書いていますが、たまにはコラムっぽいことも書いてみます。

「RAIDでも壊れる時は壊れる」という話です。

2017年12月にNICOSカードでシステム障害が発生して、二重請求や請求遅れなどの問題が発生したことがあったのですが、根本原因はシステムのハードディスクが3台同時に故障したことによるものでした。

参照 NICOSカードのシステム故障による業務遅延等の影響と対応の状況について (PDF・三菱UFJニコス)

参照 三菱UFJニコスのシステム障害の原因が判明、3個のHDDが同時に故障 (日経クロステック)

文面から察するに、RAID6(2台までなら壊れて良い)をミラーリングせずに使っていたのかなぁ?(ミラーリングしてたらすみません)

参照 RAIDとは (バッファロー)

ミラーリング無しって金融機関の請求システムとしてはど~なの?というツッコミはさておき、以前サラリーマンSEをやっていた私としては、聞いただけで背中から汗が吹き出し、胃がシクシク傷んでくる凄惨な事件です。

NICOSカードのシステム運用担当者さんの心中、お察し申し上げます。
合掌(-人-)

さて、マクラが長くなってしまいましたが、書きたかったのはNICOSカードがど~こ~ではなく、「RAIDでも壊れる時は壊れる」という話です。

スポンサーリンク

3台同時に故障は全然ありえる

ネットの掲示板や、はてなブックマークのコメントでは

ハードディスクが3台も同時に壊れるなんて天文学的数字の確率のことが起きるワケねぇ!

言い訳乙www

なんて罵る風潮があったりしたようですが、私の今までの経験から考えると

「実用上、全然ありえる」

と思っています。

私個人はRAID5で2台同時に故障して復旧不可能になった経験があります。

リビルドが一番危ない

RAIDは「複数台のディスクを1つに束ねて、1台2台の故障なら交換すれば復旧できるようにする」仕組みです。

故障の検出方法としては、

  1. ふだん暇な時に、読み込みできるか点検する(パトロール・リード)
  2. ハードディスクの自己診断機能の結果を確認する(S.M.A.R.T.)

といったことをして、異常が見つかればディスクの束から切り離します。

故障の復旧は、

  1. 壊れたディスクを新しいディスクに交換
  2. 今まで他のディスクに分散記録されていたデータ断片をかき集める
  3. かき集めた断片を新しいディスクに書き込む

という形で元通りにします。これを「リビルド」と呼びます。

このように仕組み上は合理的なRAIDですが、

一番危険なのが、この「リビルド」

です。

では、なぜこのタイミングが一番危ないのか、理由を2点挙げます。

リビルド時が一番危ない理由

①復旧用データが実は壊れていることがある

まず「あるある」なのが、パトロールリード(検査読み込み)の設定忘れです。

普段からパトロールリードを実施していないと、一見正常に見えるディスクでも、部分的に壊れているのが発覚しないことがあります。

そんな状態で故障が検知されると、いざ、生きているディスクからデータをかき集める時に、肝心のバックアップ部分だけが壊れていて復旧できない、なんてことがあります。

パズルのピースが無くなり、永遠に完成しなくなった状態です。

②リビルドの負荷で故障が同時多発する

同メーカー・同時期に製造されたディスクは故障時期が被ることが多いです。

RAID構築時は複数台のディスクを一度に購入しますので、注意しないと同一メーカーで製造ロットの近い個体を揃えてしまう可能性があります。

リビルドはディスク全体を読み込む機械的な負荷が高い処理なので、リビルドをキッカケに他のディスクも寿命を迎えて故障が同時発生することがあります。

RAID5なら2台目が、RAID6なら3台目がリビルド中に故障してトドメを刺す、と。

リビルド時の故障への対策

どちらの壊れ方も、復旧手段のはずのリビルドが原因でトドメを刺してしまうという、なんとも皮肉な壊れ方です。

RAIDはリビルド時の故障への対策がキモになります。

では上記2点の弱点、どのように対策を取れば良いでしょうか?

①パトロールリードを設定する

まず、RAID導入時にパトロールリードの設定を必ず確認すること。

RAIDカードによっては初期値無効になっている場合があります。

上手く動き出したら設定なんて見ないので、最初が肝心です。

②ディスクのメーカー・ロットをバラして購入

次に、以下の2点を意識してディスクを選ぶようにします。

  1. 各台、可能な限りメーカーを変える
    ……と言っても、今となってはWestern Digital、日立(HGST)、東芝、Seagateくらいしか選択肢がありませんが…。
  2. 同メーカーでも製造時期の違うものを選ぶ(製造ロットをずらす)

また、同メーカーでもモデルを分けるのも有効でしょう。
(例えば、Western Digitalを複数台同時購入するにしても、BlueとRedに分ける…など)

モデルによって品質基準が違うので、故障時期をずらす効果があります。

まとめ

RAIDは完全故障してしまうとデータの完全性が失われるので、表面上はシステムが動作しているように見えても、実質、使い物にならなくなります。

どこが壊れているか調査するのは時間や手間も非常に掛かりますので、現実的にはRAIDをフォーマットしてバックアップから復旧することになります。

バックアップも無い場合、専門業者さんに依頼するしかありません。

その場合の復旧費用は大変な高額になります。

RAIDはあくまで業務をストップさせない為のものでしかなく、バックアップではありません。

RAIDカードが壊れて復旧のスキもなく故障する場合もあります。

RAIDを過信せずに、別途バックアップを取ったほうが良いです。

では(^O^)/