6.2. SR-IOV 구성
단일 루트 I/O 가상화(SR-IOV)를 사용하여 RHOSP(Red Hat OpenStack Platform)를 배포하려면 인스턴스에 직접 액세스를 요청할 수 있는 SR-IOV 기능이 있는 공유 PCIe 리소스를 구성합니다.
다음 CPU 할당, 메모리 할당, NIC 구성은 예제이며 사용 사례와 다를 수 있습니다.
절차
-
stack사용자로 언더클라우드에 로그인합니다. stackrc파일을 소싱합니다.[stack@director ~]$ source ~/stackrc
Controller및ComputeSriov역할을 포함하는roles_data_compute_sriov.yaml이라는 새 역할 데이터 파일을 생성합니다.(undercloud)$ openstack overcloud roles \ generate -o /home/stack/templates/roles_data_compute_sriov.yaml \ Controller ComputeSriov
ComputeSriov는 기본 컴퓨팅 서비스 외에도NeutronSriovAgent,NeutronSriovHostConfig서비스를 포함하는 RHOSP 설치에 제공되는 사용자 지정 역할입니다.SR-IOV 컨테이너를 준비하려면
overcloud_images.yaml파일을 생성할 때neutron-sriov.yaml및roles_data_compute_sriov.yaml파일을 포함합니다.$ sudo openstack tripleo container image prepare \ --roles-file ~/templates/roles_data_compute_sriov.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/services/neutron-sriov.yaml \ -e ~/containers-prepare-parameter.yaml \ --output-env-file=/home/stack/templates/overcloud_images.yaml
컨테이너 이미지 준비에 대한 자세한 내용은 Director 설치 및 사용 가이드 의 컨테이너 이미지 준비를 참조하십시오.
환경 파일 디렉터리에
/usr/share/openstack-tripleo-heat-templates/environments/network-environment.yaml파일의 사본을 생성합니다.$ cp /usr/share/openstack-tripleo-heat-templates/environments/network-environment.yaml /home/stack/templates/network-environment-sriov.yaml
network-environment-sriov.yaml파일에서parameter_defaults아래에 다음 매개변수를 추가하여 클러스터 및 하드웨어 구성에 대한 SR-IOV 노드를 구성합니다.NeutronNetworkType: 'vlan' NeutronNetworkVLANRanges: - tenant:22:22 - tenant:25:25 NeutronTunnelTypes: ''각 PCI 장치 유형에 대한
를 확인하려면 PCI 카드가 있는 물리적 서버에서 다음 명령 중 하나를 사용합니다.vendor_id및 product_id배포된 오버클라우드에서
vendor_id및product_id를 반환하려면 다음 명령을 사용합니다.# lspci -nn -s <pci_device_address> 3b:00.0 Ethernet controller [0200]: Intel Corporation Ethernet Controller X710 for 10GbE SFP+ [<vendor_id>: <product_id>] (rev 02)
오버클라우드를 아직 배포하지 않은 경우 PF(실제 기능)의
vendor를 반환하려면 다음 명령을 사용합니다._id및 product_id(undercloud) [stack@undercloud-0 ~]$ openstack baremetal introspection data save <baremetal_node_name> | jq '.inventory.interfaces[] | .name, .vendor, .product'
network-environment-sriov.yaml파일에서 SR-IOV 컴퓨팅 노드에 대한 역할별 매개변수를 구성합니다.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 NovaComputeCpuDedicatedSet: '1-19,21-39' NovaReservedHostMemory: 4096참고NovaVcpuPinSet매개변수는 더 이상 사용되지 않으며 전용 고정된 워크로드에서NovaComputeCpuDedicatedSet으로 교체됩니다.network-environment-sriov.yaml파일에서 SR-IOV 컴퓨팅 노드의 PCI 패스스루 장치를 구성합니다.ComputeSriovParameters: ... NovaPCIPassthrough: - vendor_id: "<vendor_id>" product_id: "<product_id>" address: <NIC_address> physical_network: "<physical_network>" ...-
<vendor_id>를 PCI 장치의 공급업체 ID로 바꿉니다. -
<product_id>를 PCI 장치의 제품 ID로 바꿉니다. -
<NIC_address>를 PCI 장치의 주소로 바꿉니다.address매개변수를 구성하는 방법에 대한 자세한 내용은 Configuring the Compute Service for Instance Creation 가이드의NovaPCIPassthrough에 대한 지침을 참조하십시오. <physical_network>를 PCI 장치가 있는 물리적 네트워크의 이름으로 바꿉니다.참고NIC의 장치 이름이 변경될 수 있으므로 PCI 패스스루를 구성할 때
devname매개변수를 사용하지 마십시오. PF에서 네트워킹 서비스(neutron) 포트를 생성하려면NovaPCIPassthrough에서vendor_id 및 PCI 장치 주소를 지정하고_id, product--vnic-type direct-physical옵션을 사용하여 포트를 만듭니다. 가상 기능(VF)에서 네트워킹 서비스 포트를 생성하려면NovaPCIPassthrough에서vendor_id및product_id를 지정하고--vnic-type direct옵션을 사용하여 포트를 생성합니다.vendor_id및product_id매개변수 값은 물리적 기능(PF)과 VF 컨텍스트마다 다를 수 있습니다.NovaPCIPassthrough구성 방법에 대한 자세한 내용은 인스턴스 생성 용 Compute 서비스 구성 가이드의NovaPCIPassthrough구성 지침을 참조하십시오.
-
compute.yaml네트워크 구성 템플릿에서 SR-IOV가 활성화된 인터페이스를 구성합니다. SR-IOV VF를 생성하려면 인터페이스를 독립 실행형 NIC로 구성합니다.- type: sriov_pf name: p7p3 mtu: 9000 numvfs: 10 use_dhcp: false defroute: false nm_controlled: true hotplug: true promisc: false - type: sriov_pf name: p7p4 mtu: 9000 numvfs: 10 use_dhcp: false defroute: false nm_controlled: true hotplug: true promisc: false참고numvfs매개변수는 네트워크 구성 템플릿의NeutronSriovNumVFs매개변수를 대체합니다. Red Hat은 배포 후NeutronSriovNumVFs매개변수 또는numvfs매개 변수의 수정을 지원하지 않습니다. 배포 후 매개변수 중 하나를 수정하면 해당 PF에 SR-IOV 포트가 있는 실행 중인 인스턴스가 중단될 수 있습니다. 이 경우 SR-IOV PCI 장치를 다시 사용하려면 이러한 인스턴스를 하드 재부팅해야 합니다.기본 필터 목록에
AggregateInstanceExtraSpecsFilter값이 포함되어 있는지 확인합니다.NovaSchedulerDefaultFilters: ['AvailabilityZoneFilter','ComputeFilter','ComputeCapabilitiesFilter','ImagePropertiesFilter','ServerGroupAntiAffinityFilter','ServerGroupAffinityFilter','PciPassthroughFilter','AggregateInstanceExtraSpecsFilter']
-
overcloud_deploy.sh스크립트를 실행합니다.