ソフトウェアParity-RAID(例:RAID5)の長所と短所


8

最近、不揮発性キャッシュのないパリティRAIDに関するいくつかの問題について知らされました。より高価なHWコントローラーには、電源障害が発生した場合に書き込み操作を完了するためのバッテリー駆動のキャッシュがあります。さて、一部の人々は、このような障害は、おそらく劣化したアレイと組み合わされて、ファイルシステム全体を殺す可能性があると言います。他の人たちは、これらの問題は時代遅れである、および/または誤解であると主張しています

残念ながら、ハードリファレンスを提供したり、md RAIDや不揮発性キャッシュを検索したり、ビットマップキャッシュを検索したりしても、md-RAID5が推奨されるかどうかについて信頼できる回答が得られません。

それに関する情報はありますか?


1
Linuxのmdraidにはジャーナルがあり、少なくとも突然の停止(つまり、システムクラッシュ、またはすべてのディスクの電源が一度にオフになる)の場合、またはRAID-1の場合は安全です。そのRAID- [56]がすべての形式の段階的パワーダウンに対応しているかどうかはわかりません。
Gilles「SO-邪悪なことをやめ

2
@Gilles、ジャーナルはありませんが、オプションの書き込み意図ビットマップがあります。これにより、再同期が必要な領域とスキップできる領域が識別されるため、システムが再起動したときの再同期プロセスが高速化されます。
psusi

@psusi戻って、数か月前に調査した内容を確認しまし。私が理解している限り、書き込み意図ビットマップ(ジャーナルではなく、私の間違い)は再同期を高速化するだけではなく、どのコンポーネントにダーティブロックがあるかを示しているため、RAID-1でブロックの一貫性を確保するには十分ですが、 RAID-5(古い状態と新しい状態の両方で、どちらかの状態を復元するのに十分なディスクがない場合があります)。
Gilles「SO-邪悪なことをやめなさい」

1
@ギレス「ボック一貫性」とはどういう意味かわかりません。ストライプ全体が書き込み開始前の状態または書き込み後の状態のどちらかでハングアップしているようです。これは保証されておらず、書き込みの途中で停電が発生した場合は、まったくそうであるとは限りません。これを単一のディスクで行うのと同じように処理するのはファイルシステム次第です。ジャーナルを使用して。
psusi 2011

回答:


4

LinuxのソフトウェアRAIDは、BBUがなく、ライトバックキャッシュが有効になっているハードウェアRAIDカードと同じくらい信頼できると思います。結局のところ、ソフトウェアRAIDシステムのコミットされていないデータは、カーネルのバッファーキャッシュに存在します。これは、バッテリーバックアップのないライトバックキャッシュの一種です。

これまでに使用したすべてのハードウェアRAID-5カードを使用すると、BBUなしでライトバックキャッシュを有効にできるため、ソフトウェアRAID-5は、ある程度のリスク許容度を持つ人に問題なく動作することが期待できます。

ObWarStory:

そうは言っても、ライトバックキャッシュは有効になっていますが、RAID-5カードにBBUがインストールされていないため、個人的に深刻なデータ損失を経験しました。(UPSもありません。電話ではなく、私に怒鳴らないでください。)

休暇中に上司がパニックに陥り、停電後も本番システムの1つが復旧しなかったためです。彼は試すことを使い果たしてしまうでしょう。ssh家族が私と一緒に道の端に座って終了するまで、私は道の端に引っ張って、ラップトップを引き、私の電話でWiFiテザリングをオンにして、被害を受けたシステムに入れ、それを修正しなければなりませんでした。ローチしたデータベーステーブルをバックアップから復元します。(当時、私たちは約1マイル離れてセルの受信を失っていました。)

だから教えてください:あなたは RAIDカード+ BBUにいくら支払うでしょうか?


右-コメントを削除しました。しかし、BBUを持たないレイドは、完全に書き込む必要がありますね。これは、少なくともバッテリーが学習してしきい値を下回ったときにPERCコントローラーが行うことです。
Nils

はい、BBUがない場合、またはBBUが停止している場合でも、RAIDカードはデータを書き込みます。サーバーが停電したときに書き込みバッファーに何があったかを覚えていないのです。RAIDは冗長ビット間の整合性に依存しているため、不整合になると混乱します。したがって、RAID書き込み中の電源障害は、コントローラーがデータの2つ以上のコピーの1つを選択するように強制され、どちらが正しいかを知らないため、RAIDの何かを破損するリスクがあります。
ウォーレンヤング

3

