Red Hat Training
A Red Hat training course is available for Red Hat OpenStack Platform
6.2. SR-IOV の設定
以下の例で説明する CPU の割り当て、確保するメモリー、および NIC の設定は、ご自分のトポロジーおよびユースケースとは異なる場合があります。
NeutronSriovAgent
、NeutronSriovHostConfig
、およびデフォルトの Compute サービスを実行する OpenStack クラスターのノードを定義するために、ビルトインのComputeSriov
を生成します。# openstack overcloud roles generate \ -o /home/stack/templates/roles_data.yaml \ Controller ComputeSriov
SR-IOV コンテナーが準備されるように、
overcloud_images.yaml
を生成する際にneutron-sriov.yaml
およびroles_data.yaml
ファイルを含めます。SERVICES=\ /usr/share/openstack-tripleo-heat-templates/environments/services openstack overcloud container image prepare \ --namespace=registry.redhat.io/rhosp13 \ --push-destination=192.168.24.1:8787 \ --prefix=openstack- \ --tag-from-label {version}-{release} \ -e ${SERVICES}/neutron-sriov.yaml \ --roles-file /home/stack/templates/roles_data.yaml \ --output-env-file=/home/stack/templates/overcloud_images.yaml \ --output-images-file=/home/stack/local_registry_images.yaml
注記push-destination の IP アドレスは、前のステップで
undercloud.conf
設定ファイルのlocal_ip
パラメーターで設定したアドレスです。コンテナーイメージの準備に関する詳細な情報は、director のインストールと使用方法 を参照してください。
KernelAgs
およびTunedProfile
パラメーターを適用するには、/usr/share/openstack-tripleo-heat-templates/environments
からのhost-config-and-reboot.yaml
ファイルをデプロイメントスクリプトに追加します。openstack overcloud deploy --templates \ … \ -e /usr/share/openstack-tripleo-heat-templates/environments/host-config-and-reboot.yaml \ ...
クラスターでの要求およびハードウェア設定に基づき、
parameter_defaults
セクションで SR-IOV ノードのパラメーターを設定します。これらの設定は、通常network-environment.yaml
ファイルに追加されます。NeutronNetworkType: 'vlan' NeutronNetworkVLANRanges: - tenant:22:22 - tenant:25:25 NeutronTunnelTypes: ''
同じファイルで、SR-IOV コンピュートノードのロール固有のパラメーターを設定します。
注記ネットワーク設定テンプレートの
numvfs
属性が優先されるため、NeutronSriovNumVFs
パラメーターは間もなく非推奨になります。Red Hat では、デプロイ後のNeutronSriovNumVFs
パラメーターおよびnumvfs
パラメーターの変更をサポートしません。動作中の環境でどちらのパラメーターを変更しても、PF の SR-IOV ポートを持つ実行中のインスタンスがすべて使用できなくなることが知られています。これらのインスタンスをハードリブートしない限り、インスタンスは SR-IOV PCI デバイスを認識しません。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 NeutronSriovNumVFs: - p7p1:5 - p7p2:5 NovaPCIPassthrough: - vendor_id: "8086" product_id: "1528" address: "0000:06:00.0" physical_network: "tenant" - vendor_id: "8086" product_id: "1528" address: "0000:06:00.1" physical_network: "tenant" NovaVcpuPinSet: '1-19,21-39' NovaReservedHostMemory: 4096
注記NIC のデバイス名は変更される可能性があるため、PCI パススルーを設定する場合は
devname
パラメーターを使用しないでください。代わりに、vendor_id
とproduct_id
の方が安定しているため使用するか、NIC のaddress
を使用してください。NovaPCIPassthrough
の設定方法の詳細は、NovaPCIPassthrough
設定のガイドライン を参照してください。compute.yaml
ネットワーク設定テンプレートで、SR-IOV が有効なインターフェイスを設定します。SR-IOV Virtual Function (VF) を作成するためには、インターフェイスを必ずスタンドアロンの NIC として設定します。- type: interface name: p7p3 mtu: 9000 use_dhcp: false defroute: false nm_controlled: true hotplug: true - type: interface name: p7p4 mtu: 9000 use_dhcp: false defroute: false nm_controlled: true hotplug: true
デフォルトフィルターの一覧に、値
AggregateInstanceExtraSpecsFilter
が含まれる状態にします。NovaSchedulerDefaultFilters: ['AvailabilityZoneFilter','RamFilter','ComputeFilter','ComputeCapabilitiesFilter','ImagePropertiesFilter','ServerGroupAntiAffinityFilter','ServerGroupAffinityFilter','PciPassthroughFilter','AggregateInstanceExtraSpecsFilter']
- オーバークラウドをデプロイします。
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/host-config-and-reboot.yaml \ -e ${TEMPLATES_HOME}/environments/services/neutron-sriov.yaml \ -e ${CUSTOM_TEMPLATES}/network-environment.yaml