我个人将KVM用于所有Linux虚拟化项目,有时我需要为运行的VM(guest)扩展或添加磁盘空间,以满足不断增长的软件需求,KVM使用支持多种image类型的QEMU,其中包括raw、cow、qcow、qcow2、vmdk、vdi。native和最灵活的类型是qcow2,它支持写入、加密、压缩和VM快照上的复制。
一、关闭VM 在扩展客户机虚拟磁盘之前,需要先将其关闭: $ sudo virsh list
如果你的客户机处于运行状态,请使用其ID或名称将其关闭: $ sudo virsh shutdown rhel8 Domain rhel8 is being shutdown 在继续管理其磁盘之前确认它确实已经关闭: $ sudo virsh list
二、扩展客户操作系统磁盘 找到你的客户操作系统磁盘路径: $ sudo virsh domblklist rhel8 或者运行以下命令: $ sudo virsh dumpxml rhel8 | egrep 'disk type' -A 5
可以从Virtual Machine Manager GUI获取相同的信息,我的VM磁盘位于/var/lib/libvirt/images/rhel8.qcow2中: $ sudo qemu-img info /var/lib/libvirt/images/rhel8.qcow2 image: /var/lib/libvirt/images/rhel8.qcow2 file format: qcow2 virtual size: 30G (42949672960 bytes) disk size: 2.0G cluster_size: 65536 Format specific information: compat: 1.1 lazy refcounts: true refcount bits: 16 corrupt: false
三、扩展guest VM磁盘 由于我们知道虚拟机磁盘的位置,因此我们将其扩展到我们所需的容量: sudo qemu-img resize /var/lib/libvirt/images/rhel8.qcow2 +10G 请注意,qemu-img无法调整具有快照的image的大小,需要先删除所有VM快照,看这个例子: $ sudo virsh snapshot-list rhel8 $ sudo virsh snapshot-delete --domain rhel8 --snapshotname snapshot1 $ sudo virsh snapshot-list rhel8
然后在磁盘容量之前使用“+”扩展磁盘: $ sudo qemu-img resize /var/lib/libvirt/images/rhel8.qcow2 +10G Image resized. 还可以使用virsh命令调整大小,这需要domain运行: $ sudo qemu-img info /var/lib/libvirt/images/rhel8.qcow2 image: /var/lib/libvirt/images/rhel8.qcow2 file format: qcow2 virtual size: 30G (42949672960 bytes) disk size: 2.0G cluster_size: 65536 Format specific information: compat: 1.1 lazy refcounts: true refcount bits: 16 corrupt: false $ sudo virsh start rhel8 $ sudo virsh blockresize rhel8 /var/lib/libvirt/images/rhel8.qcow2 40G Block device '/var/lib/libvirt/images/rhel8.qcow2' is resized 使用fdisk命令确认磁盘大小: $ sudo fdisk -l /var/lib/libvirt/images/rhel8.qcow2 Disk /var/lib/libvirt/images/rhel8.qcow2: 30.2 GiB, 32399818752 bytes, 63280896 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes 参考:Linux入门记录二:硬件概念,fdisk分区工具,文件系统及文件挂载管理。
四、增加VM分区 现在启动VM: $ sudo virsh start rhel8 Domain rhel8 started 以root用户身份或使用具有sudo的用户帐户SSH到你的VM: $ ssh rhel8 Last login: Sun Apr 21 13:11:19 2019 from 192.168.122.1 [jmutai@rhel8 ~]$ 检查新磁盘布局: $ lsblk
至此,操作成功,我的VM总磁盘容量现在是40GB,之前是30GB。
相关主题 |