web-dev-qa-db-ja.com

mdadmボリュームは機能しますが、起動時にアセンブル/マウントされませんか?

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データが失われることを本当に恐れています。

7
Stride

問題は、更新されたバージョンのmdadminitrdに存在する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を手動で生成する必要があります。

3
Trevor Robinson

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

2
trendle

これを編集してください

metadata=01.02

metadata=1.02

からの結果

#mdadm --detail --scan > /etc/mdadm/mdadm.conf

完全に正しくありません。

1
Hieu

アレイ全体を再フォーマットすることにしました。これは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
1
Stride