您的位置:首页 > 其它

kvm libvirt cpu 热添加

2015-12-01 17:08 246 查看
guest os 为centos7

1)配置虚拟机的xml文件:

<!-- 配置CPU数目 -->

<vcpu placement='auto' current="1">4</vcpu>

设置虚拟机默认使用的cpu个数是1个 , 但是最大可以添加到4个

2)启动虚拟机,在guest中查看虚拟机个数:

ls /sys/devices/system/cpu

会看到cpuX 的目录,x是(1,2,3.......),有几个这样的目录代表有几个cpu.因为在xml里面current=1,所以之可以看到cpu0目录

3)在host上使用virsh命令添加cpu:

virsh setvcpus test 2 --live

执行后,在guest再执行ls /sys/devices/system/cpu ,此时会看到有两个目录cpu0, cpu1 说明已经添加成功了,但是执行

cat /proc/interrupys 会看到还是只有以cpu0在工作,这是因为通过virsh热添加的cpu默认的状态是关闭的,需要执行以下命令打开

cpu: echo '1' > /sys/devices/system/cpu/cpuX/online (x 代表 1,2,3.....)

4)此时再去查看 cat /proc/interrupts 会看到两个cpu都已经开始工作

5)virsh setvcpus --config test 2

这条命令设置的是下一次引导时虚拟机的cpu个数,并且会自动启动

6)virsh setvcpus --maximum test 8

这条命令设置的下一次引导时虚拟机可以使用的最大cpu个数

7) virsh setvcpus --guest test 6

在虚拟机中修改 cpu 状态 (个人理解:好像需要qga的支持)

--config 写到配置文件里面,下次重启虚拟机有效
--live 影响正在运行的虚拟机,虚拟机进程消失后效果消失,默认是这种模式
--current 影响停止和正在运行的虚拟机,如果虚拟机运行,虚拟机进程停止后,效果消失

只支持cpu的热添加,不支持cpu的热删除,并且个数不能超过之前在xml文件里面设置的最大个数

guest os 为win7

同样修改虚拟机的xml文件,测试的结果是virsh setvcpus test 2 --live 执行结果成功,在设备管理其里里面也可以看到增加的cpu,但是计算机->属性看到的处理器个数还是原来的,并且在任务管理器里面看到的也是只有原来个数的cpu在运行

结论: 在win7上cpu热添加行不通,原因是win7没有对热添加的cpu直接运行的方法,有人测试过过win8 server he 2012 好像是可以
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: