作業メモ。XenServer上で動かしてるUbuntuのディスク容量を増やしたい。
LVMを使っている状態で、オンラインで(再起動とか不要で)できた。
XenServer6.2、Ubuntu12.04。ファイルシステムはEXT4。
現状の確認
tokibito@ubuntu-base:~$ sudo su - root@ubuntu:~# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/ubuntu--vg-root 6.5G 927M 5.3G 15% / udev 473M 4.0K 473M 1% /dev tmpfs 199M 172K 198M 1% /run none 5.0M 0 5.0M 0% /run/lock none 496M 0 496M 0% /run/shm /dev/xvda1 228M 28M 189M 13% /boot
ディスク容量は8GBで、Ubuntuのインストール時にLVMでGuidedで設定した状態。ubuntu--vg-rootは6.5GBとなっている。これを拡張する。
以降、rootユーザーで作業。
ディスクを追加する
XenCenterで、インスタンスのStorageタブからディスクを追加する。今回は5GB。
追加したところ、Ubuntu側ではすぐに/dev/xvdbとして検出された。
root@ubuntu:~# ls -l /dev/xvd* brw-rw---- 1 root disk 202, 0 Nov 18 02:12 /dev/xvda brw-rw---- 1 root disk 202, 1 Nov 18 02:12 /dev/xvda1 brw-rw---- 1 root disk 202, 2 Nov 18 02:12 /dev/xvda2 brw-rw---- 1 root disk 202, 5 Nov 18 02:12 /dev/xvda5 brw-rw---- 1 root disk 202, 16 Nov 18 02:19 /dev/xvdb ←追加したディスク
lvmのコマンドでボリュームを拡張する
今回は追加したxvdbをすべてubuntu--vg-rootに割り当てる。
直接コマンド実行してもいいが、LVMのコマンドだけ使うならlvmプロンプトの状態で作業するのでもよさそう。
root@ubuntu:~# lvm lvm>
PVにxvdbを追加する。pvsでPVの確認、pvcreateでPVを追加できる。
lvm> pvs PV VG Fmt Attr PSize PFree /dev/xvda5 ubuntu-vg lvm2 a- 7.76g 32.00m lvm> pvcreate /dev/xvdb Physical volume "/dev/xvdb" successfully created lvm> pvs PV VG Fmt Attr PSize PFree /dev/xvda5 ubuntu-vg lvm2 a- 7.76g 32.00m /dev/xvdb lvm2 a- 5.00g 5.00g
既存のVGにPVを追加する。vgs、vgdisplayでVGの確認、vgextendで既存のVGを拡張できる。
lvm> vgs VG #PV #LV #SN Attr VSize VFree ubuntu-vg 1 2 0 wz--n- 7.76g 32.00m lvm> vgextend ubuntu-vg /dev/xvdb Volume group "ubuntu-vg" successfully extended lvm> vgs VG #PV #LV #SN Attr VSize VFree ubuntu-vg 2 2 0 wz--n- 12.75g 5.03g lvm> vgdisplay --- Volume group --- VG Name ubuntu-vg System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 4 VG Access read/write VG Status resizable MAX LV 0 Cur LV 2 Open LV 2 Max PV 0 Cur PV 2 Act PV 2 VG Size 12.75 GiB PE Size 4.00 MiB Total PE 3265 Alloc PE / Size 1978 / 7.73 GiB Free PE / Size 1287 / 5.03 GiB VG UUID ePgddc-OQIU-DBUs-HI5h-v5vb-G2T5-gNRuzy
LVを拡張する。lvs、lvdisplayでLVを確認、lvextendで拡張できる。
lvm> lvs LV VG Attr LSize Origin Snap% Move Log Copy% Convert root ubuntu-vg -wi-ao 6.73g swap_1 ubuntu-vg -wi-ao 1020.00m lvm> lvdisplay --- Logical volume --- LV Name /dev/ubuntu-vg/root VG Name ubuntu-vg LV UUID pxjeIf-d7XF-OJUE-334e-rHrK-RmJN-YZAJx1 LV Write Access read/write LV Status available # open 1 LV Size 6.73 GiB Current LE 1723 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 252:0 --- Logical volume --- LV Name /dev/ubuntu-vg/swap_1 VG Name ubuntu-vg LV UUID hLE41Q-01lV-QwjV-uaki-dnUc-4JO0-z1pdft LV Write Access read/write LV Status available # open 2 LV Size 1020.00 MiB Current LE 255 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 252:1 lvm> lvextend -L +5G /dev/ubuntu-vg/root # 5GB追加 Extending logical volume root to 11.73 GiB Logical volume root successfully resized lvm> lvs LV VG Attr LSize Origin Snap% Move Log Copy% Convert root ubuntu-vg -wi-ao 11.73g swap_1 ubuntu-vg -wi-ao 1020.00m
lvmでの操作はこれで終わり。
ファイルシステムをリサイズする
resize2fsコマンドでファイルシステムをリサイズする。
root@ubuntu:~# resize2fs /dev/mapper/ubuntu--vg-root resize2fs 1.42 (29-Nov-2011) Filesystem at /dev/mapper/ubuntu--vg-root is mounted on /; on-line resizing required old_desc_blocks = 1, new_desc_blocks = 1 The filesystem on /dev/mapper/ubuntu--vg-root is now 3075072 blocks long. root@ubuntu:~# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/ubuntu--vg-root 12G 929M 10G 9% / udev 473M 4.0K 473M 1% /dev tmpfs 199M 176K 198M 1% /run none 5.0M 0 5.0M 0% /run/lock none 496M 0 496M 0% /run/shm /dev/xvda1 228M 28M 189M 13% /boot
以上でディスク容量拡張の作業は終わり。LVM便利ですね。
参考
2015/02/12追記
CentOS7でファイルシステムがXFSの場合は、resize2fsの代わりにxfs_growfsコマンドを使用する。