



- 各RAIDの状態について
- RAID復旧 ディスクを個別に「並列同時解析」※ 生成したRAIDイメージから各データを復旧する作業を実現
- RAIDに対する復旧 Data_Array&Restoration技術
- RAIDの動作モード
- RAID-0(ストライピング)
- RAID-1(ミラーリング)
- RAID-5(パリティ付きストライピング)
- RAID-6(二重パリティ付きストライピング)
- RAID-10(1+0 または 0+1)
- スパニング(JBOD)
- ドライブ取出作業
- 初期診断作業
- 損傷分布検査作業
- [損傷分布に関して]
- [物理障害重度] クリーンルーム作業
- データスキャン作業, データ再構築作業
- RAIDでは更に重要なデータ整合性検査
各RAIDの状態について
RAIDは、複数のドライブを組み合わせて動作させる仕組みです。
もともとはバックアップを目的としたものではなく主な目的はシステムの稼働継続性を高めることにあります。
つまり、ドライブの一部に障害が発生しても、できる限り運用を継続できるようにするための仕組みです。
このようなRAIDではどのようにデータを格納しているのでしょうか。その基本構造を見ていきます。
まず重要になるのが、ストライプサイズと呼ばれる単位です。
ストライプサイズとは、RAIDが複数のドライブへデータを分散して配置するときの管理単位です。
これは、ドライブの最小読み書き単位であるセクタサイズとは異なります。
また、ファイルシステムが管理するクラスタとも異なります。クラスタはファイルシステム側で複数のセクタをまとめて扱う単位です。
一方ストライプサイズはRAID側でデータを分散配置するための単位です。
つまり、セクタ・クラスタ・ストライプサイズは、それぞれ異なる階層で使われる管理単位になります。
RAIDでは、このストライプサイズを基準として各ドライブへデータを分散していきます。
どのように分散するのか、どのように複製するのかによってRAIDの種類や特性が大きく変わります。
たとえば、複数のドライブへデータを分散して書き込む方式はストライピングと呼ばれます。
一方、同じデータを複数のドライブへ複製する方式はミラーリングと呼ばれます。
ストライピングは速度や容量効率に関係しミラーリングはドライブ故障時の継続性に関係します。
さらに、パリティを組み合わせることでRAID5やRAID6のような構成も実現されます。
このようにRAIDはデータの配置方法によって特性が大きく変わる仕組みです。
しかしここで誤解されやすいのが、ミラーリングです。
同じデータが複数のドライブに保存されるためどうしても「データ保護」と考えられがちです。
しかしミラーリングはあくまでドライブ故障時の稼働継続性を高めるための仕組みでありバックアップそのものではありません。
この誤解が、RAIDをデータ保護の仕組みとして過信してしまう大きな原因になっています。
RAIDを正しく扱うには、まずデータがどの単位でどのように複数のドライブへ配置されているのかを理解することが重要です。
RAID復旧 ディスクを個別に「並列同時解析」
※ 生成したRAIDイメージから各データを復旧する作業を実現
リビルドに失敗するという脆弱性によりデータ損失につながるケースが少なくないのも事実です。
RAIDに対する復旧 Data_Array&Restoration技術
セクタをチャンクと呼ばれる塊で分割することで各データを分散することにより速さや耐久性向上を図ったものがRAIDとなります。
このとき「リビルド」に失敗しデータ復旧をご相談いただく事が大変多い傾向です。
リビルドとは「正常な状態に戻す作業」を指しますが確実な成功は保証されておりません。
なぜならドライブは徐々に劣化する性質があるためです。
突発的な故障ならリビルドできるのですが、徐々に劣化して故障した場合は、リビルドを必要とした時点で他のドライブにも劣化による整合性が壊れている状況となっており結果的にリビルドに失敗します。
このような性質を生み出している原因は「ビット腐敗」です。この「ビット腐敗」については、以下で詳しくまとめております。
【FromHDDtoSSD不良セクタ修復】ビット腐敗: 特殊な形態を取る不良セクタを解説
RAIDの動作モード
RAID-0(ストライピング)

