Vagrant libvirt boxのディスクサイズを変更する
Vagrantは便利なんですが、ディスクイメージのサイズが固定されているので、デカイもの突っ込んで新しいイメージを作成とかするときに困ってしまいました。単にデカイのつっこむなら別のディスクをアタッチすればいいのですが、新しいイメージを作る時にはVagrant boxにはディスクイメージは2つ同梱できないので困ります。どうせqcow2のthinなので上限大きくしても特に影響なしで使いやすいですし。
今回はRHEL 7.1のイメージで、Red Hat Container Development Kitという今回のような開発とか評価用途のサポートなしのダウンロードのところにRHEL 7.1のVagrant libvirt boxがあるのでダウンロードします。ちなみにVirtualBox用のもあります。
https://access.redhat.com/downloads/content/293/ver=1/rhel---7/1.0.0/x86_64/product-downloads
ダウンロードしたboxの元サイズは500Mちょいです。.boxはfile *.box
してみるとわかりますがtar.gzなので、展開してみます。
$ mkdir work $ cd work $ tar xf ../rhel-server-libvirt-7.1-0.x86_64.box $ ls -l total 1543500 -rwxr-xr-x. 1 nekop nekop 1580531712 Mar 12 01:25 box.img -rw-r--r--. 1 nekop nekop 62 Mar 12 01:25 metadata.json -rw-r--r--. 1 nekop nekop 356 Mar 12 01:25 Vagrantfile $ file box.img box.img: QEMU QCOW Image (v2), 10737418240 bytes $ cat metadata.json {"provider": "libvirt", "format": "qcow2", "virtual_size": 11}
中身のbox.imgは11Gのqcow2イメージです。今回はこれを20Gへ拡大します。
中身の構成を見てみましょう。
$ virt-filesystems -lh --parts --pvs --vgs --lvs --extra -a box.img Name Type VFS Label MBR Size Parent /dev/sda1 filesystem unknown - - 1.0M - /dev/sda2 filesystem ext4 - - 200M - /dev/VolGroup00/LogVol00 filesystem ext4 - - 8.0G - /dev/VolGroup00/LogVol01 filesystem swap - - 1.5G - /dev/VolGroup00/LogVol00 lv - - - 8.0G /dev/VolGroup00 /dev/VolGroup00/LogVol01 lv - - - 1.5G /dev/VolGroup00 /dev/VolGroup00 vg - - - 9.8G /dev/sda3 /dev/sda3 pv - - - 9.8G - /dev/sda1 partition - - 83 1.0M /dev/sda /dev/sda2 partition - - 83 200M /dev/sda /dev/sda3 partition - - 8e 9.8G /dev/sda
/dev/sda3
がLVMのパーティションで、これを拡大すれば後はオンラインでどうにでも割り当てられますね。謎の1Mの/dev/sda1
がありますが使われていませんね。
20Gのqcow2イメージを作って、virt-resize
で/dev/sda3
をリサイズ指定します。PVも自動的にpvresize
してくれます。
qemu-img create -f qcow2 box.img.new 20G virt-resize --expand /dev/sda3 box.img box.img.new mv box.img.new box.img tar czf ../rhel-7.1-20g.box ./*
これで20Gのイメージが出来上がりました。
起動してルートパーティションを拡大してみます。
$ df Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/VolGroup00-LogVol00 8093624 1520852 6138596 20% / devtmpfs 498944 0 498944 0% /dev tmpfs 508380 0 508380 0% /dev/shm tmpfs 508380 6668 501712 2% /run tmpfs 508380 0 508380 0% /sys/fs/cgroup /dev/vda2 194235 96794 83105 54% /boot $ sudo lvresize -L 12G /dev/VolGroup00/LogVol00 $ sudo resize2fs /dev/VolGroup00/LogVol00 $ df Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/VolGroup00-LogVol00 12255112 1524888 10128280 14% / devtmpfs 498944 0 498944 0% /dev tmpfs 508380 0 508380 0% /dev/shm tmpfs 508380 6668 501712 2% /run tmpfs 508380 0 508380 0% /sys/fs/cgroup /dev/vda2 194235 96794 83105 54% /boot