16.3. RAID レベルとリニアサポート
RAID およびリニアストレージレベルは、データ保護、パフォーマンス、容量に関して、さまざまな選択肢を提供します。信頼性の高い Linux ストレージを実現するために、RAID レベル 0、1、4、5、6、10、およびリニアアレイを比較して、最適な構成を決定してください。
レベル 0、1、4、5、6、10、およびリニアを含む、RAID でサポートされている構成を以下に示します。
- レベル 0
ストライピングとも呼ばれる RAID レベル 0 は、パフォーマンス指向のストライピングデータマッピング技術です。これは、アレイに書き込まれるデータがストライプに分割され、メンバーディスク全体に分散して書き込まれることを意味します。これにより、低い固有コストで高い I/O 性能を実現できますが、冗長性は提供されません。
RAID レベル 0 実装は、アレイ内の最小デバイスのサイズまで、メンバーデバイス全体にだけデータをストライピングします。つまり、サイズがわずかに異なる複数のデバイスがある場合でも、それぞれのデバイスは同じサイズとして扱われます。各デバイスは、最小サイズのドライブと同等のサイズであるとみなされます。したがって、レベル 0 アレイの共通ストレージ容量は、すべてのディスクの合計容量です。メンバーディスクのサイズが異なる場合、RAID0 は使用可能なゾーンを使用して、それらのディスクのすべての領域を使用します。
- レベル 1
RAID レベル 1 (ミラーリング) は、アレイの各メンバーディスクに同一のデータを書き込むことで冗長性を提供します。各ディスクにはミラーリングされたコピーが残ります。ミラーリングは、その簡便さとデータ可用性の高さから、依然として人気です。レベル 1 は 2 台以上のディスクで動作し、比較的高いコストと引き換えに、非常に優れたデータの信頼性と、読み取り集約型ワークロードにおけるパフォーマンスの向上を実現します。
RAID レベル 1 は、アレイ内のすべてのディスクに同じ情報を書き込むため、コストが高くなります。データの信頼性は確保されますが、レベル 5 などのパリティーベースの RAID レベルに比べると領域の効率性がはるかに低くなります。しかし、この領域効率の悪さは、パフォーマンス上の利点をもたらします。パリティーベースの RAID レベルは、パリティーを生成するために相当量の CPU パワーを消費します。RAID レベル 1 は、最小限の CPU 負荷で複数のメンバーに同一のデータを書き込みます。そのため、ソフトウェア RAID を使用するシステムにおいて、RAID レベル 1 のパフォーマンスはパリティーベースの RAID レベルよりも高くなる可能性があります。これは特に、CPU リソースが RAID 以外の操作によって大量に使用される場合に当てはまります。
レベル 1 アレイのストレージ容量は、ハードウェア RAID における最小のミラーリングされたハードディスクの容量に相当します。または、ソフトウェア RAID における最小のミラーリングされたパーティションと等しくなります。レベル 1 の冗長性は、すべての RAID タイプの中で最高レベルです。アレイは、ディスクが 1 つだけでも動作を継続できます。
- レベル 4
レベル 4 は、データを保護するために、1 つのディスクドライブに集約されたパリティーを使用します。パリティー情報は、アレイ内の残りのメンバーディスクのコンテンツに基づいて計算されます。この情報は、アレイ内のいずれかのディスクに障害が発生した場合にデータの再構築に使用できます。再構築されたデータは、障害が発生したディスクの交換前はそのディスクへの I/O 要求に対応するために使用し、交換後はそのディスクにデータを再書き込みするために使用できます。
専用パリティーディスクは、RAID アレイへのすべての書き込みトランザクションにおいて固有のボトルネックとなります。したがって、レベル 4 は、ライトバックキャッシングなどの付随テクノロジーなしで使用されることはほとんどありません。レベル 4 が使用されるのは、システム管理者がこのボトルネックを承知のうえで意図的にソフトウェア RAID デバイスを設計する場合です。これは、データが一度格納されると書き込みトランザクションがほとんど、あるいはまったく発生しないアレイに当てはまります。RAID レベル 4 にはほとんど使用されないため、Anaconda ではこのオプションとしては使用できません。ただし、実際には必要な場合は、ユーザーが手動で作成できます。
ハードウェア RAID レベル 4 の容量は、最小のメンバーパーティション容量にパーティションの総数から 1 を引いた数を掛けた値と等しくなります。RAID レベル 4 アレイのパフォーマンスは常に非対称です。つまり、読み込みは書き込みを上回ります。これは、書き込み操作がパリティー生成時に余分な CPU リソースとメインメモリー帯域幅を消費するためです。また、書き込み操作は、実際のデータをディスクに書き込む際に、データとパリティーの両方を書き込むため、余分なバス帯域幅を消費します。読み取り操作は、アレイが縮退状態にない限り、データだけを読み取り、パリティーは読み取りません。その結果、通常の動作条件下では、同じデータ転送量であっても、ドライブやコンピューターバスへのトラフィックの生成量は少なくなります。
- レベル 5
これは RAID の最も一般的なタイプです。RAID レベル 5 は、アレイのすべてのメンバーディスクドライブにパリティーを分散することにより、レベル 4 に固有の書き込みボトルネックを排除します。パリティー計算プロセス自体のみがパフォーマンスのボトルネックです。最近の CPU はパリティーを非常に高速に計算できます。しかし、RAID 5 アレイに多数のディスクが含まれる場合、データ転送速度が速いとパリティー計算がボトルネックになる可能性があります。
レベル 5 のパフォーマンスは非対称であり、読み取りは書き込みよりも大幅に優れています。RAID レベル 5 のストレージ容量は、レベル 4 と同じです。
- レベル 6
この RAID レベルがよく使用されるのは、パフォーマンスよりもデータの冗長性と保全が最優先されるが、レベル 1 の領域効率の悪さは許容できないという場合です。レベル 6 は、アレイ内の任意の 2 台のドライブが失われても復旧できるように、複雑なパリティスキームを採用しています。この複雑なパリティースキームにより、ソフトウェア RAID デバイスの CPU 負荷が大幅に増加し、書き込みトランザクション中の負荷も増加します。したがって、レベル 6 はレベル 4 や 5 よりもパフォーマンスにおいて、非常に非対称です。
RAID レベル 6 アレイの総容量は、RAID レベル 5 および 4 と同様の方法で計算されます。ただし、パリティーストレージ領域を増やすためには、デバイス数から 1 ではなく 2 を差し引く必要があります。
- レベル 10
この RAID レベルでは、レベル 0 のパフォーマンスとレベル 1 の冗長性を組み合わせます。また、2 台以上のデバイスを使用するレベル 1 アレイの無駄なスペースをある程度削減することができます。レベル 10 では、3 つのドライブで構成されるアレイを作成し、各データのコピーを 2 つだけ保存できます。この場合、アレイの合計サイズは最小デバイスサイズの 1.5 倍になり、3 デバイス構成のレベル 1 アレイのように同じにはなりません。これにより、RAID レベル 6 と同様のパリティー計算に CPU プロセスを使用することが回避されますが、領域効率は低下します。
RAID レベル 10 の作成は、インストール時には対応していません。インストール後に手動で作成できます。
- リニア RAID
リニア RAID は、より大きな仮想ドライブを作成するドライブのグループ化です。
リニア RAID では、チャンクは 1 つのメンバードライブから順次割り当てられ、最初のドライブがいっぱいになってから次のドライブに移動します。これにより、メンバードライブ間の I/O 操作が分割される可能性はないため、パフォーマンスの向上は見られません。リニア RAID は冗長性がなく、信頼性は低下します。メンバードライブが 1 台でも故障すると、アレイ全体が使用できなくなり、データが失われる可能性があります。容量はすべてのメンバーディスクの合計になります。