主に速度向上を目的とした構成で、データ保護機能は一切ありません。
一定のストライプサイズでデータを複数のドライブに分散させることで高速化を実現します。
ただしいずれか1台のドライブが故障した場合は全データへのアクセスが不可能となります。
そこで、RAIDの基本的な構成の一つである、このストライピングの詳細ついて見ていきます。
ストライピングとは、複数のドライブに対して決められたストライプサイズごとにデータを分散し、交互に読み書きしていく方式です。
複数のドライブへ処理を分散できるため、読み書き性能の向上が期待できます。
特に、連続した大きなデータを扱う場合には単体ドライブよりも高速に処理できることがあります。
しかし、その一方で、ストライピングには冗長性がありません。
つまり、構成しているドライブのうち1台でも故障すると全体のデータ構造が崩れてしまいます。
その結果すべてのデータにアクセスできなくなる可能性があります。
このように、複数台のドライブを使って性能を高める一方で1台の故障によって全体を失う危険がある。それがストライピング「いわゆるRAID 0」です。
そのため、データ保護を目的としてRAID 0を選ぶことはありません。RAID 0は、あくまで速度や容量効率を重視する構成です。
ただし、RAIDはもともとバックアップではありません。
そのため、別媒体へのバックアップをしっかり確保したうえで速度を重視してRAID 0を運用する。
そのような方針であれば、RAID 0も十分に成立する構成です。
問題は、RAIDという言葉から「高度なバックアップ機能」を連想してしまうことです。
この固定観念があるため、RAID 0のように冗長性を持たない構成の意味が見えにくくなっている面があります。
RAID 0は、データを守るための構成ではありません。速度を得るために複数のドライブへデータを分散する構成です。
この違いを理解しておくことが、RAIDを正しく扱ううえで非常に重要です。
RAID-1(ミラーリング)

速度面は単独ドライブと同等ですがデータ保護性に優れた構成です。
すべてのデータをセクタ単位で複製(ミラー)するため一台のドライブが故障してもデータは残されたドライブから取得できます。
ただしビット腐敗などによりミラー構成でも正常にリビルドできないケースもあり過信は禁物です。よって、バックアップとしては機能しません。
とりわけRAIDの中でもデータ保護装置と勘違いされやすいのがミラーリングです。
ミラーリングは、確かに複数のドライブへ同じ内容を書き込む方式です。
そのため、1台くらい故障しても大丈夫。そう考えたくなる気持ちは、よく分かります。
しかし、それでもミラーリングはバックアップではありません。
まず重要なのは「RAIDではOSと各ドライブの間にRAIDコントローラやRAID管理層が入る」という点です。
OSは、RAIDを構成している個々のドライブを直接扱っているわけではありません。
OSから見ると「RAIDコントローラが提示する一つの論理ドライブにアクセスしている」形になります。
OSはRAIDコントローラを通してデータを読み書きしておりその先にある複数のドライブをどのように扱うかは、RAID側の管理に委ねられています。
このため、RAIDを構成しているドライブにはRAIDコントローラやRAID管理情報の影響が入り込みます。
構成情報・メタデータ・書き込み順序・同期状態・ディスク番号・管理領域などが関係するためです。
ミラーリングであっても、故障したRAIDからドライブを1台取り出してSATAに直接接続すれば、そのままデータが見えるとは限りません。
RAID管理機能を経由しないと正しく認識できない場合が多いためです。単体で見えたとしても、構成情報や同期状態によってはどのデータが正しいのか慎重に判断する必要があります。
そのため、ミラーリングは「もう1台に同じデータがあるから安心」という仕組みではありません。
どのドライブを有効なメンバーとして扱うのか。どのドライブを基準に再構成するのか。同期状態に問題がないのか。
その判断にはRAID構成に関する専門的な知識が必要になります。
この点がバックアップとの大きな違いです。
バックアップであれば別媒体に保存されたデータを通常のファイルとして直接参照できることが重要になります。
一方RAIDミラーリングではRAID構成や管理情報を正しく解釈しなければデータへ安全にアクセスできないことがあります。
つまりミラーリングはドライブ故障時の稼働継続性を高める仕組みです。しかし、失われたデータを簡単に戻すためのバックアップではありません。
RAIDを正しく扱うにはミラーリングであっても過信せずに別媒体へのバックアップを必ず用意しておくことが重要です。
RAID-5(パリティ付きストライピング)

