コラム

SEのためのストレージ講座

第10回 ストレージ概論~データ保護の技術 その1 (RAID)~

更新

IT基盤のストレージの役割や課題から仮想化・統合化まで、CTCのエンジニアが解説します

著:クロスファンクショングループ プロダクトマーケティング室
インフラソリューション推進部 菅 博

データ保護は見過ごされがちな技術ですが、現代では最も注力されなければならない分野です。サーバやネットワーク機器が壊れたとしても、サーバやネットワークは単に演算処理やデータの出し入れをするための中間装置であり、別なものですぐに代替することで事が済みます。しかし、データが無くなった場合には、システムそのものが意味のないものとなり、元通りに戻すことはもはや不可能です。

サービスを24H/365D継続するためには、基盤装置を二重化してクラスタリングするだけでなく、データ消失が発生しない仕組みが必須です。また、万が一データが無くなったとしても、迅速にデータをリストア・リカバリするための仕組みが必要となってきます。ここでは、データ保護の仕組みである「RAID技術」、「バックアップ」、「災害対策」の三つの分野について解説します。

1. RAID 技術

以前「HDDの構造」で説明したように、HDD自体の耐久性は決して高いわけではありません。このためRAID(Redundant Arrays of Inexpensive Disks)の技術が開発され、今ではかなり安価なストレージでも当たり前のように実装されています。

RAIDは複数のディスクを束ねてひとつの論理的なディスクを作り出す技術ですが、次のようなメリットがあります。

  • 信頼性の向上
  • アクセス速度の向上
  • ディスクの大容量化

RAIDは複数のディスクを論理的にひとつに見せることによって、あるディスクが故障しても論理的なディスクとしてはデータを消失することなく可動する構造を持っています。また、一台のディスクでは速度と容量に限界がありますが、複数のディスクを束ねて同時に可動させることで、論理的に高速で大容量なディスクを作り出すことができます。

RAIDはどこで実装するかにより「ハードウェアRAID」と「ソフトウェアRAID」に分類されます。ハードウェアRAIDはストレージ筐体が物理ディスクを束ねてサーバOSにひとつのSCSIディスクとして提供するもので、ソフトウェアRAIDはサーバOSが認識している複数のSCSIディスクをサーバ自身が束ねてひとつのディスクとして扱います。RAIDの処理は負荷が高いために、ソフトウェアRAIDの場合にはサーバ本体に負荷がかかりアプリケーションへの影響が懸念されるので、ハードウェアRAIDを採用するケースが多いようです。

RAIDは実装方法によりいくつかのレベルに別れていますが、代表的なものの仕組みを説明しておきます。図はハードウェアRAIDを念頭においていますが、ソフトウェアRAIDの場合はサーバOS上のミドルウェアがRAID Ctrlの役割を果たすだけで動作原理は同じです。

2. RAID-0(ストライピング)

図1

複数のディスクに対して並列にI/Oを行うことで高速化を図っています。サーバから見た場合には、D1からD4までの4台のディスクは1つのSCSIディスクとして認識され、そのときの容量はストライプされる物理ディスクの数に比例します。サーバの書き込みはブロック分割されて各ディスクに並列に書き込まれます。読み出しの場合はこの逆で、各ディスクから平行してブロックを読み出して連結させてからサーバに返します。なお、RAID-0の場合にはどこかのディスクが障害を起こした時点でデータは全て失われるため、今ではほとんど使用されることがありません。

3. RAID-1(ミラーリング)

図2

サーバから見た場合に、D1とD2のディスクが1つのSCSIディスクとして認識され、そのときの容量は物理ディスク一台分になります。サーバの書き込みはブロック分割されて、全く同じブロックがD1とD2の双方に書き込まれます。読み出しの方法はストレージによって異なっており、常に一方のディスクのみから読み出す場合と、ラウンドロビンで呼び出す場合があります。RAID-1の場合には、同じデータが双方のディスクに書かれているため、どちらかのディスクが壊れた場合でも、アクセス可能なディスクだけでI/Oを継続することが可能です。RAID-1にした場合には耐障害性のメリットはありますが、性能はディスク単体の時の60%程度に落ち込みます。

4. RAID-10(ミラード・ストライプ)

図3

