여러 물리적 네트워크 어댑터(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 수를 줄이는 것은 지원되지 않습니다.

프로시저

  1. 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)로 설정합니다.

  2. 제공자 네트워크 및 서브넷을 생성합니다.
    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
    
  3. 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
  4. 지정된 포트를 사용하여 인스턴스를 시작합니다. 가상 시스템에 추가된 네트워크 어댑터가 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>