« The Downward Spiral (Nine Inch Nails) | BIRKENSTOCK は気持ちよい »
2005.06.27: mdadmによるソフトウェアRAID
我が家ではwebサーバをソフトウェアRAIDで運用しています。S/W RAIDはdebianのsargeでは導入時にarrayが作成出来るので簡単に導入できます。
そのS/WRAIDですが、先日、片方のHDDが故障しました。
復旧を行ったのですが、以外に面倒でしたので、忘れないように復旧手順を書いておくことにしました。
(環境)
OS: debian sarge (kernel 2.4.31)
RAID: mdadmを使用したソフトウェアRAID
バージョン: mdadm 1.9.0-4 Manage MD devices aka Linux Software Raid
アレイの内容: /dev/hda と /dev/hdcをアレイとして設定
(障害内容)
/dev/hdaにIOエラーが発生し、/dev/hdcのみで動作している状態になった。そこで、/dev/hdaを取り外し、新しいHDDを/dev/hdaに設定し、RAIDを再設定する。
(復旧作業の内容)
1. 故障したHDDの取り外し
RAIDされているパーティーションが二つほど残っていたので、RAIDから切り離す。
という2ステップでS/WRAIDからパーティーションを切り離す。
その後、システムをシャットダウンし、HDDを内部から取り外す。
2. 新しいHDDの取り付け
新しいHDDを取り付ける。取り付けたら電源を投入
3.取り付けたHDDのフォーマット
2で取り付けたHDDを、壊れたディスクと同じ内容でパーティーションを作成する。 (以下/dev/hdaとして認識したものとする)
/dev/hdcパーティーションの正確な容量を確認
パーティーションの作成
を実行
この際、ディスクのsystemIDは "fd" linux raid autodetectに設定する。
/bootパーティーションにはbootフラッグを付ける。ファイルシステムは作成の必要は無い。
4.フォーマットしたHDDをRAIDに組み込む
すべてのパーティーションに対して、上記コマンドの実行を行う。
5.設定ファイルのチェック
上記、コマンドを実行し、RAID用設定ファイルのチェックを行う。
6./dev/hdaにブートローダを書き込む。
両方のHDDから起動するようにgrubコマンドを使用してブートローダーをhdaの/bootパーティーションに
書き込む。
(実行例)
場合によっては /bootではなく /grubと読み替える
7.再起動を行い、どちらのドライブからでも正常にOSが起動することを確認する。
そのS/WRAIDですが、先日、片方のHDDが故障しました。
復旧を行ったのですが、以外に面倒でしたので、忘れないように復旧手順を書いておくことにしました。
(環境)
OS: debian sarge (kernel 2.4.31)
RAID: mdadmを使用したソフトウェアRAID
バージョン: mdadm 1.9.0-4 Manage MD devices aka Linux Software Raid
アレイの内容: /dev/hda と /dev/hdcをアレイとして設定
(障害内容)
/dev/hdaにIOエラーが発生し、/dev/hdcのみで動作している状態になった。そこで、/dev/hdaを取り外し、新しいHDDを/dev/hdaに設定し、RAIDを再設定する。
(復旧作業の内容)
1. 故障したHDDの取り外し
RAIDされているパーティーションが二つほど残っていたので、RAIDから切り離す。
# mdadm --manage /dev/md0 --fail /dev/hda1 (RAIDにフェイルマークを付ける。)
# mdadm --manage /dev/md0 --remove /dev/hda1 (RAIDからディスクを切り離す。)その後、システムをシャットダウンし、HDDを内部から取り外す。
2. 新しいHDDの取り付け
新しいHDDを取り付ける。取り付けたら電源を投入
3.取り付けたHDDのフォーマット
2で取り付けたHDDを、壊れたディスクと同じ内容でパーティーションを作成する。 (以下/dev/hdaとして認識したものとする)
/dev/hdcパーティーションの正確な容量を確認
# fdisk -l /dev/hdc# fdisk /dev/hdaこの際、ディスクのsystemIDは "fd" linux raid autodetectに設定する。
/bootパーティーションにはbootフラッグを付ける。ファイルシステムは作成の必要は無い。
4.フォーマットしたHDDをRAIDに組み込む
# mdadm --manage /dev/md0 --add /dev/hda15.設定ファイルのチェック
# mdadm --assemble --scan6./dev/hdaにブートローダを書き込む。
両方のHDDから起動するようにgrubコマンドを使用してブートローダーをhdaの/bootパーティーションに
書き込む。
(実行例)
# grub
grub> device (hd0) /dev/hda
grub> root (hd0,0)
grub> install /boot/grub/stage 1 d (hd0) /boot/grub stage2 0x8000 (hd0,0)/boot/grub/menu.lst
grub> quit7.再起動を行い、どちらのドライブからでも正常にOSが起動することを確認する。
