여러 물리적 네트워크 어댑터(pNIC)의 워크로드 균형을 조정하도록 다중 SRIOV를 사용하는 VM vNIC를 구성하면 한 pNIC에서는 트래픽이 없는데 다른 pNIC에서는 네트워크 트래픽이 정체되는 상황을 방지할 수 있습니다. 이 애플리케이션은 성능 손실을 방지하기 위해 pNIC에 맞게 NUMA를 정렬할 수 있습니다. 두 개의 pNIC는 물리적 연결 이중화를 위한 쌍으로 작동하고 다른 트래픽 또는 VLAN에 대해 서로 다른 쌍으로 작동합니다.
참고:
- VMware Integrated OpenStack 7.2에서 SRIOV 네트워크 어댑터를 사용하여 인스턴스를 생성하는 경우 플레이버에
numa.nodeAffinity
가 지정되지 않으면 인스턴스가 SRIOV pNIC의 동일한 NUMA 노드에 자동으로 배치됩니다. numa.nodeAffinity
가 플레이버에 이미 지정된 경우 pNIC에서 NUMA 설정을 재정의합니다.
- 이 기능을 사용하여 SRIOV 포트가 연결할 수 있는 SRIOV PF를 지정할 수 있습니다. nova_compute/pci/passthrough_whitelist에 정의된 매핑 정보를 볼 수 있습니다. 물리적 네트워크의 SRIOV 포트는 주소로 지정된 SRIOV PF에 연결할 수 있습니다.
- 배포 후에는 ESXi에서 VF 번호를 변경할 수 없습니다. VF 수를 늘리려면 해당 Nova 컴퓨팅 포드를 다시 시작해야 합니다. VMware Integrated OpenStack에서 VF 수를 줄이는 것은 지원되지 않습니다.
프로시저
-
nova-compute.conf
를 구성합니다.
Nova 컴퓨팅 CR의 PCI 정의에 대해 다음 형식을 사용하여
values
섹션에 컨텐츠를 입력할 수 있습니다.
'{"address": "<PCI address of vmnicX>", "product_id": "*", "vendor_id": "*", "physical_network":"<uuid of vlan transport zone of provider-network>"}'
viocli update novacompute <nova-compute-cr-name>
conf:
nova_compute:
DEFAULT:
......
pci:
passthrough_whitelist:
type: multistring
values:
- '{"address": "0000:1a:00.0", "product_id": "*", "vendor_id": "*", "physical_network":"bf86b52f-a629-4c07-a8bd-14b4b46ba384"}'
- '{"address": "0000:5e:00.1", "product_id": "*", "vendor_id": "*", "physical_network":"c12a7025-22bc-403c-8ff9-9a25a236704a"}'
- '{"address": "0000:d8:00.0", "product_id": "*", "vendor_id": "*", "physical_network":"801cd687-b65b-449c-9892-c22647851bf3"}'
- '{"address": "0000:d8:00.1", "product_id": "*", "vendor_id": "*", "physical_network":"7ab64053-9e48-416d-8b1e-80e1fccd3dcd"}'
DVS 또는
NSX-T Data Center 배포를 사용하는 경우
vmware
섹션에서
dvs_moid 매개 변수를 추가합니다.
dvs_moid: sriov-vds-moid
dvs_moid 값을 SRIOV 디바이스에 대한 계산 클러스터와 연결된 분산 스위치의 MOID(관리 개체 ID)로 설정합니다.
- 제공자 네트워크 및 서브넷을 생성합니다.
neutron --insecure net-create 3158-net --provider:network_type vlan --provider:physical_network c12a7025-22bc-403c-8ff9-9a25a236704a --provider:segmentation_id 3158
openstack --insecure subnet create --network 3158-net --allocation-pool start=172.17.2.1,end=172.17.2.254 --gateway 172.17.0.1 --subnet-range 172.17.0.0/22 3158-subnet
- SRIOV 포트를 생성합니다.
neutron --insecure port-create 3158-net --name 3158-p1 --vnic_type direct
neutron --insecure port-create 3158-net --name 3158-p2 --vnic_type direct
neutron --insecure port-create 3158-net --name 3158-p3 --vnic_type direct
- 지정된 포트를 사용하여 인스턴스를 시작합니다. 가상 시스템에 추가된 네트워크 어댑터가
vmnic2
에 연결되어 있는 것을 볼 수 있습니다.
nova boot --flavor m1.tiny --image a133ffd7-1601-42e5-a66f-1eb6130db093 --nic port-id=031e14e3-cf06-40e1-addf-3f13f5b5da66 --nic port-id=25c6ce90-2cff-4189-ae21-abc27a131ae7 <vm-name>