
私は 4 + 1 ディスクのソフトウェア RAID5 アレイを持っていますが、そのうち 2 つのディスクが故障しています。何らかの衝撃的なメンテナンスにより、故障したディスクの 1 つが再び動作し、ブロック レベルのコピーを実行してイメージを取得できるようになることを期待しています。
計画としては、dd を使用して 4 台 (または 5 台すべて) のディスクのイメージを作成し、それらのイメージでアレイを再構築してみることです。
すぐに私が見落としてしまい、これが不可能になるようなことはありますか? そうでない場合、どうすればよいでしょうか:
- 各デバイスのイメージをファイルにコピーする
- これらをマウントする
- これらのイメージをデバイスとして使用するようにmdadmを再設定します
明らかに、データが破損する原因はいろいろ考えられますが、実際のデータは 4 つのディスク間でそのまま残っていると考えられる理由がいくつかあります。
- 2番目のディスク障害は停電によるものかもしれない
- 回復したいデータは最初の障害後に書き込まれなかった
答え1
一般的に、このアプローチは有効です。ディスクが動作している限り(そしてディスクが故障するとは予想していない場合)、デバイスマッパーを使用してオーバーレイスナップショットを作成するディスクからデータを完全にコピーする代わりに (ただし、バックアップとしてコピーを保持しておくのは良いことです)。
イメージファイルを入手したら、そこからループバックブロックデバイスを作成する必要があります。
losetup /dev/loopX /path/to/imagefileX
これが完了したら、組み立てるループバックブロックデバイスを使用してアレイを再構築します。最新の障害ディスクを回復できず、冗長ディスクイメージのタイムスタンプが他のディスクと異なる場合、アレイはアセンブルを拒否します。本当に障害発生前に書き込まれたデータのみに興味がある場合は、「障害が発生したソフトウェア RAID の回復」セクションを参照してください。少なくとも一部のデータを回復可能な状態でアレイを組み立てるのに役立つはずです。