複数のディスク上の修正不可能なセクターを持つ RAID5 を再構築する

複数のディスク上の修正不可能なセクターを持つ RAID5 を再構築する

私のソフトウェア RAID5 (mdadm) システムは 5 つのディスクで構成されています。最近、特定のファイルを読み取るときに I/O エラーが発生します。他のほとんどのファイルはまだ読み取り可能です。

最初は、どのディスクが壊れているかを(smartctlを使用して)調べ、他のディスクも故障する前に故障したディスクをすぐに交換してアレイを再構築するつもりでした。しかし、smartctlは、三つディスクに修正不可能なエラーがあります。

これら 3 つのディスクの不良セクタが交差していない限り、mdadm は再構築できるはずであり、1 つずつ交換して再構築するオプションが提供されると思います。

それとも、I/O エラーが発生しているという事実は、パリティが失われ、複数のディスク上の同じセクターが読み取り不能であることを示しているのでしょうか? 障害のあるセクターが交差し、その結果情報が回復不能に失われているかどうかを確認する方法はありますか?

答え1

標準的な手順は次のとおりです。

  1. 常に最新の情報を入手バックアップ(少なくとも 2 つの独立したコピーが異なる場所に、少なくとも異なるメディアに保存されている)
  2. 継続的にモニターRAID に問題がないか確認してください。エラーが蓄積されると RAID は役に立たなくなります。
  3. スクラブ少なくとも月に 1 回はディスクをアップグレードしてください。これにより、エラーが蓄積され、再構築が妨げられるのを防ぐことができます。
  4. 考慮するRAID 62 つの冗長ディスクを搭載。

あなたはこれを真剣に受け止めていないようです。まだ残っているものを回復してみてください故障しそうになったアレイを再構築しようとすると、予想以上に大きな損害が発生する可能性があります。

データが十分に価値がある場合は、信頼できる有能なデータ復旧サービスを探してください。4 桁から 5 桁の金額を用意してください。そうでない場合は、ディスクの交換、再フォーマット、再インストールを繰り返し、標準の手順をより真剣に実行してください。

答え2

  1. 読み取り不可能なセクターが「交差しない」、つまり異なるストライプにある場合、MD RAIDは正しいです。5月パリティを使用してデータを回復します。ただし、回復中に一部のドライブが追い出される可能性があり、その場合、可能性は大幅に低下します。

  2. データ復旧には一般的なルールがあります:常に生のダンプから始めるこれにより、無制限の試行が保証されます。何かを台無しにしてしまった場合は、ダンプからやり直すことができます。したがって、一般的には、故障したディスクをすべて正常に機能しているディスクにクローンし、エラーを読み取ってから、新しいディスクから RAID を組み立てることができます。

  3. まず、各ドライブをセクターごとに交換用のドライブにクローンすることから始めますddrescue(つまり、ないMD RAIDリカバリ手順を使用して)エラーをコピーするだけでなく、ログファイルは、実際には不良セクタ マップです。3 つすべてをクローンすると、それらのマップを比較して、交差があるかどうかを確認できます。マップは破棄しないでください。回復中に役立つ場合があります。

  4. しかし、RAID5 は、このようなダンプという意味では非常に厄介な存在です。何が問題になるのでしょうか? ドライブのセクターがまったく読み込まれず、I/O エラーが発生した場合、RAID レイヤーは他のディスクからそのデータを回復します。これは、古いディスクの場合に当てはまります。しかし、エラーなしで読み込まれても間違ったデータが返された場合、RAID はパリティから回復しようとせず、代わりにその間違ったデータを返します。読み取りddrescue不可能なセクターをゼロで埋めます。これは、後でこのクローン デバイスを使用してアレイを組み立てるときに読み戻されるため、元のデータを回復できる可能性がある場所でゼロ (破損したデータ) が読み込まれることになります。RAID はデータを保証するものではありません。誠実さこれは、2 つのパリティ シンドロームを持つ RAID6 または 2 つ以上のミラーを持つ RAID1 を除くすべてのバリアントで実際に発生する問題です。また、すでにお察しのとおり、この問題は RAID5 の場合に最も大きな問題として現れます (これに対する追加の考慮事項として、最新のディスク サイズとそのビット エラー レートに関するものがあります)。

  5. クローン作成中にディスクが完全に壊れることがあります。そうなると、行き詰まってしまいます。この時点から回復することは可能ですが、コストがかかります。多くの「クリーンルーム」を備えたサービスがあり、ハードディスク内のヘッドを交換して再度読み取りを試みることができますが、これは遅く、エラーが発生しやすく、かなりの料金がかかる可能性があります。データが非常に貴重な場合は、これを検討してください。

  6. したがって、元のディスクをクローンし、その後クローンを保管し、アレイを組み立てるのが賢明です。オリジナルディスクを取り出し、アレイ自体からクローンを作成しようとします(/dev/mdX)。何か問題が発生した場合(ディスクが故障した場合)、クローンで置き換え、その後、ログファイル(3ページ)を参照して、壊れたストライプを手動で回復します(4ページを参照)。これは非常に大変な作業です。また、2回リカバリを実行するには、元のスペースが必要です。または、自分では何もせず、専門家に作業全体を外注します。これは、アレイとデータの不適切なメンテナンスに対して支払う代償です。

  7. そして、今、あなたはこの貴重な経験をしました。配列を責めるのではなく、自分自身を責め、教訓を学び、配列を正しく管理してください。

  • RAID5 を使用する前に 3 回考えてください。その後、「いいえ」と言って別の RAID レベルに進みます。
  • アレイを定期的にスクラブします。これは、MD RAID がドライブ上のデータを読み取って比較し、何か問題 (不一致、読み取り不可能なブロック) がある場合はベルを鳴らすことを意味します。その後、初期症状が現れたら、動作不良のドライブを交換できます。優れたディストリビューションでは、これがすぐに構成されます (少なくとも Debian)。
  • 問題の重要な兆候を見逃さないように、ディスクとアレイを監視します。
  • 最後に、定期的にデータをバックアップする管理者のクラブへようこそ。

関連情報