raid5はパリティを計算するため、1つのディスク上のサイレントデータ破損をキャッチできるはずです。
いや。セクターをランダムなデータで完全に消去することができ、RAID5はまつげを打つことはありません。RAID1にも同じ問題があります。
一般に、RAIDはリアルタイムのデータ整合性チェックを提供しません。それが提供するのは、1つ(またはいくつかのRAIDレベルで)のドライブ障害に直面した場合の耐障害性です。これらは2つの非常に異なるものです。
ファイルの破損をキャッチするものを探している場合は、ファイルシステムのサポートが必要です。RAIDはそれを行いません。少なくとも、それ自体ではありません。
特定の質問に答えるには:
RAID1は、単純に2つ(またはそれ以上)の同一ミラーとして実装されます。ミラーがセクターの内容に同意しない場合、破損が発生しています。大事なことは、RAIDシステムは特定のセクターを取得するように要求されたときに通常すべてのミラーを読み取らないため、これを認識する位置にいないことが多いということです。効率を上げるために、1つのディスクを読み取るようにスケジュールすることをお勧めします(できれば、現在ヘッドが最も近くにあるディスク)。
「スクラブ」操作中に、RAIDシステムがすべてのデータの整合性を明示的に確認するように要求されたときに、不整合が発見されたと仮定します。この矛盾をどのように解決するかという質問には、簡単な答えはありません。この問題は、RAID1や他のRAIDレベルと同様にRAID5にも等しく影響することに注意してください。
RAID1では、矛盾は異なるデータを含む2つのミラーセクターとして表示されます。RAIDシステムはどのセクターが正しいデータを表すかをどのように決定しますか?まあ、それは実装の詳細であり、正直なところ、Linuxシステムが正確に実装されている方法はわかりません。しかし、問題は根本的なものです。ミラー化されたセクターは異なり、なぜそのようになったのかについての兆候はないかもしれません。したがって、RAIDシステムでできることは、コインを投げることです。ランダムに1つを選択して「正しい」データにします。
3ディスクRAID5では、パリティセクターが正しくないトリプルセクターの形で矛盾が発生します。問題は、3つのセクターのどれが間違っているかということです。繰り返しますが、明らかな答えはありません。3つのうちのいずれかが破損している可能性があり、おそらく知る方法はありません。1つのセクターを他の2つのセクターから再計算する必要がある場合、実際に破損したセクターを選択する可能性は3分の1になります。この意味で、RAID1は実際にはRAID5よりも「安全」であることを示しています。RAID1は、間違ったセクターを選択する確率が50%であり、RAID5は間違ったセクターを選択する確率が67%です。
要約すると、RAIDは、発生したディスクエラーをキャッチするようには設計されていません。RAIDは、ドライブ全体に障害が発生した場合の耐障害性を提供します。これ以上何もない。