VMware Integrated OpenStack 支援在基礎 vSphere 環境中採用非統一記憶體存取 (NUMA) 感知的形式放置 OpenStack 執行個體。

重要: 此功能僅在 VMware Integrated OpenStack 電訊廠商版本 中提供。如需詳細資訊,請參閱 〈VMware Integrated OpenStack 授權〉

NUMA 使用高效能連線連結具有成本效益的小型節點,來提供低延遲和高輸送量。電信環境中的虛擬網路功能 (VNF) 通常需要此效能。如需 vSphere 中 NUMA 的相關資訊,請參閱《vSphere 資源管理》中的搭配使用 NUMA 執行個體和 ESXi

若要取得目前 NUMA 組態的相關資訊,請在 ESXi 主機上執行下列命令:

vsish -e get /net/pNics/vmnic<id>/properties | grep 'Device NUMA Node'

必要條件

  • 確保用於虛擬機器流量的 vCPU、記憶體和實體 NIC 置於同一個節點上。
  • vSphere 中,建立將所有實體 NIC 包含在 NUMA 節點上的整併原則。請參閱《vSphere 網路》中的整併和容錯移轉原則

程序

  1. root 使用者身分登入 Integrated OpenStack Manager
    ssh root@mgmt-server-ip
  2. 開啟工具箱並設定 admin 帳戶的密碼。
    toolbox
    export OS_PASSWORD=admin-account-password
  3. 建立 Neutron 網路,其中所有實體 NIC 位於單一 NUMA 節點上。
  4. 建立包含 numa.nodeAffinity 內容的 OpenStack 類型模板。
    nova flavor-key flavor-id set vmware:extra_config='{"numa.nodeAffinity": "numa-node-id"}'
  5. 使用此程序中建立的類型模板與網路啟動 OpenStack 執行個體。

    具有多個 SRIOV 的執行個體

    您可以為虛擬機器 vNIC 設定多 SRIOV 以平衡多個實體網路介面卡 (pnic) 上的工作負載,以避免一個 pnic 上發生網路流量壅塞,而另一個 pnic 上沒有流量。此應用程式可以與 pnic 進行 NUMA 對齊以避免效能損失。兩個 pnic 以實體連線冗餘配對的形式運作,對於不同的流量或 VLAN 以不同的配對形式運作。
    備註:VMware Integrated OpenStack 7.2 中,如果要指定 nodeAffinity,則必須在類型模板中對其進行設定。建立執行個體後,無法進行設定。此外,如果已在類型模板中指定 numa.nodeAffinity,則將覆寫 pnic 中的 NUMA 設定。
    以下步驟說明了建立具有多個 SRIOV 的執行個體的程序:
    • 設定 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-networkA>"}'
      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"}'
    • 建立提供者網路和子網路。
      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>