RAID 1とRAID 5(およびそれらの兄弟10と50)は、それぞれミラーリングとパリティチェックによってデータの冗長性を実現します。これにより、ディスク上のセクター(またはディスク全体)が読み取り不能になった場合でも、RAIDアレイはデータにアクセスできます。RAID 6(または60)は、追加のチェックを使用して二重障害を許容します。
しかし、RAIDアレイは、完全に読み取り不可能ではないが、明らかに矛盾しているデータをどのように扱うことができますか?
ストライプ上のfeデータがディスク上で変更されるなどのエラーが発生したが、その変更が他のストライプに反映されない場合、ストライプ全体が不整合になります。ミラーリングされたセットで、ディスクが「このビットは0」であるのに対し、他のディスクが「このビットは1」である場合、RAIDコントローラはどのディスクが正しいかをどのようにして知ることができますか?同じ理由がRAID-5ストライプに適用でき、ストライプの実際にどのセクターが間違っているかを簡単に知ることができないという複雑さが加わります。また、RAID 6は二重のチェックでこの問題を軽減しますか、それとも、データが実際に読み取り可能であるにもかかわらず、特にRAID 6アレイに多くのディスクが含まれる傾向があるため、データの破損からの回復に問題があるのでしょうか?
これは理論的にはチェックサムによって解決でき、データのコピー(またはパリティ)が正しいものであることを確認します。しかし、RAIDコントローラーは実際にこの種のチェックサムを実装しますか(もちろん、追加のスペースが必要になります)?それとも、ほとんどのファイルシステムがその内容をチェックサムすることができ、チェックサムするOSレベルで処理する必要がありますか?これが当てはまる場合、RAIDコントローラーの一般的なアプローチがOSを基盤のストレージレイヤーからできるだけ抽象化することである場合、RAIDコントローラーに「ストライプZのディスクYのセクターXのデータが間違っている」とどのように伝えることができますか?可能?