Intel Matrix Storage Manager と Linux ソフトウェア RAID

Intel Matrix Storage Manager と Linux ソフトウェア RAID

私が使用しているチップセットは、Intel RSTe テクノロジーをサポートしています。つまり、RAID セットアップには 2 つのオプションがあります。

  • mdadmコマンドを使用する通常の Linux ソフトウェア RAID 。
  • RSTe (BIOS によるか、スイッチmdadm付きのコマンドを使用するかのいずれか-e imsm)。

どちらにも使用できるのでmdadm、両者の違いがわかりません。

  • 通常の Linux ソフトウェア RAID と比較して、RSTe にはどのような利点がありますか?
  • RSTe モードの場合、実際の RAID I/O パス (ミラーリングとストライピング) は Linux によって処理されるmdか、BIOS によって処理されます。
  • 特に、「マトリックス RAID」(つまり、RAID がディスク全体ではなく特定のパーティションをカバーする) を使用する場合、両方の MBR に grub を手動でインストールする必要がありますか?

答え1

概要

一般的に利用できる RAID には 3 つのタイプがあります。

  • Software RAID: これは、BIOS やその他のオペレーティング システムは実際には 2 つの別々のディスクがあると考えているが、純粋にソフトウェア レベルでは、オペレーティング システムは RAID に OS 固有のオンディスク フォーマット (ミラーリング、ストライピング、パリティ ビットなど) を使用していることを意味します。すべての処理は、ハードウェアのサポートなしで CPU によって実行されます。

  • BIOS RAID: 「フェイク RAID」または「ホスト RAID」とも呼ばれるこの方法は、マザーボードのファームウェア (より具体的には、SATA/SAS コントローラ) が RAID デバイスの認識を明示的にサポートしていることを意味します。論理デバイス レベル ( lun) では、複数のハード ドライブがオペレーティング システムに対して 1 つのドライブとして表示されます。これは基本的に、SATA/SAS コントローラが「ハード ドライブは 1 つしかありません。実際は 2 つありますが、シーッ、1 つだけです。信じてください」と言っているようなものです。言い換えると、オペレーティング システムは教えてこれは RAID セットアップですが、オペレーティング システムは RAID パリティ/ストライピングなどのディスク上のフォーマットについては責任を負いません。ただし、このモードでも、CPU はパリティ ビットとストライピングのすべての計算を行います。マザーボード、BIOS、および SATA コントローラには、デバイスを物理的に「結合」し、RAID のディスク上のフォーマットを定義するのに十分なロジックがあります。ただし、計算を行う専用のプロセッサがないため、CPU に計算を行うよう指示するにはオペレーティング システム内のソフトウェアに依存しています。そのため、Linux に BIOS RAID について指示する必要があります (Intel Matrix/RST は BIOS RAID の一種です)。

  • Hardware RAID: RAID に必要なデータを処理するためだけの専用チップが搭載されています。このチップは非常に強力です。ハードウェア RAID コントローラの中には、デュアル コアの CPU のようなチップが搭載されているものもありますが、これは RAID-5 のパリティ ビットや RAID-0 のストライピングなどの RAID 計算を非常に高速に実行する組み込みオペレーティング システムを実行するように特に最適化されています。ハード ディスクは物理的に RAID カードに接続され、SATA/SAS コントローラ、通常は DRAM またはフラッシュの読み取りおよび書き込みキャッシュ、ネイティブ コマンド キューイング、およびより数学的な計算を行うオンボードの中央プロセッサが提供されます。これらのハードウェア チップの価格は、エントリー レベルの 150 ドルから、産業用データセンター RAID バックプレーン用の数千ドルまであります。

互換性

