先日、ミラーリングHDD(80GB RAID-1)に交換したCIサーバ。
元々のHDDが40GBモデルだったため、
単純なミラーでは、40GBしか利用できません。
Linux LVMボリュームは、
仮想ボリュームグループ内のパーティションサイズを
自由に変更できるので、パーティションサイズ管理には便利ですが、
あらかじめ割り当てた 仮想ボリュームグループサイズ内での
変更しかできません。
つまりは、仮想ボリュームグループのサイズを変えない限り、
残りの未割り当て領域を既存のボリュームに追加できないわけです。
【イメージ】
元々のHDD 物理HDDサイズ 約40GB(仮想ボリュームグループ40GB)
↓
現在の状態 物理HDDサイズ 約80GB(仮想ボリュームグループ40GB)
残り40GBの領域が未使用状態
↓
目標の状態 物理HDDサイズ 約80GB(仮想ボリュームグループ80GB)
ちょうど同じような事象を紹介したサイトがあったので、
参考にしてやってみました。
<参考サイト>
LVMパーティションの拡張 (PC総合研究所さん)
今後、大容量のHDDに交換するときにも、
この手順は有効になるのでメモメモ。..._〆(゚▽゚*)
CentOS4.6の環境だったので、
pvresizeコマンドが利用できたため、
参考サイトの状況よりはシンプルに終わりました。
ただし、環境による部分がありますので、
必ずしも同じ手順でできるとは限りませんのでご了承くださいませ。
【綾瀬家のディスク環境】
※ディスク環境はあらかじめ調べておく
/dev/hda
/dev/hda1 /boot
/dev/hda2
/VolGroup00/LogVol00 /
/VolGroup00/LogVol01 /swap
/VolGroup00/LogVol02 /home
突っ込みどころはあるかと思いますが、
至ってシンプルにしてます。(´∀`)
以下は、わたしのやった手順の備忘録です。
1.パーティションの拡張
手順としては、既存のLVMパーティションを削除して
再構築時に最大要領で割り当てしなおすと言う感じ。
Windowsとちがって、FDISK編集中にパーティションをいったん削除しても、
作業保存するまでは、パーティション内のデータは消えないようですね。
CentOS インストールCDで起動し、レスキューモードにする。
boot: linux rescue
【ネットワークなし】、レスキュー画面にて「スキップ」を押して【HDDはマウントしない】。
FDISKコマンドを実施 (IDEハードディスクのためhda)
# fdisk /dev/hda
hda2ボリュームを削除
(fdiskメニューにて「d」、「2」と選択)
新たにsda2を再構築
先頭セクタを旧sda2と同じにして最終セクタを最大セクタに設定
(fdiskメニューにて「n」、「p」、「2」と選択。以降はデフォルト値のまま設定)
パーティションタイプを変更 8e(Linux lvm)に設定
(fdiskメニューにて「t」、「2」、「8e」と選択)
FDISK編集結果を保存
(fdiskメニューにて「w」を選択)
レスキューモードを終了して再起動
# exit
2.パーティションの拡張
CentOS 4環境では、ここは簡単でした。
CentOS インストールCDで起動し、レスキューモードにする。
boot: linux rescue
【ネットワークなし】、レスキュー画面にて「続行」を押して【HDDをマウントする】。
パーティションの拡張をする (後ろに最大容量まで伸ばす)
# pvresize /dev/hda2
3.Logical Volumeの拡張
今回は、/ (LogVol00) と /home (LogVol02)を拡張します。
なぜか、参考サイトのやり方がうまくいかなかったので、
ここではシステムボリュームのみ拡張して、
LogVol02に関しては後回しにしました。
(あとでGUI上で論理ボリューム管理で変更)
/ (LogVol00) に8GB追加
# lvextend -L+8192M VolGroup00/LogVol00
4-1.Filesystemの拡張(レスキューモード)
Filesystemのサイズ変更には、resize2fsを使います。
resize2fsを実行する前に変更対象パーティション
(/dev/sda関連、VolGroup00関連)のマウントを解除します
# umount /mnt/sysimage/boot
# umount /mnt/sysimage/sys
# umount /mnt/sysimage/proc
# umount /mnt/sysimage/dev
# umount /mnt/sysimage/syslinux
# umount /mnt/sysimage
もし、マウント解除できないボリュームがあったら、
# fuser -muv /mnt/解除できないボリューム名
で確認するとよいです。
ディスクチェックを実行(必須)
# e2fsck -f /dev/VolGroup00/LogVol00
ファイルシステムサイズを変更
# resize2fs /dev/VolGroup00/LogVol00
エラーが出なければ終了です。
レスキューモードを終了して再起動します。
# exit
4-2.Filesystemの拡張(XWindowでの変更)
レスキューモードではなにやらうまくいかなかった、
LogVol02の拡張をします。コレはとても簡単。
Gnone画面上で、
【アプリケーション】→【システム設定】→【論理ボリューム管理】を選択
論理ビューの【VolGroup00】→【LogVol02】を選択して【プロパティの編集】を実行

サイズを最大値まで当てて、【OK】
これだけでした。
いじょう、参考までに。