検索

3.2. NFV デプロイメントでサポートされている設定

download PDF

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 をデプロイします。

手順

  1. containers-prepare-parameter.yaml ファイルを修正し、neutron_driver パラメーターを ovs に設定します。

    parameter_defaults:
      ContainerImagePrepare:
      - push_destination: true
        set:
         neutron_driver: ovs
         ...
  2. /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 と同じノードにデプロイします。

手順

  1. ComputeOvsDpdkSriov ロールを作成します。

    openstack overcloud roles generate -o roles_data.yaml Controller ComputeOvsDpdkSriov
  2. OS::TripleO::Services::OVNMetadataAgent を Controller ロールに追加します。
  3. 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
  4. parameter_defaults セクションで、トンネル種別パラメーターの値を編集して geneve に設定します。

    NeutronTunnelTypes: 'geneve'
    NeutronNetworkType: ['geneve', 'vlan']
  5. オプション: 集中ルーティングモデルを使用する場合は、分散仮想ルーター (DVR) を無効にします。

    NeutronEnableDVR: false
  6. parameters_defaults セクションで、ブリッジマッピングを設定します。

     # The OVS logical-to-physical bridge mappings to use.
      NeutronBridgeMappings: "datacentre:br-ex,data1:br-link0,data2:br-link1"
  7. 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
  8. デプロイメントスクリプトに以下の 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 オフロードを無効にする必要があります。

手順

  1. ComputeOvsDpdkSriov ロールを作成します。

    openstack overcloud roles generate -o roles_data.yaml ControllerSriov ComputeSriov
  2. 実際のデプロイメントに応じて 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']
  3. 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
  4. デプロイメントスクリプトに以下の 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
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.