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 tripleo container image prepare \ --namespace=registry.redhat.io/rhosp15-rhel8 \ --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
パラメーターの変更をサポートしません。デプロイ後にいずれかのパラメーターを変更すると、その Physical Function (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: - devname: "p7p1" physical_network: "tenant" - devname: "p7p2" physical_network: "tenant" NovaVcpuPinSet: '1-19,21-39' NovaReservedHostMemory: 4096
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','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-ovs.yaml \ -e ${TEMPLATES_HOME}/environments/services/neutron-sriov.yaml \ -e ${CUSTOM_TEMPLATES}/network-environment.yaml