一般に、各タイプの RAID は特定の側面に「結び付けられ」ており、その側面が変化すると互換性の問題が発生してしまいます。

  • ソフトウェアRAIDは、RAIDフォーマットを定義したオペレーティングシステムに結びついています。同じオペレーティングシステムの2つの異なるバージョン間では、RAIDフォーマットが壊れて互換性がなくなることがあります。ソフトウェアRAIDフォーマットは、他のオペレーティングシステムでサポートされることが概念的には可能ですが、ソフトウェアだけ実際には、ほとんどのオペレーティング システムでは、そのオペレーティング システムのみが認識できる互換性のない RAID 形式が提供されています。ただし、最も広く知られている互換性は、Linux カーネルでネイティブに使用される RAID 形式 ( mdOP で説明されているように) であり、ダイナミック ディスクと呼ばれる Windows のソフトウェア RAID も認識できます。

  • BIOS RAID は、所有するマザーボードに関連付けられています。特定の BIOS RAID 形式でフォーマットされたドライブを、同様の BIOS RAID ソリューションを備えた別のマザーボードに移動できる場合があります。たとえば、Intel RST を RST を備えた別のシステムに移動できます。ただし、互換性を重視する場合は、移動する前に慎重に調査して、互換性があることを確認する必要があります。

  • ハードウェア RAID は、特定のハードウェア コントローラ、またはメーカーが互換性があると明示的に宣言している一連のハードウェア コントローラに関連付けられています。ベンダーによっては、多くの世代のコントローラでサポートされている非常に一貫性のあるハードウェア RAID ディスク フォーマットを維持しているところもあれば、フォーマットを頻繁に変更しているところもあります。この場合も、ケースごとに調査する必要があります。

パフォーマンス

パフォーマンスは主にどうやってRAID アレイの基本パラメータを構成し、特定のソリューションについてはあまり考慮しません。一般に、ハードウェア RAID コントローラは、最大パフォーマンスの「上限」が最も高く、他のソリューションほど CPU に負担をかけません。ただし、ワークロードに対して間違った RAID タイプ、間違ったストライプ サイズ、または間違ったキャッシュ アプローチを選択した場合、ハードウェア RAID コントローラも非常に遅くなり、非 RAID モードで実行されているドライブの 1 つよりも遅くなる可能性があります。他のソリューションでも同様で、非常に遅くなる可能性があります。

  • ソフトウェア RAID は、ミラーリングが 2 つのドライブへの同じデータの単純なコピーであり、計算するパリティ ビットがないため、RAID-1 構成に最適です。ソフトウェア RAID 上の RAID-5 はひどいものです。

  • BIOS RAID のパフォーマンスは、一般的にソフトウェア RAID と同等ですが、特定の BIOS RAID コントローラとディスク形式はバグがあったり、パフォーマンスが低かったりすることが知られています。一般的に、ソフトウェア RAID と BIOS RAID のどちらかを選択する必要がある場合、パフォーマンスの点では前者の方がやや優れています。特に最近の Linux ディストリビューションを実行している場合。

  • ハードウェア RAID のパフォーマンスは、RAID コントローラのプロセッサの最適化された処理能力のおかげで非常に高速です。前述のように、このプロセッサは高スループット向けに設計されており、実際にはマルチコア チップとして提供されるため、これは非常に優れたハードウェアです。主な欠点は、柔軟性が失われること (ハードウェア RAID コントローラなしではドライブを別のコンピュータに挿入することができない) と費用がかかることです。ハードウェア RAID は、特に多数のディスク (4 台以上) がある場合に、RAID-5 または RAID-6 を使用するのに最適なレベルです。

全体

BIOS RAIDはサポートされているLinux では、使用することはお勧めできません。

さて、長々と答えた後で、あなたの質問に直接答えましょう。

通常の Linux ソフトウェア RAID と比較して、RSTe にはどのような利点がありますか?

上記のソフトウェア RAID と BIOS RAID の比較を参照してください。「RSTe」は BIOS RAID のインスタンスです。mdのない Linux RAID は-e imsmソフトウェア RAID のインスタンスです。

RSTe モードの場合、実際の RAID I/O パス (ミラーリングとストライピング) は Linux md によって処理されるか、BIOS によって処理されます。

データパスのことであれば、専用のハードウェアRAIDカードがない限り、常にCPU(つまりオペレーティングシステム)によって処理されます。考えるこれらはどのマザーボードにも搭載されていますが、一部のハイエンド サーバー チップセットには驚かされるかもしれません...

特に、「マトリックス RAID」(つまり、RAID がディスク全体ではなく特定のパーティションをカバーする) を使用する場合、両方の MBR に grub を手動でインストールする必要がありますか?

