第6章 SR-IOV デプロイメントの設定
本項では、Red Hat OpenStack 向けの Single Root Input/Output Virtualization (SR-IOV) の設定方法について説明します。
オーバークラウドをデプロイする前に、アンダークラウドのインストールと設定が完了している必要があります。詳しくは、『director のインストールと使用方法』を参照してください。
これらの director Heat テンプレートによって変更されている etc/tuned/cpu-partitioning-variables.conf の isolated_cores またはその他の値は編集/変更しないでください。
6.1. SR-IOV 設定パラメーターについての概要
network-environment.yaml ファイルを更新して、カーネルの引数、SR-IOV ドライバー、PCI パススルーなどのパラメーターを追加します。また、compute.yaml ファイルも更新して SR-IOV インターフェースのパラメーターを追加してから、overcloud_deploy.sh スクリプトを実行して、その SR-IOV パラメーターを使用してオーバークラウドをデプロイする必要もあります。

本ガイドでは、CPU の割り当て、メモリーの確保、NIC の設定の例を紹介します。これらは、トポロジーとユースケースによって異なる場合があります。
6.2. OVS ハードウェアオフロード
OVS ハードウェアオフロードを対応の SR-IOV の設定には、ネットワーク設定テンプレートに特定の変更を加える必要はありません。本項では、OVS ハードウェアオフロードデプロイメント固有の変更について説明します。以下の手順では、一般的なネットワーク分離のデプロイメントに必要なその他のパラメーターおよびネットワーク設定テンプレートファイルについては説明していません。詳しくは、「5章SR-IOV デプロイメントのプランニング」を参照してください。
この機能は、本リリースでは テクノロジープレビュー として提供しているため、Red Hat では全面的にはサポートしていません。これは、テスト目的のみでご利用いただく機能で、実稼働環境にデプロイすべきではありません。テクノロジープレビューについての詳しい情報は「対象範囲の詳細」を参照してください。
6.2.1. VLAN を使用した OVS ハードウェアオフロード対応の SR-IOV の設定
ComputeSriov ロールで OpenvSwitch (OVS) ハードウェアオフロードを有効化するには、以下の手順を実行します。
ComputeSriovロールを作成します。# openstack overcloud roles generate -o roles_data.yaml Controller ComputeSriov
openstack overcloud deployコマンドに環境ファイルを追加して、OVS ハードウェアオフロードとその依存関係を有効化します。# Enables OVS Hardware Offload in the ComputeSriov role /usr/share/openstack-tripleo-heat-templates/environments/ovs-hw-offload.yaml # Applies the KernelArgs and TunedProfile with a reboot /usr/share/openstack-tripleo-heat-templates/environments/host-config-and-reboot.yaml
以下の環境ファイルを
openstack overcloud deployコマンドに追加して、ML2-ODL を有効化します。#Enables ml2-odl with SR-IOV deployment /usr/share/openstack-tripleo-heat-templates/environments/services-docker/neutron-opendaylight.yaml
注記The OVS ハードウェアオフロードの環境ファイルは、すべての neutron ML2 プラグインで共通しています。デプロイメント用のデフォルトの ML2 プラグインは ML2-OVS ですが、NFV デプロイメントには ML2-ODL を使用すべきです。
sriov-environment.yamlという名前の環境ファイルに SR-IOV ノードのパラメーターを設定します。parameter_defaults: NeutronTunnelTypes: '' NeutronNetworkType: 'vlan' NeutronBridgeMappings: - <network_name>:<bridge_name> NeutronNetworkVLANRanges: - <network_name>:<vlan_ranges> NeutronSriovNumVFs: - <interface_name>:<number_of_vfs>:switchdev NeutronPhysicalDevMappings: - <network_name>:<interface_name> NovaPCIPassthrough: - devname: <interface_name> physical_network: <network_name>注記SR-IOV ノードの設定および要件に応じて、<network_name>、<interface_name>、<number_of_vfs> を設定します。
ML2-ODL でデプロイする場合
THT_ROOT=”/usr/share/openstack-tripleo-heat-templates/” openstack overcloud deploy --templates \ -r roles_data.yaml \ -e $THT_ROOT/environments/ovs-hw-offload.yaml \ -e $THT_ROOT/environments/services-docker/neutron-opendaylight.yaml \ -e $THT_ROOT/environments/host-config-and-reboot.yaml \ -e sriov-environment.yaml \ -e <<network isolation and network config environment files>>
ML2-OVS でデプロイする場合
THT_ROOT=”/usr/share/openstack-tripleo-heat-templates/” openstack overcloud deploy --templates \ -r roles_data.yaml \ -e $THT_ROOT/environments/ovs-hw-offload.yaml \ -e $THT_ROOT/environments/host-config-and-reboot.yaml \ -e sriov-environment.yaml \ -e <<network isolation and network config environment files>>
6.2.2. VXLAN を使用した OVS ハードウェアオフロード対応の SR-IOV の設定
ComputeSriov ロールで OpenvSwitch (OVS) ハードウェアオフロードを有効化するには、以下の手順を実行します。
ComputeSriovロールを作成します。# openstack overcloud roles generate -o roles_data.yaml Controller ComputeSriov
openstack overcloud deployコマンドに環境ファイルを追加して、OVS ハードウェアオフロードとその依存関係を有効化します。# Enables OVS Hardware Offload in the ComputeSriov role /usr/share/openstack-tripleo-heat-templates/environments/ovs-hw-offload.yaml # Applies the KernelArgs and TunedProfile with a reboot /usr/share/openstack-tripleo-heat-templates/environments/host-config-and-reboot.yaml
SR-IOV インターフェース上で以下のネットワーク設定変更を適用します。
- type: interface name: <interface_name> addresses: - ip_netmask: get_param: TenantIpSubnet注記Mellanox ドライバーは、OVS ブリッジの VLAN インターフェース上の VXLAN トンネルで問題があります (single-nic-vlans ネットワーク設定を使用する VXLAN 環境と同様)。Mellanox ドライバーでこの問題が解決するまでは、(OVS ブリッジ上で VLAN インターフェースを使用する代わりに) VXLAN ネットワークをインターフェース上または OVS ブリッジ上に直接設定することができます。
以下の環境ファイルを
openstack overcloud deployコマンドに追加して、ML2-ODL を有効化します。#Enables ml2-odl with SR-IOV deployment /usr/share/openstack-tripleo-heat-templates/environments/services-docker/neutron-opendaylight.yaml
注記The OVS ハードウェアオフロードの環境ファイルは、すべての neutron ML2 プラグインで共通しています。デプロイメント用のデフォルトの ML2 プラグインは ML2-OVS ですが、NFV デプロイメントには ML2-ODL を使用すべきです。
VXLAN デプロイメントには、
sriov-environment.yamlという名前の環境ファイルに SR-IOV ノードのパラメーターを設定します。parameter_defaults: NeutronSriovNumVFs: - <interface_name>:<number_of_vfs>:switchdev NovaPCIPassthrough: - devname: <interface_name> physical_network: null注記SR-IOV ノードの設定および要件に応じて、<network_name>、<interface_name>、<number_of_vfs> を設定します。
ML2-ODL でデプロイする場合
THT_ROOT=”/usr/share/openstack-tripleo-heat-templates/” openstack overcloud deploy --templates \ -r roles_data.yaml \ -e $THT_ROOT/environments/ovs-hw-offload.yaml \ -e $THT_ROOT/environments/services-docker/neutron-opendaylight.yaml \ -e $THT_ROOT/environments/host-config-and-reboot.yaml \ -e sriov-environment.yaml \ -e <<network isolation and network config environment files>>
ML2-OVS でデプロイする場合
THT_ROOT=”/usr/share/openstack-tripleo-heat-templates/” openstack overcloud deploy --templates \ -r roles_data.yaml \ -e $THT_ROOT/environments/ovs-hw-offload.yaml \ -e $THT_ROOT/environments/host-config-and-reboot.yaml \ -e sriov-environment.yaml \ -e <<network isolation and network config environment files>>
6.3. SR-IOV 用のフレーバーの作成とインスタンスのデプロイ
NFV を実装する Red Hat OpenStack Platform デプロイメントの SR-IOV の設定を完了した後には、以下の手順に従ってフレーバーを作成してインスタンスをデプロイします。
アグリゲートグループを作成して、SR-IOV 用にホストを追加します。
# openstack aggregate create --zone=sriov sriov # openstack aggregate add host sriov compute-sriov-0.localdomain
注記CPU ピニングされたインスタンスをピニングされていないインスタンスと分けるには、ホストアグリゲートを使用すべきです。CPU ピニングを使用していないインスタンスは、CPU ピニングを使用するインスタンスのリソース要件は順守しません。
フレーバーを作成します。
# openstack flavor create compute --ram 4096 --disk 150 --vcpus 4
compute はフレーバー名、
4096は MB 単位のメモリー容量、150は GB 単位のディスク容量 (デフォルトでは 0 G)、4は仮想 CPU 数を設定しています。フレーバーの追加のプロパティーを設定します。
# openstack flavor set --property hw:cpu_policy=dedicated --property hw:mem_page_size=1GB compute
compute はフレーバー名で、それ以外のパラメーターはそのフレーバーのその他のプロパティーを設定します。
ネットワークを作成します。
# openstack network create net1 --provider-physical-network tenant --provider-network-type vlan --provider-segment <VLAN-ID>
ポートを作成します。
vnic-typedirect を使用して SR-IOV VF ポートを作成します。# openstack port create --network net1 --vnic-type direct sriov_port
vnic-typedirect-physical を使用して SR-IOV PF ポートを作成します。# openstack port create --network net1 --vnic-type direct-physical sriov_port
インスタンスをデプロイします。
# openstack server create --flavor compute --availability-zone sriov --image rhel_7.3 --nic port-id=sriov_port sriov_vm
ここで
- compute はフレーバー名または ID です。
-
sriovはサーバーのアベイラビリティゾーンです。 -
rhel_7.3はインスタンスの作成に使用するイメージ (名前または ID) です。 -
sriov_portはサーバー上の NIC です。 -
sriov_vmはインスタンスの名前です。
これで、NFV ユースケースの SR-IOV 向けインスタンスのデプロイが完了しました。

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.