LVM上に構築したXenのDom-Uのディスク容量を増やす
新しいLVを作って、/etc/xen/${server}に追加するとかでもいいけど、Dom-0側でLVの一覧を見た時に仮想マシンの一覧にそのまま対応している方が嬉しいと思ったので、直接LVの容量を増やしてみる。
開発環境では何度かやっているので大丈夫だとは思うけど、もちろん無保証自己責任で。
自分の環境はCentOS 5.4 x86_64(2.6.18-164.9.1.el5xen)。MacBook上のVMware FusionでVMのディスク容量も増やす時も基本的に同じような手順でいけた。
Dom-UもLVMを使用していて、/dev/xvda2をPVとして、その上にVG,LVを作っています。
例えば、Dom-0上で/dev/vg0/op-disk0として作成したLVを20GB増やす場合は、Dom-0上でこんな感じにやる。
sudo lvextend -L+20G /dev/vg0/op-disk0 sudo fdisk -l /dev/vg0/op-disk0 sudo fdisk /dev/vg0/op-disk0 # パーティション確認 p # パーティション削除 d 2 # 作り直す n p 2 # パーティションタイプをLVMに変更 t 2 8e w
パーティション削除とかちょっと怖いけど、Dom-Uのデータに影響は無いようだ。
Dom-Uをrebootして、Dom-Uのシェルから容量が増えているのを確認。
sudo fdisk -l /dev/xvda Disk /dev/xvda2: 42.8 GB, 42837258240 bytes 255 heads, 63 sectors/track, 5208 cylinders Units = シリンダ数 of 16065 * 512 = 8225280 bytes ディスク /dev/xvda2 は正常な領域テーブルを含んでいません
「正常な領域テーブルを含んでいません」とか言われるとちょっとドキっとするけど、領域テーブルは/dev/xvdaにあるので気にしない。
PVをfdiskで表示された容量に拡張する。上記だと「Disk /dev/xvda2: 42.8 GB」とあるので42.8GBにする。
sudo pvresize --setphysicalvolumesize 42.8G /dev/xvda2
vgsでVolumeGroupの空き容量を見て、空いてる分をLVに割り当てる。管理領域とかの関係か、全部は使えないので適当に値を入れながら通る数値を手探りで。
LVのパスは「/dev/vg0/root」としてますが、環境に応じて適宜変更してください。
sudo vgs sudo lvresize -L+20G /dev/vg0/root
resize2fsして追加分が有効になっているのを確認
sudo resize2fs /dev/vg0/root df -h