いいえ。実際、両方の MBR に GRUB をインストールする必要はありません。ケースごとに見ていきましょう。

  • ソフトウェア RAID: GRUB をインストールするディスクを任意に 1 つ選択し、最初に起動するように BIOS の順序で設定します。必要に応じて個々のパーティションをミラーリングできるため、ソフトウェア RAID ではディスクがビット単位で同一である必要はありません。ブートローダー付きの MBR を持つディスクもあれば、MBR に何もないディスクもあります。

  • BIOS RAID: BIOS は、これが 1 つの「ディスク」であると伝えます (実際には RAID アレイと呼ばれます)。そのため、GRUB をインストールする場所を選択することはできません。Linux をこれにインストールすると、MBR (ブートローダーを含む) と両方のディスクのその他のすべてのセクターが 2 つのディスク間でコピーされます。そのため、ソフトウェア RAID とは異なり、BIOS RAID では、両方のディスクがブロックごとに同一である必要があります。これは、ディスク コントローラが 2 つの論理デバイスとして分離できないためです。言うこれらは 2 つの論理デバイスではなく 1 つの論理デバイスです。したがって、「ドライブ 0 にはデータを書き込みたいが、ドライブ 1 には書き込みたくない」ということはできません。不可能です。ただし、ソフトウェア RAID では完全に可能です。

  • ハードウェアRAID: BIOSは、それが1つの「ディスク」であると認識しますが、BIOSは、複数のディスクを扱っていることを特に認識していません。RAIDコントローラ完全にオペレーティング システムと BIOS から RAID のすべての詳細を抽象化します。ただし、オペレーティング システム内で何らかのカスタム プロトコルを使用して一部のハードウェア RAID コントローラを構成できる範囲は除きます。ただし、デバイスは BIOS RAID と同様にソフトウェア レイヤーから完全に分離できません。

編集:質問への回答を増やすために更新中

まだ理解できないことがいくつかあります。まず、BIOS RAID についてですが、mdadm を使用して RAID を構築できるので、Linux は実際には基盤となるディスクを隠しているわけではありません。

奇妙で説明が難しいです。基本的に、ディスクは特定のレイヤーでは 1 つとして表示され、他のレイヤーでは 2 つとして表示されます。ただし、BIOS RAID では、各ディスクに個別のデバイス ノード ( や など) は存在しないはずです/dev/sda/dev/sdb存在する場合、BIOS RAID は私が見たものとは異なります。

grub と MBR について: RAID がディスクではなくパーティションをカバーしている場合でも、基礎となるディスクは表示されます。MBR は RAID の下にはないため、ディスク障害が発生した場合に起動できるようにするには、ブートローダーを 2 回インストールする必要があります。これは正しいですか?

そうではない傷つく別のコピーをインストールする必要がありますが、ディスク障害が発生した場合、起動は最小限の懸念事項になります。簡単に言えば、必要に応じて実行してください。ただし、これは最も重要なことではありません。ライブ CD から HDD に grub をインストールするのは簡単です。

RAID 内のディスク (特に、同じメーカーとモデルで、同じ工場で製造され、同じ温度で隣同士で動作している場合) は、次から次へと立て続けに故障する可能性があります。そのため、ディスクが故障した場合、肩をすくめて新しいディスクを挿入し、再構築を開始するだけではおそらく問題ないでしょう。再構築中に、データの一貫したコピーを含む最後のディスク自体が故障する可能性がかなりあります。最後のディスクまで減った時点で、専門家に依頼して (またはハードウェアに詳しい場合は自分で)、元のディスクからプラッタを取り外し、同じメーカー/モデルの新しいディスクを購入し、そこにプラッタを挿入して、新しいディスクを使用してデータを読み取ることをお勧めします。これはコストがかかり、時間がかかりますが、データを保持する最も確実な方法です。

以上が私がお答えした 5 つの質問です。この情報に価値があると感じた場合は、回答に適切なマークを付けてください。ありがとうございます。

答え2

Allquixotic の回答は長すぎます:

  1. 通常の Linux ソフトウェア RAID と比較して、RSTe にはどのような利点がありますか?

