RAID 1は破損から保護しますか?


14

Raid 1はデータ破損から保護しますか?たとえば、RAID 1で2つのディスクを使用するNASにすべての重要なファイルを保持しているとします。1つのハードドライブに何らかの内部問題があり、データが破損した場合、RAIDはこれを自動的に認識して修正しますか他の正常なディスクのデータを使用していますか?

どのコピーが良いコピーであるかさえ知ることができますか?

RAID 5は破損から保護しますか?

RAIDはバックアップソリューションではないことを知っています。破損したデータをバックアップしていないことを確認する方法を見つけようとしています。

回答:


13

RAID-1は、2台のドライブのうちの1台の完全な障害から保護します。ドライブが故障としてマークされていない場合、その内容は正確であると見なされます。しかし、何らかの理由で2つのドライブのうちの1つが矛盾したデータを返していた場合、そのエラーはRAIDシステムによって検出されず、アプリケーションは不正なデータを取得します。

多くのコントローラーには定期的に実行される検証プロセスがありますが、この目的はデータの整合性ではなくディスク障害をテストすることです。ハードドライブは、不良セクタを見つけるために使用する独自のデータ整合性テストとチェックサムを実装しますが、アルゴリズムは完全ではなく高速でコンパクトになるように設計されているため、エラーが漏れることがあります。

データの破損はルールというよりも例外ですが、これも前代未聞ではありません。たとえば、ZFSチームのメンバーは、ZFSがそのファイルシステムレベルでチェックサムを実装しているという事実によって発見したハイエンドRAID-5デバイスによって破損データが配布されているのをインタビューで報告しました。


5

破損の原因に依存します。RAID 1ミラー内のドライブがねじれていてナンセンスな書き込みをしている場合、RAIDミラーは劣化し、正常なドライブが使用され、正常なファイルが得られます。RAID 5の場合、これは2つのデータドライブとパリティドライブ(最も単純な形式)で行われ、3つのドライブの1つが適切なファイルの書き込みに失敗すると、失敗し、2つのデータが残ります。ドライブまたは1つのデータドライブとパリティドライブ。

次に、破損がプログラムのウイルスまたはバグによって引き起こされた場合に何が起こるかを見てみましょう。RAID 1およびRAID 5では、ドライブが適切に書き込みを行っているため、ドライブがサービスを停止することはありません。何も失敗していません。ただし、ウイルスまたはバグがジャンクを書き込んでいるためにファイルが破壊され、RAID 1ミラーのドライブとRAID 5システムの3つのドライブすべての両方に書き込まれます。

これがRAIDがバックアップではない理由です。ディスク障害である可能性が最も高い障害を防ぎますが、他の多くのシナリオを考慮していません。


4
+1「これがRAIDがバックアップではない理由」神は「大丈夫、バックアップをRAIDでカバーしてくれた」と聞いた回数を知っている
ウルダ

2
RAIDは、どのデータが良好で、どのデータが不良であるかをどのように区別できますか?

1
ショーン...データがウイルスに食われたり、誤って削除されたりした場合、RAIDはそれを決して良いか悪いかを区別できません。RAIDが担当するのは、両方のディスクが同等であることを(RAID 1で)確認することです。セクターがチェックサムに失敗した場合、RAIDコントローラーはそれを修復するか、再構築をトリガーします。RAID 5では、セクターがパリティチェックに失敗すると、再構築がトリガーされます。RAIDは、物理ドライブが故障したり、データが失われたりすることから保護します。プログラムの障害やウイルスによって失われたデータから保護することはできません。
ウルダ

6
RAID 5の特性評価は不正確です。個別のパリティドライブはありませんが、代わりにパリティはすべてのドライブに分散されます。最終的に利用可能な合計スペースはn-1になりますが、パリティ専用のドライブはありません。
MDマーラ

2
これに反対票を投じる必要があります。RAID1はチェックサムを行わ、完全なドライブ障害からのみ保護します。1つのドライブがガベージを返し始めた場合、どのドライブが正しいかを知る方法がなく、喜んでガベージデータを返します。RAID5パリティチェックのため、わかりません。これがまさにZFSやBTRFSのようなファイルシステムが発明された理由です。そのため、データのブロックを検証するチェックサムを使用してガベージデータを適切に修正できる「データ対応」RAIDのようなシステムを取得できます。
アレックス

5

他の人が指摘したように、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のような履歴保存ファイルシステムに注目してください。


3

実際には、はい。ハードドライブの障害の大部分は、すべて発生するか、まったく発生しません。(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などの暗号化ハッシュを使用します。


あなたが....この1のための答えを与えることができる任意のチャンス superuser.com/questions/736612/...を
ミック・
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.