6.2. SR-IOV 구성
다음 예제의 CPU 할당, 메모리 할당 및 NIC 구성은 토폴로지 및 사용 사례와 다를 수 있습니다.
기본 제공
ComputeSriov를 생성하여NeutronSriovAgent,NeutronSriovHostConfig및 기본 컴퓨팅 서비스를 실행할 OpenStack 클러스터에서 노드를 정의합니다.# openstack overcloud roles generate \ -o /home/stack/templates/roles_data.yaml \ Controller ComputeSriovSR-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 Installation and Usage 를 참조하십시오.
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 컴퓨팅 노드에 대한 역할별 매개 변수를 구성합니다.
참고NeutronSriovNumVFs매개변수는 네트워크 구성 템플릿에서numvfs속성 대신 더 이상 사용되지 않습니다. 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주소를사용합니다.NovaPCIPassthrough를 구성하는 방법에 대한 자세한 내용은NovaPCIPassthrough구성에 대한 지침을 참조하십시오.compute.yaml네트워크 구성 템플릿에서 SR-IOV 지원 인터페이스를 구성합니다. SR-IOV 가상 기능(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