KVM 动态调整 qcow2 硬盘
动态扩容
参考:https://cloud-atlas.readthedocs.io/zh_CN/latest/kvm/kvm_vdisk_live.html
- 未关闭虚拟机,直接在宿主机器上
qemu-img resize命令调整磁盘大小会提示不可操作
# qemu-img resize 192.168.130.33.qcow2 +50G
qemu-img: Could not open '192.168.130.33.qcow2': Failed to get "write" lock
- 检查虚拟机块设备列表
virsh domblklist <domain>
- 可以使用
virsh blockresize在线调整qcow2镜像,底层是通过QEMU Monitor管理虚拟机指令实现
# virsh blockresize <domain> vdc --size 200G
Block device 'vdc' is resized
# 此时虚拟机中看到如下信息,查看vdc大小,看到已经变成200G
[1869817.201326] virtio_blk virtio4: new size: 419430400 512-byte logical blocks (215 GB/200 GiB)
[1869817.205828] vdc: detected capacity change from 144955146240 to 214748364800
[1869819.943750] VFS: busy inodes on changed media or resized disk vdc
# 注意
对于 virtio-blk 设备,最新的Guest内核,大小是自动更新的,所以会马上看到容量改变,旧内核需要重启guest系统;
对于 SCSI 设备,需要在guest操作系统中触发一次扫描: echo > /sys/class/scsi_device/0:0:0:0/device/rescan;
对于 IDE 设备,则需要重启一次guest操作系统才能刷新。
- 后续操作根据虚拟机情况来
如果更新文件系统,使用下面的命令:
resize2fs 命令 :针对的是ext2、ext3、ext4文件系统
xfs_growfs 命令 :针对的是xfs文件系统
动态卸载硬盘(硬盘未在使用)
- 检查虚拟机块设备列表
virsh domblklist <domain>
-
虚拟机中确认未挂载使用
-
virsh detach-disk命令支持在先卸载硬盘
# virsh detach-disk <domain> vdb
命令执行后,虚拟机中就看不到那块硬盘,但配置文件中仍然存在
# virsh detach-disk <domain> vdb --live --config
该命令会同时修改虚拟机的运行配置和文件配置
# 注意
卸载硬盘比如vdb,会使后面的硬盘在下次重启后盘符变化,比如原来的vdc变成vdb
注意检查/etc/fstab文件
For compatibility purposes, --persistent behaves like --config for an offline domain, and like --live --config for a running domain.

浙公网安备 33010602011771号