web-dev-qa-db-ja.com

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

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

  • mdadmコマンドを使用した通常のLinuxソフトウェアRAID。
  • RSTe(BIOS、またはmdadmコマンドと-e imsmスイッチ)。

mdadmは両方に使用できるため、2つの違いを理解できません。

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

概観

利用可能なRAIDには3つの一般的なタイプがあります。

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

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

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

互換性

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

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

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

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

パフォーマンス

パフォーマンスは、主にRAIDアレイの基本パラメーターを構成する方法に依存し、特定のソリューションには依存しません。一般に、ハードウェアRAIDコントローラーは、最大のパフォーマンスを得るための最高の「上限」を備えています。また、他のソリューションほどCPUに負担をかけません。ただし、ワークロードに不適切なRAIDタイプ、不適切なストライプサイズ、または不適切なキャッシングアプローチを選択した場合、ハードウェアRAIDコントローラーも非常に遅くなり、非RAIDモードで実行されているドライブの1つよりも遅くなる可能性があります。同じことが他の解決策にも当てはまり、非常に遅くなる可能性もあります。

  • ソフトウェアRAIDは、RAID-1構成に最適です。ミラーリングは、2つのドライブへの同じデータの単純なコピーであり、計算するパリティビットがないためです。ソフトウェア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のインスタンスです。 Linux md-e imsmのないRAIDは、ソフトウェアRAIDのインスタンスです。

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

データパスを意味する場合は、専用のハードウェアRAIDカードがない限り、常にCPU(つまりオペレーティングシステム)によって処理されます。私は考えませんこれらはすべてのマザーボードに付属していますが、いくつかのハイエンドサーバーチップセットは私を驚かせるかもしれません...

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

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

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

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

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

編集:質問の回答をさらに更新する

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

奇妙で説明が難しいです。基本的に、ディスクは特定のレイヤーでは1つとして、他のレイヤーでは2つとして表示されます。しかし、私は、BIOS RAIDでは、各ディスクが独自の個別のデバイスノードを持たないことに賭けています。 /dev/sdaおよび/dev/sdb。もしそうなら、あなたのBIOS RAIDは私が見たものとは異なります。

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

別のコピーをインストールすることは傷つけませんが、ディスク障害の場合は、起動の心配はほとんどありません。簡単に言うと、必要に応じてそれを実行しますが、それが最も重要なことではありません。ライブCDからHDDにgrubをインストールするのは簡単です。

RAIDのディスク(特に、同じメーカーとモデルであり、同じ工場で製造され、同じ温度で互いに隣接して動作している場合)は、すぐに次々と失敗する可能性があります。したがって、ディスクに障害が発生した場合、肩をすくめて新しいディスクを挿入して再構築を開始するだけでは問題が発生する可能性があります。再構築中に、データの一貫したコピーを含む最後のディスク自体が失敗する可能性はかなりあります。エキスパートに依頼することをお勧めする最後の残りのディスクに到達したとき(またはハードウェアに長けている場合は自分で行う)は、元のディスクからプラッターを削除し、同じメーカー/モデルの新しいディスクを購入します。 、そこにプラッタを置き、新しいディスクを使用してデータを読み取ります。これは高価で時間がかかりますが、データを保持する最も確実な方法です。

これが、私があなたのために答えた5つの質問です。この情報に価値がある場合は、回答に適切なマークを付けてください。ありがとう。

46
allquixotic

Allquixoticの回答が長すぎます:

  1. 通常のLinuxソフトウェアRAIDと比較してRSTeは私に何を提供しますか?

ブートサポートと少し異なる機能セット。その本質は、データ形式です。 – IntelのRSTオプションなしで使用することもできますROM(その場合、特別なブートサポートはありません)。形式が意味することは、mdadmのマニュアルページに記載されています。

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

Linux md(つまり、完全にカーネル)。

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

2
Robert Siemer

うーん、1つは長すぎ、もう1つは短すぎます。

IntelがWindowsとLinuxドライバーを生成し、BIOSでraidを設定できるため、RST "raid"は主にワークステーションをデュアルブートする場合に使用します。 RAIDを構成し、仮想ディスクをパーティション分割して、両方のOSが複数のパーティションを理解している状態でデュアルブートできます。

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

しかし、現実は、Cの緑のピースまたはCの青のピースのいずれかを選択しています。

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

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

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

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

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

1