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 FusionVMのディスク容量も増やす時も基本的に同じような手順でいけた。

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