ブート サポートと若干異なる機能セット。本質的にはデータ フォーマットです。 – Intel の RST オプション ROM がなくても使用できます (その場合、特別なブート サポートはありません)。フォーマットの意味は、man ページに記述されていますmdadm

  1. RSTe モードの場合、実際の RAID I/O パス (ミラーリングとストライピング) は Linux md によって処理されるか、BIOS によって処理されます。

Linux md (つまりカーネル全体) によって。

これで 1 つの疑問が残ります。なぜ Intel の RST は一部のチップセットだけに限定されているのでしょうか。これらのチップセットは RAID にはまったく参加しません。せいぜいビットを保存し、オプション ROM にサポートされていないチップセットでの実行を拒否するように指示します。

答え3

うーん、一方の答えは長すぎ、もう一方の答えは短すぎます。

RST「raid」は、Intel が Windows および Linux ドライバーを生成し、BIOS で RAID を構成できるため、ワークステーションをデュアルブートする場合に主に使用されます。RAID を構成し、仮想ディスクをパーティション分割し、複数のパーティションを認識して両方の OS でデュアルブートできます。

mdam は、サーバーが Linux 専用である場合に使用します。アレイを再構築する場合、BIOS からではなく OS から行うため、再構築速度がはるかに速くなるため、「より優れています」。大容量ディスクの場合、BIOS RAID 再構築には数日かかることがあります。

しかし、現実には、緑の Piece of C と青の Piece of C のどちらかを選択することになります。現実には、ソフトウェア RAID は基本的に「最後の手段の CYA」 RAID です。

ソフトウェア RAID アレイでディスクを紛失した場合、基本的に、サーバーをすぐに停止し、完全なバックアップを作成し、故障したディスクと残りのディスクを交換してから、アレイを再作成するか、再構築を試みることができます。多くの場合、ディスクを交換してからディスク上のすべてのデータを消去し、アレイを再作成して、バックアップ復元ディスクから起動し、バックアップから復元する方が高速です。

ハードウェア アレイ チップを使用すると、すべてのディスクをホットスワップ トレイに挿入でき、1 つのディスクに障害が発生すると、障害が発生したディスクの赤いライトが点灯します。ディスクを取り出し、新しいディスクと交換すると、ハードウェア RAID カードによって、サーバーが稼働している間にアレイが自動的に再構築されます。

理論的には、ホットスワップトレイと Linux mdam ソフトウェアアレイがあればこれを行うことは可能ですが、実際にはパニックが発生するリスクがあり、サーバーが残りのディスクで起動できなくなる可能性が高くなります。

もう 1 つの問題は、使用するディスクの種類に関するものです。通常のワークステーション ディスクは、古くなると不良セクタが発生し始め、ディスクによって内部的に予備セクタに再マップされます。問題は、この再マップが書き​​込み時にのみ発生することです。不良セクタで読み取りが発生するとディスクは再マップを遅らせ、一部のディスク モデルでは不良セクタまたは故障セクタを繰り返し再読み取りし、その結果を毎回比較して、そのセクタから取得できる最良のデータがあると判断してから再マップします。このプロセスには 1 分ほどかかることがあり、その間にアレイ内の 1 つのディスクがコマンド コードを無視するため、ソフトウェア RAID ソフトウェアがクラッシュし、アレイが劣化しているとマークされます。再起動すると、ディスク間でデータが異なる可能性のある同じセクタを持つ 2 つのディスクが存在するため、ソフトウェア RAID マネージャーは、エラーのないディスクと、そのディスクが保持していたデータに最も近いセクタを再マップしたディスクのどちらが「良好」であるかを認識できなくなります。 Western Digital は、ソフトウェア RAID アレイで使用することを想定した「Red」ドライブを製造していますが、このドライブはこれを行わず、不良セクターを検出するとすぐにセクターの読み取りを失敗させ、それを再マップして、アレイ マネージャが正常なドライブのセクターからデータを取得し、不良セクターのあるドライブに書き込むことができるようにします。言うまでもなく、これらのディスクには追加料金がかかります。

要約すると、ディスク障害が発生した場合にダウンタイムを許容できないサーバーにはソフトウェア RAID を使用しないでください。これは主に、定期的にバックアップを行わないワークステーションや、バックアップされていてディスクがクラッシュしても 1 日程度のダウンタイムを許容できる小規模な SOHO サーバーを対象としています。

関連情報