RAID-1とRAID-0を合わせたものです。下の図の場合に、D1からD'4までの8台のディスクで1つの論理的なSCSIディスクを構成します。ミラーされたものをストライプするため、左の図では8台の物理ディスクを使用していますが、容量は物理ディスク4台分となります。書き込みと読み出しはRAID-1,RAID-0のそれに準じるため、RAID-1の耐障害性とRAID-0の性能を兼ね備えた論理ディスクを構成します。特に耐障害性については、互いにミラーの関係にある双方のディスクが同時に壊れない限りデータの消失もI/Oの停止も発生しないため、現状のRAIDレベルの中では最も高速で耐障害性の高いものです。

5. RAID-4

図4

RAID-0にパリティ専用ディスクを追加することにより、耐障害性を持たせたものです。データはRAID-0と同様にブロック分割されてデータ用ディスクに並列に書き込まれますが、これに加えて書き込みデータに対応するパリティが計算されてパリティ専用ディスクに書き込まれます。このため、ディスク障害が発生してもパリティから障害ディスクのデータは再作成可能なため、データ消失もなくアクセスを継続することが可能です。ただし、最初の書き込みでパリティ演算とパリティの書き込みが発生するだけでなく、データの更新時には更新前のデータとパリティを読み出してから更新後のパリティを再作成して書き込む必要があります。この動作は「ライト・ペナルティ」と呼ばれており、パリティによる耐障害性を実装する場合には避けられない現象です。RAID-4ではパリティディスクが固定されているために、複数の書き込みを同時処理することが出来ないという欠点があります。読み込み時の動作はRAID-0と同様です。

6. RAID-5

図5

RAID-4がパリティ専用ディスクで実装されているためにI/O分散が出来ないという弱点がありましたが、パリティを全てのディスクに分散して配置することでパフォーマンスを向上させたのがRAID-5です。「ライト・ペナルティ」が発生するのはRAID-4と同じですが、更新対象となるパリティが異なるディスク上に分散されているので、書き込み処理を同時に行うことが可能となっています。読み込み時と障害時の動作はRAID-4と同様です。

7.RAID-6(ダブル・パリティ)

図6

RAID-4, RAID-5は、一台のディスク障害には耐えられますが、二台同時にディスク障害を起こした場合にはデータが消失します。より安全を重視して、異なる二つのパリティをディスクに分散配置することで、同時に二台のディスク障害にも耐えることのできるのがRAID-6です。

8. ホット・スペア

図7

RAIDで構成された仮想ディスクは、RAID-0を除けば耐障害性が考慮されていますが、一台(もしくは二台)のディスクが壊れたままの運用はパフォーマンスが悪いだけでなく、次のディスク障害でデータが消失する危険があります。このため、ほとんどのストレージは障害ディスクに替わってスペアのディスクがすぐに機能してRAIDを再構築する機能を持っています。この用途で使用されるディスクはホット・スペアと呼ばれ、ホット・スペアを組み込んで冗長性を持たせた仮想ディスクを再構築することをリビルドと呼びます。RAID-5の仮想ディスクに障害が発生して、リビルドが終了する前に他のディスクに障害が起きるとデータは消失してしまいますが、HDDの容量がどんどん増大するにつれてリビルドの時間も長くなるため、近年ではディスクの二重障害に対応できるRAID-6の必要性は高まっています。

9. RAIDのまとめ

図8

RAIDレベルで一般的に使用されるのはRAID-10、RAID-5、RAID-6の三種類です。それぞれがメリットとデメリットがあるので、ディスクの種別と合わせて使い分けることでコストと性能のバランスを図ることができます。例えば、トランザクション系の重要なオンラインデータにはFC/SASディスクを使ったRAID-10を適用することで、最高度の性能と信頼性を確保できます(その分、費用はかかります)。バックアップ用途で使われるディスクであれば、SATAでRAID-5を適用すると、安価で大容量のバックアップ領域を持つことができます(この場合、性能は二の次となります)。左の表は、RAIDレベルに応じた特長を相対的に表したもので、実行容量はディスクN台を使用した場合に実際のデータ領域として使用できる本数を表します。

コラム一覧のページに戻り、続きをお読み下さい

  • このページについてツイッターでツイート(新しいウィンドウで開く)
  • このページをフェイスブックでシェア(新しいウィンドウで開く)

このコラムに関するお問い合わせはこちら

※記載内容は掲載当時のものであり、変更されている場合がございます。