在KVM环境中遇到虚拟机需要扩容系统盘的情况,可按以下步骤进行操作。
注:系统盘扩容需要关机操作,操作前做好数据备份!!!
【系统盘镜像扩容】
1、查看需要扩容的虚拟机的磁盘信息;
virsh domblklist lhv-a197d6fd-cc
2、查看系统盘镜像信息;
qemu-img info /lhv/storage/volume-10a5714f-9a1e-4e21-9eb9-42cec07e6d70
此处可以看到,目前系统盘的大小为100G。
3、先操作镜像,给镜像增加100G容量(自己把握);
qemu-img resize /lhv/storage/volume-10a5714f-9a1e-4e21-9eb9-42cec07e6d70 +100G
4、扩展完后再查看系统盘镜像已经增加到200G;
5、重新define虚拟机并开机。
cd /lhv/vm/a197d6fd-cce0-42a7-850e-0864062df389
virsh define local.xml
virsh start lhv-a197d6fd-cc
【虚拟机系统盘分区扩容】
Windows虚机扩容
若虚拟机为windows虚机,按照以下步骤执行:
1、打开磁盘管理。
2、右击分区扩容。
Linux虚机扩容
若虚拟机为linux虚机(lvm格式分区),按照以下步骤进行分区扩容。
1、对比增加系统盘大小前后,磁盘容量是增加了,但具体的分区大小并没有变化。
2、现在新建一个分区:
fdisk /dev/sda
输入 n (add a new partition,添加一个分区) ,然后 p (primary ,主分区),最后 w 保存退出。
3、创建完成后可以看到已经多了一个sda3分区,将sda分区格式改成 8e (即lvm格式)。
4、同步分区表。
partprobe
5、创建一个新的pv。
pvcreate /dev/sda3
6、查看现有vg信息。
vgdisplay
7、将新建的pv加到要扩容的vg中。
vgextend centos /dev/sda3
8、再次查看vg信息,可以看到vg容量已扩容。
9、将空闲空间分配给正在使用的lv。
lvresize -L +100G /dev/centos/home
10、查看扩容后的分区。
11、上述操作完成,df -h发现文件系统中home空间并未同步。
12、继续执行以下操作扩充文件系统。目前比较新的内核都支持在线扩容,省去了mount和umount的操作了。
这边发现执行报错,经过查询资料发现:
由于CentOS6和CentOS7在默认根文件系统的文件系统格式存在差异,需要判断是否为xfs,如果是xfs则应该使用xfs_growfs而不是一味的使用resize2fs。
13、执行blkid,查看分区是否为xfs格式。
14、查询了xfs_growfs 用法之后再执行就不报错了。
15、再次查看文件系统可以发现已经完成扩容。