web-dev-qa-db-ja.com

mdadm 3-way RAID 1-2ドライブの耐障害性を保証する優れたソリューション?

Mdadmを使用する3ウェイRAID1は、RAIDに障害が発生することなく2つのドライブの障害に耐えられる優れたソリューションですか?ディスクスペースの3分の1(3つのドライブのうちの1つ)しか使用できないという意味でこれには追加のコストがかかることはわかっていますが、それ以外にどうですか?

4
sa289

2つのディスクに障害が発生する可能性のある単一のアレイを使用するには、2つの選択肢があります。

  • ウェイRAID1、あなたが提案したとおり
  • RAID6、別の可能性として。

最良の選択は何ですか?それはあなたが達成しようとしていることに依存します。

  • ディスクを取り出して別のコンピュータにインストールし、データを読み取ることができる設定が必要な場合は、次を使用します- RAID1
  • アレイを拡張して、追加のスペースを毎回取得できるようにしたい場合は、RAID6を使用します

RAID1のパフォーマンスの低下に関する注意:それはしないバスの輻輳に依存するのではなく、平均ディスクシーク時間が複数の書き込みによって影響を受ける方法に依存します。ディスクシーク時間は、シークレイテンシ(ヘッドが正しい角度に到達するために必要な時間)と回転遅延(ディスクPlatterが正しい位置まで回転する必要がある時間)。

複数のディスクに複数の同一の書き込みが含まれる場合、ホストによって測定される回転遅延は、含まれるすべてのディスクの最悪になります。一方、シーク時間は、RAID1のディスク間で比較的似ています。結局のところ、これはRAID1アレイの書き込みIOPS値が単一の同一ディスクよりもわずかに低いことを意味します。

Linuxのmdadmには、さまざまなディスクの遅延による影響を最小限に抑えるための興味深い機能があります。たとえば、「write-behind」と「write-mostly」に関するmanページをご覧ください。

-W、-build、-create、または--addコマンドにリストされている--write-mostly以降のデバイスには、「write-mostly」というフラグが付けられます。これはRAID1にのみ有効で、可能な場合、「md」ドライバーはこれらのデバイスからの読み取りを回避します。これは、低速リンクでミラーリングする場合に役立ちます

--write-behind =後書きモードを有効にするように指定します(RAID1でのみ有効)。引数が指定されている場合、許可される未処理の書き込みの最大数が設定されます。デフォルト値は256です。後書きモードを使用するには、ライトインテントビットマップが必要です。後書きは、ほとんどが書き込みとしてマークされているドライブでのみ試行されます。

これにより、ランダム読み取りのIOPSパフォーマンスが低下することに注意してください(一部のディスクは書き込み専用に効果的に使用されるため)そのため、毒の選択には注意してください。

8
shodanshok

はい、好きなだけミラーをRAID1に追加でき、1つのデバイスを除くすべての障害に耐えることができます。 10台のデバイスを追加すると、9台のデバイスの障害を許容できます。

ただし、この設定では書き込みペナルティが発生することを忘れないでください。すべてのデータをすべてのデバイスに書き込む必要があります。通常、それはかなり重要ではないはずですが、すべてのデバイスが同じコントローラー/バス上にある場合、データがすべてのデバイスに書き込まれるときに遅延に気付き始める場合があります。たとえば、デバイスが3つある場合、1 MBのデータをアレイに書き込むには、コントローラー/バスが実際に3 MBをディスクに書き込む必要があります。

6
fukawi2

別の解決策は、3つのディスクを持つRAID 6です。この投稿を参照してください:

RAID6を実装するための最小ディスク数

RAID 6では、4台目のドライブを追加して容量を2倍にすることもできます。アレイで2つのドライブが故障し、データが失われていない。

3
Dan Sawyer

まず、使用シナリオと使用するコンポーネントの品質に注意することが重要だと思います。デスクトップHDDと安価なRAIDコントローラを使用している場合や、完全なエンタープライズハードウェアを使用している場合も同じではありません。

HDD間でのレプリケーション(RAID1)のみを行っている場合は、n-1台のハードドライブを紛失しても、すべてのデータはそのまま残ります。

