之前共享过3种不同环境的磁盘扩容方法,有爱好的能够去看看。《e2fsck+resize2fs实现Linux分区扩容 》、《lvm在线扩容根分区 》、《VMware下虚拟机扩展磁盘不需重启体系 》
我们知道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