ストレージ進化論

第2回ストレージの高信頼性技術

ストレージの基本的な役割は、データを記録/保存することにあります。保存してあったはずのデータが読み出せなくなるといったデータ喪失は、ストレージにとっては最も根本的かつ深刻なトラブルと言えます。とはいえ、現在の主流であるHDDは物理的に可動する機械部品でもあり、消耗や破損は避けられません。そこで、ストレージにはさまざまな高信頼性技術が盛り込まれ、データの保全に取り組んでいます。

RAIDの基礎知識

RAIDとは、Redundant Arrays of Inexpensive Disks⁠の頭文字を取ったものです。直訳してみると、⁠安価なディスクを使って冗長性を持たせたディスク・アレイ」という意味になります。

HDDの障害発生率が、コンピュータを構成する他のパーツに比べても高いことは昔から変わっていません。RAIDの基本的なアイデアは、HDD単体の信頼性を高めるよりも、壊れることを前提に、HDDが壊れてもデータ自体は正常に復元できるようにしておく、というものです。HDD単体の障害発生率を低く抑えることは考えないので、その分HDDは安価な製品を採用でき、システム全体としては低コストで高信頼を実現できることになります。

RAIDにはさまざまな方式(RAIDレベル)がありますが、一般的と言えるのはRAID-0、RAID-1、RAID-5の3種類でしょう。このうち、RAID-0は単純なディスク・アレイであり、冗長性を備えていないので厳密にはRAIDとはいえないのですが、便宜上RAIDの1方式として扱うのが普通です。別の表現では、RAID-0をストライピングRAID-1をミラーリングRAID-5を分散パリティなどと表現しますが、これはそれぞれのRAIDレベルで使用されている技術を端的に表わしたものです。

RAID-0は、複数のHDDをまとめて1つの仮想的な巨大ストレージを作り出す技術です。たとえば、500GバイトのHDDを4台まとめて2Tバイトのディスク領域として使う、といった用途に使われます。HDDの最大容量を超えるような巨大ファイルを記録するためには不可欠の技術と言えます。ただし、前述の通りRAID-0には冗長性はないので、アレイを構成するHDDのうち、1台でも故障すると全体が使用不可能になり、データも全て失われる可能性があります。

なお、RAIDのメリットとして、複数台のHDDを束ねることによる容量拡大に加えて、アクセスパフォーマンスの向上も挙げられます。HDDへのアクセスは、ディスク面(プラッタ)の回転や目的位置までの磁気ヘッドの移動といった物理的な動作を伴うため、コンピュータから見ると極めて低速なデバイスです。しかし、RAIDで複数のHDDを束ねて使い、複数台のHDDに同時にアクセスすれば、単位時間当たりのデータ流量をHDDの台数分だけ増加させることができます。

RAID-0は単にデータを分散して読み書きするだけで、余分な処理は行なわないので、高速化という点では他のRAIDレベルに比べても有利であり、とくにアクセス速度が要求される用途では、信頼性確保は別の手段に任せてRAID-0を使うことがあります。

RAID-1はミラーリングで、同一のデータを2つのHDDに記録するものです。データの完全なコピーが作られるため、信頼性という面では最も有利になりますが、有効なデータ容量がストレージの総容量の1/2になってしまい、容量効率は低くなります。単一のHDDをミラーリングするだけではなく、RAID-0で構成したディスクアレイ全体を2重化する手法もあり、RAID-0+1とか、RAID-10などと呼ばれます。RAID-0の高速性とRAID-1の信頼性を両立する手法と言えるでしょう。

RAID-5は、複数のHDDにデータを分散させ、さらにパリティを加える手法です。どれか1台のHDDが故障しても、残ったデータディスクとパリティの組み合わせから故障したHDDのデータを復元できます。パリティ領域にHDDが1台使われる、という考え方になるので、たとえばHDD 3台で構成する場合は、データ領域が2/3、パリティが1/3となります。RAID-1に比べるとデータ領域の容量効率が高く、広く使われている方式です。

ただし、故障してもよいのはHDD 1台だけで、2台目が故障してしまうとデータの復旧は不可能になります。これに対応する新しいRAIDレベルとして普及し始めているのがRAID-6です。RAID-6はパリティ領域をHDD 2台分確保するため、同時に2台までのHDDの故障に耐えられます。3台目が故障すると対応できなくなりますが、RAID-5に比べれば信頼性は大幅に高まります。

RAIDレベルの違い
RAIDレベルの違い
RAID-0は、構成する全HDDにまたがるようにデータが分散されます。データ容量は、全HDDの要領の総計となります。読み書きが高速化されますが、データの冗長性はないため耐障害性は低いと言えます。
RAID-1は、2つのHDDにまったく同じデータを記録します。データ容量は、HDDの総容量の半分になりますが、片方のHDDが故障してもデータは保護されます。HDDを単独で利用するのではなく、RAID-0のボリューム2つを組み合わせる場合はRAID-10あるいはRAID-0+1と呼びます。
RAID-5は、RAID-0と同様ストライピングを行いますが、HDD 1本ぶんはパリティ領域として使用します。パリティは、特定のHDDだけに記録されるのではなく、全HDDに分散され、アクセスの平均化が行われます。パリティ領域をHDD 2本ぶんに拡大したRAID-6もありますが、この場合は最低でも4本のHDDが必要になります。

RAIDとバックアップ

エンタープライズ向けストレージでは、現在ではRAIDはごく当たり前の技術であり、PCのように単体のHDDをそのまま使うほうが、むしろ例外的な状況と言えます。サーバに内蔵するDAS型ストレージであればともかく、ネットワーク・ストレージであれば基本的にRAID構成になっていると考えて間違いはありません。

ここで誤解しがちなのは、RAIDで信頼性が確保されているからバックアップは不要と考えてしまうことです。RAID-5のところでも述べたとおり、システムが想定している以上の台数のHDDが故障した場合にはデータが全て失われるリスクがあります。また、HDDが故障しなくても、人為的なミスなどでファイルを削除してしまうような状況を考えると、適切なバックアップは不可欠と言えます。

とはいえ、現在ではデータ量の増加が急ピッチで進行しており、バックアップに要する時間も無視できなくなっています。昔のように業務は9:00から17:00までで、夜間にその日の分のバックアップを取る、というペースで対応できればまだいいですが、現在では24時間連続稼働のサーバも珍しくなく、バックアップのために使える時間も短くなっています。

そのため、ハイエンドのストレージではストレージ単体でデータのバックアップが可能なレプリケーションスナップショットと呼ばれる機能が実装されています。指示された時点でのデータのコピーをストレージ内部で作るため、ストレージに十分な空き容量が必要ですが、ストレージ内部で処理が完結するため高速で、サーバ側に余分な負荷が掛からない点がメリットとなります。こうした機能を備えたストレージは相応に高価ですが、データ量が多い場合には導入を検討する価値があるでしょう。

おすすめ記事

記事・ニュース一覧