mdadmを使ったRAIDで再起動時に片肺になる問題

先日の2009-07-22 - 日々雑文で書いてた方法で、mdadmを使ってRAID1を構築してたんだけど、再起動するときに片方のドライブがRAIDのメンバとして認識されずに、再起動する旅にRAIDが壊れるという現象が起っていた。


[vine-users:077782] mdadm$B$G:F(B$B5/F0$9$k$HJRGY$K$J$k(Bとかを辿って原因を調べてたんだけど、結論としては領域IDの設定を間違えていたためにRAIDがうまく認識されないという状態だった様子。

デバイス Boot      Start         End      Blocks   Id  System
/dev/hdb1               1       30474    15358864+  fd  Linux raid 自動検出
/dev/hdb2           30475       71120    20485584   fd  Linux raid 自動検出
/dev/hdb3           71121       77622     3277008   82  Linux swap / Solaris

ドライブを交換して fdisk で領域を作成しただけではこの System のところが Linux となっていて、ID は 83 の状態だった。


この System が Linux で ID が 83 でも mdadm を使って RAID のメンバにして RAID を構成することはできるし、その状態でも一応動いてはくれる。

でも実際にトラブルが起ったりすると、RAIDとしては役に立たない状態になっていると思う。


上記の問題はそのまま fdisk で領域 ID を「fd Linux raid 自動検出」に設定しておけば問題ない。

本当なら mdadm で --add するときとかに警告出すと化してくれると一番いいんだけどなぁ…

ということで、2009-07-22 - 日々雑文の記事はちょっと修正した。