読み取り速度は向上しますが書き込み時にはパリティ計算が加わるため若干の速度低下が生じます。
データ保護性は限定的で1台のドライブまでしか故障を許容できません。
これはRAID-0構成にパリティ(排他的論理和)を加えた形でありパリティをもとに失われたデータを復元します。
1台のドライブを失っても稼働を継続できる分散型のドライブ構成として登場するのがRAID 5です。
RAID 5は「パリティ付きストライピング」と呼ばれる方式です。
ストライピングによって複数のドライブへデータを分散しながら同時にパリティ情報を記録します。
このパリティ情報を利用することで構成ドライブのうち1台が故障しても失われたデータを計算によって復元できるようになっています。
基本的には、各ストライプ単位でデータブロックとパリティブロックを配置し排他的論理和・つまりXORによって整合性を保つ仕組みです。
そのため、1台のドライブが保持していた情報をすべて失ったとしても残っているドライブ上のデータとパリティ情報から失われた分を再構成できます。
これがRAID 5の大きな利点です。ところが、ここに大きな欠点もあります。
RAID 5は、1台の故障には対応できます。しかし、1台が故障した時点で残っている他のドライブには高い完全性が求められます。
つまり、故障した1台を補うためには残存ドライブから正しくデータを読み出せることが前提になります。
もし、他のドライブにも不良セクタや読み取り不安定な領域が広がっていた場合、どうなるでしょうか。
故障したドライブの情報を復元するために必要なデータが残っているドライブから正しく読めなければ、パリティ計算による再構成が成立しません。
その結果リビルドが失敗したり、RAID全体の整合性が崩れたりすることがあります。
特に、長期間運用されていたRAID環境では表面化していない不良セクタやビット腐敗が残存ドライブ側に存在している場合があります。
普段はアクセスされないため問題が見えていなかった領域がリビルド時に一気に読み出されることで初めて異常として表面化することもあります。
そのため、RAID 5のリビルドに過度な期待をするのは危険です。
RAID 5は、あくまでドライブ故障時の稼働継続性を高めるための仕組みです。失われたデータを確実に戻すためのバックアップではありません。
リビルドが成功するためには、残っているドライブが十分に健全であることが必要です。
この前提が崩れている場合、1台の故障をきっかけにRAID全体が動作不能に陥ることがあります。
そのためRAID 5を運用する場合でも、定期的なドライブ検査・整合性チェック・別媒体へのバックアップが不可欠です。
RAID 5は便利な構成ですが万能ではありません。
稼働時間を延ばすための仕組みであると理解しリビルドに頼り切らない運用が重要になります。
RAID-6(二重パリティ付きストライピング)

RAID-5の強化版で二重のパリティ情報により最大2台のドライブ故障に耐えることができます。
安全性を高めたい環境で有効です。
RAID 5では1台のドライブ故障に耐えられるようにパリティ付きストライピングという構成が採用されています。
これに対して、構成されているドライブのうち最大2台までの故障に耐えられるようにしたものがRAID 6です。
RAID 5では1台のドライブが故障した時点で、残っているドライブに高い完全性が求められます。
つまり、故障した1台分のデータを復元するには残存ドライブから正しくデータを読み出せることが前提になります。
しかし、ドライブは突然壊れるだけではありません。
多くの場合、少しずつ劣化が進みながら不良セクタや読み取り不安定な領域を抱えながら動作していることがあります。
そのためRAID 5で1台が故障したとき、残っているドライブ側にも不良セクタやビット腐敗が存在しているとリビルドに失敗する可能性があります。
1台の故障に対応できるはずの構成であっても残存ドライブの完全性が崩れていればRAID全体が動作不能に陥ることがあるのです。
そこで登場するのが、RAID 6です。
RAID 6では2種類のパリティ情報を分散して保持することで最大2台までのドライブ故障に耐えられるように設計されています。
ここで重要なのは、「1台まで」と「2台まで」の差です。
これは単に、同時に2台壊れる確率に備えるというだけではありません。
1台目の故障が発生したあとに残っているドライブに多少の不良や読み取り不安定な領域があっても、
RAID 5より余裕を持って対応できる可能性が高まるという点が大きいのです。
RAIDの崩壊は、多くの場合、1台目の明確な故障をきっかけに表面化します。
その時点で残存ドライブに完全性を強く求めるRAID 5と比べるとRAID 6にはもう一段階の余裕があります。
この余裕こそがRAID 6を比較的おすすめしやすい理由の一つです。ただしRAID 6であっても、バックアップの代わりにはなりません。
RAID 6は、あくまでドライブ故障時の稼働継続性を高めるための仕組みです。
誤削除・ランサムウェア・ファイルシステム破損・RAID構成情報の破損・装置全体の故障などには対応できません。
そのためRAID 6を採用する場合でも別媒体へのバックアップは必ず必要です。
RAID 6は、RAID 5よりも故障時の余裕を持たせやすい構成です。
しかし、最終的にデータを守るには定期的なドライブ検査・整合性チェック・そして別媒体へのバックアップを組み合わせた運用が重要になります。
RAID-10(1+0 または 0+1)

