如何增加 KVM 来宾 vCPU 资源

这篇文章说明了有关如何增加 KVM 来宾 vCPU 的步骤。
有两种方法可以增加 KVM 来宾 vCPU:动态和离线。
让我们看看下面每种方法的步骤。

查看更多教程 https://on  itroad.com

离线增加 KVM 来宾 vCPU

该方法需要为Guest VM安排停机时间:

  1. 关闭访客虚拟机:
[root@kvm-host]# virsh list
Id Name State
---------------------------------------------------
10 kvm-guest running
[root@kvm-host]# virsh destroy 10
Domain 10 destroyed
[root@kvm-host]# virsh list
Id Name State
---------------------------------------------------
  1. 更新所需的 vCPU 数量:
# virsh edit guest_vm

在本例中,我们将 vCPU 从 2 增加到 4:

[root@j-kvm-host opc]# virsh edit kvm-guest

<memory unit='KiB'>8392704</memory>
<currentMemory unit='KiB'>8392704</currentMemory>
<vcpu placement='static'>2</vcpu>

改成:

<memory unit='KiB'>8392704</memory>
<currentMemory unit='KiB'>8392704</currentMemory>
<vcpu placement='static'>4</vcpu>
  1. 启动guest VM,查看增加的vCPU是否生效:
[root@j-kvm-host opc]# virsh start kvm-guest
  1. 验证新的 CPU 资源:

从 KVM 主机:

[root@kvm-host]# virsh dominfo kvm-guest
Id: 12
Name: kvm-guest
UUID: 8f6fc48c-a6f4-429d-b77e-88a4b8d3d961
OS Type: hvm
State: running
CPU(s): 4
...

从 KVM 来宾:

[root@localhost ~]# lscpu
Architecture: x86_64
CPU op-mode(s): 64-bit
CPU(s): 4
Thread(s) per core: 1
Core(s) per socket: 1
CPU socket(s): 4
NUMA node(s): 1
Vendor ID: GenuineIntel
...

在线增加 KVM 来宾 vCPU

  1. 检查 KVM 主机上当前的 KVM 来宾 vcpu/内存:
[root@kvm-host]# virsh dumpxml kvm-guest | grep vcpu
<vcpu placement='static'>1</vcpu>
[root@kvm-host]# virsh dominfo kvm-guest
Id: 
Name: kvm-guest
UUID: 8f6fc48c-a6f4-429d-b77e-88a4b8d3d961
OS Type: hvm
State: shut off
CPU(s): 1
Max memory: 8392704 KiB
Used memory: 8392704 KiB
Persistent: yes
Autostart: disable
Managed save: no
Security model: selinux
Security DOI: 0
  1. 设置 KVM 来宾的最大 vCPU。
    在本示例中,我们将 Guest VM 的 vCPU 最大值设置为 2:
[root@kvm-host]# virsh setvcpus kvm-guest 2 --config --maximum
  1. 检查最大vCPU设置是否生效。
    这是 vCPU XML 格式:
<vcpu placement='static' current='N'>M</vcpu>

其中 N 是当前启用的 CPU 数量,M 是最大 CPU 数量。

[root@kvm-host]# virsh dumpxml kvm-guest | grep -i vcpu
<vcpu placement='static' current='1'>2</vcpu>
  1. 使用 virsh 命令将 vCPU 从 1 增加到 2:
[root@kvm-host]# virsh setvcpus kvm-guest 2
  1. 检查 vCPU 添加是否完成:

从 KVM 主机:

[root@kvm-host]# virsh dominfo kvm-guest
Id: 11
Name: kvm-guest
UUID: 8f6fc48c-a6f4-429d-b77e-88a4b8d3d961
OS Type: hvm
State: running
CPU(s): 2
CPU time: 13.9s
Max memory: 8392704 KiB
Used memory: 8392704 KiB
Persistent: yes
Autostart: disable
Managed save: no
Security model: selinux
Security DOI: 0
Security label: system_u:system_r:svirt_t:s0:c191,c578 (enforcing)

从 KVM 来宾:

[root@localhost ~]# tail -f /var/log/messages
checking TSC synchronization [CPU#0 -> CPU#1]:
Measured 143005979072 cycles TSC warp between CPUs, turning off TSC clock.
Please try to boot with tscsync
Marking TSC unstable due to check_tsc_sync_source failed
kvm-clock: cpu 1, msr 0:28314b81, secondary cpu clock
[root@localhost ~]# lscpu
Architecture: x86_64
CPU op-mode(s): 64-bit
CPU(s): 2
Thread(s) per core: 1
Core(s) per socket: 1
CPU socket(s): 2
  1. 如果要使此更改持久化,请保存 VM 配置。
[root@kvm-host]# virsh setvcpus kvm-guest 2 --config
日期:2020-09-17 00:16:28 来源:oir作者:oir