Linux mdadmソフトウェアRAID 6-ビット破損リカバリをサポートしていますか?


15

ウィキペディアによると、「RAID 2は、RAID 6の一部の実装を除き、データのシングルビット破損から正確なデータを自動的に回復できる唯一の標準RAIDレベルです。」

LinuxでのRAID 6 mdadm実装が、シングルビットデータ破損を自動的に検出して回復できる実装の1つであるかどうかは誰にもわかりますか。他のバージョンと異なる場合、これはCentOS / Red Hat 6に関係します。オンラインで検索してみましたが、あまり運がありませんでした。

SATAエラーレートが1E14ビットに1つであり、2TB SATAディスクに1.6E13ビットが含まれているため、これは特にデータ破損の防止に関連しています。

編集2015年6月17日

これは私が当初考えていた問題ではないと思います- ハードディスク/ SSD-エラーの検出と処理を参照してください-サイレントデータ破損は確実に防止されますか?詳細については

回答:


15

LinuxソフトウェアRAIDは、ビット破損からユーザーを保護するものではなく、サイレントデータ破損はよく知られている問題です。実際、カーネルが1つのディスクからデータを読み取ることができれば、それが悪いことを知ることはありません。RAIDは、データの読み取り中にI / Oエラーが発生した場合にのみ作動します。

データの整合性が心配な場合は、チェックサムを保存して検証することでデータの整合性を確保するBtrfsZFSなどのファイルシステムの使用を検討する必要があります。これらのファイルシステムはRAID機能も処理するため、そのようにすればカーネルソフトウェアの襲撃は必要ありません。


ありがとう。誰にも役立つ場合は、chutzの返信から検索アイデアをいくつか得て、2011年2月17日にmdadmのメンテナーが、すべての読み取りでパリティチェックを強制する機能を追加する予定はないと言っているのを見ました。参照してくださいspinics.net/lists/raid/msg32816.html
sa289

3

RAID5およびRAID6は、ドライブ全体のパリティを確認すると、ビット破損を検出し、通常は修正できます。これは「スクラブ」または「パリティチェック」と呼ばれ、ほとんどの実稼働RAIDシステムでは通常24〜48時間かかります。その間、パフォーマンスが大幅に低下する場合があります。(一部のシステムでは、オペレーターが読み取り/書き込みアクセスまたはその下のスクラブを優先することができます。)RAID5は1つのドライブ障害しか処理できないのに対し、RAID6は修正できる可能性が高くなります。スクラブ中は、アクティビティが増加するため、ドライブ障害が発生する可能性が高くなります。


1
RAIDスクラブ中にパフォーマンスが著しく低下することは、一般的に真実ではありません。スクラブが使用可能なすべてのシステムリソースを使用し、「ダム」である場合、それは使用されます。しかし、すべてのSANと私は、ほとんどのRAIDコントローラーがスクラブを低い優先順位で実行し、リソースの使用率を動的に調整して、運用パフォーマンスを維持するために必要なリソースを消費しないことを想像します。
ジェレミー

あなたは正しいです。答えを編集してニュアンスを追加しました。
-vy32

mdadm raid 6アレイが/ dev / md1である場合、パリティを確認し、シングルビット破損の修復を試みるコマンドです。「エコーチェック> / sys / block / md1 / md / sync_action」
-BeowulfNode42

2
これらは「ビット破損から保護する」のではなく、スクラブするとビット破損検出します。私の質問を参照してくださいここでは詳細については。

「RAID5およびRAID6はビット破損を修復できる」という答えを変更することをお勧めします
Waxhead

2

これをコメントとして追加したはずですが、十分な評判はありません。私は明確にしたかった:RAID5はビット破損を検出できますが、読み取りエラーなしでどのドライブに破損があるかわかりません。その結果、スクラブは読み取りエラーなしでこれを修正できませんでした-おそらくそれをログに記録し、一致するようにパリティビットを更新します。RAID6のアルゴリズムは位置に依存しているため、どのドライブにエラーが含まれているかを検出し、ビット破損を修正できます。


それが本当なら素晴らしいことです!どこに文書化されているかについてのリンクを提供していただけますか?
-Alek_A

2

RAID 6の機能に関して、上記のすべての答えは正しくありません。RAID6アルゴリズムは、バイトごとにRAID 5と同じように動作し、ドライブの1バイトが破損した場合、ドライブによってエラーが示されなくても、検出および修正されます。そうするためのアルゴリズムはで完全に説明されています

https://mirrors.edge.kernel.org/pub/linux/kernel/people/hpa/raid6.pdf

このチェックを実行するには、データドライブとともにパリティPおよびQドライブも読み取る必要があります。計算されたパリティP 'とQ'がドライブエラーなしで異なる場合、分析はどのドライブが正しくないかを特定し、データを修正できます。

さらに、ドライブIDが存在しないドライブ(ドライブが15台しかない場合のドライブ137など)の場合、複数のドライブが破損データを提供し、修正不可能なエラーエラーを通知します。セット内のドライブが256個よりはるかに少ない場合、これはバイトごとに高い確率で検出され、ブロックには多くのバイトがあるため、ブロックごとに非常に高い確率で検出されます。RAIDブロック内のすべてのバイトでドライブIDが一貫していない場合、複数のドライブが破損データを提供しており、通常は条件を拒否する可能性がありますが、すべてのドライブIDが有効である限り、ブロックは必ずしも必要ではありません拒否されます。

この修正を実行するには通常の検証時間よりも時間がかかりますが、シンドローム(PおよびQ)計算でエラーが表示された場合にのみ実行する必要があります。

ただし、これはすべて、シングルバイトの破損が処理されるかどうかを判断するためにmdadmコードを調べたことはありません。mdadmが毎月のスキャンでRAID6シンドロームエラーを報告することは承知していますが、エラーメッセージから、それらが修正されているかどうかは明確ではありません-ドライブアレイを停止せず、メッセージ内の特定のドライブを特定しません

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