9.2. 配置 VDPA Compute 节点
要让您的云用户创建使用 VIRTIO 数据路径加速 (VDPA) 端口的实例,请配置具有 VDPA 设备的 Compute 节点。
流程
-
创建一个新的 Compute 环境文件,用于配置 VDPA Compute 节点,如
vdpa_compute.yaml
。 将
PciPassthroughFilter
和NUMATopologyFilter
添加到vdpa_compute.yaml
中的NovaSchedulerEnabledFilters
参数中:parameter_defaults: NovaSchedulerEnabledFilters: ['AvailabilityZoneFilter','ComputeFilter','ComputeCapabilitiesFilter','ImagePropertiesFilter','ServerGroupAntiAffinityFilter','ServerGroupAffinityFilter','PciPassthroughFilter','NUMATopologyFilter']
将
NovaPCIPassthrough
参数添加到vdpa_compute.yaml
,以指定 Compute 节点上的 VDPA 设备的可用 PCI。例如,要将 NVIDIA® ConnectX®-6 Dx 设备添加到可用于透传到实例的 PCI 设备池中,请将以下配置添加到vdpa_compute.yaml
中:parameter_defaults: ... ComputeVdpaParameters: NovaPCIPassthrough: - vendor_id: "15b3" product_id: "101d" address: "06:00.0" physical_network: "tenant" - vendor_id: "15b3" product_id: "101d" address: "06:00.1" physical_network: "tenant"
有关如何配置
NovaPCIPassthrough
的更多信息,请参阅 配置NovaPCIPassthrough
的指南。通过将
KernelArgs
参数添加到vdpa_compute.yaml
,在每个 Compute 节点 BIOS 中启用 input-output 内存管理单元 (IOMMU)。例如,使用以下KernalArgs
设置来启用 Intel 公司 IOMMU:parameter_defaults: ... ComputeVdpaParameters: ... KernelArgs: "intel_iommu=on iommu=pt"
要启用 AMD IOMMU,将
KernelArgs
设置为"amd_iommu=on iommu=pt
"。注意第一次将
KernelArgs
参数添加到角色的配置中时,overcloud 节点会在 overcloud 部署期间自动重新引导。如果需要,您可以禁用自动重新引导节点,并在每个 overcloud 部署后手动重启节点。如需更多信息,请参阅配置手动节点重新引导以定义KernelArgs
。打开网络环境文件,并添加以下配置来定义物理网络:
parameter_defaults: ... NeutronBridgeMappings: - <bridge_map_1> - <bridge_map_n> NeutronTunnelTypes: '<tunnel_types>' NeutronNetworkType: '<network_types>' NeutronNetworkVLANRanges: - <network_vlan_range_1> - <network_vlan_range_n>
-
将
<bridge_map_1>
以及所有网桥映射(直到<bridge_map_n>
)替换为您要用于 VDPA 网桥的逻辑网桥映射。例如,tenant:br-tenant
. -
将
<tunnel_types>
替换为项目网络的隧道类型的逗号分隔列表。例如,geneve
。 -
将
<network_types>
替换为 Networking 服务 (neutron) 的项目网络类型的逗号分隔列表。在所有可用网络用尽前,系统会使用您指定的第一种类型,然后会使用下一个类型。例如,geneve,vlan
。 -
将
<network_vlan_range_1>
,所有物理网络和 VLAN 范围(直到<network_vlan_range_n>
) 替换为您要支持的 ML2 和 OVN VLAN 映射范围。例如,datacentre:1:1000
,tenant:100:299
。
-
将
使用其他环境文件将自定义环境文件添加到堆栈中,并部署 overcloud:
(undercloud)$ openstack overcloud deploy --templates \ -e [your environment files] \ -r /home/stack/templates/roles_data_vdpa.yaml \ -e /home/stack/templates/network-environment.yaml \ -e /home/stack/templates/vdpa_compute.yaml \ -e /home/stack/templates/overcloud-baremetal-deployed.yaml \ -e /home/stack/templates/node-info.yaml