2007-12-29 Sat [ ネット&PC ]
RAID1の拡張
RAID1を組んだ2組のHDDの内容を保持したまま拡張しようとして、かなり嵌りました。
結局、思い立ってから、24時間かかりました。
で、備忘録を兼ねて、手順の再検証。
まず、システムを停止して、HDDを一台抜き、起動確認。
片側のディスクが停止しているのを確認して、システム停止
新しいHDDを繋いで、起動。
fdiskでパーテーションを作成し、パーテーション種別をfd(linux RAID)に設定。
raidhottaddコマンドで、RAIDに参加させる。
# raidhotadd /dev/md0 /dev/hdc1
# cat /proc/mdstat
RAIDの再構築の状況を確認する。
# lilo -v -M /dev/hdc
MBRにboot情報を書き込み
# lilo -v -A /dev/hdc
パーテーションをアクティブに設定する。
# cat /proc/mdstat
RAIDの再構築の状況を確認して、再構築が終了していたら、システム停止。
1台目のHDDを外し、2台目のHDDと入れ替えて起動するか確認する。
上手く起動できたら、またシステム停止。
VineLinux4.2のインストールCDを用意して、rescueモードで立ち上げる。
boot: linux rescue
見つかったHDDをマウントするかの確認が表示されるが、skipを選択する。
コマンドプロンプトが表示されたら、raidをスタートさせる。
# raidstart /dev/md0
スタート後、mdadmで状況の確認と拡張作業をする。
# mdadm --misc --detail /dev/md0
で状況確認
# mdadm --grow /dev/md0 -z max
パーテーションの最大限まで拡張をする。
ファイルシステムのチェックとファイルシステムを拡張する。
# e2fsck -f /dev/md0
ファイルシステムの整合性のチェック
# resize2fs /dev/md0
ファイルシステムをRAIDアレーの最大値まで拡張
終了メッセージが表示されたら、リブートしてインストールCDを取り出し、新しく拡張されたHDDでの起動を動作確認。
ここで、空き容量のチェックをすると新しいHDDの最大値までファイルシステムが拡張されているのが確認できるはず。
最後の仕上げに、新しく追加したものと同容量またはそれを超えるサイズのHDDをつなげて起動。
fdiskでパーテーションを確保し、タイプをfdに変更。
# raidhottadd /dev/md0 /dev/hdc1
# cat /proc/mdstat
進捗状況を確認。
# lilo -M /dev/hdc
MBRの書き換えをして追加したHDDからも起動できるようにする。
# lilo -A /dev/hdc
起動パーテーションの設定もしておく。
----------
今回、嵌ってしまったのは、RAIDに関してちょっと勘違いというか見逃しをしていたのが原因でした。
HDDの中にパーテーションを区切り、その中にRAIDArrayを組み、そのアレイの中にファイルシステムを作るという、RAIDとファイルシステムの構造が理解できていなかったので、アレイのサイズを変更せずに一生懸命、ファイルシステムのサイズを変更し様としていたので、結果、パーテーションが大きくなり、その中に空きがあるのに、ファイルシステムは思ったように拡張されず、RAIDを有効にしないまま、中身のファイルシステムを拡張し様として、破壊しかけたりもしました。
一度、ファイルシステムのサイズに不整合が起きて起動できなくなった時は、resize2fsをサイズオプションをつけて実行する事で、復帰する事が出来ました。
結局、思い立ってから、24時間かかりました。
で、備忘録を兼ねて、手順の再検証。
まず、システムを停止して、HDDを一台抜き、起動確認。
片側のディスクが停止しているのを確認して、システム停止
新しいHDDを繋いで、起動。
fdiskでパーテーションを作成し、パーテーション種別をfd(linux RAID)に設定。
raidhottaddコマンドで、RAIDに参加させる。
# raidhotadd /dev/md0 /dev/hdc1
# cat /proc/mdstat
RAIDの再構築の状況を確認する。
# lilo -v -M /dev/hdc
MBRにboot情報を書き込み
# lilo -v -A /dev/hdc
パーテーションをアクティブに設定する。
# cat /proc/mdstat
RAIDの再構築の状況を確認して、再構築が終了していたら、システム停止。
1台目のHDDを外し、2台目のHDDと入れ替えて起動するか確認する。
上手く起動できたら、またシステム停止。
VineLinux4.2のインストールCDを用意して、rescueモードで立ち上げる。
boot: linux rescue
見つかったHDDをマウントするかの確認が表示されるが、skipを選択する。
コマンドプロンプトが表示されたら、raidをスタートさせる。
# raidstart /dev/md0
スタート後、mdadmで状況の確認と拡張作業をする。
# mdadm --misc --detail /dev/md0
で状況確認
# mdadm --grow /dev/md0 -z max
パーテーションの最大限まで拡張をする。
ファイルシステムのチェックとファイルシステムを拡張する。
# e2fsck -f /dev/md0
ファイルシステムの整合性のチェック
# resize2fs /dev/md0
ファイルシステムをRAIDアレーの最大値まで拡張
終了メッセージが表示されたら、リブートしてインストールCDを取り出し、新しく拡張されたHDDでの起動を動作確認。
ここで、空き容量のチェックをすると新しいHDDの最大値までファイルシステムが拡張されているのが確認できるはず。
最後の仕上げに、新しく追加したものと同容量またはそれを超えるサイズのHDDをつなげて起動。
fdiskでパーテーションを確保し、タイプをfdに変更。
# raidhottadd /dev/md0 /dev/hdc1
# cat /proc/mdstat
進捗状況を確認。
# lilo -M /dev/hdc
MBRの書き換えをして追加したHDDからも起動できるようにする。
# lilo -A /dev/hdc
起動パーテーションの設定もしておく。
----------
今回、嵌ってしまったのは、RAIDに関してちょっと勘違いというか見逃しをしていたのが原因でした。
HDDの中にパーテーションを区切り、その中にRAIDArrayを組み、そのアレイの中にファイルシステムを作るという、RAIDとファイルシステムの構造が理解できていなかったので、アレイのサイズを変更せずに一生懸命、ファイルシステムのサイズを変更し様としていたので、結果、パーテーションが大きくなり、その中に空きがあるのに、ファイルシステムは思ったように拡張されず、RAIDを有効にしないまま、中身のファイルシステムを拡張し様として、破壊しかけたりもしました。
一度、ファイルシステムのサイズに不整合が起きて起動できなくなった時は、resize2fsをサイズオプションをつけて実行する事で、復帰する事が出来ました。