8.2. OVS TC-flower 하드웨어 오프로드를 위한 PCI 패스스루 장치 구성
OVS TC-flower 하드웨어 오프로드 환경을 위한 Red Hat OpenStack Platform을 배포할 때 사용자 지정 환경 파일에서 컴퓨팅 노드에 대해 PCI 패스스루 장치를 구성해야 합니다.
사전 요구 사항
- PCI 카드가 포함된 하나 이상의 물리적 서버에 액세스합니다.
-
언더클라우드 호스트 및
stack
사용자의 인증 정보에 액세스합니다.
절차
PCI 카드가 포함된 물리적 서버에서 다음 명령 중 하나를 사용합니다.
오버클라우드가 배포된 경우:
$ 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)
오버클라우드가 배포되지 않은 경우:
$ openstack baremetal introspection data save <baremetal_node_name> | jq '.inventory.interfaces[] | .name, .vendor, .product'
- ComputeOvsHwOffload 노드에서 PCI 패스스루 장치의 벤더 및 제품 ID를 확인합니다. 이후 단계에서 이러한 ID가 필요합니다.
-
stack
사용자로 언더클라우드에 로그인합니다. stackrc
파일을 소싱합니다.$ source ~/stackrc
사용자 지정 환경 YAML 파일(예:
ovshwol-overrides.yaml
)을 만듭니다. 파일에 다음 콘텐츠를 추가하여 컴퓨팅 노드의 PCI 패스스루 장치를 구성합니다.parameter_defaults: NeutronOVSFirewallDriver: iptables_hybrid ComputeOvsHwOffloadParameters: IsolCpusList: 2-9,21-29,11-19,31-39 KernelArgs: "default_hugepagesz=1GB hugepagesz=1G hugepages=128 intel_iommu=on iommu=pt" OvsHwOffload: true TunedProfileName: "cpu-partitioning" NeutronBridgeMappings: - tenant:br-tenant NovaPCIPassthrough: - vendor_id: <vendor-id> product_id: <product-id> address: <address> physical_network: "tenant" - vendor_id: <vendor-id> product_id: <product-id> address: <address> physical_network: "null" NovaReservedHostMemory: 4096 NovaComputeCpuDedicatedSet: 1-9,21-29,11-19,31-39 ...
참고Mellanox 스마트 NIC를 사용하는 경우
ComputeOvsHwOffloadloadParameters 매개변수
아래에DerivePciWhitelistEnabled: true
를 추가합니다. OVS 하드웨어 오프로드를 사용하는 경우 Compute 서비스(nova) 스케줄러는 인스턴스 생성을 위해 SR-IOV 패스와 유사하게 작동합니다.-
<
;vendor_id>
;를 PCI 장치의 공급 업체 ID로 바꿉니다. -
&
lt;product_id&
gt;를 PCI 장치의 제품 ID로 바꿉니다. -
&
lt;NIC_address&
gt;를 PCI 장치의 주소로 바꿉니다. -
<physical_network>
를 PCI 장치가 있는 물리적 네트워크의 이름으로 교체합니다. -
VLAN의 경우 배포 후
physical_network
매개변수를 neutron에서 생성한 네트워크의 이름으로 설정합니다. 이 값은NeutronBridgeMappings
에도 있어야 합니다. VXLAN의 경우
physical_network
매개 변수를null
로 설정합니다.참고NIC의 장치 이름이 변경될 수 있으므로 PCI 패스스루를 구성할 때
devname
매개변수를 사용하지 마십시오. PF에서 Networking 서비스(neutron) 포트를 생성하려면vendor_id
,product_id
및 PCI 장치 주소를NovaPCIPassthrough
에서 지정하고--vnic-type direct-physical
옵션을 사용하여 포트를 만듭니다. 가상 기능(VF)에 네트워킹 서비스 포트를 생성하려면NovaPCIPassthrough
에서vendor_id
및product_id
를 지정하고--vnic-type direct
옵션을 사용하여 포트를 생성합니다.vendor_id
및product_id
매개변수의 값은 물리적 기능(PF)과 VF 컨텍스트마다 다를 수 있습니다.
-
<
사용자 지정 환경 파일에서
PciPassthroughFilter
및NUMATopologyFilter
가NovaSchedulerEnabledFilters
매개변수의 필터 목록에 있는지 확인합니다. Compute 서비스(nova)는 이 매개변수를 사용하여 노드를 필터링합니다.parameter_defaults: ... NovaSchedulerEnabledFilters: - AvailabilityZoneFilter - ComputeFilter - ComputeCapabilitiesFilter - ImagePropertiesFilter - ServerGroupAntiAffinityFilter - ServerGroupAffinityFilter - PciPassthroughFilter - NUMATopologyFilter - AggregateInstanceExtraSpecsFilter
참고선택 사항: Mellanox ConnectX5 NIC를 사용하여 RHOSP 17.1에서 OVS 하드웨어 오프로드 문제를 해결하고 구성하는 방법에 대한 자세한 내용은 Hardware Offload 문제 해결을 참조하십시오.
- 생성한 사용자 지정 환경 파일의 경로와 파일 이름을 기록해 둡니다. 오버클라우드를 배포할 때 나중에 이 파일을 사용합니다.
다음 단계
추가 리소스
-
인스턴스 생성을 위해 Compute 서비스 구성에서
NovaPCIPassthrough
구성 지침