回答:
RAIDはRedundant Array of Independent Disksの略です(一部は「通常の」ディスクであることを示すために「安価」と教えられています。歴史的に、内部的には非常に高価な冗長ディスクがありました。
最も一般的なレベルでは、RAIDは同じ読み取りと書き込みで動作するディスクのグループです。SCSI IOはボリューム(「LUN」)で実行され、これらはパフォーマンスの向上や冗長性の向上をもたらす方法で基礎となるディスクに分散されます。パフォーマンスの向上はストライピングの機能です。データは複数のディスクに分散され、読み取りと書き込みがすべてのディスクのIOキューを同時に使用できるようになります。冗長性はミラーリングの機能です。ディスク全体をコピーとして保持することも、個々のストライプを複数回書き込むこともできます。また、一部のタイプのRAIDでは、ビットごとにデータビットをコピーする代わりに、パリティ情報を含む特別なストライプを作成することで冗長性が得られます。
これらの利点のさまざまなレベルを提供するいくつかの構成があり、それらについてここで説明します。それぞれの構成には、パフォーマンスまたは冗長性に対するバイアスがあります。
どのRAIDレベルが機能するかを評価する際の重要な側面は、その利点とハードウェア要件(たとえば、ドライブの数)によって異なります。
これらのタイプのRAID(0,1,5)のほとんどのもう1つの重要な側面は、保存されている実際のデータから抽象化されているため、データの整合性が保証されないことです。したがって、RAIDは破損したファイルから保護しません。ファイルが何らかの方法で破損した場合、破損はミラーリングまたは分割され、ディスクにコミットされます。ただし、RAID-Zはデータのファイルレベルの整合性を提供すると主張しています。
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が含まれます。
RAID0(別名ストライピング)は、「ドライブに障害が発生したときに残されるデータの量」と呼ばれることもあります。これは実際には、「R」が「冗長」の略である「RAID」の粒度に対して実行されます。
RAID0はデータのブロックを取得し、ディスクの数だけ分割して(2ディスク→2ピース、3ディスク→3ピース)、各データを個別のディスクに書き込みます。
これは、1つのディスク障害がアレイ全体を破壊することを意味します(パート1とパート2があり、パート3はないため)が、非常に高速なディスクアクセスを提供します。
実稼働環境ではあまり使用されませんが、影響なしで失われる可能性がある厳密に一時的なデータがある場合に使用できます。キャッシングデバイス(L2Arcデバイスなど)に一般的に使用されます。
使用可能なディスク容量の合計は、アレイ内のすべてのディスクを合計した合計です(たとえば、3x 1TBディスク= 3TBのスペース)。
RAID 1(別名ミラーリング)はデータを取得し、2つ以上のディスクに同じように複製します(通常は2つのディスクのみ)。3台以上のディスクを使用する場合、同じ情報が各ディスクに保存されます(すべて同一です)。ディスクが3台未満の場合にデータの冗長性を確保する唯一の方法です。
RAID 1は、読み取りパフォーマンスを向上させることがあります。RAID 1の一部の実装では、読み取り速度を2倍にするために両方のディスクから読み取ります。一部のディスクはディスクの1つからのみ読み取りを行うため、追加の速度上の利点はありません。他のユーザーは両方のディスクから同じデータを読み取り、読み取りごとにアレイの整合性を確保しますが、これにより単一のディスクと同じ読み取り速度になります。
通常、2つのディスク用のスペースしかない1RUサーバーなど、ディスクの拡張がほとんどない小型サーバーや、冗長性が必要なワークステーションで使用されます。「失われた」スペースのオーバーヘッドが大きいため、同じ容量の使用可能なストレージを得るために2倍のお金を費やす必要があるため、小容量の高速(および高コスト)ドライブでは非常にコストがかかります。
使用可能なディスク領域の合計は、アレイ内の最小ディスクのサイズです(たとえば、2x 1TBディスク= 1TBの領域)。
1Eの RAIDレベルは、常に、(少なくとも)は、2枚のディスクに書き込まれるデータに1をRAIDと同様です。ただし、RAID1とは異なり、データブロックを複数のディスクにインターリーブするだけで、奇数のディスクを使用できます。
パフォーマンス特性はRAID1に似ています。フォールトトレランスはRAID 10に似ています。このスキームは、3つ以上の奇数のディスクに拡張できます(まれにRAID 10Eと呼ばれることもあります)。
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の逆です。2つのRAID 0アレイを作成してから、RAID 1を上に配置します。つまり、各セット(A1、A2、A3、A4またはB1、B2、B3、B4)から1つのディスクを失う可能性があります。商用アプリケーションで見ることは非常にまれですが、ソフトウェアRAIDで行うことは可能です。
明確にするために:
RAID 10を超える速度は提供されませんが、冗長性は大幅に低下するため、すべてのコストを回避する必要があります。
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 6はRAID 5に似ていますが、1つだけではなく2つのディスクに相当するパリティを使用します(1つ目はXOR、2つ目はLSFR)。したがって、データ損失なしでアレイから2つのディスクを失うことができます。書き込みペナルティはRAID 5よりも高く、スペースのディスクが1つ少なくなります。
最終的にRAID 6アレイはRAID 5と同様の問題に遭遇することを考慮する価値があります。ドライブが大きいと、再構築時間が長くなり、潜在的なエラーが発生します。
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 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がストレージとファイルシステムの相互作用の方法を根本的に変えるため、説明が少し複雑です。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レベルが進化し、一般的な使用によって標準化されています。多くのベンダーは、上記の説明とは異なる製品を生産しています。また、上記の概念の1つを説明するために、いくつかの派手な新しいマーケティング用語を考案することもよくあります(これはSOHO市場で最も頻繁に起こります)。可能であれば、ベンダーに冗長メカニズムの機能を実際に説明してもらいます(ほとんどの場合、秘密の情報源はもうないので、この情報を提供します)。
言及する価値がある、2つのディスクのみでアレイを開始できるRAID 5のような実装があります。上記のRAID 5と同様に、一方のストライプにデータを、もう一方のストライプにパリティを保存します。これは、パリティ計算の余分なオーバーヘッドを伴うRAID 1のように機能します。利点は、パリティを再計算することでアレイにディスクを追加できることです。
RAID 100万!!!!
128ディスクなので、読み取りは高速で恐ろしい書き込みになりますが、非常に信頼性が高いと思います。ああ、利用可能なスペースは1/128になるので、予算の観点からはあまり良くありません。フラッシュドライブでこれをしないでください、私は大気に火をつけてみました...