回答:
RAID-1は、2台のドライブのうちの1台の完全な障害から保護します。ドライブが故障としてマークされていない場合、その内容は正確であると見なされます。しかし、何らかの理由で2つのドライブのうちの1つが矛盾したデータを返していた場合、そのエラーはRAIDシステムによって検出されず、アプリケーションは不正なデータを取得します。
多くのコントローラーには定期的に実行される検証プロセスがありますが、この目的はデータの整合性ではなくディスク障害をテストすることです。ハードドライブは、不良セクタを見つけるために使用する独自のデータ整合性テストとチェックサムを実装しますが、アルゴリズムは完全ではなく高速でコンパクトになるように設計されているため、エラーが漏れることがあります。
データの破損はルールというよりも例外ですが、これも前代未聞ではありません。たとえば、ZFSチームのメンバーは、ZFSがそのファイルシステムレベルでチェックサムを実装しているという事実によって発見したハイエンドRAID-5デバイスによって破損データが配布されているのをインタビューで報告しました。
破損の原因に依存します。RAID 1ミラー内のドライブがねじれていてナンセンスな書き込みをしている場合、RAIDミラーは劣化し、正常なドライブが使用され、正常なファイルが得られます。RAID 5の場合、これは2つのデータドライブとパリティドライブ(最も単純な形式)で行われ、3つのドライブの1つが適切なファイルの書き込みに失敗すると、失敗し、2つのデータが残ります。ドライブまたは1つのデータドライブとパリティドライブ。
次に、破損がプログラムのウイルスまたはバグによって引き起こされた場合に何が起こるかを見てみましょう。RAID 1およびRAID 5では、ドライブが適切に書き込みを行っているため、ドライブがサービスを停止することはありません。何も失敗していません。ただし、ウイルスまたはバグがジャンクを書き込んでいるためにファイルが破壊され、RAID 1ミラーのドライブとRAID 5システムの3つのドライブすべての両方に書き込まれます。
これがRAIDがバックアップではない理由です。ディスク障害である可能性が最も高い障害を防ぎますが、他の多くのシナリオを考慮していません。
他の人が指摘したように、raid1システムには、2つのセクターのどちらが悪いかを伝える方法がありません。
ハイエンドのRAIDシステムは、バックグラウンドでスクラブ操作を実行して、両方のコピーを比較し、差異にフラグを立てます。さらに良いのは、毎回ドライブから両方のブロックを読み取り、読み取り時にそれらを比較するシステムです。ただし、RAIDコントローラーではこれらの違いを解決することはできません。
Unixシステムのmdadmでは、「sync_action」を使用してスクラブチェックを開始できます。
デバイスのsysfsディレクトリにあるファイルmd / sync_actionにcheckまたはrepairを書き込むことにより、md配列をスクラブできます。
スクラブを要求すると、mdはアレイ内のすべてのデバイスのすべてのブロックを読み取り、データに一貫性があることを確認します。RAID1およびRAID10の場合、これはコピーが同一であることを確認することを意味します。RAID4、RAID5、RAID6の場合、これはパリティブロックが正しいことを確認することを意味します。
raid1は、突然のドライブ全体の障害から保護するためのものです。破損に対する保護については、他の場所を調べてください。それを超えて、Raid1は「履歴」を提供しないため、人為的またはソフトウェアのエラーから回復することはできません。破損から保護するために、ZFSのようなファイルシステムまたはHammerのような履歴保存ファイルシステムに注目してください。
実際には、はい。ハードドライブの障害の大部分は、すべて発生するか、まったく発生しません。(a)ケーブルが抜かれているか、ドライブのマイクロコントローラーが故障しているため、RAIDコントローラーはまったく応答しません-明らかな故障したドライブです。または(b)ケーブルとドライブマイクロコントローラーは良好ですが、セクターを読み取ろうとすると、内部ECCマイクロコントローラーは内部ECCチェックサムが失敗したためデータ破損を検出し、そのセクターの読み取りを繰り返し試行します(一時的な読み取りグリッチの場合) )最終的にタイムアウトになるため、RAIDコントローラーは丁寧な「申し訳ありません」応答を受け取ります-明らかな障害ドライブ。どちらにしても、ドライブが故障したことはRAID-1またはRAID-5コントローラーにとって明らかです。
原則として、いいえ。何かがひどく間違っていて、ハードドライブがナンセンスを書き込んでいるにもかかわらず、そのナンセンスの正しい内部ECCコードを書き込むのに十分なほどうまく機能している場合、RAID-1はどのドライブが正しいかを判断できません。RAID-1システムは、再同期時に正常なデータを破損したデータで上書きする可能性があります。RAID-5は最高です。アクティブな書き込み中の「RAID-5書き込みホール」電源障害は、まれではあるが不可能ではない特定のケースです。
私の知る限り、このような破損を回避する唯一の方法は、ファイルミラーリングに加えて、ファイルシステムの一部として自動的に(ZFSまたはBtrfs)エンドツーエンドのチェックサムを使用するか、定期的または手動で(rsyncチェックサムの再計算、単純なファイル検証、Parchiveファイルセットなど); 理想的には、SHA-256などの暗号化ハッシュを使用します。