在KVM环境中遇到虚拟机需要扩容系统盘的情况,可按以下步骤进行操作。

注:系统盘扩容需要关机操作,操作前做好数据备份!!!

【系统盘镜像扩容】

1、查看需要扩容的虚拟机的磁盘信息;

virsh domblklist lhv-a197d6fd-cc

kvm虚拟机在线扩cpu内存 kvm虚拟机磁盘扩容_kvm虚拟机在线扩cpu内存


2、查看系统盘镜像信息;

qemu-img info /lhv/storage/volume-10a5714f-9a1e-4e21-9eb9-42cec07e6d70

kvm虚拟机在线扩cpu内存 kvm虚拟机磁盘扩容_linux_02

此处可以看到,目前系统盘的大小为100G。

3、先操作镜像,给镜像增加100G容量(自己把握);

qemu-img resize /lhv/storage/volume-10a5714f-9a1e-4e21-9eb9-42cec07e6d70 +100G

4、扩展完后再查看系统盘镜像已经增加到200G;

kvm虚拟机在线扩cpu内存 kvm虚拟机磁盘扩容_lvm_03

5、重新define虚拟机并开机。

cd /lhv/vm/a197d6fd-cce0-42a7-850e-0864062df389

   virsh define local.xml

   virsh start lhv-a197d6fd-cc

kvm虚拟机在线扩cpu内存 kvm虚拟机磁盘扩容_centos_04

【虚拟机系统盘分区扩容】

Windows虚机扩容

若虚拟机为windows虚机,按照以下步骤执行:

1、打开磁盘管理。

kvm虚拟机在线扩cpu内存 kvm虚拟机磁盘扩容_centos_05


2、右击分区扩容。

kvm虚拟机在线扩cpu内存 kvm虚拟机磁盘扩容_windows_06

Linux虚机扩容

若虚拟机为linux虚机(lvm格式分区),按照以下步骤进行分区扩容。

1、对比增加系统盘大小前后,磁盘容量是增加了,但具体的分区大小并没有变化。

kvm虚拟机在线扩cpu内存 kvm虚拟机磁盘扩容_linux_07


kvm虚拟机在线扩cpu内存 kvm虚拟机磁盘扩容_centos_08


2、现在新建一个分区:

fdisk /dev/sda
输入 n (add a new partition,添加一个分区) ,然后 p (primary ,主分区),最后 w 保存退出。

kvm虚拟机在线扩cpu内存 kvm虚拟机磁盘扩容_windows_09


3、创建完成后可以看到已经多了一个sda3分区,将sda分区格式改成 8e (即lvm格式)。

kvm虚拟机在线扩cpu内存 kvm虚拟机磁盘扩容_linux_10


4、同步分区表。

partprobe

5、创建一个新的pv。

pvcreate /dev/sda3

kvm虚拟机在线扩cpu内存 kvm虚拟机磁盘扩容_kvm虚拟机在线扩cpu内存_11

6、查看现有vg信息。

vgdisplay

kvm虚拟机在线扩cpu内存 kvm虚拟机磁盘扩容_lvm_12


7、将新建的pv加到要扩容的vg中。

vgextend centos /dev/sda3

kvm虚拟机在线扩cpu内存 kvm虚拟机磁盘扩容_windows_13


8、再次查看vg信息,可以看到vg容量已扩容。

kvm虚拟机在线扩cpu内存 kvm虚拟机磁盘扩容_windows_14


9、将空闲空间分配给正在使用的lv。

lvresize -L +100G /dev/centos/home

kvm虚拟机在线扩cpu内存 kvm虚拟机磁盘扩容_kvm虚拟机在线扩cpu内存_15


10、查看扩容后的分区。

kvm虚拟机在线扩cpu内存 kvm虚拟机磁盘扩容_kvm虚拟机在线扩cpu内存_16


11、上述操作完成,df -h发现文件系统中home空间并未同步。

kvm虚拟机在线扩cpu内存 kvm虚拟机磁盘扩容_lvm_17


12、继续执行以下操作扩充文件系统。目前比较新的内核都支持在线扩容,省去了mount和umount的操作了。

kvm虚拟机在线扩cpu内存 kvm虚拟机磁盘扩容_centos_18

这边发现执行报错,经过查询资料发现:

由于CentOS6和CentOS7在默认根文件系统的文件系统格式存在差异,需要判断是否为xfs,如果是xfs则应该使用xfs_growfs而不是一味的使用resize2fs。

13、执行blkid,查看分区是否为xfs格式。

kvm虚拟机在线扩cpu内存 kvm虚拟机磁盘扩容_lvm_19


14、查询了xfs_growfs 用法之后再执行就不报错了。

kvm虚拟机在线扩cpu内存 kvm虚拟机磁盘扩容_centos_20


15、再次查看文件系统可以发现已经完成扩容。

kvm虚拟机在线扩cpu内存 kvm虚拟机磁盘扩容_linux_21