我们知道KVM的磁盘格式有raw和qcow2两种;扩容方式有直接对原有磁盘扩容和新添加一块磁盘加入lvm中两种方法。
今天要分享的就是KVM环境下新添加一块格式为qcow2磁盘加入lvm中的扩容方法。
0x01 KVM虚拟机添加磁盘
1、查找虚拟机磁盘目录
要添加新磁盘,首先得找到原有磁盘的目录$ virsh list --all ##查看虚拟机列表
$ virsh shutdown Name ##关闭名称为Name的虚拟机
$ virsh edit Name ##Name为虚拟机名称
找到source file行,后面的就是磁盘的存放目录
2、创建新硬盘
创建一个名称为image_1.qcow2的5G磁盘$ qemu-img create -f qcow2 /xxx/xxx/xxx/image_1.qcow2 50G
3、配置XML文件$ virsh edit Name ##编辑虚拟机
添加新的磁盘文件信息,原来的是vda新的就是vdb,以此类推
4、重新注册vm配置信息$ virsh define /etc/libvirt/qemu/xxx.xml
5、启动虚拟机$ virsh start Name ##启动虚拟机
$ fdisk -l ##可以看到新增的磁盘
到此,KVM环境下虚拟机新增磁盘完成,接下去通过pv,vg,lv扩容。
0x02 LVM方式扩容
1、查看硬盘容量,发现根分区用了将近9成。$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 47G 41G 5.8G 88% /
devtmpfs 3.9G 0 3.9G 0% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 3.9G 8.4M 3.9G 1% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/vda1 497M 120M 378M 25% /boot
tmpfs 783M 0 783M 0% /run/user/0
2、创建PV$ pvcreate /dev/vdb ##vdb为上面新增的磁盘
Physical volume "/dev/vdb" successfully created
3、扩充VG##先查看vg组
$ vgs
VG #PV #LV #SN Attr VSize VFree
centos 2 2 0 wz--n- 49.50g 3.00g
##把新增的vdb磁盘加入到vg中
$ vgextend centos /dev/vdb
Volume group "centos" successfully extended
再查看下vg组发现已经扩容
$ vgs
VG #PV #LV #SN Attr VSize VFree
centos 3 2 0 wz--n- 99.50g 52.99g
4、扩充LV##查看下lv组的大小,没有变化
$ lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- 46.31g
##扩容LV,+50G位新增硬盘大小
$ lvextend -L +50G /dev/mapper/centos-root
Size of logical volume centos/root changed from 46.31 GiB (11855 extents) to 96.31 GiB (24655 extents).
Logical volume root successfully resized
##再查看下lv,扩容成功
$ lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- 96.31g
5、系统更新##使系统重新读取大小
$ xfs_growfs /dev/mapper/centos-root
##查看硬盘大小,发现扩容成功。
$ df -h