web-dev-qa-db-ja.com

デュアルディスク障害後にSoftwareRaid 10が破損したスーパーブロックですが、どうすれば回復できますか?

私は6x 2tbハードドライブ(/ bootのRAID 1)を備えたソフトウェアRAID10を持っています。ubuntu10.04がOSです。

RAIDコントローラーに障害が発生し、2つのドライブが同期しなくなり、システムがクラッシュしました。最初はOSが起動せず、代わりにinitramfsに入り、ドライブがビジーであると言いましたが、最終的にはドライブを停止して組み立てることで、RAIDを起動できました。 。

OSが起動し、ファイルシステムエラーが発生したと表示されましたが、問題が発生した場合に読み取り専用モードでfsが再マウントされるため、無視することにしました。

すべてが正常に機能しているようで、2つのドライブが再構築され始めました。ログファイルにdmaエラーがあったため、SATAコントローラーの障害であると確信していました。

その後すぐにOSがクラッシュし、extエラーが発生しました。

これでレイドが発生しなくなり、すべてのデバイス名を使用して手動でアセンブルした場合でも、/ dev/sda2にスーパーブロックがないことが示されます。

私はまた、memtestを実行し、他のすべてに加えてマザーボードを変更しました。

編集:これは私のパーティションレイアウトです

Disk /dev/sdb: 2000.4 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders, total 3907029168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x0009c34a

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *        2048      511999      254976   83  Linux
/dev/sdb2          512000  3904980991  1952234496   83  Linux
/dev/sdb3      3904980992  3907028991     1024000   82  Linux swap / Solaris

6つのディスクはすべて同じレイアウトで、パーティション#1はRAID 1/boot用、パーティション#2はRAID 10ファープラン用、パーティション#3はスワップですが、sdaではスワップが有効になっていませんでした

EDIT2:これはmdadm --detail/dev/md1の出力です

Layout : near=1, far=2
Chunk Size : 64k

UUID : a0feff55:2018f8ff:e368bf24:bd0fce41
Events : 0.3112126

Number Major Minor RaidDevice State
0      8     34    0          spare rebuilding /dev/sdc2
1      0     0     1          removed
2      8     18    2          active sync /dev/sdb2
3      8     50    3          active sync /dev/sdd2
4      0     0     4          removed
5      8     82    5          active sync /dev/sdf2

6      8     66    -          spare /dev/sde2

EDIT3:ddrescueを実行しましたが、レイドスーパーブロックであると思われる単一の4096バイトセクターを除いて、sdaからすべてをコピーしました。

EDIT4:ここに収まるには長すぎる情報があります

lshw: http://Pastebin.com/2eKrh7nF

mdadm --detail/dev/sd [abcdef] 1(raid1): http://Pastebin.com/cgMQWerS

mdadm --detail/dev/sd [abcdef] 2(raid10): http://Pastebin.com/V5dtcGPF

/ dev/sda2のdumpe2fs(ddrescueクローンドライブから): http://Pastebin.com/sp0GYcJG

コマンドでこの情報に基づいてmd1を再作成しようとしました

mdadm --create /dev/md1 -v --assume-clean --level=10 --raid-devices=6 --chunk=64K --layout=f2 /dev/sda2 missing /dev/sdc2 /dev/sdd2 missing /dev/sdf2

しかし、マウントできません。最初のmdadm --detail/dev/md1に基づいて再作成しようとしましたが、それでもマウントされません。

また、/ dev/sda2はext2fsファイルシステムであると警告されますが、ddrescueが原因だと思います

EDIT5:/ dev/sdbは実際には/ dev/sdcであり、その逆もあることがわかりました。また、使用していた新しいライブCDがデフォルトで1.2メタデータに設定されていたため、これらのディスクのデータが破壊された可能性があるため、大きな間違いを犯しました。それらを他の6台のドライブに複製しました。

EDIT6:今度は正しい--metadataオプションを使用して、配列を再作成することで、ようやく配列を回復することができました。誰かが私の状況にあり、これを読んでいる場合は、データをミラーリングして、私のように間違いから回復できるようにすることが非常に重要です。また、ライブCDを起動すると名前が変更されるため、すべてのドライブをmdadmで調べてください。正しい順序で再作成することが重要です。スペアとしてマークされたドライブはすべて、欠落しているものとして設定する必要があります。

1
Shoshomiga

プロのデータ復旧会社の所有者として、このように壊れたRAIDを再構築する適切な方法は、各ドライブのクローンまたはイメージを作成することです。オリジナルを使用しないでください。ドライブのイメージを取得したら、X-Waysなどのある種のソフトウェアでRAIDを再作成する必要があります。ドライブの正しい順序を維持するようにしてください! RAID ARRAYの再構築は非常に複雑になる可能性があり、データが重要な場合は、ドライブにラベルを付けて評判の良い会社に送信する必要がありますが、ほとんどのRAIDリカバリは安価ではありません。

1
Don Anderson