Sargeはインストール時にハードディスク構成をソフトウェアRAIDに出来る。 今までルートディスクのRAID構成は面倒だったが、これで手軽に可能になる。
# smartctl -a /dev/hdd
パッケージ名がsmartmontoolsと変更になっていた。apt-get install smartmontoolsとすればインストールできる。
腐るほどエラーログが出てくる。だめだこりゃ。
![]() アフリエイトについて |
交換し/dev/hdaと同じパーティションを切る。fdisk -lで情報を確認し、それ と同じパーティションを切る。LinuxのRaidで自動認識するファイルタイプは FDであるので忘れないように。
# fdisk -l /dev/hda # fdisk /dev/hdd ....
# mdadm --manage /dev/md0 --add /dev/hdd1では状況をみてみよう。
# cat /proc/mdstatコピーが開始されたようだ。しばらく時間がかかり、うまくコピーされたよう だ。無事解決。
# mdadm --detail --scanmdadm.confのための情報を取得し更新(mdadmのマニュアルを参照のこと)。
リブートすると、さっきの追加されたハードディスクが認識されていない。 こまった。何度やっても同じだ。
/dev/hda1と/dev/hdd1は約120.5GBの領域なので時間がかかる。そこでテスト のために/dev/hda1と/dev/hdd1を1GBのパーティションにして、そこをRAID1と してインストールして実験してみる。まずインストール後の稼働している状態 で/dev/hdd1を切り離し、/dev/hddにゼロを上書きする。次にパーティション を切りなおし、/dev/md0へ追加する。つまり、まったく新しいHDDをつけたの と同じ状態を作り出す。
# mdadm /dev/md0 -f /dev/hdd1 # mdadm /dev/md0 -r /dev/hdd1 # dd if=/dev/zero of=/dev/hdd count=100 # reboot 次は当然/dev/hdd1は認識されない。
# fdisk /dev/hdd <-/dev/hdaと同じにする # mdadm /dev/md0 -a /dev/hdd1 # watch -n 10 cat /proc/mdstat <- 状態をモニターして終ったら^Cする # rebootこれでリブートすると問題なく認識される。なぜだ。両者の違いは/dev/md0へ 割り当てるパーティションのサイズのみだ。これはパーティションサイズの違 いでうまくいったりいかなかったりするのだろうか。
考えられる違い
/dev/md0を30GB、/dev/md1を80GBにして運用を始める。今度、ハードディスク を交換する時、どうなるかはわからないが、これ以上復旧テストを繰り返すの も大変なのでここらで妥協する。ハードディスクが壊れてもデータはなくなら ないので、まあ、どうにかなるでしょう。
sargeはブート時にinitrdを使う。これを使うので、ブートディスクをraid化 できる。このイメージが/boot/initrd.img-2.4.27-2-386などとして入ってお り、gurbがブート時にロードしてくれる。あとから加えたあたらしいraidのディ スクの情報は当然initrd.img-2.4.27-2-386に入っていない。つまりブート時 にraidが認識されないのは当り前だ。なるほど。ハードディスクを変えてしまっ た時は、initrd.imgも作りかえなきゃいけないのだな。そうじゃないとブート 時に認識されないのは当り前だ。なるほど。 以前のinitrd.img-xxxを上書きするのは危険なので、別に作り、grubのメニュー エントリもちゃんと増やすこと。
# mkinitrd -k -o initrd.img 2.4.27-2-386 # find /tmp -name 'initrd.img'
場所がわかるので、そのファイルを/bootへコピーし、grubのメニューエン トリーを更新。
すずきひろのぶ Hironobu SUZUKI < hironobu -at- h2np -dot- net >
$Id: mdadm.htm,v 1.8 2005/11/15 02:00:16 hironobu Exp hironobu $