编辑主机的agent配置文件/etc/cloudstack/agent/agent.properties,加入guest.cpu.mode=host-model

为 KVM 客户机配置 CPU 型号(可选)

此外,CloudStack Agent 允许主机管理员控制暴露给 KVM 实例的客户机 CPU 型号。默认情况下,KVM 实例的 CPU 型号可能是 QEMU 虚拟 CPU 版本 xxx,暴露的 CPU 功能最少。指定 CPU 型号的原因如下:

  • 通过向 KVM 实例公开新的主机 CPU 功能来最大限度地提高实例的性能;
  • 为了确保所有机器的默认 CPU 一致,消除对可变 QEMU 默认值的依赖;

大多数情况下,主机管理员只需在每个主机的配置文件 (/etc/cloudstack/agent/agent.properties) 中指定客户机 CPU 配置即可。这可以通过引入以下配置参数来实现:

guest.cpu.mode=custom|host-model|host-passthrough
guest.cpu.model=from /usr/share/libvirt/cpu_map.xml(only valid when guest.cpu.mode=custom)
guest.cpu.features=vmx ept aes smx mmx ht (space separated list of cpu flags to apply)

有三种选择可以实现 CPU 型号的更改:

  1. 自定义:您可以在 /usr/share/libvirt/cpu_map.xml 中明确指定一个受支持的命名模型
  2. host-model: libvirt 会识别 /usr/share/libvirt/cpu_map.xml 中与主机最匹配的 CPU 型号,然后请求其他 CPU 参数来完成匹配。这应该能够提供接近最佳的功能/性能,即使客户机迁移到其他 CPU 略有不同的主机,也能保持良好的可靠性/兼容性。
  3. host-passthrough: libvirt 将指示 KVM 直接直通主机 CPU,无需任何修改。与 host-model 的区别在于,它不仅匹配功能标志,还会匹配主机 CPU 的每一个细节。这绝对能带来最佳性能,并且对于一些需要检查底层 CPU 细节的应用程序来说非常重要,但这会降低迁移的效率:客户机只能迁移到完全匹配的主机 CPU。
最后修改:2025 年 04 月 29 日
如果觉得我的文章对你有用,请随意赞赏