私のシステムには2つのmdadm配列があります。
alex@fileserver:~$ cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md1 : active raid5 sdc1[0] md0[3] sde1[1]
7759197184 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]
md0 : active raid0 sdd1[1] sdb1[0]
3907019776 blocks super 1.2 512k chunks
unused devices: <none>
詳しく見ると、配列でmd1
使用されていることがわかります。md0
(4TBディスク2個と2TBディスク2個がありますが、これが連携する方法です...)
これは、起動時を除いて、うまく機能します。私のものにもmdadm.conf
次の行があります。
ARRAY /dev/md/0 metadata=1.2 UUID=ba271258:3f18f660:1d5d19aa:2bd0d8e3 name=fileserver:0
ARRAY /dev/md/1 metadata=1.2 UUID=262a6823:3fafb521:75e315ab:f2de4329 name=fileserver:1
それはよく結合されましたが、md0
その配列の中で迷子md1
になり、md0
最終的にはスペアのsdc1
ようにそこに座るようになりました。sde1
mdadmが配列を並列に組み立てようとしていると思いますか?
起動後にこれを行うと、mdadm --stop /dev/md1
アレイmdadm --assemble --scan
が正しく結合されます。
私のシナリオは標準ではないかもしれませんが、この問題に対する簡単な解決策はありますか?たとえば、mdadm.confにこれを知らせる方法は何md1
ですかmd0
? mdadmの後に停止/アセンブリコマンドを実行する小さなinitスクリプトをいつでも作成できますが、適切な解決策が存在する場合は、これらのハッキングを避けることをお勧めします。特に、md1
システムサービスを適切に操作するための存在とインストールに依存関係があるためです。
答え1
これは12.04(カーネル〜3.2.0.40)に表示され、16.04で修正されるまで存在していたUbuntuのバグです。 Debian バージョンでは同じ問題は発生しません。
Ubuntuでの会話バグトラッカー:
(タラントがユーザー):
[Debian] Wheezyはmdのudevを無効にし、rcスクリプトを使用して起動時にアセンブルするため、起動後にアレイを自動的にアセンブルしません。 Trustyは起動中および起動後に物理デバイスを組み立てますが、/dev/md0などの仮想デバイスは無視しているようです。
Tarantogaはudevルールファイルに1行を追加して簡単な解決策を見つけました。
/etc/udev/rules.d/85-mdadm.rules
:
SUBSYSTEM=="block", ACTION=="add|change", ENV{ID_FS_TYPE}=="linux_raid_member", DEVPATH=="*/virtual/*", RUN+="/sbin/mdadm --incremental $tempnode"
このソリューションは私にとって効果的です。 2つの縞模様のミラーがありますが、起動時に縞模様のみが組み立てられます。このルールを適用すると、すべてが正しく組み立てられます。
(はい、ストライプミラーがストライプミラーよりも優れている特定のユースケースがあります:-))