接上篇,<<热添加磁盘,重启文件不丢失>>

一.理论扫盲:
centos7的磁盘默认使用lvm,所以是可以直接扩展根分区的,但是无法缩小,在物理机中会默认将磁盘分为两个分区,分别为sda1和sda2,其中分区sda1作为系统盘/boot挂载,少量空间;sda2作为一个物理卷并且完全作为逻辑卷组VG(Volume Group)centos,在这个逻辑卷组centos中建立三个逻辑卷LV(Logical Volume)root和home还有swap,分别挂载到根目录/和/home以及swap。而在kvm虚拟机中则不是sda了,而是vda,其他都和物理机差不多。

二.下面我们看看磁盘分区的情况
kvm热添加磁盘,并为根目录扩容,重启依然生效_第1张图片
这里我们看到文件系统是/dev/mapper/centos-root,然后挂载到根目录上。下面来看下这个文件系统到底是个啥?
kvm热添加磁盘,并为根目录扩容,重启依然生效_第2张图片
好吧,对应根目录的这个文件系统,其实是个软链接,真正指向的是dm-0这个块设备。
那么再看看另外一张图(这里只是普及啊),还有个指向这个设备的软链接呢?
kvm热添加磁盘,并为根目录扩容,重启依然生效_第3张图片

为啥还要个软链接,待解决。。。。。先不管这个问题

三.正题来了,接上篇,我们可以热添加磁盘到kvm虚拟机中去,由于centos 7又支持磁盘扩展(lvm机制),那么我们新增一块磁盘到kvm虚拟机中,然后加到root所在的vggroup里去不就行了
宿主机下操作:
#新增一块磁盘
qemu-img create -f qcow2 test3_add03.qcow2 5G
#将磁盘热添加到kvm虚拟机中去
virsh attach-disk centos7.0 /var/lib/libvirt/images/test3_add03.qcow2 vdc --cache=none --subdriver=qcow2
#读取内存中关于kvm虚拟机的添加的磁盘信息
virsh dumpxml centos7.0
#将获取到的磁盘信息加入到现有的kvm配置中去
virsh edit centos7.0

以下在kvm虚拟机中操作:
#新增物理卷vdc
pvcreate /dev/vdc
#将物理卷vdc添加至/root所在的卷组,centos可以通过lvdisplay查询到
kvm热添加磁盘,并为根目录扩容,重启依然生效_第4张图片
vgextend centos /dev/vdc
#扩充root所在的逻辑卷组,大小就是新增加的vdc大小
lvextend -L +5G /dev/mapper/centos-root
#重新读取硬盘信息
xfs_growfs /dev/mapper/centos-root
#再次查看是否成功
df -hT
kvm热添加磁盘,并为根目录扩容,重启依然生效_第5张图片
添加成功,之前是12g

重启仍然生效