RAID-0とRAID-1を組み合わせた構成で高速性と耐障害性の両立が可能です。
ただし使用可能な容量は総ドライブ容量の半分となるためコスト効率はあまり高くありません。
構成時はミラーリングした構成にストライピングを施す「1+0」形式を推奨します。
(「0+1」は耐久性に劣ります)
ミラーリングとストライピングを組み合わせることで、両方の利点を得ようとする構成があります。
それが、RAID 10やRAID 01です。
RAID 10は、ミラーリングした組をさらにストライピングする構成です。
一方RAID 01は、ストライピングした組をさらにミラーリングする構成です。
いずれもミラーリングによる冗長性とストライピングによる速度向上を組み合わせようとする考え方です。
ただし、この方式には大きな欠点があります。それは、実効容量が半分になることです。
たとえば、同じ容量のドライブを4台使用しても実際に利用できる容量は2台分になります。
台数が増えるほど失われる容量も大きく感じられるようになります。
販売する側から見るとこの方式は必要なドライブ台数が多くなるため提案しやすい構成なのかもしれません。
しかし、容量効率をできるだけ維持しながら1台故障時に残存ドライブへ過度な完全性を求めにくい構成としてRAID 6があります。
RAID 6が利用できる環境であれば、あえてRAID 10やRAID 01を選ぶ必要性はそこまで高くありません。
特に大容量ストレージを効率よく使いたい場合にはRAID 6の方が現実的な選択になることも多いです。
もちろん、RAID 10にも利点はあります。
RAID 6と比べると制御が比較的単純であり安価なRAIDコントローラでも対応している場合があります。
また、ランダムアクセス性能や再構成時の扱いやすさを重視する環境ではRAID 10が選ばれることもあります。
ただし、それでも容量が大きく削られる点は無視できません。
ドライブ台数を多く必要とし実効容量が半分になるという負担は運用上かなり大きな要素になります。
そのため、RAID 10やRAID 01は、速度・冗長性・コントローラの対応状況を重視する場合には選択肢になります。
そして、ここでも重要なのは「RAIDはバックアップではない」という点です。
RAID 10やRAID 01であっても、誤削除・ランサムウェア・ファイルシステム破損・RAID構成情報の破損、装置全体の故障には対応できません。
ミラーリングとストライピングを組み合わせたとしても、それは稼働継続性や性能を高めるための構成です。
最終的にデータを守るには別媒体へのバックアップを必ず用意する必要があります。
スパニング(JBOD)

複数のドライブを組み合わせる方式の一つに、スパニングがあります。
スパニングとは、ストライプサイズを設けず複数のドライブをそのまま順番につなげて一つの大きな領域として扱う方式です。
ストライピングのように複数のドライブへ同時に分散して読み書きするわけではありません。
そのため基本的には読み書き性能の向上は期待できません。
またミラーリングやパリティのような冗長性もありません。
つまり、容量をまとめて大きく見せることはできますが構成しているドライブのうち1台でも損傷すると、全体のデータ構造に影響が出る可能性があります。
その結果、ボリューム全体が動作不能になったり一部または全体のデータにアクセスできなくなったりすることがあります。
スパニングは、比較的古いRAID装置や簡易的なストレージ装置で使われていた方式ですが最近ではあまり見かけなくなりました。
このように、複数のドライブを組み合わせて容量を確保する方法にはさまざまな種類があります。
ストライピングで速度を重視する方法。ミラーリングで稼働継続性を高める方法。
パリティを使って容量効率と耐障害性のバランスを取る方法。
そしてスパニングのように単純に容量をつなげる方法。
それぞれに利点と欠点があります。
重要なのはその構成が何を目的としているのかを正しく理解することです。
容量を増やすための仕組みなのか。速度を上げるための仕組みなのか。ドライブ故障時の稼働継続性を高めるための仕組みなのか。
この違いを理解しておくことでRAIDや複数ドライブ構成を過信せず、適切なバックアップや検査につなげることができます。
複数のドライブ容量を単純に連結する構成で速度や耐久性の向上は一切ありません。
使用可能容量が増えるだけで信頼性には乏しい構成です。
NAS黎明期には簡便さから一部採用例がありましたが現在では推奨されない方式です。

