3つのSATAハードドライブを持つサーバーがあります。各パーティションには2つのパーティションがあります。小さい部分は raid1 配列 (/boot) の /dev/md0 の一部であり、残りは lvm 物理ボリューム raid5 配列 (/dev/md1) の一部です。その中には3つの(IIRC)論理ボリュームがあります。そのうちの1つは、約100 GBのデータを保存できるreiserfs 3.6 fsです。
昨日サーバーがダウンしました。起動時に、SMARTはドライブの1つが破損していることを示すメッセージを表示します。彼は本当に不快な音を出した。そのため、故障したドライブを取り外し、残りの2つのディスクからシステムを再起動してみました。失敗しました。
ライブCDを使って起動し、アレイを再起動してみました。残念ながら、mdadmは残りの2つのディスクのうちの1つにエラーが発生したと思うため、これを拒否します。
したがって、次のアドバイスに従ってください。破損したLinux md RAID5アレイを修復する方法は?私の場合は効果があるようです。おそらく愚かなことをしたでしょう。
mdadm --create /dev/md1 --assume-clean -l5 -n3 -c64 /dev/sd[ab]2 missing
これで実際にアレイを起動できますが、lvmツール(vgscan、vgdisplay、pvck)はアレイ内のlvmに関連するものを見つけることができず、データをまったくインポートできません。今、すべてのlvmメタデータを消去しましたか?
私の気持ちには、実際のデータが破損せずにそのまま残っているということです(lvmメタデータを除く)。データを再インポートする可能性はありますか?どのように?
修正する:
psusiのアドバイス(以下)に従って配列を再生成するために、次の方法をそれぞれ試しました。
mdadm --create /dev/md1 --assume-clean -l5 -n3 -c64 /dev/sda2 /dev/sdb2 missing
mdadm --create /dev/md1 --assume-clean -l5 -n3 -c64 /dev/sdb2 /dev/sda2 missing
mdadm --create /dev/md1 --assume-clean -l5 -n3 -c64 /dev/sda2 missing /dev/sdb2
mdadm --create /dev/md1 --assume-clean -l5 -n3 -c64 /dev/sdb2 missing /dev/sda2
mdadm --create /dev/md1 --assume-clean -l5 -n3 -c64 missing /dev/sda2 /dev/sdb2
mdadm --create /dev/md1 --assume-clean -l5 -n3 -c64 missing /dev/sdb2 /dev/sda2
mdadm --create /dev/md1 --assume-clean -l5 -n3 -c512 /dev/sda2 /dev/sdb2 missing
mdadm --create /dev/md1 --assume-clean -l5 -n3 -c512 /dev/sdb2 /dev/sda2 missing
mdadm --create /dev/md1 --assume-clean -l5 -n3 -c512 /dev/sda2 missing /dev/sdb2
mdadm --create /dev/md1 --assume-clean -l5 -n3 -c512 /dev/sdb2 missing /dev/sda2
mdadm --create /dev/md1 --assume-clean -l5 -n3 -c512 missing /dev/sda2 /dev/sdb2
mdadm --create /dev/md1 --assume-clean -l5 -n3 -c512 missing /dev/sdb2 /dev/sda2
これは、-c64 および -c512 を含む基本的に可能なすべてのコマンドです。すべてのテストが完了したら、vgscanを実行します。誰も何も見つかりませんでした。たぶんvgscanを使用せずに他のツールを使用する必要がありますか?
アップデート2:
故障したハードドライブを再接続してみました。奇跡的に効果があるようです。少なくともそれを確認するのに十分です。
root@debian:~# mdadm --examine /dev/sda2
/dev/sda2:
Magic : a92b4efc
Version : 0.90.00
UUID : 1f5462ab:6945560d:019b01a5:914dd464
Creation Time : Fri Oct 17 12:40:40 2008
Raid Level : raid5
Used Dev Size : 160015360 (152.60 GiB 163.86 GB)
Array Size : 320030720 (305.21 GiB 327.71 GB)
Raid Devices : 3
Total Devices : 3
Preferred Minor : 1
Update Time : Tue Apr 12 08:15:03 2011
State : active
Active Devices : 3
Working Devices : 3
Failed Devices : 0
Spare Devices : 0
Checksum : 64d514fb - correct
Events : 137
Layout : left-symmetric
Chunk Size : 64K
Number Major Minor RaidDevice State
this 0 8 2 0 active sync /dev/sda2
0 0 8 2 0 active sync /dev/sda2
1 1 8 18 1 active sync /dev/sdb2
2 2 8 34 2 active sync /dev/sdc2
それでは、アレイを「正しく」起動できるように、このスーパーブロックを他の2つのデバイスにコピーする方法はありますか?
ベストアンサー1
私も同様の設定をしており、ドライブごとに小さなパーティションにLinux全体をインストールすることをお勧めします。いいえこれらの小さなパーティションをミラーリングしますが、個別に完全に起動可能にします。
sync
インストール中にいくつかの重要なファイル(/etc/fstab
、grub設定)を除外できます。これにより、より多くのスペースが必要になるだけでなく、/boot
問題が発生したときに多くの時間を節約できます。