ざさいたま
アバウト ギャラリー コンピュータ その他 リンク集

RAIDの安全性と復旧

はじめに

 データ保存の比較的安全なシステムとしてのRAID1)の考察と運用上の問題点を述べ、予告していた「HDDがクラッシュ」の続編としたい。RAIDシステムの復元のノウハウも伝授しよう。RAIDシステムのデータ復元に関する文章は少ないため、このコラムもいくらか有用であろう。

RAIDとは

 RAIDとは、複数のディスクに冗長性をもたした形でデータを記録し、ディスクに障害が発生してもデータの保全を図ることができるシステムである。ディスクの障害は構築するRAIDの種類にもよるが、一般的なRAID52)では1台までのディスクに障害が起きても、問題なくデータを読出し及び書出しを行うことができる。多少ディスクが壊れていようとも、動作するのである。データの保全の観点からも優れていおり、また複数のディスクをまとめて管理するので、大容量のディスクを比較的安価に手に入れることできる。
 しかし、ここに落とし穴がある。裏を返せば「多少ディスクが壊れていようとも、問題なく動作してしまう」システムなのである。RAIDの冗長性だけではカバー出来ない障害が発生したときは、通常のハードディスクとは違い容易にデータを復元できなくなる。軽い障害が起きてもシステムは動作するので、交換用のハードディスクを購入し忘れ、新たに違うハードディスクに障害が発生した時点で大問題となるケースが多い。データは複数のディスクに分散されて記録されており、RAIDの構造が分かれなければデータを取り出すことはできない。また、コントローラ3)の障害もあり得る。コントローラが正常に動作しない場合、ディスクは正常でもデータを取り出すことが出来なくなる。ディスクの破損のリスクだけではなく、コントローラの障害のリスクを抱え込むことになる。

RAIDからデータの復元

 何らかの障害ににってRAIDからデータを取り出せなくなってしまった場合、データの復元はそう簡単には出来ない。ハードディスクを取り出して普通に繋いだだけでは、ファイルを覗くことすらできない。データを復元する為には、基礎的且つ専門的な知識を要する。RAIDの復元を行うことは難しいため、データ復元業者は通例高額な技術料4)を請求する。このコラムではRAIDの復元のポイントを解説してみたい。

復元業者は次のようなことを行う

  1. ハードディスクを取り外す前に、番号を付ける。
    データを復元するための大きなヒントとなる
  2. 独立したハードディスクからイメージを作成する。
    ハードディスクディスクをむやみにそれ以上の物理的な障害を起こさなくする。
  3. バイナリエディタでハードディスクのイメージを眺めデータ復元方法を検討する。
    データの開始位置、パリティーの生成方法、データのブロックサイズを配列から読み取る
  4. データ構造が理解できたら、RAIDシミュレータに繋ぎデータを再構築する
 上記の作業を行う為には次のことを理解しなくてはならない。

コントローラの動作

 RAIDコントローラはどのようにして、データを記録しているのか理解する必要がある。通常は特定のブロックサイズに到達したら次のハードディスクにデータを書き込む。つまり定期的にデータの周期が変わる箇所がある、そのような部分からブロックサイズを特定することができる。
 コントローラは通常データ書き込みと同時に、違うハードディスクにパリティー5)情報を書き込む。パリティーの演算方法は複雑そうであるが、意外に簡単である。

対象OSの論理フォーマット

 対象OSで利用されている論理フォーマットについての多少の知識は必要である。パテーション識別用の配列、ファイルデータの構造などは知っておきたい。このようなことがわるとコントローラの動作を理解する上での助けとなる。対象OSの論理フォーマットは、データのつなぎ方を見つけ出す上で重要なヒントとなる。

データを取り出す

 動作が理解できれば、それに従ってシミュレータ6)を設定し、コントローラの代わりとして動作させる。通常のハードディスクと同様にデータを取り出すことができる筈だ。うまくいけば綺麗にデータを取り出すことぎできるだろう。また障害が起きたハードディスクの情報を利用しないで、障害が起きていないハードディスクのパリティー情報からデータを復元するほうがいい場合がある。いずれの方法も、基本的且つ十分な知識さえあればできる。シミュレータが手に入らない場合、プログラムを自作しても良い7)。市販されているシミュレータは実に汎用的に出来ている。中にはパリティーの算出を、指定無しに自動的に判断してくれるものもある。
 RAIDのデータ復元は高額な技術料が請求されるため、上記のポイントを学習し挑戦してみるのもいいかもいれない。上記ヒントがあればきっと読者もできる筈だ。
(小宮和寛)

注:
 1)Redundant Arrays of Inexpensive Disksの略。
 2)ブロック単位でのパリティ分散記録を用いる方式。一般的なRAIDと呼ばれるシステムはこのRAID5を利用していることが多い。RAIDには他にRAID0,RAID1,RAID6等数種ある。
 3)ハードディスクをRAIDディスクとして動かすための装置である。
 4)ハードディスク5本で構成されるRAIDを見積もりした場合、数百万の見積もりが来たことがある。
 5)冗長データ。障害が起きた場合このデータを利用し、データを復元する。パリティーの演算にはXORなどの演算が行われる。
 6)コントローラと同じような動作をするプログラム。市販されている。
 7)コントローラの動作をほぼ正確に知る必要がある。
  戻る
saitama web-framework (c) 2007-2012 thesaitama. All Rights Reserved.