3.2. NFV デプロイメントでサポートされている設定
Red Hat OpenStack Platform (RHOSP) では、director を使用して以下の NFV デプロイメントがサポートされます。
- Single Root I/O Virtualization (SR-IOV)
- Data Plane Development Kit 対応 Open vSwitch (OVS-DPDK)
また、以下のどの機能と共に RHOSP をデプロイすることもできます。
デフォルトのソフトウェア定義ネットワーク (SDN) ソリューションとして Open Virtual Network (OVN) を使用する RHOSP NFV デプロイメントはサポートされません。以下に示す RHOSP NFV OVN の設定は、RHOSP 16.1.4 では一般提供として利用することができます。
- OVN と OVS-DPDK の組み合わせが SR-IOV と共存する設定
- OVN と OVS TC Flower オフロードを組み合わせた設定
3.2.1. OVS メカニズムドライバーを使用する RHOSP のデプロイ リンクのコピーリンクがクリップボードにコピーされました!
OVS メカニズムドライバーと共に RHOSP をデプロイします。
手順
containers-prepare-parameter.yamlファイルを修正し、neutron_driverパラメーターをovsに設定します。parameter_defaults: ContainerImagePrepare: - push_destination: true set: neutron_driver: ovs .../usr/share/openstack-tripleo-heat-templates/environments/servicesディレクトリーのneutron-ovs.yaml環境ファイルを、デプロイメント用スクリプトに追加します。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
3.2.2. OVN と OVS-DPDK の組み合わせが SR-IOV と共存する設定のデプロイ リンクのコピーリンクがクリップボードにコピーされました!
この RHOSP NFV OVN の設定は、RHOSP 16.1.4 では一般提供として利用することができます。
DPDK および SRIOV 仮想マシンを OVN と同じノードにデプロイします。
手順
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.yamlparameter_defaults セクションで、トンネル種別パラメーターの値を編集して
geneveに設定します。NeutronTunnelTypes: 'geneve' NeutronNetworkType: ['geneve', 'vlan']オプション: 集中ルーティングモデルを使用する場合は、分散仮想ルーター (DVR) を無効にします。
NeutronEnableDVR: falseparameters_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.1 におけるデフォルトのネットワークメカニズムドライバーです。分散仮想ルーター (DVR) で OVN を使用する場合には、openstack overcloud deploy コマンドに environments/services/neutron-ovn-dvr-ha.yaml ファイルを追加する必要があります。DVR なしで OVN を使用する場合は、environments/services/neutron-ovn-ha.yamlファイルをopenstack overcloud deployコマンドに含め、NeutronEnableDVRパラメーターをfalseに設定する必要があります。SR-IOV と OVN を使用する場合は、openstack overcloud deployコマンドの最後の OVN 環境ファイルとしてenvironments/services/neutron-ovn-sriov.yamlファイルを含める必要があります。
3.2.3. OVN と OVS TC Flower オフロードを組み合わせた設定のデプロイ リンクのコピーリンクがクリップボードにコピーされました!
OVS TC Flower オフロードを OVN と同じノードにデプロイします。
この RHOSP NFV OVN の設定は、RHOSP 16.1.4 では一般提供として利用することができます。
Red Hat Enterprise Linux Traffic Control (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