6.2. SR-IOV の設定

注記

以下に示す CPU 割り当て、メモリーの確保、および NIC の設定は一例であり、実際のユースケースとは異なる場合があります。

  1. NeutronSriovAgentNeutronSriovHostConfig、およびデフォルトの Compute サービスを実行する OpenStack クラスターのノードを定義するために、ビルトインの ComputeSriov ロールを生成します。

    # openstack overcloud roles generate \
    -o /home/stack/templates/roles_data.yaml \
    Controller ComputeSriov
  2. SR-IOV コンテナーを準備するには、overcloud_images.yaml ファイルを生成する際に neutron-sriov.yaml および roles_data.yaml ファイルを含めます。

    sudo openstack tripleo container image prepare \
      --roles-file ~/templates/roles_data.yaml \
      -e /usr/share/openstack-tripleo-heat-templates/environments/services/neutron-sriov.yaml \
      -e ~/containers-prepare-parameter.yaml \
      --output-env-file=/home/stack/templates/overcloud_images.yaml

    コンテナーイメージの準備に関する詳細な情報は、『 director のインストールと使用方法』 を参照してください。

  3. 実際のクラスターおよびハードウェア構成に合わせて、parameter_defaults セクションで SR-IOV ノードのパラメーターを適切に設定します。通常、以下の設定を network-environment.yaml ファイルに追加します。

      NeutronNetworkType: 'vlan'
      NeutronNetworkVLANRanges:
        - tenant:22:22
        - tenant:25:25
      NeutronTunnelTypes: ''
  4. 同じファイルで、SR-IOV コンピュートノードのロール固有のパラメーターを設定します。

    注記

    numvfs パラメーターは、ネットワーク設定テンプレートの NeutronSriovNumVFs パラメーターに代わるものです。Red Hat では、デプロイ後の NeutronSriovNumVFs パラメーターまたは numvfs パラメーターの変更をサポートしません。デプロイ後にいずれかのパラメーターを変更すると、その Physical Function (PF) 上に SR-IOV ポートを持つ実行中のインスタンスが使用できなくなる可能性があります。この場合、これらのインスタンスをハードリブートして、SR-IOV PCI デバイスを再び利用可能にする必要があります。NovaVcpuPinSet パラメーターは非推奨となり、専用の固定されたワークフロー用の NovaComputeCpuDedicatedSet に置き換えられています。

      ComputeSriovParameters:
        IsolCpusList: "1-19,21-39"
        KernelArgs: "default_hugepagesz=1GB hugepagesz=1G hugepages=32 iommu=pt intel_iommu=on isolcpus=1-19,21-39"
        TunedProfileName: "cpu-partitioning"
        NeutronBridgeMappings:
          - tenant:br-link0
        NeutronPhysicalDevMappings:
          - tenant:p7p1
          - tenant:p7p2
        NovaPCIPassthrough:
          - devname: "p7p1"
            physical_network: "tenant"
          - devname: "p7p2"
            physical_network: "tenant"
        NovaComputeCpuDedicatedSet: '1-19,21-39'
        NovaReservedHostMemory: 4096
  5. compute.yaml ネットワーク設定テンプレートで、SR-IOV が有効なインターフェースを設定します。SR-IOV Virtual Function (VF) を作成するには、インターフェースをスタンドアロンの NIC として設定します。

                 - type: sriov_pf
                    name: p7p3
                    mtu: 9000
                    numvfs: 10
                    use_dhcp: false
                    defroute: false
                    nm_controlled: true
                    hotplug: true
                    promisc: false
    
                  - type: sriov_pf
                    name: p7p4
                    mtu: 9000
                    numvfs: 10
                    use_dhcp: false
                    defroute: false
                    nm_controlled: true
                    hotplug: true
                    promisc: false
  6. デフォルトフィルターの一覧に、値 AggregateInstanceExtraSpecsFilter が含まれる状態にします。

    NovaSchedulerDefaultFilters: ['AvailabilityZoneFilter','ComputeFilter','ComputeCapabilitiesFilter','ImagePropertiesFilter','ServerGroupAntiAffinityFilter','ServerGroupAffinityFilter','PciPassthroughFilter','AggregateInstanceExtraSpecsFilter']
  7. overcloud_deploy.sh スクリプトを実行します。