結論から先に書きます。ダイナミックディスクのスパンボリュームが削除されても、ボリューム丸ごとデータ復旧できます。データ復旧ソフト(フリーウェア、市販品、プロ用解析ツール)でスキャンして、フォルダもファイル名は見えたけれども、ファイルが壊れていたり、当社以外のデータ復旧サービス会社が復旧不可と判断した場合であっても、よほどのことがない限りデータの復旧は見込めます。
当社ではこれまでにスパンボリュームを誤って削除してしまったお客様からのご相談に応じ、元通りに復元したスパンボリューム情報をMicrosoft社に開示して検証していただいたこともあります。検証の結果は見事にOKでした。
※注:但し当然ながらMicrosoft社は復元データの完全性までの保証されませんでした。
スパンボリュームはRAIDの復旧解析の中では最も困難なRAIDタイプです。このページではスパンボリュームが削除された状態を障害発生状況と想定し、ダイナミックディスクのスパンボリュームの構造とデータを復元するために必要なことを解説しています。繰り返しになりますがスパンボリュームのRAID障害でも、データ復旧は充分に見込める、が結論です。失われた情報が大切なデータでしたら、どうぞあきらめないでください。
ダイナミックディスクのスパンボリュームとは
はじめに、ダイナミックディスクのスパンボリュームについて。スパン(SPAN/SPANNED)とはRAIDの組み方の1つの種類です。RAIDとは複数台のハードディスクを結合し、あたかも1台のハードディスクであるかのように構成するしくみです。上図のように1TBのハードディスク4台でRAIDを構成するときには、総容量と冗長性は次のようになります。
RAIDタイプ | 容量と特性 |
SPAN(スパン、JBOD) | 4TB、冗長性なし |
RAID 0(ストライピング) | 4TB、冗長性なし |
RAID 1(ミラーリング) | 1TB、冗長性あり |
RAID 5 | 3TB、冗長性あり ※故障1台まで |
RAID 6 | 2TB、冗長性あり ※故障2台まで |
スパンボリュームは、RAID0(ストライピング)と同じデータ容量を確保できます。そして冗長性がないという点でも共通しています。大きな違いは、ダイナミックディスクのスパンボリュームでは、RAIDボリューム容量を後から増量できることです。つまり、総容量4TBで構成されたスパンボリュームの空き容量が足りなくなったときに、任意の容量を最初に構築したスパンボリュームに追加することができる点が、RAID0(ストライピング)と最も異なる特徴であり、他のRAIDタイプにもない特性です。
仮想環境でのディスクサイズの増大化をイメージしていただくと分かりやすいかもしれません。それと同様のことを物理環境で実行する手段ともいえます。
スパンボリュームは複数ディスクの分割区画が連結したもの
上のスライドは、Windowsの「ディスクの管理」にて、ダイナミックディスクが3台(Disk1, Disk2, Disk3)あり、分割された区画(1:195.31GB)(2:195.31GB)(3:48.83GB)を連結させたスパンボリュームがあることを表しています。このスクリーンショットの段階ではスパンボリュームはまだアクセス可能な状態です。つまり障害は生じていません。
ディスク | 区画番号 | 分割数 |
Disk 1 | (1)(4)(10)(13) | 4 |
Disk 2 | (2)(3)(6)(8)(12) | 5 |
Disk 3 | (5)(7)(9)(11)(14) | 5 |
スパンボリューム | (1)(2)(3) | 3 |
ここでは、図示を分かりやすくするために、スパンボリュームを構成する区画が(1)(2)(3)と連番になっていますが、必ずしもこのように組まなければいけないわけではありません。(2)(3)(1)あるいは(2)(1)(3)という組み合わせと順番でもスパンボリュームを構成することはできます。
このようにスパンボリュームは各ディスクを任意の容量で分割し、その区画を任意の順序で連結して作られています。そしてさらに新たな区画を任意のタイミングで既存のスパンボリュームに連結(増設)させて、拡張することもできます。いいかえると、好きなときに必要な容量の追加を繰り返しながら、容量を増大化させられるのがこのダイナミックディスクのスパンボリュームです。次はその分割と区画順序がどのように記録されているかをみてゆきます。
スパンボリュームには区画を構成する要素のデータベースがある
このスライドの左半分の領域は、Windowsの「ディスクの管理」機能では見えない部分を可視化しています。この箇所を拡大したのが下の図です。
ここに書かれていることは、「ディスク番号」、「区画の開始位置」、「サイズ」です。実際には他の情報も記録されていますが、このページはダイナミックディスクのスパンボリュームが削除されてもボリューム全体を復元する理由とその方法を解説する目的のためにありますので、ある程度簡略化して表現しています。
「ディスク番号」、「区画の開始位置」、「サイズ」の3つの情報が揃うと、あたかもHDDの内部制御システムにおける物理セクタ位置を示すCHSのように、分割されたどの区画であるかを指し示すことができるようになります。いわばポインタです。そして各区画情報(3点セット)を連結する順序を指定しているのが、丸囲み番号です。この図では上から順に並んでいます。
スパンボリュームを理解するときに、最も重要なのがこの情報です。ちなみに仮想環境におけるディスクイメージファイルも同じような構造ですし、Windows Server OSのバックアップ機能が生成するデータも基本的には同じ管理システムになっています。
バイナリデータレベルで見るスパンボリュームの区画の境界
上のスライドは、区画(1)と区画(2)の境目前後のバイナリデータを表示したものです。赤い点線がそのボーダーラインです。このラインより上半分が区画(1)の終端部分であり、下半分が区画(2)の先頭部分になります。
- 区画(1)の終端4バイト:「8B 06 48 8B」
- 区画(2)の先頭4バイト:「40 20 FF 15」
区画と区画の間には、スライドでは赤い点線がありますが、実際のバイナリデータにはこうした区切り線は存在しません。そのため区画間をまたぐファイルが書き込まれると、「8B 06 48 8B 40 20 FF 15」のようにバイナリデータは連続して記録されます。
ではこの区画の境目があることをどのようにWindowsは把握しているのか?それはボリューム開始部にある区画構成要素のデータベースの情報です。そのデータベースには「ディスク番号」、「区画の開始位置」、「サイズ」が書かれていることは前項に解説があります。
スパンボリューム「ボリュームの削除」は区画情報のデータベースを消す機能
いよいよ本題に近づいてきました。ダイナミックディスクのスパンボリュームにおける「ボリュームの削除」を実行すると、どうなるのかについてみてみましょう。この機能を実行すると、「ディスク番号」、「区画の開始位置」、「サイズ」の情報を保持しているデータベースが空になります。つまり区画を示すポインタが消滅し、下のスライドのようになります。
区画情報が消滅していますので、Windowsは「ディスク番号」、「区画の開始位置」、「サイズ」の区画情報を参照してスパンボリュームを構成することができません。つまりユーザデータはアクセスできない失われた状態になります。データ消失です。しかも瞬時にこうなります。
当社ではこれまでに100TBを超えるデータが消失した事故のデータ復旧も行ったことがあります。そのときのご相談主さん曰く、一瞬の出来事だったとのことです。
削除されたスパンボリュームのデータベースは本当に空になる
ファイルを誤って削除しても、データ復旧ソフトがあるから大丈夫なはず? 残念ながら答えはノーです。データ復旧ソフトが復元できるのは、実体が消滅せずにディスク上に残存しているデータです。これはデータ復旧専門サービスでも同じです。残存していないデータは復元しようがありません。なぜスパンボリュームを削除すると区画情報のデータベースを復旧できないのか、これにはワケがあります。
それは、データベース領域全体をゼロベース(x00)の上書きリセットをしてしまうからです。もう言葉通り「壊滅的な消滅」です。
データ復旧ソフトで100回スキャンしても1万回スキャンしても、磁気力顕微鏡を使っても、消えたデータベースは戻って来ません。ただし、良い情報もあります。
実はボリューム内のユーザデータは全て残存する
ダイナミックディスクのスパンボリュームを削除しても、それだけならユーザデータは見えなくなるだけで残存します。ですので、ボリューム削除の直後であれば、大切なファイルを復活させるためのデータの素はディスク上にあるはずなんです。ただ、それが見えないだけです。
ここで、見えないからといってあれこれ本番環境でデータ復旧実験をしてしまうと、二人羽織のようにぐちゃぐちゃに荒らしてしまう可能性があります。失敗するとデータの復旧は次第に見込めなくなりますので、くれぐれも要注意です。
スパンボリューム削除は壊滅的。復元できる?
スパンボリュームにおいて区画情報がいかに大切であるかはこのページの冒頭で触れた通りです。それほど大切な情報でも、片手でマウス数回クリックするだけで、瞬時に消滅するのです。100TBのファイルサーバでさえほんの数クリックで全データ喪失という事態にもなり得るのです。
では、ダイナミックディスクのスパンボリュームが削除された場合、喪失したユーザデータを再び復活させることができるのか? 答えは「データ復旧は可能」です。このことはページ冒頭で結論としてすでにお伝え済みですので、つぎはその方法を簡潔にご説明いたします。
区画の境界を見つけること。これがデータ復旧への答えです。
いよいよゴールです。データ復旧ソフトのスキャン結果に期待しても、期待した成果がない理由は、区画の境界を探す機能がデータ復旧ソフト側に備わっていないからです。しかし、一部のソフトウェアにはスパンボリュームのデータ復旧に対応したものがあります。これはどいうことかというと、区画の境界を把握できる場合には元スパンボリュームにあったファイルを復旧できる、という機能です。つまりスパンボリュームの各区画の分割情報さえ分かれば、多少の機能の差はあっても、データを復元する用意がソフトウェアにはあるということになります。
では肝心の区画情報はどのように入手できるの? ひとつはスパンボリュームを構築したときの設定資料の参照です。詳細な設定資料が残っていれば、あとは手計算で乗り切れる可能性があります。あるいはデータベース部分のバックアップが存在すれば、環境ごと元通りに復元することもできるでしょう。むしろ今トラブルに遭遇されていないのでしたら、万が一に備えてファイルのバックアップだけではなく、データベース部分のバックアップも取得しておかれると良いかもしれません。なお、このページではデータベースと一言で表現してまいりましたが、実際のデータベース情報などは各ディスクのヘッダとフッタの両方に存在します。そのため、バックアップを生成する場合には、別途正確な技術情報をご参照下さい。
残るもうひとつの方法は、バイナリデータの解析技術を手に入れることです。でも、データ復旧ソフトを買い集めることではありません。複数の区画にまたがるファイル群全てを復元するためには、この分野に特化した専門知識と解析技術の両方を備えたデータ復旧エンジニアが必須です。熟練のデータ復旧エンジニアは、バイナリデータがあればバックアップや資料がなくても区画の境界を探し出すことができます。つまり、消失ファイルを復元できます。
当社には、世界15か国から選ばれた23名のデータ復旧プロフェッショナルのうちの1名がいます。日本国内では唯一の存在です。スパンボリュームを削除してしまったダイナミックディスク上のデータ復旧が必要なときは、どうぞお問い合わせください。