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


28

私が使用しているチップセットは、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を手動でインストールする必要がありますか?

回答:


46

概要

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

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

  • BIOS RAID:「フェイクRAID」または「ホストRAID」とも呼ばれます。これは、マザーボードファームウェア(具体的にはSATA / SASコントローラー)がRAIDデバイスの認識を明示的にサポートしていることを意味します。論理デバイスレベル(lun)では、オペレーティングシステムに対して複数のハードドライブが単一のドライブとして表示されます。これは基本的に、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のストライピングなど、RAID計算を非常に高速に行う組み込みオペレーティングシステムを実行するように特に最適化されています-0。ハードディスクは物理的にRAIDカードにケーブル接続され、SATA / SASコントローラー、通常はDRAMまたはフラッシュの読み取り/書き込みキャッシュ、ネイティブコマンドキューイング、およびより多くの数学的計算を行うオンボードの中央処理装置を提供します。これらのハードウェアチップは、産業用データセンターRAIDバックプレーンのエントリレベルで150ドルから数千ドルで実行されます。

互換性

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

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

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

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

性能

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

  • ミラーリングは2つのドライブへの同じデータの単純なコピーであり、計算するパリティビットがないため、ソフトウェアRAIDは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モードの場合、Linux mdまたはBIOSによって処理される実際のRAID I / Oパス(ミラーリングおよびストライピング)です。

データパスを意味する場合、専用のハードウェア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コントローラーは、オペレーティングシステム内で何らかのカスタムプロトコルを使用してハードウェア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からgrubをHDDにインストールするのは簡単です。

RAIDのディスク(特に、同じ製造元とモデルで、同じ工場で生産され、同じ温度で互いに隣り合って稼働している場合)は、連続してすぐに失敗する可能性があります。そのため、ディスクに障害が発生した場合、ただ単に肩を並べて新しいディスクを挿入し、再構築を開始するだけでは大丈夫ではありません。再構築中に、データの一貫したコピーを含む最後のディスク自体が故障する可能性がかなりあります この時点で最後の残りのディスクに到達すると、専門家に依頼することをお勧めします(または、ハードウェアが得意な場合は自分で行う)、元のディスクからプラッターを削除し、同じメーカー/モデルの新しいディスクを購入します、そこにプラッターを置き、新しいディスクを使用してデータを読み取ります。これは高価で時間がかかりますが、

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


1
詳細かつ洞察に満ちた回答をありがとう。まだいくつかのことを理解できていません。まず、BIOS RAIDについて:を使用して構築できるmdadmので、Linuxは実際に基盤となるディスクを隠しません。第二に、grubとMBRについて:RAIDがディスクではなくパーティションをカバーする場合、基礎となるディスクを見ることができます。MBRはRAIDの下にないため、ディスク障害が発生した場合にブートできるようにするには、ブートローダーを2回インストールする必要があります。これは正しいです?
Leonid99

1
6シリーズPCHを使用していmdadm --detail-platformますが、Intel Matrix Storage Managerがバージョン11.0.0.1339であることを示しています。私がすることができ、実際に私のよう個々のドライブを参照してください/dev/sdc/dev/sdd。私の偽のRAID1アレイはそう/dev/md126です。
ジョナサンラインハルト

1
Linuxカーネルが稼働中の場合、ファームウェア/ BIOSコードは実行されていません。それでは、カーネルは何をする責任がありますか?すべて?その場合、IMSMは実際に何をしますか?Linux自体がソフトウェアRAIDを使用している以上に多くはないようです。BIOS /チップセットは正確に何をしているのでしょうか?
ジョナサンラインハート

まあそれはハイブリッドのように見えます:コンピュータが最初に起動するとき(BIOSがまだアクティブなとき)、BIOSはソフトRAIDロジックを提供します。OSが起動すると、そのドライバーがRAIDアレイの保守を担当します。12
ジョナサン・ラインハルト

2

Allquixoticの答えは長すぎます:

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

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

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

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

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


これは、受け入れられた回答よりもはるかに優れています。受け入れられた回答は長く、とりとめがなく、大部分が不正確で、質問に答えません。(重要な点は、RSTeはBIOSが理解するフォーマットを使用しているため、劣化したRAIDから起動できることです。)
Nemo

2

うーん、一方の回答が長すぎ、他方の回答が短すぎます。

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

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

しかし、現実は、あなたは緑のCのピースか青のCのピースのどちらかを選択しています。現実は、ソフトウェアRAIDは基本的に「最後の溝のCYA」襲撃です。

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

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

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

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

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.