我在 Ubuntu 20.04.4 LTS 上使用 libvirt 版本 6.0.0 来管理我的 KVM VM。我想使用 virsh CLI 更改 VM 的内核数量。我发现使用virsh setvcpus VM_name number_of_core --live
它可以做到这一点。以下是我从主机操作系统获得的输出。
步骤 1. 我启动了 1 核的虚拟机。这是虚拟机的 vcpu 信息。
host$ virsh vcpuinfo ubuntu_18_04_guest4
VCPU: 0
CPU: 14
State: running
CPU time: 25.8s
CPU Affinity: yyyyyyyyyyyyyyyy
- 我将虚拟机的核心数从 1 核更改为 2 核。
host$ virsh setvcpus ubuntu_18_04_guest4 2 --live
- 我检查虚拟机的核心数
host$ virsh vcpuinfo ubuntu_18_04_guest4
VCPU: 0
CPU: 2
State: running
CPU time: 65.5s
CPU Affinity: yyyyyyyyyyyyyyyy
VCPU: 1
CPU: 0
State: running
CPU Affinity: yyyyyyyyyyyyyyyy
在主机端,它看起来运行正常。现在,我要转到客户操作系统端。这是虚拟机首次以 1 个核心启动时的输出。
如我们所见,有 1 个核心,因为我们以 1 个核心启动了虚拟机。现在,我附上将核心数增加到 2 个后的屏幕截图。
正如我们所见,虽然我在主机端看到了这种增加,但我在客户机端没有看到这种增加。我现在重新启动虚拟机。
guest$ sudo reboot
现在之前分配的 2 个核心在客户机中生效。
综上所述,即使我在主机端对虚拟机进行了实时核心分配,我也需要重新启动虚拟机才能使其生效。在这种情况下,实时核心分配的原因是什么?
谢谢你,