搜索

20.40.4. 确定兼容的 CPU 型号来保证主机物理机器池

download PDF
现在,可以找出单一主机物理计算机具有的 CPU 功能,下一步是决定哪些 CPU 功能最好向客户机虚拟机公开。如果已知客户机虚拟机绝不需要迁移到另一台主机物理计算机,则主机物理机器 CPU 模型可以直接通过未修改进行传递。虚拟化数据中心可能具有一组配置,它可以保证所有服务器都拥有 100% 的相同 CPU。同样,可以通过未修改来直接传递主机物理机器 CPU 模型。然而,较常见的情况是主机物理机器之间的 CPU 变化。在这种混合 CPU 环境中,必须确定最低的 denominator CPU。这并不完全直接,因此 libvirt 为此任务提供了一个 API。如果 libvirt 是 XML 文档列表,每个文档都描述主机物理计算机的 CPU 模型,libvirt 在内部将其转换为 CPUID 掩码,计算它们的交集,并将 CPUID 掩码结果转换为 XML CPU 描述。
以下是执行 virsh 功能时 libvirt 作为基本工作站功能 的一个示例:

图 20.4. 拉取主机物理机器的 CPU 模型信息


<capabilities>
  <host>
    <cpu>
      <arch>i686</arch>
      <model>pentium3</model>
      <topology sockets='1' cores='2' threads='1'/>
      <feature name='lahf_lm'/>
      <feature name='lm'/>
      <feature name='xtpr'/>
      <feature name='cx16'/>
      <feature name='ssse3'/>
      <feature name='tm2'/>
      <feature name='est'/>
      <feature name='vmx'/>
      <feature name='ds_cpl'/>
      <feature name='monitor'/>
      <feature name='pni'/>
      <feature name='pbe'/>
      <feature name='tm'/>
      <feature name='ht'/>
      <feature name='ss'/>
      <feature name='sse2'/>
      <feature name='acpi'/>
      <feature name='ds'/>
      <feature name='clflush'/>
      <feature name='apic'/>
    </cpu>
 </host>
</capabilities>
现在,与不同的服务器进行比较,使用相同的 virsh capabilities 命令:

图 20.5. 从随机服务器生成 CPU 描述


<capabilities>
  <host>
    <cpu>
      <arch>x86_64</arch>
      <model>phenom</model>
      <topology sockets='2' cores='4' threads='1'/>
      <feature name='osvw'/>
      <feature name='3dnowprefetch'/>
      <feature name='misalignsse'/>
      <feature name='sse4a'/>
      <feature name='abm'/>
      <feature name='cr8legacy'/>
      <feature name='extapic'/>
      <feature name='cmp_legacy'/>
      <feature name='lahf_lm'/>
      <feature name='rdtscp'/>
      <feature name='pdpe1gb'/>
      <feature name='popcnt'/>
      <feature name='cx16'/>
      <feature name='ht'/>
      <feature name='vme'/>
    </cpu>
    ...snip...
要查看此 CPU 描述是否与以前的工作站 CPU 描述兼容,请使用 virsh cpu-compare 命令。
减少的内容存储在名为 virsh-caps-workstation-cpu-only.xml 的文件中,可以在此文件上执行 virsh cpu-compare 命令:
# virsh cpu-compare virsh-caps-workstation-cpu-only.xml
Host physical machine CPU is a superset of CPU described in virsh-caps-workstation-cpu-only.xml
如本输出中所示,libvirt 正确报告 CPU 严格兼容。这是因为客户端 CPU 中缺少几个功能。为了能够在客户端和服务器之间迁移,需要打开 XML 文件并注释掉一些功能。要确定需要删除哪些功能,请在包含两台计算机的 CPU 信息运行 virsh cpu - baseline 命令。运行 # virsh cpu-baseline two-cpus.xml 将生成:

图 20.6. 复合 CPU 基准


<cpu match='exact'>
  <model>pentium3</model>
  <feature policy='require' name='lahf_lm'/>
  <feature policy='require' name='lm'/>
  <feature policy='require' name='cx16'/>
  <feature policy='require' name='monitor'/>
  <feature policy='require' name='pni'/>
  <feature policy='require' name='ht'/>
  <feature policy='require' name='sse2'/>
  <feature policy='require' name='clflush'/>
  <feature policy='require' name='apic'/>
</cpu>
此复合文件显示哪些元素是通用的。不常见的一切都应被注释掉。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.