HPのサーバにCentOS4.4をインストールし、インストール時にソフトウェアRAIDの設定を行った。
無事RAID1になっているか確認するために、まずはSATA2のディスクのケーブルを抜いて起動。
無事、OSが立ち上がる。
cat /proc/mdstat
で、RAIDの状態を確認。
Personalities : [raid1] md1 : active raid1 sda3[1] 239585280 blocks [2/1] [U_]
sdb3のパーティションがあるHDDのケーブルを抜いたため、sda3のみが見えていて、sdb3のパーティションは見えていない。
そして、正常な状態であれば、 [UU]と表示されるところも、 [U_]となっており、HDDに異常があったことが分かる。
この状態を復旧させるため、電源を落とし、ケーブルをつないでブートさせ、
mdadm /dev/md1 -a /dev/sdb3
というコマンドを入力。/dev/sdb3は同期が取れなくなったパーティションを指定すること。
cat /proc/mdstatで状況を把握可能。
Personalities : [raid1] md1 : active raid1 sda3[2] sdb3[1] 239585280 blocks [2/1] [_U] [>....................] recovery = 0.2% (526528/239585280) finish=121.0m in speed=32908K/sec unused devices:
こうすると、自動的にリカバリーが始まる。スピードは30M/S程度なので250Gのディスクの同期をとる場合は、2時間以上かかる。
同期が完了すると、cat /proc/mdstatで下記のような表示になる。
Personalities : [raid1] md1 : active raid1 sdb3[1] sda3[0] 239585280 blocks [2/2] [UU]
次に、SATA1のディスクケーブルを抜いて、SATA2のディスクのみでブート可能か確かめる。SATA2のディスクのみでブートしても、sdbではなくsdaと認識されている。マスタ/スレーブがないSATAだとそうなるのか。
そして、SATA1のHDDをつなぎなおして、再度ブート。
そして、cat /proc/mdstatすると、SATA2のsdbがマスタとして起動していた。
md1 : active raid1 sdb3[1] 239585280 blocks [2/1] [_U]
SATAの仕様かわからないけど、最後にブートしたディスクの方のMBRからブートするようなので、SATA1をつなぎなおしても、SATA2のMBRからlinuxがブートする。