搜索

10.5. 配置 NUMA 感知 vSwitch

download PDF

该功能在此发行版本中作为技术预览提供,因此不享有红帽的全面支持。它只应用于测试,不应部署在生产环境中。有关技术预览功能的更多信息,请参阅覆盖范围详细信息

在实施 NUMA 感知的 vSwitch 前,请检查您的硬件配置的以下组件:

  • 物理网络的数量。
  • PCI 卡的放置。
  • 服务器的物理架构。

内存映射的 I/O(MMIO)设备(如 PCIe NIC)与特定的 NUMA 节点关联。当 VM 和 NIC 位于不同的 NUMA 节点上时,性能会显著降低。为提高性能,使 PCIe NIC 放置和实例处理在同一 NUMA 节点上保持一致。

使用此功能来确保共享物理网络的实例位于同一 NUMA 节点上。要优化数据中心硬件的使用,您必须使用多个 physnets。

警告

要配置 NUMA 感知网络以实现最佳服务器利用率,您必须了解 PCIe 插槽和 NUMA 节点的映射。有关您特定硬件的详细信息,请参阅您的供应商文档。如果无法正确规划或实施 NUMA 感知 vSwitch,则可能导致服务器只使用单个 NUMA 节点。

要防止跨 NUMA 配置,请将虚拟机放置在正确的 NUMA 节点上,方法是向 Nova 提供 NIC 的位置。

先决条件

  • 您已启用了过滤器 NUMATopologyFilter

流程

  1. 设置一个新的 NeutronPhysnetNUMANodesMapping 参数,将物理网络映射到您与物理网络关联的 NUMA 节点。
  2. 如果使用 VxLAN 或 GRE 等隧道,还必须设置 NeutronTunnelNUMANodes 参数。

    parameter_defaults:
      NeutronPhysnetNUMANodesMapping: {<physnet_name>: [<NUMA_NODE>]}
      NeutronTunnelNUMANodes: <NUMA_NODE>,<NUMA_NODE>

    示例

    以下是两个到 NUMA 节点 0 的物理网络的示例:

    • 与 NUMA 节点 0 关联的项目网络
    • 一个没有关联性的管理网络

      parameter_defaults:
        NeutronBridgeMappings:
          - tenant:br-link0
        NeutronPhysnetNUMANodesMapping: {tenant: [1], mgmt: [0,1]}
        NeutronTunnelNUMANodes: 0
    • 在本例中,将名为 eno2 的设备的 physnet 分配给 NUMA 编号 0。

      # ethtool -i eno2
      bus-info: 0000:18:00.1
      
      # cat /sys/devices/pci0000:16/0000:16:02.0/0000:18:00.1/numa_node
      0

      观察示例 heat 模板中的 physnet 设置:

      NeutronBridgeMappings: 'physnet1:br-physnet1'
      NeutronPhysnetNUMANodesMapping: {physnet1: [0] }
      
      - type: ovs_user_bridge
                      name: br-physnet1
                      mtu: 9000
                      members:
                        - type: ovs_dpdk_port
                          name: dpdk2
                          members:
                            - type: interface
                              name: eno2

验证

按照以下步骤测试您的 NUMA 感知 vSwitch:

  1. 观察 /var/lib/config-data/puppet-generated/nova_libvirt/etc/nova/nova.conf 文件中的配置:

    [neutron_physnet_tenant]
    numa_nodes=1
    [neutron_tunnel]
    numa_nodes=1
  2. 使用 lscpu 命令确认新配置:

    $ lscpu
  3. 启动附加到适当网络的 NIC 的虚拟机。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.