広く使用されているさまざまなRAIDレベルとは何ですか?それらをいつ考慮すべきですか?


181

これは、RAIDレベルに関する標準的な質問です。

なに:

  • 通常使用されるRAIDレベル(RAID-Zファミリを含む)
  • 展開は一般的に見られますか?
  • それぞれの利点と落とし穴?

10
@ erimar77 StackExchangeネットワークのポイントは、SEネットワーク内の指定されたサブジェクトに関するすべての知識を収集することです。それは、ウィキペディア上のデータが使命にとって役に立たないことを意味します。私はRAIDにかなり精通しているので、答えは必要ありませんが、それは標準的な質問であることを意図しています。コノニカルな質問とは、すべての重複を指すことができる共通の問題に対する決定的な答えを保持する質問です。「Googleで検索する」または「Wikipediaにある」という回答は受け入れられません。ただし、ウィキペディアの記事は非常に優れています。
MDマーラ

2
スーパーユーザーにコピーし、そこに複製としてVTCを作成できます。回答をスーパーユーザーにコピーしてください(または今のところコピーさせてください)。
ヘネス

回答:


197

RAID:なぜ、いつ

RAIDはRedundant Array of Independent Disksの略です(一部は「通常の」ディスクであることを示すために「安価」と教えられています。歴史的に、内部的には非常に高価な冗長ディスクがありました。

最も一般的なレベルでは、RAIDは同じ読み取りと書き込みで動作するディスクのグループです。SCSI IOはボリューム(「LUN」)で実行され、これらはパフォーマンスの向上や冗長性の向上をもたらす方法で基礎となるディスクに分散されます。パフォーマンスの向上はストライピングの機能です。データは複数のディスクに分散され、読み取りと書き込みがすべてのディスクのIOキューを同時に使用できるようになります。冗長性はミラーリングの機能です。ディスク全体をコピーとして保持することも、個々のストライプを複数回書き込むこともできます。また、一部のタイプのRAIDでは、ビットごとにデータビットをコピーする代わりに、パリティ情報を含む特別なストライプを作成することで冗長性が得られます。

これらの利点のさまざまなレベルを提供するいくつかの構成があり、それらについてここで説明します。それぞれの構成には、パフォーマンスまたは冗長性に対するバイアスがあります。

どのRAIDレベルが機能するかを評価する際の重要な側面は、その利点とハードウェア要件(たとえば、ドライブの数)によって異なります。

これらのタイプのRAID(0,1,5)のほとんどのもう1つの重要な側面は、保存されている実際のデータから抽象化されているため、データの整合性が保証されないことです。したがって、RAIDは破損したファイルから保護しません。ファイルが何らかの方法で破損した場合、破損はミラーリングまたは分割され、ディスクにコミットされます。ただし、RAID-Zはデータのファイルレベルの整合性を提供すると主張しています


直接接続RAID:ソフトウェアおよびハードウェア

RAIDを直接接続ストレージに実装できる2つの層があります:ハードウェアとソフトウェア。真のハードウェアRAIDソリューションには、RAIDの計算と処理専用のプロセッサを備えた専用のハードウェアコントローラがあります。また、通常、バッテリバックアップ式キャッシュモジュールを備えているため、停電後でもデータをディスクに書き込むことができます。これは、システムが正常にシャットダウンされない場合の不整合を解消するのに役立ちます。一般的に言って、優れたハードウェアコントローラーは、対応するソフトウェアよりもパフォーマンスが優れていますが、かなりのコストがかかり、複雑さが増します。

ソフトウェアRAIDは、通常、専用のRAIDプロセッサまたは別のキャッシュを使用しないため、コントローラーを必要としません。通常、これらの操作はCPUによって直接処理されます。最新のシステムでは、これらの計算は最小限のリソースを消費しますが、わずかな遅延が発生します。RAIDは、OSによって直接処理されるか、FakeRAIDの場合はフェイクコントローラーによって処理されます。

一般的に、誰かがソフトウェアRAIDを選択する場合、FakeRAIDを避け、Windowsのダイナミックディスク、Linuxのmdadm / LVM、SolarisのZFS、FreeBSD、その他の関連ディストリビューションなどのシステムにOSネイティブパッケージを使用する必要があります。FakeRAIDはハードウェアとソフトウェアの組み合わせを使用するため、ハードウェアRAIDの初期外観が得られますが、ソフトウェアRAIDの実際のパフォーマンスは変わりません。さらに、アレイを別のアダプターに移動することは通常非常に困難です(元のアダプターが失敗した場合)。


集中ストレージ

RAIDが一般的である他の場所は、通常SAN(Storage Area Network)またはNAS(Network Attached Storage)と呼ばれる集中ストレージデバイスです。これらのデバイスは独自のストレージを管理し、接続されたサーバーがさまざまな方法でストレージにアクセスできるようにします。複数のワークロードが同じ少数のディスクに含まれているため、一般に高レベルの冗長性が必要です。

NASとSANの主な違いは、ブロックレベルとファイルシステムレベルのエクスポートです。SANは、パーティションや論理ボリューム(RAIDアレイの上に構築されたものを含む)などの「ブロックデバイス」全体をエクスポートします。SANの例には、ファイバーチャネルおよびiSCSIが含まれます。NASは、ファイルやフォルダーなどの「ファイルシステム」をエクスポートします。NASの例には、CIFS / SMB(Windowsファイル共有)およびNFSが含まれます。


RAID 0

最適な場合:すべてのコストで高速化!

悪い場合:データに関心がある

RAID0(別名ストライピング)は、「ドライブに障害が発生したときに残されるデータの量」と呼ばれることもあります。これは実際には、「R」が「冗長」の略である「RAID」の粒度に対して実行されます。

RAID0はデータのブロックを取得し、ディスクの数だけ分割して(2ディスク→2ピース、3ディスク→3ピース)、各データを個別のディスクに書き込みます。

これは、1つのディスク障害がアレイ全体を破壊することを意味します(パート1とパート2があり、パート3はないため)が、非常に高速なディスクアクセスを提供します。

実稼働環境ではあまり使用されませんが、影響なしで失われる可能性がある厳密に一時的なデータがある場合に使用できます。キャッシングデバイス(L2Arcデバイスなど)に一般的に使用されます。

使用可能なディスク容量の合計は、アレイ内のすべてのディスクを合計した合計です(たとえば、3x 1TBディスク= 3TBのスペース)。

RAID 1


RAID 1

適切な場合:ディスクの数は限られているが、冗長性が必要

悪い場合:大量のストレージスペースが必要

RAID 1(別名ミラーリング)はデータを取得し、2つ以上のディスクに同じように複製します(通常は2つのディスクのみ)。3台以上のディスクを使用する場合、同じ情報が各ディスクに保存されます(すべて同一です)。ディスクが3台未満の場合にデータの冗長性を確保する唯一の方法です。

RAID 1は、読み取りパフォーマンスを向上させることがあります。RAID 1の一部の実装では、読み取り速度を2倍にするために両方のディスクから読み取ります。一部のディスクはディスクの1つからのみ読み取りを行うため、追加の速度上の利点はありません。他のユーザーは両方のディスクから同じデータを読み取り、読み取りごとにアレイの整合性を確保しますが、これにより単一のディスクと同じ読み取り速度になります。

通常、2つのディスク用のスペースしかない1RUサーバーなど、ディスクの拡張がほとんどない小型サーバーや、冗長性が必要なワークステーションで使用されます。「失われた」スペースのオーバーヘッドが大きいため、同じ容量の使用可能なストレージを得るために2倍のお金を費やす必要があるため、小容量の高速(および高コスト)ドライブでは非常にコストがかかります。

使用可能なディスク領域の合計は、アレイ内の最小ディスクのサイズです(たとえば、2x 1TBディスク= 1TBの領域)。

RAID 1


RAID 1E

1Eの RAIDレベルは、常に、(少なくとも)は、2枚のディスクに書き込まれるデータに1をRAIDと同様です。ただし、RAID1とは異なり、データブロックを複数のディスクにインターリーブするだけで、奇数のディスクを使用できます。

パフォーマンス特性はRAID1に似ています。フォールトトレランスはRAID 10に似ています。このスキームは、3つ以上の奇数のディスクに拡張できます(まれにRAID 10Eと呼ばれることもあります)。

RAID 1E


RAID 10

適切な場合:速度と冗長性が必要な場合

悪い場合:ディスクスペースの半分を失う余裕がない

RAID 10は、RAID 1とRAID 0の組み合わせです。1と0の順序は非常に重要です。8つのディスクがある場合、4つのRAID 1アレイを作成し、4つのRAID 1アレイの上にRAID 0アレイを適用します。少なくとも4つのディスクが必要であり、追加のディスクをペアで追加する必要があります。

これは、各ペアから1つのディスクが故障する可能性があることを意味します。したがって、ディスクA1、A2、B1、B2、C1、C2、D1、D2のセットA、B、C、Dがある場合、各セット(A、B、C、またはD)から1つのディスクを失う可能性があります機能する配列。

ただし、同じセットから2つのディスクを失うと、アレイは完全に失われます。あなたは失うことができるまで、ディスクの50%(ただし保証されません)。

RAID 10では、高速性と高可用性が保証されています。

RAID 10は非常に一般的なRAIDレベルです。特に、大容量ドライブでは、RAIDアレイが再構築される前に、単一のディスク障害により2番目のディスク障害が発生する可能性が高くなります。リカバリ中、データを再構築するために1つのドライブから読み取るだけで済むため、RAID 5のパフォーマンス低下よりもパフォーマンスの低下ははるかに小さくなります。

使用可能なディスク容量は、合計容量の50%です。(たとえば、8x 1TBドライブ= 4TBの使用可能スペース)。異なるサイズを使用する場合、各ディスクから最小サイズのみが使用されます。

呼ばれるLinuxカーネルのソフトウェアmd RAIDドライバーは、奇数のドライブ、つまり3または5ディスクRAID 10を備えたRAID 10構成を可能にすることに注意してください。

RAID 10


RAID 01

良い場合:決して

悪い場合:常に

これはRAID 10の逆です。2つのRAID 0アレイを作成してから、RAID 1を上に配置します。つまり、各セット(A1、A2、A3、A4またはB1、B2、B3、B4)から1つのディスクを失う可能性があります。商用アプリケーションで見ることは非常にまれですが、ソフトウェアRAIDで行うことは可能です。

明確にするために:

  • 8つのディスクと1つのダイ(これをA1と呼びます)を備えたRAID10アレイがある場合、6つの冗長ディスクと1つの冗長性なしがあります。別のディスクが故障した場合、アレイがまだ動作している可能性は85%です。
  • 8つのディスクと1つのダイ(これをA1と呼びます)を備えたRAID01アレイがある場合、3つの冗長ディスクと4つの冗長性のないディスクがあります。別のディスクが故障した場合、アレイがまだ動作している可能性は43%です。

RAID 10を超える速度は提供されませんが、冗長性は大幅に低下するため、すべてのコストを回避する必要があります。


RAID 5

適切な場合:冗長性とディスク領域のバランスが必要な場合、またはほとんどランダムな読み取りワークロードがある場合

悪い場合:ランダム書き込みワークロードが大きいか、ドライブが大きい

RAID 5は、何十年もの間最も一般的に使用されているRAIDレベルです。アレイ内のすべてのドライブのシステムパフォーマンスを提供します(わずかなオーバーヘッドが発生する小さなランダム書き込みを除きます)。単純なXOR演算を使用してパリティを計算します。単一のドライブに障害が発生すると、既知のデータのXOR操作を使用して、残りのドライブから情報を再構築できます。

残念ながら、ドライブに障害が発生した場合、再構築プロセスは非常にIOを集中的に使用します。RAIDのドライブが大きいほど、再構築にかかる時間が長くなり、2番目のドライブに障害が発生する可能性が高くなります。大型の低速ドライブは両方とも、再構築するデータが非常に多く、処理するパフォーマンスが非常に低いため、通常、7200 RPM以下のRAID 5を使用することはお勧めしません。

おそらく、コンシューマーアプリケーションで使用する場合、RAID 5アレイの最も重要な問題は、合計容量が12TBを超えると故障することがほぼ保証されていることです。これは、SATAコンシューマードライブの回復不能な読み取りエラー(URE)レートが10 14ビットごとに1つ、つまり〜12.5TBであるためです。

7つの2 TBドライブを備えたRAID 5アレイを例にとると、ドライブに障害が発生すると、6つのドライブが残ります。アレイを再構築するには、コントローラーはそれぞれ2 TBの6つのドライブを読み取る必要があります。上の図を見ると、再構築が完了する前にもう1つのUREが発生することがほぼ確実です。それが起こると、アレイとその上のすべてのデータが失われます。

ただし、ほとんどのハードディスクメーカーが新しいドライブのUREレーティングを10 15ビットに1つに引き上げたことにより、コンシューマドライブでのRAID 5の問題によるURE /データ損失/アレイ障害はある程度緩和されました。いつものように、購入する前に仕様書を確認してください!

RAID 5を信頼性の高い(バッテリバックアップ式)書き込みキャッシュの背後に配置することも不可欠です。これにより、小さな書き込みのオーバーヘッドと、書き込みの途中で障害が発生した場合の不安定な動作を回避できます。

RAID 5は、1台のディスク(たとえば、12x 146GBディスク= 1606GBの使用可能スペース)の損失のみを必要とするため、冗長ストレージをアレイに追加する最もコスト効率の高いソリューションです。最低3つのディスクが必要です。

RAID 5


RAID 6

適している場合:RAID 5を使用したいが、ディスクが大きすぎるか遅い

悪い場合:ランダム書き込みワークロードが高い

RAID 6はRAID 5に似ていますが、1つだけではなく2つのディスクに相当するパリティを使用します(1つ目はXOR、2つ目はLSFR)。したがって、データ損失なしでアレイから2つのディスクを失うことができます。書き込みペナルティはRAID 5よりも高く、スペースのディスクが1つ少なくなります。

最終的にRAID 6アレイはRAID 5と同様の問題に遭遇することを考慮する価値があります。ドライブが大きいと、再構築時間が長くなり、潜在的なエラーが発生します。

RAID 6


RAID 50

適している場合:単一のアレイに配置する必要があるディスクが多数あり、容量のためにRAID 10はオプションではない

悪い場合:ディスクが非常に多く、再構築が完了する前に多くの同時障害が発生する可能性がある場合、またはディスクが多くない場合

RAID 50は、RAID 10と同様にネストされたレベルです。2つ以上のRAID 5アレイを組み合わせ、RAID 0でデータをストライプします。これにより、異なる RAID 5 から複数のディスクが失われる限り、パフォーマンスと複数のディスク冗長性の両方が提供されます配列。

RAID 50では、ディスク容量はnxです。xは、ストライプされるRAID 5の数です。たとえば、可能な限り最小の単純な6ディスクRAID 50で、2つのRAID 5に6x1TBのディスクがあり、それらがストライプ化されてRAID 50になった場合、4TBの使用可能なストレージがあります。


RAID 60

適している場合:RAID 50と同様のユースケースがあるが、冗長性がさらに必要

悪い場合:アレイ内に十分な数のディスクがない

RAID 6はRAID 60に対してRAID 5はRAID 50と同様です。基本的に、データはRAID 0でストライプされる複数のRAID 6があります。このセットアップでは、セット内の個々のRAID 6の最大2つのメンバーが可能です。データを失うことなく失敗する。RAID 60アレイの再構築時間はかなり長くなる可能性があるため、通常、アレイ内の各RAID 6メンバーに1つのホットスペアを用意することをお勧めします。

RAID 60では、ディスク容量はn-2xです。xは、ストライプ化されるRAID 6の数です。たとえば、シンプルな8ディスクRAID 60、可能な限り小さい場合、2つのRAID 6に8x1TBのディスクがあり、それらを横切ってRAID 60にすると、4TBの使用可能なストレージができます。ご覧のとおり、これにより、8メンバーアレイでRAID 10が提供するのと同じ量の使用可能なストレージが提供されます。RAID 60はもう少し冗長ですが、再構築時間はかなり長くなります。一般に、多数のディスクがある場合にのみRAID 60を検討します。


RAID-Z

適切な場合:サポートしているシステムでZFSを使用している

悪い場合:パフォーマンスにハードウェアRAIDアクセラレーションが必要な場合

RAID-Zは、ZFSがストレージとファイルシステムの相互作用の方法を根本的に変えるため、説明が少し複雑です。ZFSには、ボリューム管理(RAIDはボリュームマネージャーの機能です)とファイルシステムの従来の役割が含まれます。このため、ZFSはボリュームのストリップレベルではなく、ファイルのストレージブロックレベルでRAIDを実行できます。これはまさにRAID-Zが行うことであり、ストライプの各セットのパリティブロックを含む複数の物理ドライブにファイルのストレージブロックを書き込みます。

例は、これをより明確にするかもしれません。ZFS RAID-Zプールに3つのディスクがあるとします。ブロックサイズは4KBです。次に、正確に16KBのファイルをシステムに書き込みます。ZFSは、これを4つの4KBブロックに分割します(通常のオペレーティングシステムと同様)。その後、2ブロックのパリティを計算します。これらの6つのブロックは、RAID-5がデータとパリティを分散する方法と同様にドライブに配置されます。これは、パリティを計算するための既存のデータストライプの読み取りがなかったという点で、RAID5よりも改善されています。

別の例は前のものに基づいています。ファイルが4 KBだけだったとします。ZFSはまだ1つのパリティブロックを構築する必要がありますが、書き込み負荷は2ブロックに削減されました。3番目のドライブは、他の同時要求を自由に処理できます。書き込み中のファイルがプールのブロックサイズの倍数に1未満のドライブ数を掛けたものでない場合(つまり、[ファイルサイズ] <> [ブロックサイズ] * [ドライブ-1])でも、同様の効果が見られます。

ZFSは、ボリューム管理とファイルシステムの両方を処理するため、パーティションやストライプブロックサイズの調整について心配する必要もありません。ZFSは、これらすべてを推奨構成で自動的に処理します。

ZFSの性質は、従来のRAID-5 / 6警告のいくつかを打ち消します。ZFSでのすべての書き込みは、コピーオンライト方式で行われます。書き込み操作で変更されたすべてのブロックは、既存のブロックを上書きするのではなく、ディスク上の新しい場所に書き込まれます。何らかの理由で書き込みが失敗した場合、またはシステムが書き込み中に失敗した場合、書き込みトランザクションはシステム回復後(ZFSインテントログの助けを借りて)完全に発生するか、まったく発生せず、潜在的なデータ破損を回避します。RAID-5 / 6の別の問題は、再構築中の潜在的なデータ損失またはサイレントデータ破損です。通常のzpool scrub操作は、データの損失を引き起こす前にデータの破損を検出したり、問題を引き起こしたりするのに役立ちます。また、すべてのデータブロックのチェックサムにより、再構築中の破損がすべて検出されます。

RAID-Zの主な欠点は、ソフトウェアRAIDであるということです(ハードウェアHBAにオフロードさせるのではなく、CPUが書き込み負荷を計算するのと同じ軽度の待ち時間が発生します)。これは、ZFSハードウェアアクセラレーションをサポートするHBAによって将来解決される可能性があります。

その他のRAIDおよび非標準機能

あらゆる種類の標準機能を実施する中央機関がないため、さまざまなRAIDレベルが進化し、一般的な使用によって標準化されています。多くのベンダーは、上記の説明とは異なる製品を生産しています。また、上記の概念の1つを説明するために、いくつかの派手な新しいマーケティング用語を考案することもよくあります(これはSOHO市場で最も頻繁に起こります)。可能であれば、ベンダーに冗長メカニズムの機能を実際に説明してもらいます(ほとんどの場合、秘密の情報源はもうないので、この情報を提供します)。

言及する価値がある、2つのディスクのみでアレイを開始できるRAID 5のような実装があります。上記のRAID 5と同様に、一方のストライプにデータを、もう一方のストライプにパリティを保存します。これは、パリティ計算の余分なオーバーヘッドを伴うRAID 1のように機能します。利点は、パリティを再計算することでアレイにディスクを追加できることです。


現在、この情報を追加する時間はありませんが、回復不能な読み取りエラー率を使用して、特定のディスクで使用できる最大のRAID 5セットを推定する方法を説明することをお勧めします。
ヒューバートカリオ

素晴らしいまとめ!RAID5対RAID6に関する追加事項が1つあります。多くの場合、非常に大容量のスピンドルまたはディスクを多数搭載したアレイの全体的な信頼性(壊滅的なアレイ障害の可能性)を考慮している人はRAID6を選択します。これは、最初のディスクの再構築中に2回目の障害が発生する可能性に基づいて行われます。私の経験則では、スピンドルの数が8を超える場合、または個々のドライブが1 TBを超える場合はRAID6です。正規の計算機を見つけることができませんでしたが、Googleと既知の再構築時間は計算に役立ちます。
-Jガーツ

3
LinuxソフトウェアRAID10は非標準であることに注意してください。異常で潜在的に有用なレイアウトが可能です。 en.wikipedia.org/wiki/Non-standard_RAID_levels#Linux_MD_RAID_10
Zoredache

書き込みペナルティとストライプの合体の明確化を含める価値があるかもしれません。RAID 2または3は名誉ある言及に値するかもしれませんが、「実際の」実装については知りません。ただし、NetAppは引き続きRAID4を使用します(RAID-DPは基本的にRAID-4で、追加のパリティドライブを備えています。)
Sobrique 14

1
RAID 6:LSFRはLFSR(線形フィードバックシフトレジスタ)である必要がありますか?
CVn

58

RAID 100万!!!!

128ディスクなので、読み取りは高速で恐ろしい書き込みになりますが、非常に信頼性が高いと思います。ああ、利用可能なスペースは1/128になるので、予算の観点からはあまり良くありません。フラッシュドライブでこれをしないでください、私は大気に火をつけてみました...

ここに画像の説明を入力してください


7
ああ、神様。チョッパーは今彼の心を失っています。
MDマーラ

4
数学を間違えましたか?
チョッパー

6
あなたは私が実際にこれを構築するつもりだと知っていますか?
チョッパー

33
RAID 1000000は最低128台のディスクを必要としますが、64ディスク相当のストレージスペースを提供し、RAID 1と同じ最悪の場合の書き込みパフォーマンスがあり、2つの隣接するドライブの障害はアレイを殺します。あなたはかなり良好な信頼性だろうレイド0111111、descrbingた(11111110がavergage上の信頼性をより良くしなければならないだろうレイドを。)
ケビン・キャスカートを

5
わぉ素敵。バイナリRAIDレベル。次は何ですか?
CVn
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.