Red Hat Training

A Red Hat training course is available for Red Hat OpenStack Platform

第9章 Red Hat OpenStack Platform 環境の調整

9.1. 信頼済み Virtual Function

Virtual Function (VF) が特権を必要とする操作を実施できるように、VF を信頼するように Physical Function (PF) を設定することができます。たとえば、この設定を使用して、VF がプロミスキャスモードを有効にすることやハードウェアアドレスを変更することを許可することができます。

9.1.1. 信頼の付与

前提条件
  • Red Hat OpenStack Platform director のインストールが稼働していること。
手順

Physical Function が Virtual Function を信頼するのを有効にするのに必要なパラメーターを使用してオーバークラウドをデプロイするには、以下の手順を実施します。

  1. parameter_defaults セクションに NeutronPhysicalDevMappings パラメーターを追加して、論理ネットワーク名と物理インターフェイス間のリンクを作成します。

    parameter_defaults:
      NeutronPhysicalDevMappings:
        - sriov2:p5p2
  2. SR-IOV に関する既存のパラメーターに、新たな属性 trusted を追加します。

    parameter_defaults:
      NeutronPhysicalDevMappings:
        - sriov2:p5p2
      NeutronSriovNumVFs: ["p5p2:8"]
      NovaPCIPassthrough:
        - vendor_id: "8086"
          product_id: "1572"
          physical_network: "sriov2"
          trusted: "true"
    注記

    値 true を二重引用符で囲む必要があります ("true")。

    重要

    以下のステップは、安全な環境でのみ実施してください。このステップにより、非管理者アカウントで信頼済みポートをバインドすることができます。

  3. 権限を変更し、ユーザーがポートのバインディングを作成および更新するのを許可します。

    parameter_defaults:
      NeutronApiPolicies: {
        operator_create_binding_profile: { key: 'create_port:binding:profile', value: 'rule:admin_or_network_owner'},
        operator_get_binding_profile: { key: 'get_port:binding:profile', value: 'rule:admin_or_network_owner'},
        operator_update_binding_profile: { key: 'update_port:binding:profile', value: 'rule:admin_or_network_owner'}
      }

9.1.2. 信頼済み Virtual Function の活用

信頼済み Virtual Function を活用するには、完全にデプロイしたオーバークラウドで以下の手順を実施します。

信頼済み VF ネットワークの作成
  1. 種別 vlan のネットワークを作成します。

    openstack network create trusted_vf_network  --provider-network-type vlan \
     --provider-segment 111 --provider-physical-network sriov2 \
     --external --disable-port-security
  2. サブネットを作成します。

    openstack subnet create --network trusted_vf_network \
      --ip-version 4 --subnet-range 192.168.111.0/24 --no-dhcp \
     subnet-trusted_vf_network
  3. vnic-type オプションを direct に、binding-profile オプションを true に、それぞれ設定してポートを作成します。

    openstack port create --network sriov111 \
    --vnic-type direct --binding-profile trusted=true \
    sriov111_port_trusted
  4. インスタンスを作成し、それを前のステップで作成した信頼済みポートにバインドします。

    openstack server create --image rhel --flavor dpdk  --network internal --port trusted_vf_network_port_trusted --config-drive True --wait rhel-dpdk-sriov_trusted

ハイパーバイザー上での信頼済み Virtual Function 設定の確認

新たに作成したインスタンスをホストするコンピュートノード上で、以下のコマンドを実行します。

# ip link
7: p5p2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc mq state UP mode DEFAULT group default qlen 1000
    link/ether b4:96:91:1c:40:fa brd ff:ff:ff:ff:ff:ff
    vf 6 MAC fa:16:3e:b8:91:c2, vlan 111, spoof checking off, link-state auto, trust on, query_rss off
    vf 7 MAC fa:16:3e:84:cf:c8, vlan 111, spoof checking off, link-state auto, trust off, query_rss off

ip link コマンドの出力を表示し、Virtual Function の信頼ステータスが trust on であることを確認します。上記の出力例には、2 つのポートが含まれる環境の詳細が示されています。vf 6trust on のテキストが含まれている点に注意してください。