2.7. 使用 ML2/OVN 部署自定义角色
在默认的 Red Hat OpenStack (RHOSP) 部署中,ML2/OVN 可组合服务在 Controller 节点上运行。您可以选择使用支持的自定义角色,如以下示例中描述的角色。
- Networker
- 在专用的 networker 节点上运行 OVN 可组合服务。
- 带有 SR-IOV 的 Networker
- 使用 SR-IOV 在专用 networker 节点上运行 OVN 可组合服务。
- 带有 SR-IOV 的控制器
- 在支持 SR-IOV 的控制器节点上运行 OVN 可组合服务。
您还可以生成自己的自定义角色。
限制
以下限制适用于在此发行版本中将 SR-IOV 与 ML2/OVN 和原生 OVN DHCP 搭配使用。
- 所有外部端口都调度到单一网关节点上,因为所有端口只有一个 HA Chasis Group。
- VLAN 租户网络上的 VF (直接)端口的北/南路由无法用于 SR-IOV,因为外部端口不与逻辑路由器网关端口在一起。请参阅 https://bugs.launchpad.net/neutron/+bug/1875852。
先决条件
您知道如何部署自定义角色。
如需更多信息,请参阅 Director 安装和使用 指南中的 可组合服务和自定义角色。
流程
以
stack
用户身份登录 undercloud 主机,再提供stackrc
文件。source stackrc
$ source stackrc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 选择适合您的部署的自定义角色文件。如果它符合您的需要,请在 deploy 命令中直接使用它。或者,您可以生成自己的自定义角色文件,它们组合了其他自定义角色文件。
Expand Deployment 角色 角色文件 Networker 角色
Networker
Networker.yaml
带有 SR-IOV 的 Networker 角色
NetworkerSriov
NetworkerSriov.yaml
与 SR-IOV 共存控制和网络程序
ControllerSriov
ControllerSriov.yaml
(可选)生成一个新的自定义角色数据文件,它将之前列出的自定义角色文件之一与其他自定义角色文件合并。
按照 Director 安装和使用指南中的创建 roles_data 文件中的说明进行操作。根据您的部署,包含适当的源角色文件。
(可选)要识别角色的特定节点,您可以创建特定的硬件类别,并将该类别分配到特定的节点。然后,使用环境文件来定义角色的类别,并指定节点数。
如需更多信息,请参阅 Director 安装和使用指南中的创建新角色的示例。
根据您的部署创建环境文件。
Expand Deployment 环境文件示例 Networker 角色
neutron-ovn-dvr-ha.yaml
带有 SR-IOV 的 Networker 角色
ovn-sriov.yaml
根据您的部署,包含以下设置。
Expand Deployment 设置 Networker 角色
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 带有 SR-IOV 的 Networker 角色
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 与 SR-IOV 共存控制和网络程序
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行部署命令,并使用
-r
选项在部署命令中包含核心 heat 模板、其他环境文件以及自定义角色数据文件。重要但是,环境文件的顺序非常重要,因为后续环境文件中定义的参数和资源更为优先。
示例
openstack overcloud deploy --templates <core_heat_templates> \ -e <other_environment_files> \ -e /home/stack/templates/my-neutron-environment.yaml
$ openstack overcloud deploy --templates <core_heat_templates> \ -e <other_environment_files> \ -e /home/stack/templates/my-neutron-environment.yaml -r mycustom_roles_file.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证步骤
以
tripleo-admin
用户身份登录 Controller 或 Networker 节点:示例
ssh tripleo-admin@controller-0
ssh tripleo-admin@controller-0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 确保
ovn_metadata_agent
正在运行。sudo podman ps | grep ovn_metadata
$ sudo podman ps | grep ovn_metadata
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
a65125d9588d undercloud-0.ctlplane.localdomain:8787/rh-osbs ... openstack-neutron-metadata-agent-ovn ... kolla_start 23 hours ago Up 21 hours ago ovn_metadata_agent
a65125d9588d undercloud-0.ctlplane.localdomain:8787/rh-osbs ... openstack-neutron-metadata-agent-ovn ... kolla_start 23 hours ago Up 21 hours ago ovn_metadata_agent
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 确保具有 OVN 服务或专用 Networker 节点的 Controller 节点已配置为 OVS 的网关。
sudo ovs-vsctl get Open_Vswitch . external_ids:ovn-cms-options
$ sudo ovs-vsctl get Open_Vswitch . external_ids:ovn-cms-options
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
enable-chassis-as-gw
enable-chassis-as-gw
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
SR-IOV 部署的额外验证步骤
以
tripleo-admin
用户身份登录 Compute 节点:示例
ssh tripleo-admin@compute-0
ssh tripleo-admin@compute-0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 确保
neutron_sriov_agent
在 Compute 节点上运行。sudo podman ps | grep neutron_sriov_agent
sudo podman ps | grep neutron_sriov_agent
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
f54cbbf4523a undercloud-0.ctlplane.localdomain:8787 ... openstack-neutron-sriov-agent ... kolla_start 23 hours ago Up 21 hours ago neutron_sriov_agent
f54cbbf4523a undercloud-0.ctlplane.localdomain:8787 ... openstack-neutron-sriov-agent ... kolla_start 23 hours ago Up 21 hours ago neutron_sriov_agent
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 确保已成功检测到网络可用的 SR-IOV NIC。
sudo podman exec -uroot galera-bundle-podman-0 mysql nova \ -e 'select hypervisor_hostname,pci_stats from compute_nodes;'
$ sudo podman exec -uroot galera-bundle-podman-0 mysql nova \ -e 'select hypervisor_hostname,pci_stats from compute_nodes;'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow