6.2. 配置 VDPA Compute 节点
要让您的云用户创建使用 VIRTIO 数据路径加速 (VDPA) 端口的实例,请配置具有 VDPA 设备的 Compute 节点。
流程
-
创建一个新的 Compute 环境文件,用于配置 VDPA Compute 节点,如
vdpa_compute.yaml。 将
PciPassthroughFilter和NUMATopologyFilter添加到vdpa_compute.yaml中的NovaSchedulerDefaultFilters参数中:parameter_defaults: NovaSchedulerDefaultFilters: ['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。
-
将
打开您的网络接口模板,并添加以下配置,将 VDPA 支持的网络接口指定为 OVN 网桥的成员:
- type: ovn_bridge name: br-tenant members: - type: sriov_pf name: enp6s0f0 numvfs: 8 use_dhcp: false vdpa: true link_mode: switchdev - type: sriov_pf name: enp6s0f1 numvfs: 8 use_dhcp: false vdpa: true link_mode: switchdev使用其他环境文件将自定义环境文件添加到堆栈中,并部署 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
验证
- 使用 VDPA 设备创建实例。如需更多信息,请参阅创建和管理实例指南中的创建使用 VDPA 接口的实例。
- 以云用户身份登录实例。如需更多信息,请参阅创建和管理实例指南中的连接到实例。
验证 VDPA 设备是否可从实例访问:
$ openstack port show vdpa-port