ただ警告の通知:RAID-5 / 6の書き込み操作は、アレイが劣化している間、かなりのCPU時間を要します。ディスクに障害が発生したときにサーバーがすでに完全にロードされている場合、サーバーが無反応の深淵に落ちることがあります。このような問題は、ハードウェアRAIDコントローラーでは発生しません。したがって、私は運用サーバーでソフトウェアRAID-5 / 6を使用しないことを強くお勧めします。ワークステーションや負荷の軽いサーバーの場合は問題ありません。


3

SW RAIDには障害モードがあります。サーバーが書き込みの途中でダウンした場合、ストライプが破損する可能性があります。BBUを備えたHW RAIDコントローラはそれほど高価ではなく、ディスクを再起動できるまでダーティブロックを保持します。

キャッシュ上のBBUは、電源障害が発生した場合の書き込みを保証しません(つまり、ディスクに電源を供給しません)。ディスクを再起動できるまで、数日間キャッシュに電力を供給します。次に、コントローラーはダーティバッファーをディスクにフラッシュします。

SW対HW RAID-5に関する注意事項

  1. コールがすべてのI / Oが完了するまで返らないため、ブロッキングI / Oでライトスルーキャッシュが使用されている場合、SW RAID-5ボリュームへの書き込みは遅くなる可能性があります。BBWCを備えたHW RAIDコントローラーはこれをかなり最適化できるため、パフォーマンスが大幅に向上します。

  2. 前回見たとき、SW RAIDボリュームでダイレクトI / O(つまり、ゼロコピーDMA)を実行できませんでした。これは変更されている可能性があり、実際にはrawパーティションを使用するデータベースマネージャーなどのアプリケーションにのみ関連しています。

  3. 最近のSAS RAIDコントローラは、特に大きな(たとえば256kb)ストライプサイズでフォーマットされている場合、ディスクアレイから1GB /秒以上のデータをプルまたはプッシュできます。私は古いAdaptec ASR-2200の速度をベンチマークして、ホストマシンのCPU負荷が非常に低く、両方のscsiチャネルが合計で600MB /秒+(10x 15kディスク)でかなり飽和していることを示しました。最新のマシンであっても、CPU負荷がそれほど高くなくても、ソフトウェアRAID-5からそれを実現できるとは思いません。多分あなたはそれをすぐに読むことができました。

  4. HW RAIDボリュームを起動するための設定は簡単です。RAIDボリュームはO / Sに対して透過的です。

AdaptecなどのTier 1ベンダーのローエンドRAIDコントローラーは、小売価格でそれほど高価ではなく、ebayのピーナッツ用に購入できます。ただし、中古品を購入する場合は、ティア1ベンダーに固執し、モデルを理解していること、およびWebサイトからのドライバーの入手可能性を確認してください。

編集: @psusiのコメントから、偽装(ドライバーに隠された透明なSW RAID)コントローラーが表示されないことを確認してください。BBUを取ることができるものは何でも偽物ではありません。


書き込みの途中で電源障害が発生した場合、同期していないストライプが破損していないことになります。非同期のストライプは、パリティが最新でないことを意味するだけなので、アレイをマウントするときに、パリティを更新する必要があります。また、ピーナッツに使用できる「レイド」コントローラは、しばしば偽物です。彼らはソフトウェアでレイドを行うBIOS ROM拡張とWindowsドライバを持っています。
psusi

@psusi-数年前に購入したASR-2200sコントローラーのほとんどは100米ドル未満で、pukka HW RAIDコントローラーです。アダプテックが実際に偽のコントローラを作るとは思いません。数百ドルで、ebayから4ポートまたは8ポートのAdaptec、3Ware、またはLSI SAS RAIDコントローラを簡単に入手できます。
ConcernedOfTunbridgeWells

私は、出所不明の中古製品を数百ドルとは言いません。これは、新製品の$ 50〜$ 100のラインに沿ってより多くを示しています。そのクラスのデバイスは通常、偽物です。
psusi '17年

@psusi-あなたは私がしたことのない議論を拒絶しようとしています。「ペニー」という言葉はまったく使用していません。ストローマンの議論に頼らないでください-私が使用した例偽物コントローラではありません
ConcernedOfTunbridgeWells 2011年

1

キャッシュにはあるがディスクにはまだないデータがあり、電源に障害が発生した場合、データは消え、ディスクは一貫性のない状態になる可能性が高いです。常に書き込みを行うシステムがなければ、その確率はそれほど高くありませんが、確率ゲームにデータを賭けたくありません。

興味深いひねりは、RAID5 / 6でメインのファイルシステムを作成することですが、ジャーナルを通常のドライブに配置するため、データは最初に通常のドライブにダンプされます。単一のドライブの書き込み速度に制限されるため、パフォーマンスはおそらくクラッパーに行きますが、信頼性は上がります。したがって、書き込みのパフォーマンスは重要ではないが、読み取りは重要である状況では、問題なく動作する可能性があると思います。

または、さらに100ドルを費やして、BBUまたは小さなUPSでカードを入手し、これらすべての複雑さを完全に回避することもできます;)


高速SSDのジャーナルについてどう思いますか?
user773568

それで十分ですが、その時点では、まずまずのコントローラー以上の料金を支払っています;)また、速度は上がりますが、信頼性は低下します。
Marcin

1
@Marcin何に基づいていますか?彼らは指定された設計寿命が短いようには見えません、そして私は1年以上持っていて、その書き込みサイクルの5%しか使用していません。
psusi

@MarcinWell信頼性といえば、それは節約ですか、それとも可用性ですか。ジャーナルを失うことでデータ全体が脅かされるとは思いませんでした。そうですか?とにかく、ノイズと省電力の理由から、OSとスワップをより小さなSSDに置くつもりです。RAIDはそのようにスリープすることができます。
user773568

MLC SSDには、信頼性の問題の実績があります。SLCユニットははるかに信頼性が高いですが、はるかに高価です。SSDの信頼性に関するホワイトペーパーはこちら
ConcernedOfTunbridgeWells

1

Linux mdadmソフトウェアraidは、バッテリーバックアップ式キャッシュを備えたハードウェアraidと同じくらい信頼できるように設計されています。単一のディスクの突然の電源喪失にも当てはまる問題以外に、突然の電源喪失の問題はありません。

停電後にシステムが復旧すると、アレイは再同期化されます。つまり、基本的に、停電前に書き込まれたデータと一致するようにパリティが再計算されます。時間はかかりますが、大したことはありません。再同期時間は、書き込みを意図したビットマップを有効にすることで大幅に削減できます。


1
それは少し楽観的に聞こえます。純粋なソフトウェアソリューションは、バッテリバックアップ式キャッシュと同じくらい信頼できるのでしょうか。
user773568

1
単一のディスクでは起こり得ない、RAIDアレイで起こり得る悪いことがあります。単一のディスクでは、すべてのセクターが古い状態または新しい状態のいずれかになります。たとえば、RAID-5 over 4 + 1ディスクで、ディスク1と2のセクター42が古い状態にあり、ディスク3、4、5のセクター42が新しい状態にある場合はどうなりますか?古い状態も新しい状態も回復できません。Linuxがこれを回避するための対策を講じているかどうかはわかりませんが、これが問題です。
Gilles「SO-邪悪なことをやめなさい」

@ user773568うーん...私はちょうど方法を説明しましたか?
psusi

@Gillesあなたはたった今シングルディスクと同じケースを言い直しました。一部のセクターは古い状態にあり、一部は新しい状態にあります。それらがどのディスクにあるかは関係ありません。ファイルシステムは、ジャーナルのクラッシュ時に不完全な書き込みを処理します。
psusi

@psusiいいえ:ディスクが1つの場合、各セクターは新しい状態または古い状態のいずれかになります。複数のディスクで、ドライバーが情報を他の場所に保存せずに各ディスクのセクターを上書きする単純なアプローチを使用する場合、一時的な状態(一部のディスクでは古い状態、他のディスクでは新しい状態)だったセクターはまったく回復できません。エラーは検出される可能性があります(運が良ければ、偶然にパリティが一致する可能性があります)が、修正することはできません。
Gilles「SO-邪悪なことをやめなさい」

1

RAID5の問題と、ZFS RAIDZがそれをどのように解決するかを説明しているブログはこちらです。

その重要なポイントは次のとおりです。

RAID-5(およびRAID-4、RAID-6、偶数奇数、行対角パリティなどの他のデータ/パリティ方式)は、既知の致命的な欠陥のため、RAIDプロミスでは完全に実現できず、実現できません。 RAID-5書き込みホールとして。RAIDストライプのデータを更新するときは必ず、すべてのディスクのXORがゼロになるようにパリティも更新する必要があります。これは、ディスクに障害が発生したときにデータを再構築できる方程式です。問題は、2つ以上のディスクをアトミックに更新する方法がないため、クラッシュまたは停電時にRAIDストライプが損傷する可能性があることです。

そして

RAID-ZはRAID-5のようなデータ/パリティ方式ですが、動的なストライプ幅を使用します。ブロックサイズに関係なく、すべてのブロックは独自のRAID-Zストライプです。これは、すべてのRAID-Z書き込みがフルストライプ書き込みであることを意味します。これをZFSのコピーオンライトトランザクションセマンティクスと組み合わせると、RAID書き込みホールが完全になくなります。

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