イレージャーコーディング
例えば、今までのバックアップ機器の場合にはディスク障害対策としてRAIDを組む事が多いんじゃ。サイズやクラスにもよるが、上位モデルはイレージャーコーディングを利用していることが多い。
RAIDじゃダメなんですか?
RAID
RAIDは、複数のドライブを組み合わせて、仮想的な1つのドライブとして運用し、信頼性や性能を
向上させる技術。バックアップ容量に対し多くのハードディスクが物理的に必要になる。
RAID5
(パリティレイド)
RAID6
(ダブル
パリティレイド)
パリティによって
1本までの障害は
データ復元可能。
パリティによって
2本までの障害は
データ復元可能。
RAID構成したディスクが故障した時、リビルド(自動で復元)できるように予備のディスクも必要になる。
正常時
RAID
ホットスペア
ディスク
ディスク故障時
ホットスペアディスクに
自動で復元=リビルド
故障したディスクは
新しいディスクと交換
※RAIDの詳細は、「ストレージを最初に学ぶ人が読むサイト!」で解説!
ダメではないが、バックアップのように超大容量のデータを扱う場合にはHDDも
大きくなり、プライマリーストレージほどパフォーマンスもいらないことから、
イレージャーコーディングの方がメリットの大きい場合が多い。
数年前までHDDは大きくても1TB程度だったが、最近はデータ量の増加に伴い、
HDDのサイズも16TBなど大型化している。
どうして?
HDDのサイズが大きいとRAIDはよくないのでしょうか?
例えばHDDの障害で16TBのディスクを交換するとRAIDの再構築完了に
丸3日かかることがある。それに対しイレージャーコーディングは数学的関数を
使用する技法で、一連のデータをあらかじめ冗長性を含む形式に変換する。
こうすることで、冗長部分のサブセットから元のデータを再構築することができる。
これにより、最近のスケールアウト型のアプライアンスではイレージャーコーディング
などを利用しているためにディスクの復旧が速いことも大きなメリットじゃ。
イレージャーコーディング
イレージャーコーディングは数学的関数を使用し、一連のデータをあらかじめ冗長性を含む形式に
変換する技術。データを複数の細かな塊に分割し、それぞれのパリティを別々に保存することで、
複数台のディスクやノードが故障しても復元が可能です。
書き込み時
読み出し時
データを細かい単位に分割し、パリティを生成
異なるドライブや異なるストレージノードに分散して書き込み
一部のデータとパリティから元データを復元可能
=この例の場合、3本同時にディスクが故障しても
 自動修復が可能
という事は、イレージャーコーディングはいい事ばかりですね。
ん〜そうとも限らんぞ。
そもそも少数のディスクでは組めないデメリットがある。
つまり、どうしてもシステムが大規模になってしまう。
だからアプライアンスでも小規模事業者向けの
エントリーモデルなどはRAIDをあえて利用している
モデルも多数残っている。
そうなんですね。
それ以外にも弱点はあるぞ。
イレージャーコーディングはデータごとに符号化・自動回復をオブジェクトごとに
行い、かつデータを細かく分散処理するために、高速処理が苦手じゃ。
よってプライマリストレージなどでは高速処理が必要なために、RAIDを利用して
いる製品が多いのもそのためじゃ。
またRAID 0(ストライピング)のようにHDDを複数台つないでスループット性能
を向上することもできないデメリットもある。
RAID 0(ストライピング)
イレージャーコーディング
データを複数のドライブに分散させて
書き込むことで、高速なI/Oを実現
データをあらかじめ冗長性を含む形式に変換するため、
分散書き込みができない
小さなオブジェクト(数十KB)を扱うのも苦手じゃ。小さなデータを符号化するために、細かく沢山の符号化をすると、符号化したデータが多くのストレージ容量を消費してしまい非効率となる。イレージャーコーディングでは
数MB以上のデータ、すなわち写真、動画となるとその威力は存分に発揮される。
小さいデータ量に対するストレージ効率が悪い
大きなデータ量に対するストレージ効率が良い
ただ、データ転送速度が遅いといっても2〜8GB/秒程度のスピードは出るので通常利用では十分なパフォーマンスとなっている。
また前述したように各社がインスタリカバリなどの機能に備えて、高速化するために、よく利用するデータやメタ情報のキャッシュ用にSSDを搭載しているものもあるぞ。
ん~、なかなか奥が深いですね。

pagetop