Ubuntu10.04で作成した4つのHDを備えたmdadm/lvm2ボリュームがあります。コンピューターをUbuntu10.10にアップグレードしました。
ボリュームを起動して実行するためにmdadmコマンドをやり直し、mdadm --detail --scan> /etc/mdadm/mdadm.confを実行して構成ファイルを取得しました。
しかし今、再起動するたびに、ボリュームの準備ができていないことがわかります。/proc/mdstatは、ボリュームの1つのディスクが常にmd_d127として「非アクティブ」であることを示しています。このボリュームを停止し、すべてを再組み立てして機能させる必要があります。
これは、mdadm --detail --scanから取得し、/ etc/mdadm /mdadm.conf内に配置したものです。
ARRAY /dev/md127 level=raid5 num-devices=4 metadata=01.02 name=:r0 UUID=7610a895:a54fe65b:c9876d2a:67f4a179
そして、これは起動時の私の/ proc/mdstatです:
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md127 : inactive sdb1[2](S) sdd1[0](S) sda1[4](S)
2930279595 blocks super 1.2
md_d127 : inactive sdc1[1](S)
976759865 blocks super 1.2
unused devices: <none>
このボリュームを再び機能させるには、mdadm -S/dev/md_d127、mdadm -S/dev/md127、mdadm -A--scanを実行する必要があります。
どうしたの?これはUbuntu10.04では発生しませんでした。私は今、raid5データが失われることを本当に恐れています。
問題は、更新されたバージョンのmdadm
がinitrd
に存在するmdadm.conf
に依存していることです。これは、おそらく正確/完全ではありません。その内容を確認するには、次のようにします。
gunzip -c /boot/initrd.img-2.6.38-11-generic | cpio -i --quiet --to-stdout etc/mdadm/mdadm.conf
正確なARRAYエントリが含まれていない場合、mdadmはスーパーブロックで構成された名前を/dev/md/
の下のリンク名として使用しようとします。これにより、/dev/md127
などにリンクされます。これは明らかに以前の動作とは一致しません。
mdadm -Ds
またはmdadm -Es
を直接使用して/etc/mdadm/mdadm.conf
を生成するよりも、/usr/share/mdadm/mkconf
スクリプトを使用する方がおそらく良いでしょう。
Sudo /usr/share/mdadm/mkconf force-generate /etc/mdadm/mdadm.conf
最も重要なステップは、initramfsを再構築して、更新された構成を含めることです。
Sudo update-initramfs -u
実際、/usr/share/initramfs-tools/hooks/mdadm
の魔法のおかげで、/usr/share/mdadm/mkconf
が存在しないか、配列が含まれていない場合、/etc/mdadm/mdadm.conf
は自動的に実行されます。存在し、アクティブな配列のサブセットのみが含まれている場合は、欠落している配列ごとに警告が表示されるため、新しいmdadm.conf
を手動で生成する必要があります。
Udevがmdadmをロードしていることを確認することもできます。
/lib/udev/rules.d/85-mdadm.rules
を探します。次のようなものがあることを確認してください。
\# This file causes block devices with Linux RAID (mdadm) signatures to
\# automatically cause mdadm to be run.
\# See udev(8) for syntax
SUBSYSTEM=="block", ACTION=="add|change", ENV{ID_FS_TYPE}=="linux_raid*", \
RUN+="/sbin/mdadm --incremental $env{DEVNAME}"
そうでない場合は、これを/etc/udev/rules.d/85-mdadm.rules
にコピーしてください-注/etc
NOT /lib
。
これを編集してください
metadata=01.02
と
metadata=1.02
からの結果
#mdadm --detail --scan > /etc/mdadm/mdadm.conf
完全に正しくありません。
アレイ全体を再フォーマットすることにしました。これはUbuntu10.10で機能します。
Sudo mdadm -C /dev/md0 -l 5 -n 4 -e 1.2 /dev/sd[bcde]1
Sudo mdadm -Ds | Sudo tee /etc/mdadm/mdadm.conf
Sudo pvcreate /dev/md0
Sudo vgcreate vg0 /dev/md0
Sudo lvcreate vg0 --name lv0 --extents '100%FREE'
Sudo mkfs.ext4 /dev/vg0/lv0