走った
mdadm -A /dev/md0 /dev/sda1 /dev/sdb1
ただし、/dev/sdb1
のみが配列にロードされました。同じ2つのドライブにもいくつかのアレイがあります。 sda
のパーティションが失敗するたび。 dmesg
はsda
が同期していないと言った...これはレスキューCDからのものだったので。 sda
(ハードウェアに関して)を切断したのは、起動が妨げられていたためです。
どうすればよいですか?これがドライブの中断の原因である可能性がありますか?先日、追跡できなかった奇妙なfsの問題がいくつかありました(おそらく前兆):後で魔法のように再表示されたファイルの欠落。たぶんケーブルがありませんか?
主な質問は、ドライブを再同期するにはどうすればよいですか?
cat /proc/mdstat
Personalities : [raid10]
md3 : active raid10 sda4[1]
955683840 blocks super 1.2 512K chunks 2 far-copies [2/1] [_U]
md2 : active raid10 sda3[1]
10483712 blocks super 1.2 512K chunks 2 far-copies [2/1] [_U]
md1 : active raid10 sda2[1]
10484736 blocks 512K chunks 2 far-copies [2/1] [_U]
md0 : active raid10 sda1[1]
101376 blocks 512K chunks 2 far-copies [2/1] [_U]
unused devices: <none>
更新
他のドライブ全体でbadblocks
を実行し、長いsmartctl
テストを実行しましたが、問題は見つかりませんでした。
mdadm -D /dev/md0
(他に必要な場合はmd0-3があります)の要求出力
/dev/md0:
Version : 0.90
Creation Time : Mon May 31 20:24:14 2010
Raid Level : raid10
Array Size : 101376 (99.02 MiB 103.81 MB)
Used Dev Size : 101376 (99.02 MiB 103.81 MB)
Raid Devices : 2
Total Devices : 1
Preferred Minor : 0
Persistence : Superblock is persistent
Update Time : Mon Oct 25 07:58:25 2010
State : clean, degraded
Active Devices : 1
Working Devices : 1
Failed Devices : 0
Spare Devices : 0
Layout : far=2
Chunk Size : 512K
UUID : 30ffe1d2:f5759995:820bb796:b5530bd2 (local to Host slave-iv)
Events : 0.212
Number Major Minor RaidDevice State
0 0 0 0 removed
1 8 1 1 active sync /dev/sda1
ドライブに実際の問題は見つかりませんでしたが、明らかに問題が発生したので、次に何をすべきか疑問に思います。 今日現在、重要なデータの完全バックアップが実施されています
pdate 2sda
であったものを(少なくともワイプせずに)追加しようとすると、カーネルマジックナンバーエラーでブートプロセスが台無しになります。カーネルバージョンが同期しなくなったためだと思います。現在、このドライブはsdd
として外部エンクロージャーにあります。 USB経由で接続しているときに、このドライブを再追加(再同期)する必要がありますか?それは問題を引き起こしますか?
df
Filesystem Size Used Avail Use% Mounted on
udev 10M 284K 9.8M 3% /dev
/dev/md1 9.9G 7.0G 2.4G 75% /
shm 3.0G 1.5M 3.0G 1% /dev/shm
/dev/md0 96M 15M 77M 16% /boot
/dev/md2 9.9G 6.5G 3.0G 69% /var
/dev/md3 898G 451G 402G 53% /home
none 1.0G 45M 980M 5% /tmp
/dev/sdb1 992M 36M 956M 4% /media/D4A4-B7C1
各mdドライブには、対応するsda/sdbがあります。プルしなければならなかったのは、アレイ内のsdaドライブ(または0ドライブ)でした。
さて、明らかに、ディスクの1つが現在アレイでアクティブではありません。現在の列挙では、_/dev/md0
_に_/dev/sdb1
_がない場合を考えてみましょう。
_/dev/sdb1
_を以前の状態に戻すには:
_mdadm -a --re-add /dev/md0 /dev/sdb1
_
配列を再チェックして、データがすべて一貫していることを確認することをお勧めします。
_echo check >>/sys/block/md0/md/sync_action
_
最初から再ミラーリングするには:
_/dev/sdb1
_がアレイから完全に削除されていることを確認してください。
_mdadm -f /dev/md0 /dev/sdb1
mdadm -r /dev/md0 /dev/sdb1
_
_/dev/sdb1
_の構成を消去して、mdadm
が完全に新しいディスクであるかのようにアレイに追加し直します。
_mdadm --zero-superblock /dev/sdb1
_
_/dev/sdb1
_をメンバーとして配列に追加し直します。
_mdadm -a /dev/md0 /dev/sdb1
_
USB上のディスクの同期はゆっくりと機能します。
ただし、問題は、ブートローダーが2番目のドライブに正しくインストールされていないため、挿入されたときに起動できないことだと思います。
これらの2つのドライブの順序を入れ替えて、システムが既知の適切な構成でドライブから起動するようにすることができます。
起動して両方のドライブを同期できるようになったら、両方のドライブにブートローダーを再インストールする必要があります。このようにして、どのドライブが欠落しているか、最初に列挙しても、いつでも起動できます。
ブートローダーを再インストールする方法はさまざまです。
lilo
≥22.0を使用している場合は、_boot = /dev/md0
_に_raid-extra-boot = mbr
_と_/etc/lilo.conf
_を指定し、lilo
を再実行します。古いlilo
を使用している場合は、アレイ内のディスクごとに1つずつ、2つのlilo構成を作成し、lilo
を各ディスクに個別にインストールします。grub-install /dev/sda
_および_grub-install /dev/sdb
_を実行してみてください。それが失敗した場合は、Grubシェルを使用してsetup (hd0)
およびsetup (hd1)
(_cat /boot/grub/device.map
_を使用して、Grubのハードディスク番号を確認してください)を試してください。