しかし、私は本当に2つのドライブを同時に失うことを心配しているあなたの使用シナリオとハードウェアの選択が何であるか知りたいですか?

最近、ISP用のWebサーバーをセットアップしました。サーバーには6ポートRAIDコントローラーがありました。そこで、速度とセキュリティの適切なトレードオフとしてRAID 60を設定しました。

これを読むことをお勧めします link

明確にするために、RAID 5またはRAID 60のいずれかを使用することを強くお勧めします...または、コストが問題になる場合は、2層のオフサイトバックアップを備えたシンプルなRAID0で十分です。

私の参考文献は、非常に異なる使用シナリオで多数のサーバーをセットアップした自分自身の経験です。

1
Sibin Grasic

私は常にハードウェアベースのRAID 5の大ファンでした。私は、計画された使用が許せば、サーバーには通常Ubuntu Linuxを使用します。ハードウェアベースのRAIDを使用すると、Ubuntu(およびその他のオペレーティングシステム)は、最新のほとんどのサーバーのRAID-5アレイから問題なく起動できます。複数のバックアップも使用しています。最初のバックアップは、バックインタイムを使用した外部ドライブ上のサーバーでの1時間ごとのバックアップであり、営業時間中に1時間ごとにオンサイトバックアップを提供します。第2レベルのバックアップは、Ubuntuとバックインタイムを実行している別のコンピューターを使用したネットワーク共有ドライブの夜間バックアップです。夜間のバックアップはポータブルUSBドライブにも行われ、少なくとも1つはオフサイトに保管されます。ドライブは、営業週の間毎日ローテーションされます。 3番目のレベルのバックアップは、Ubuntu Linuxを実行している廃止されたWindows Vistaコンピュータへのバックアップであり、サーバー構成が毎晩Linuxユーティリティrsyncを使用してバックアップシステムに同期されるサーバー構成と同様に構成されています。 RAID-5(ホットスペアあり)は、ドライブに障害が発生した過去数年間は良好でした。故障したドライブ(ホットスワップ可能)は、ネットワークアクティビティを中断することなく、各インスタンスで交換されました。サーバーがハードクラッシュを経験した場合、おそらくマザーボードまたはメモリの障害が原因で、RAID-5は役に立ちませんでした。助けになったのは、前夜の営業終了後から同期されたファイルがあった予備のバックアップサーバーでした。サーバー構成をバックアップサーバーに移行するために実行した小さなスクリプトがあります。これにより、すべてのユーザーアカウントとマシンアカウントが移行され、予備のコンピューターが一時的なPDCになります。新しいバックアップコンピュータシステムを作成してオンラインにするために、別の使用済みのWindowsコンピュータをまとめるのに数時間かかりました。私は、より高価なProliante ML350サーバーをより控えめなProliant ML10サーバーに置き換えることを選択しました。 RAID-1を備えた新しいサーバーを、ホットスペアを備えた3ドライブミラーとして構成します。私が注文したML10サーバーは、Ubuntuを起動するためにRAIDではなくAHCIとして構成する必要があるソフトウェアRAIDコントローラーを使用しています。サーバーと4つの1TBドライブの合計コストは、ML350の1つの300GBドライブのコストとほぼ同じです。これは、25年間で2回目のサーバー管理で、RAID-5は役に立たなかった(最初はおそらくRAIDコントローラーの障害だった)。どちらのインスタンスもRAIDの問題ではなく、テクノロジーの使用に起因する問題です。

私が伝えたい主なポイントは、サーバー障害が発生したときに備えて、適切なバックアップ計画を用意することです。優れたバックアップ計画になるには、バックアップと回復の手順を実際にテストする必要があります。直近の失敗の場合、私が電話をしてからベッドから出て、服を着て、ドアから出て、軽食をとって、現場まで運転して(車で10分)、診断しました。問題(サーバーの再起動の試行を含む)、バックアップサーバーのオンライン化は52分でした。

RAIDのさまざまな可能性のどちらが優れているかについて議論することができます。ハードドライブ以外にも障害が発生する可能性があることに注意してください。使用に最適と思われるタイプのRAIDを使用しますが、ハードウェア障害またはマルウェア/ウイルス攻撃のために回復を計画します。

1
Jake Page