データスキャン作業に関しましては、「並列同時解析」による一括処理です。
RAIDで重要となるデータ整合性検査はRAID専用に開発いたしております。
並列処理に融合させた検査となりましてバッファを検査へ流用し2度目のバッファ処理を防ぎます。
別処理で乗せてしまうとバッファへの2度読みが発生し時間的に大きな不利となります。
ドライブ取出作業>>初期診断作業>>損傷分布検査作業
A, データスキャン作業(必要台数へ実施)>>データ整合性検査
B, クリーンルーム作業>>データスキャン作業(必要台数へ実施)>>データ整合性検査
ドライブ取出作業
データ復旧の実施に必要となる全ドライブをRAID装置から取り出す作業となります。
全てのドライブを調査いたしますので「全て」取り外します。

初期診断作業
- ドライブに負担がないよう診断を実施いたします。
- スキャンが通常(レベル1~2、クラスタ)レベルで可能か判断いたします。
- 2の過程で不可判定:別の手法(セクタ単位レベル)を試します。
- 3の過程で不可判定:クリーンルーム作業を検討します。

損傷分布検査作業
損傷度合いの全体分布を予測し作成します。
この結果からクリーンルーム作業の必要性を検討します。
分布図より読み取れる範囲が小さいと推測される場合はクリーンルーム作業により復活させる必要性ありとなりますし複数のドライブで一つのアレイ(データ)を成しておりますので最善の選択すなわちどのドライブを回復させるか判断を仰ぐ必要が必ず生じます。
複数のミラーリングで両方破損の場合は損傷分布検査作業にて状態の良い1台が選び出されます。
状態の良い方からデータを復旧する作業により、復旧率の点でお客さまのご期待にお応えいたします。
[損傷分布に関して]
電源を入れているだけでも広がって行く傾向がありまして各ドライブの損傷度合いを見抜くのに必須な作業となります。
実際には数値化ではなくグラフ化してしまいます。その方が着実に分かるためです。選定されたドライブに対し復旧方針を立てます。
それから最適な作業(クリーンルーム作業・データスキャン作業)を実施いたします。
[物理障害重度] クリーンルーム作業
- [少しでも最良な条件を作る]
HDDに付着するホコリを除去いたします。 - [表面検査]
トップカバーの開封に着手しプラッタ表面の状態を検査します。(スキャンに応用します) - [破損個所回収]
正常動作を阻害する直接的な要因を全て取り除きます。(例:吸着したヘッド等) - [剥離した磁性体除去]
内部の汚れている個所(削られた磁性体)を除去しそれらを回収します。 - [内部部品交換]
破損した部品を全て取り除き正常品から取り外したものと交換します。 - [最終チェック]
全部品を再確認いたします。確認のちトップカバーを閉じで作業完了です。 - [ファームウェア修復]
状況によってはファームウェア系統の修復を実施します。



単独ドライブの場合と同じ作業を実施いたします。
複数のドライブを単につなげただけですのでその故障に関しましては1台ずつ別々に修復いたします。
もちろん損傷分布検査作業で必要ないと判断されたドライブには処置いたしません。
データスキャン作業, データ再構築作業
データスキャン以降を一括処理できるRAIDツール(並列同時解析)を独自開発いたしました。
現在RAIDのデータ復旧を着実に処理できる「並列同時解析」を独自に開発いたしました。
ドライブ型番別に「スキャンマップ(パターン)」を持ち概算的な調整がなされます。

RAIDでは更に重要なデータ整合性検査
RAIDのデータ復旧にて主要となるのは「データ整合性検査」です。
データが化けていないかどうか独自の検査方法で確実に判断するものとなっております。
「データがバラバラで、ほとんど(一切)開かない状態で納品された」例などはこの検査が行われていないことを示します。
データリストにファイル名が存在してもこの検査がないとそのような場合も十分に考えられます。
この検査によりファイル名があってもほとんど開かないという状況を防ぐことができます。
コンピュータによるファイル自走検査で高クオリティおよびプライバシーを確保いたします。
以下「ファイル自動走査」にてファイル構成が正しいかどうか検査中です。

