您可以為虛擬機器 vNIC 設定多 SRIOV 以平衡多個實體網路介面卡 (pnic) 上的工作負載,以避免一個 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)。

  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>