本文档由成都征天科技有限公司天极云团队原创出品,转载请注明出处,天极云官网地址:www.tjiyun.com 欢迎访问。
本文档主要介绍Qemu/KVM虚拟机硬件的热添加和缩减操作。

一.基础环境要求
1.软件版本要求
操作系统:CentOS7以上
QEMU版本:2.4以上
2.虚拟机启动参数要求
Qemu虚拟机执行热添加操作,需要在虚机启动命令中加入以下配置,开启虚机控制台功能,便于后续登录虚机控制台执行热添加和缩减操作:
-monitor telnet:127.0.0.1:10001,server,nowait

二.CPU热添加
1.云主机启动命令
Qemu虚拟机执行CPU热添加操作,需要在虚机启动命令中加入以下配置:
-smp 2,maxcpus=32
# 表示该虚机初始时使用2核CPU,最大可添加到32核
2.热添加cpu操作
执行以下命令,热添加CPU到虚拟机
(1)登录虚机控制台
# telnet 127.0.0.1 10001
(2)执行热添加CPU命令
(qemu) cpu-add cpu-id
注:cpu-id是热添加的CPU在系统中的id号,范围1~31,最大值由虚机启动参数配置的maxcpus值决定,同一台虚机中添加的cpu-id号不能相同,否则会导致id冲突
(3)退出虚机控制台
退出qemu控制台,请先按下ctrl+]键退出qemu控制台,待提示符由(qemu)变成telnet>时,方可使用quit命令退出telnet终端。一定要注意,不可在qemu控制台中直接输入quit退出,否则将强制并彻底关闭当前的虚拟机系统。
3.登录虚机系统,激活新添加的CPU并验证
(1)激活新添加的CPU
登录虚机操作系统,执行以下命令激活新添加的CPU,此处以CentOS系统为例
# echo 1 > /sys/devices/system/cpu/cpu-id/online
注:cpu-id是热添加的CPU在系统中的id号,范围1~31,最大值由虚机启动参数配置的maxcpus值决定。
CentOS7系统已支持自动online添加的CPU,无需再执行以上激活操作。
(2)验证CPU热添加操作是否成功
# cat /proc/interrupts

三.内存热添加
1.云主机启动命令
Qemu虚拟机执行内存热添加操作,需要在虚机启动命令中加入以下配置:
-m 2G,slots=32,maxmem=64G
#表示该虚机初始时使用2G内存,最大可添加到64G内存
2.热添加内存操作
执行以下命令,热添加Mem到虚拟机
(1)登录虚机控制台
# telnet 127.0.0.1 10001
(2)执行热添加Mem命令
(qemu) object_add memory-backend-ram,id=ram2,size=2G
(qemu) device_add pc-dimm,id=dimm2,memdev=ram2
注:ram2是热添加内存的设备id号,范围1~31,最大值由虚机启动参数配置的slots值决定,同一台虚机中添加的mem-id号不能相同,否则会导致id冲突。每块新添加的内存容量最好不要超过4G,当前最大支持5G容量。
(3)退出虚机控制台
参考CPU部分退出控制台操作。
3.登录虚机系统,激活新添加的内存块并验证
(1)激活新添加的内存块
登录虚机操作系统,执行以下命令激活新添加的内存块,此处以CentOS系统为例:
a.查看系统现有内存块
# ll /sys/devices/system/memory/
b.插入新内存以后,可以看到多出的内存块
c.激活新添加的内存块
# echo online > /sys/devices/system/memory/memory2/state
注:memory2是热添加的内存在操作系统中的编号。
CentOS7.2及以上系统已支持自动online添加的内存快,无需再执行以上激活操作。
(2)验证内存块热添加操作是否成功
# free -m

四.磁盘热添加和缩减
1.热添加磁盘操作
执行以下命令,热添加磁盘到虚拟机
(1)登录虚机控制台
# telnet 127.0.0.1 10001
(2)执行热添加磁盘命令
(qemu) drive_add 0 file=/home/vm/vmdisk/datadisk02,format=qcow2,id=drive-virtio0-disk-01,if=none
(qemu) device_add virtio-blk-pci,scsi=on,drive=drive-virtio0-disk-01,id=disk-01
(3)执行热缩减磁盘命令
(qemu) device_del disk-01
注:disk-01是热添加和缩减磁盘的设备id号,执行操作时,该设备id需要能够匹配上。
(4)退出虚机控制台
参考CPU部分退出控制台操作。
3.登录虚机系统验证磁盘操作
执行以下命令,查看磁盘添加和删除操作是否成功
# parted -l

五.网卡热添加和缩减
1.热添加网卡操作
执行以下命令,热添加网卡到虚拟机
(1)登录虚机控制台
# telnet 127.0.0.1 10001
(2)执行热添加网卡命令
(qemu) netdev_add tap,ifname=tap-7e03bc209a,id=hostnet-7e03bc209a,vnet_hdr=on,vhost=on,script=/etc/init.d/kvmbr5,downscript=no
(qemu) device_add virtio-net-pci,netdev=hostnet-7e03bc209a,id=net-7e03bc209a,mac=52:54:00:00:01:29,bus=pci.0
(3)执行热缩减网卡命令
(qemu) device_del net-7e03bc209a
(qemu) netdev_del hostnet-7e03bc209a
注:7e03bc209a是热添加和缩减网卡的设备id号,执行操作时,该设备id需要能够匹配上。
(4)退出虚机控制台
参考CPU部分退出控制台操作。
3.登录虚机系统验证网卡操作
执行以下命令,查看网卡添加和删除操作是否成功
# ip addr

如您有任何问题,欢迎与我们交流,微信号 ztkj_tjiyun