搜索

4.3. 为实例配置 CPU 功能标记

download PDF

您可以为实例启用或禁用 CPU 功能标记,而无需更改主机 Compute 节点上的设置并重启 Compute 节点。通过配置应用到实例的标准 CPU 功能标记,您可以帮助实现跨 Compute 节点的实时迁移兼容性。您还有助于通过禁用对具有特定 CPU 模型的实例的安全性或性能造成负面影响的标记,或者启用提供安全问题或性能问题的缓解的标记,从而帮助管理实例的性能和安全性。

4.3.1. 先决条件

  • 主机 Compute 节点的硬件和软件必须支持 CPU 模型和功能标志:

    • 要检查主机支持的硬件,请在 Compute 节点上输入以下命令:

      $ cat /proc/cpuinfo
    • 要检查主机上支持的 CPU 型号,请在 Compute 节点上输入以下命令:

      $ sudo podman exec -it nova_libvirt virsh cpu-models <arch>

      <arch > 替换为架构的名称,如 x86_64

4.3.2. 为实例配置 CPU 功能标记

配置计算服务,以将 CPU 功能标志应用到具有特定 vCPU 模型的实例。

流程

  1. stack 用户的身份登录 undercloud。
  2. Source stackrc 文件:

    [stack@director ~]$ source ~/stackrc
  3. 打开 Compute 环境文件。
  4. 配置实例 CPU 模式:

    parameter_defaults:
      ComputeParameters:
        NovaLibvirtCPUMode: <cpu_mode>

    <cpu_mode > 替换为 Compute 节点上每个实例的 CPU 模式。设置为以下有效值之一:

    • host-model :(默认)使用主机 Compute 节点的 CPU 模型。使用此 CPU 模式自动向实例添加关键 CPU 标记,以提供对安全漏洞的缓解方案。
    • 自定义 :使用 配置每个实例应使用的特定 CPU 型号。

      注意

      您还可以将 CPU 模式设置为 host-passthrough,以使用与该 Compute 节点上托管的实例的 Compute 节点相同的 CPU 模型和功能标志。

  5. 可选:如果您将 NovaLibvirtCPUMode 设置为 custom,请配置您要自定义的实例 CPU 型号:

    parameter_defaults:
      ComputeParameters:
        NovaLibvirtCPUMode: 'custom'
        NovaLibvirtCPUModels: <cpu_model>

    <cpu_model > 替换为主机支持的 CPU 模型的逗号分隔列表。按顺序列出 CPU 型号,首先将更常见和不太高级 CPU 型号放在列表中,而功能丰富的 CPU 模型最后是 SandyBridge,IvyBridge,Haswell。有关模型名称列表,请参阅 /usr/share/libvirt/cpu_map.xml,或者在主机 Compute 节点上输入以下命令:

    $ sudo podman exec -it nova_libvirt virsh cpu-models <arch>

    <arch > 替换为 Compute 节点架构的名称,如 x86_64

  6. 为使用指定 CPU 型号的实例配置 CPU 功能标记:

    parameter_defaults:
      ComputeParameters:
        ...
        NovaLibvirtCPUModelExtraFlags: <cpu_feature_flags>

    <cpu_feature_flags > 替换为以逗号分隔的功能标记列表,以启用或禁用。前缀每个带有 "+" 的标记来启用标志,或者"-"来禁用它。如果没有指定前缀,则会启用 标志。有关给定 CPU 模型的可用功能标记列表,请参阅 /usr/share/libvirt/cpu_mapVRF.xml

    以下示例为 IvyBridgeCascadelake-Server 模型启用 CPU 功能标记 pcidssbd,并禁用功能标记 mtrr

    parameter_defaults:
      ComputeParameters:
        NovaLibvirtCPUMode: 'custom'
        NovaLibvirtCPUModels: 'IvyBridge','Cascadelake-Server'
        NovaLibvirtCPUModelExtraFlags: 'pcid,+ssbd,-mtrr'
  7. 使用其他环境文件将计算环境文件添加到堆栈中,并部署 overcloud:

    (undercloud)$ openstack overcloud deploy --templates \
     -e [your environment files] \
     -e /home/stack/templates/<compute_environment_file>.yaml
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.