RAIDは一貫性のないデータをどのように処理できますか?


8

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のデータが間違っている」とどのように伝えることができますか?可能?


これは、「巡回読み取り」またはバックグラウンド整合性チェックの対象です。
ewwhite 2016年

2
これは、不良ブロックを早期に検出し、実際のエラーが発生する前に別の場所にデータを移動する場合に役立ちます。しかし、それでも読み取り可能で一貫性のないデータを処理する必要があります。RAID-1の例を見てみましょう。ディスク上のブロックが読み取り可能で「0」と表示されている一方で、他のディスクの同じブロック読み取り可能で「1」と表示されている場合、コントローラーはどのブロックが正しいかをどのようにして知ることができますか?
マッシモ

RAID 1はパリティを提供しないため、システムは問題の検出と修正に非常に苦労します。破損したファイルを取得するには、おそらくドライブをプルして個別に読み取る必要があります。
ブライアンD.

簡単な解決策
Patrick

回答:


3
RAID VOLUMES WITH PARITY STRIPE

整合性チェック中に使用するArecaコントローラー(およびすべての最新のハードウェアRAIDコントローラー)では、コントローラーが破損の原因がパリティデータ、ディスク上の物理データ、またはその両方であるかどうかを検出できます。ほとんどのコントローラーは、パリティデータとディスク上のデータの単純なチェックサムビットでこれを実現します。

パリティデータが破損している場合、整合性チェックを実行し、物理ディスクを正しいビットで再度読み取り、パリティストライプを再書き込みすると、コントローラーが問題を認識します。ユーザーはファイルを開くときにディスク上のデータを読み取っているので、問題は発生しません。破損したパリティストライプが再書き込みされる原因となるものをすべて保存すると、問題も修正されます。

反対のことが発生し、実際のディスク上のデータが少し反転した場合、コントローラーは整合性チェック中にパリティストライプを調べて、変更されているかどうかを確認します。この場合、コントローラーはディスク上のデータを上書きして、パリティデータと一致させます。これにより、コントローラーは変更されていない/良好であることを確認できます。一貫性チェックが実行されてエラーが修正されるまで、データに応じて、CRCエラーまたはファイルの破損が発生します。

ディスク上の特定のデータのパリティデータが実際のデータと同じドライブに保存されることはないため、単一のドライブの障害によってデータ破損の問題が発生することはありません。または、RAID6などの2つのディスク

整合性チェックは、データを可能な限り正確に保ちます。破損したデータをボリュームに長時間放置すると、パリティデータに書き込まれる可能性があります。つまり、ファイルは破損しており、バックアップから復元する必要があります。ドライブが故障前の状態にあり、整合性チェック中にエラーが表示されている場合は、コントローラーがドライブに故障のマークを付けるのを待つのではなく、ドライブをすぐに交換してください。整合性チェックは、少量の場合は毎日、大量の場合は毎週実行されます。

RAID VOLUMES WITHOUT PARITY STRIPE (EX. RAID1)

ハードドライブコントローラー/ファームウェアが問題を修正できる場合があります。これが不可能な場合、RAIDコントローラーは問題の修正に非常に苦労します。この場合、データを回復するには、ドライブを個別に読み取る必要があります。

GENERALLY SPEAKING

RAIDカード製造が推奨する間隔で整合性チェックを実行します。破損が本当に心配な場合は、RAIDボリューム上に復元力のあるファイルシステムをスタックすることもできます。最新の回復力のあるファイルシステムは、これらのデータ整合性の問題の多くを修正でき、RAID6を介して回復力のあるFSをスタックすると、破損することなく優れたデータアップタイムを実現できます。また、2つの同時ドライブ障害が発生しても、破損したデータがユーザーに提示されないように、FSパリティデータを利用できます。


2

1つのディスクがエラーを書き込む(または読み取る)状況を効果的に説明します。RAIDコントローラーには、この状況から保護するための実用的な方法(たとえば、書き込みと読み取りでパフォーマンスが低下する)はありません。この種のエラーを検出できるディスクに依存し、別のブロックを使用するか、ボリュームからベイルアウトして、RAIDの低下を引き起こす必要があります。

単一ディスクの状況について考えると、一貫性のない書き込み(または読み取り)に対する唯一の保護はディスク自体です。RAIDはその上に構築されますが、追加の保護手段を導入しません。

NB私は経験上、XFSがアレイ内のエラーのあるディスクに非常に敏感に反応することを知っています。したがって、少なくとも私の非ローエンドコントローラーとOSは、その不整合を認識しましたが、保護しませんでした(障害のあることがわかっているディスクが強制的にボリュームに追加されました)。

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