ソフトウェアRAID5構成のファイルサーバのディスクが1台ダメになったので交換作業を行った。
今回は新しいHDDを一台買ってきたのだが、いつもと違う作業が必要みたいなので作業をメモしておく。
今回の作業一覧
OSのインストール
RAID5アレイのHDDを接続しないでハードウェアRAIDカードと新しいHDD2台を入れてOSをインストールするだけ。
RAIDカード関係のソフトウェアのインストール作業はメモから省略。
インストール完了後にRAID5のアレイのディスクを接続して、
# mdadm --detail --scan
の結果を/etc/mdadm.confに書き込む。
RAID5アレイのディスク交換
故障したHDDをアレイから外す
# mdadm --manage /dev/md1 --fail /dev/sdb2 # mdadm --manage /dev/md1 --remove /dev/sdb2
電源を切って、新しいHDDを取り付ける。
で、ここでパーティションを切るのだが、今回購入したHDDはWesternDigitalのWD10EARS。
Advanced Formatなるものが導入されているらしい。
Windows7とかだとうまくやってくれるらしいが、今回の対象はCentOS5.5。
http://calves.jugem.jp/?eid=1009
このへんを参考にパーティションを切る必要がある。
# parted /dev/sdb GNU Parted 1.8.1 /dev/sdb を使用 GNU Parted へようこそ! コマンド一覧を見るには 'help' と入力してください。 (parted) unit kib (parted) print エラー: /dev/sdb を開けません。ディスクラベルが認識できません。 (parted) mkpart エラー: /dev/sdb を開けません。ディスクラベルが認識できません。 (parted) quit
パーティションテーブルがないの忘れてた・・・
とりあえずfdiskでテーブルだけ作成。fdiskコマンド叩いてwで終わるだけ。
# fdisk -H 224 -S 56 /dev/sdb
partedでやってもよかった。
# parted /dev/sdb (parted) mklabel msdos
パーティションを切る
# parted /dev/sdb /dev/sdb を使用 GNU Parted へようこそ! コマンド一覧を見るには 'help' と入力してください。 (parted) unit kib (parted) print モデル: ATA WDC WD10EARS-22Y (scsi) ディスク /dev/sdb: 976762584kiB セクタサイズ (論理/物理): 512B/512B パーティションテーブル: msdos 番号 開始 終了 サイズ タイプ ファイルシステム フラグ (parted) mkpart パーティションの種類? primary/プライマリ/extended/拡張? p ファイルシステムの種類? [ext2]? 開始? 32 終了? 976762584 (parted) set 1 raid on (parted) print モデル: ATA WDC WD10EARS-22Y (scsi) ディスク /dev/sdd: 976762584kiB セクタサイズ (論理/物理): 512B/512B パーティションテーブル: msdos 番号 開始 終了 サイズ タイプ ファイルシステム フラグ 1 32.0kiB 976762584kiB 976762552kiB プライマリ raid (parted) quit 通知: 必要であれば /etc/fstab を更新するのを忘れないようにしてください。
忘れるとマズいのは領域のシステムIDをraidに設定しておくこと。
(parted) set 1 raid on
これを忘れると大変なことに…(後述)
あとは新しいディスクをアレイに追加してやると再構成が始まる。
# mdadm --manage /dev/md1 -add /dev/sdb1
なんとなく経過を観察。
$ watch -n 1 cat /proc/mdstat
RAIDアレイ拡大
再構成が終わったところで今まで/としてシステム領域にしていた部分は他のHDDに移した(OS入れ直した)ので、旧システム領域をすべてstorage用のRAIDアレイにしてしまうことにする。
手順としては以下の通り。
- ディスクをアレイから外す
- パーティション切り直し
- アレイに追加
- 再構成
これをアレイを構成している残りのディスクで行う。
あとは
http://hanzubon.jp/node/231
を参考にアレイを拡大。
# mdadm --grow /dev/md0 -z max # resize2fs /dev/md1
とりあえずこれで完成。
途中で起こった作業ミスは別エントリにまとめた。
http://d.hatena.ne.jp/polaroidoon/20100912