KVM虚拟机磁盘怎么在线扩容

之前共享过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