4.2. NFV 部署支持的配置
Red Hat OpenStack Platform(RHOSP)支持以下 NFV 部署,使用 director:
- 单根 I/O 虚拟化(SR-IOV)
- 带有 Data Plane Development Kit(OVS-DPDK)的 Open vSwitch
另外,您可以使用以下功能部署 RHOSP:
实施可组合服务和自定义角色。
有关更多信息 ,请参阅高级 Overcloud 自定义指南中的可组合服务和自定义角色 。
在同一主机上并置计算和 Ceph 存储服务。
如需更多信息,请参阅 超融合基础架构指南。
配置实时 Compute 节点.
如需更多信息,请参阅配置实例创建指南中的 配置 实时计算。
启用硬件卸载。
如需更多信息,请参阅配置 OVS 硬件卸载。
4.2.1. 使用 OVS 机制驱动程序部署 RHOSP
使用 OVS 机制驱动程序部署 RHOSP:
流程
修改
containers-prepare-parameter.yaml
文件,使neutron_driver
参数设置为ovs
。parameter_defaults: ContainerImagePrepare: - push_destination: true set: neutron_driver: ovs ...
将
neutron-ovs.yaml
环境文件包含到/usr/share/openstack-tripleo-heat-templates/environments/services
目录中。TEMPLATES=/usr/share/openstack-tripleo-heat-templates openstack overcloud deploy --templates \ -e ${TEMPLATES}/environments/network-environment.yaml \ -e ${TEMPLATES}/environments/network-isolation.yaml \ -e ${TEMPLATES}/environments/services/neutron-ovs.yaml \ -e ${TEMPLATES}/environments/services/neutron-ovs-dpdk.yaml \ -e ${TEMPLATES}/environments/services/neutron-sriov.yaml \ -e /home/stack/containers-prepare-parameter.yaml
4.2.2. 使用 OVS-DPDK 和 SR-IOV 部署 OVN
在与 OVN 相同的节点上部署 DPDK 和 SRIOV 虚拟机。
流程
生成
ComputeOvsDpdkSriov
角色:openstack overcloud roles generate -o roles_data.yaml Controller ComputeOvsDpdkSriov
-
将
OS::TripleO::Services::OVNMetadataAgent
添加到 Controller 角色。 使用
resource_registry
参数为 OVS-DPDK 添加自定义资源:resource_registry: # Specify the relative/absolute path to the config files you want to use for override the default. OS::TripleO::ComputeOvsDpdkSriov::Net::SoftwareConfig: nic-configs/computeovsdpdksriov.yaml OS::TripleO::Controller::Net::SoftwareConfig: nic-configs/controller.yaml
在 parameter_defaults 部分中,将 tunnel type 参数的值编辑为
geneve
:NeutronTunnelTypes: 'geneve' NeutronNetworkType: ['geneve', 'vlan']
可选:如果您使用集中式路由模型,请禁用分布式虚拟路由(DVR):
NeutronEnableDVR: false
在
parameters_defaults
下,设置网桥映射:# The OVS logical-to-physical bridge mappings to use. NeutronBridgeMappings: "datacentre:br-ex,data1:br-link0,data2:br-link1"
在
computeovsdpdksriov.yaml
文件中配置网络接口:- type: ovs_user_bridge name: br-link0 use_dhcp: false ovs_extra: - str_replace: template: set port br-link0 tag=_VLAN_TAG_ params: _VLAN_TAG_: get_param: TenantNetworkVlanID addresses: - ip_netmask: get_param: TenantIpSubnet members: - type: ovs_dpdk_port name: br-link0-dpdk-port0 rx_queue: 1 members: - type: interface name: eno3 - type: sriov_pf name: eno4 use_dhcp: false numvfs: 5 defroute: false nm_controlled: true hotplug: true promisc: false
在部署脚本中包含以下 yaml 文件:
- neutron-ovn-dpdk.yaml
- neutron-ovn-sriov.yaml
Open Virtual Networking (OVN) 是 Red Hat OpenStack Platform 16.2 中的默认网络机制驱动程序。如果要将 OVN 与分布式虚拟路由 (DVR) 搭配使用,则必须在 openstack overcloud deploy
命令中包含 environments/services/neutron-ovn-dvr-ha.yaml
文件。如果要在没有 DVR 的情况下使用 OVN,则必须在 openstack overcloud deploy
命令中包含 environments/services/neutron-ovn-ha.yaml
文件,并将 NeutronEnableDVR
参数设置为 false
。如果要将 OVN 与 SR-IOV 搭配使用,您必须将 environments/services/neutron-ovn-sriov.yaml
文件作为 openstack overcloud deploy
命令的最后一个 OVN 环境文件中找到。
4.2.3. 使用 OVS TC 流程序卸载部署 OVN
在与 OVN 相同的节点上部署 OVS TC 流程序卸载。
Red Hat Enterprise Linux 流量控制(TC)子系统不支持连接跟踪(conntrack)帮助程序或应用程序层网关(ALG)。因此,如果您使用 ALG,则必须禁用 TC Flower 卸载。
流程
生成
ComputeOvsDpdkSriov
角色:openstack overcloud roles generate -o roles_data.yaml \ ControllerSriov ComputeSriov
配置与部署相关的
physical_network
参数设置。-
对于 VLAN,将
physical_network
参数设置为部署后您在 neutron 中创建的网络的名称。还对NeutronBridgeMappings
参数使用这个值。 在特定于角色的参数下,如
ComputeSriovOffloadParameters
,确保OvsHwOffload
参数的值为true
。parameter_defaults: NeutronBridgeMappings: 'datacentre:br-ex,tenant:br-offload' NeutronNetworkVLANRanges: 'tenant:502:505' NeutronFlatNetworks: 'datacentre,tenant' NeutronPhysicalDevMappings: - tenant:ens1f0 - tenant:ens1f1 NovaPCIPassthrough: - address: "0000:17:00.1" physical_network: "tenant" - address: "0000:3b:00.1" physical_network: "tenant" NeutronTunnelTypes: '' NeutronNetworkType: 'vlan' ComputeSriovOffloadParameters: OvsHwOffload: True KernelArgs: "default_hugepagesz=1GB hugepagesz=1G hugepages=32 intel_iommu=on iommu=pt isolcpus=1-11,13-23" IsolCpusList: "1-11,13-23" NovaReservedHostMemory: 4096 NovaComputeCpuDedicatedSet: ['1-11','13-23'] NovaComputeCpuSharedSet: ['0','12']
-
对于 VLAN,将
在
computeovsdpdksriov.yaml
文件中配置网络接口:- type: ovs_bridge name: br-offload mtu: 9000 use_dhcp: false addresses: - ip_netmask: get_param: TenantIpSubnet members: - type: linux_bond name: bond-pf bonding_options: "mode=active-backup miimon=100" members: - type: sriov_pf name: ens1f0 numvfs: 3 primary: true promisc: true use_dhcp: false defroute: false link_mode: switchdev - type: sriov_pf name: ens1f1 numvfs: 3 promisc: true use_dhcp: false defroute: false link_mode: switchdev
在部署脚本中包含以下 yaml 文件:
- ovs-hw-offload.yaml
neutron-ovn-sriov.yaml
TEMPLATES_HOME=”/usr/share/openstack-tripleo-heat-templates” CUSTOM_TEMPLATES=”/home/stack/templates” openstack overcloud deploy --templates \ -r ${CUSTOM_TEMPLATES}/roles_data.yaml \ -e ${TEMPLATES_HOME}/environments/services/neutron-ovn-sriov.yaml \ -e ${TEMPLATES_HOME}/environments/ovs-hw-offload.yaml \ -e ${CUSTOM_TEMPLATES}/network-environment.yaml