最近、不揮発性キャッシュのないパリティRAIDに関するいくつかの問題について話されました。より高価なHWコントローラーには、停電時に書き込み操作を完了するためのバッテリー駆動のキャッシュがあります。さて、一部の人々は、おそらく劣化したアレイと組み合わせて、そのような失敗がファイルシステム全体を殺すかもしれないと言います。 他の人はそれらの問題が時代遅れであるおよび/または誤解であると主張します 。
残念ながら、誰もハードリファレンスを提供せず、md RAIDと不揮発性キャッシュの検索もビットマップキャッシングの検索もしませんは、md-RAID5が推奨されるかどうかについて信頼できる回答を提供します。
それについて何か情報はありますか?
LinuxのソフトウェアRAIDは、BBUがなく、ライトバックキャッシュが有効になっているハードウェアRAIDカードと同じくらい信頼できると思います。結局のところ、ソフトウェアRAIDシステム内のコミットされていないデータは、カーネルのバッファキャッシュに存在します。これは、バッテリバックアップなしのライトバックキャッシュの形式です。
私が今まで使用したすべてのハードウェアRAID-5カードでは、BBUがなくてもライトバックキャッシングを有効にできるため、ソフトウェアRAID-5は、ある程度のリスク許容度がある人でも問題なく機能すると思います。
ObWarStory:
そうは言っても、ライトバックキャッシュが有効になっているにもかかわらず、RAID-5カードにBBUがインストールされていないため、個人的に深刻なデータ損失が発生しました。 (UPSもありません。電話ではなく、私に怒鳴らないでください。)
休暇中に上司から電話がありました。停電後に本番システムの1つが復旧しなかったためです。彼は試すものが不足していたでしょう。家族が私と一緒に横に座っている間に、私は道路の脇に引っ張り、ラップトップを引き出し、電話でWiFiテザリングをオンにし、ssh
を被災したシステムに入れて、修理しなければなりませんでした。私がバックアップからローチされたデータベーステーブルを復元し終えるまでの道のり。 (当時、私たちは細胞の受信を失うことから約1マイル離れていました。)
だから教えてください:あなたはRAIDカード+ BBUにいくら払うでしょうか 今?
警告通知:RAID-5/6の書き込み操作は、アレイが劣化している間、かなりのCPU時間を要します。ディスクに障害が発生したときにサーバーがすでに完全にロードされている場合、サーバーは無応答の深淵に陥る可能性があります。このような問題は、ハードウェアRAIDコントローラーでは発生しません。したがって、本番サーバーでソフトウェアRAID-5/6を使用しないことを強くお勧めします。ただし、ワークステーションまたは負荷の軽いサーバーの場合は問題ありません。
SW RAIDには障害モードがあります。サーバーが書き込みの途中でダウンすると、ストライプが破損する可能性があります。 BBUを備えたHWRAIDコントローラーはそれほど高価ではなく、ディスクを再起動できるまでダーティブロックを保持します。
キャッシュ上のBBUは、電源障害が発生した場合に not 書き込みを保証しません(つまり、ディスクに電力を供給しません)。ディスクを再起動できるようになるまで、数日間キャッシュに電力を供給します。次に、コントローラーはダーティバッファーをディスクにフラッシュします。
SWとHWRAID-5に関する注意事項
SW RAID-5ボリュームへの書き込みは、書き込みスルーキャッシュをブロッキングI/Oとともに使用すると、すべてのI/Oが完了するまで呼び出しが戻らないため、遅くなる可能性があります。 BBWCを備えたHWRAIDコントローラーはこれを大幅に最適化できるため、パフォーマンスが大幅に向上します。
前回調べたときは、SWRAIDボリュームでダイレクトI/O(つまり、ゼロコピーDMA)を実行できませんでした。これは変更されている可能性があり、実際にはrawパーティションを使用するデータベースマネージャーなどのアプリケーションにのみ関連します。
最新のSAS RAIDコントローラーは、ディスクアレイから1GB /秒以上のデータをプルまたはプッシュできます。特に、大きな(たとえば、256kb)ストライプサイズでフォーマットされている場合は、古いものをベンチマークしました。 Adaptec ASR-2200s ホストマシンのCPU負荷が非常に少なく、両方のscsiチャネルが合計600MB /秒以上(10x 15kディスク)でほぼ飽和していることを示す速度で。最近のマシンでも、CPUに大きな負荷をかけることなく、ソフトウェアRAID-5からそれを引き出すことができます。
HWRAIDボリュームを起動するための構成は簡単です。RAIDボリュームはO/Sに対して透過的です。
アダプテックなどのティア1ベンダーのローエンドRAIDコントローラーは、小売価格ではそれほど高価ではなく、eBay以外のピーナッツ用に購入できます。ただし、中古品を購入する場合は、Tier 1ベンダーに固執し、モデルを知っていることを確認し、そのWebサイトからドライバーの入手可能性を確認してください。
編集:@ psusiのコメントから、fakeraid(ドライバーに隠された透過的なSW RAID)コントローラーを取得しないようにしてください。ただし、ほとんどの製品は大きな名前(Adaptec、3Ware、またはLSI)の製品は偽物のユニットではありません。 BBUを取ることができるものは、偽物ではありません。
キャッシュにデータが入っているがディスクにはまだ入っておらず、電源に障害が発生した場合、データは消え、ディスクは一貫性のない状態になる可能性があります。常に書き込みを行うシステムがない限り、その確率はそれほど高くありませんが、確率ゲームにデータを賭けたくはありません。
興味深い工夫は、RAID5/6でメインファイルシステムを作成し、ジャーナルを通常のドライブに配置することです。そのため、データは最初に通常のドライブにダンプされます。単一のドライブの書き込み速度に制限されるため、パフォーマンスはおそらくクラッパーになりますが、信頼性は向上します。したがって、書き込みパフォーマンスは重要ではないが、読み取りは重要である状況では、それで問題なく機能する可能性があります。
または、さらに100ドルを費やして、BBUまたは小さなUPSでカードを入手し、これらすべての複雑さを完全に回避することもできます;)
Linux mdadmソフトウェアRAIDは、バッテリーバックアップキャッシュを使用したハードウェアRAIDと同じくらい信頼できるように設計されています。単一ディスクの突然の電力損失にも当てはまる問題を除いて、突然の電力損失の問題はありません。
停電後にシステムが復旧すると、アレイは再同期されます。これは基本的に、停電前に書き込まれたデータと一致するようにパリティが再計算されることを意味します。少し時間がかかりますが、大したことではありません。書き込み目的のビットマップを有効にすることで、再同期時間を大幅に短縮できます。
これが 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書き込みホールが完全に排除されます。