您可以設定連接埠以允許 SR-IOV 傳遞,然後建立使用實體網路介面卡的 OpenStack 執行個體。

如果您想要使用不同的 SR-IOV 實體 NIC 建立多個連接埠來為虛擬機器提供網路備援,請執行下列程序中的可選步驟。

必要條件

  • 啟用 vSphere 中的 SR-IOV。請參閱《vSphere 網路》中的在主機實體介面卡上啟用 SR-IOV
  • 建立 SR-IOV 裝置專用的運算叢集。DRS 規則不適用於這些裝置。
  • 若要保存實體裝置的 MAC 位址,請將其叢集新增為運算節點,然後在裝置上啟用傳遞。如果已啟用傳遞,您可以將其停用、重新啟動叢集,然後再次啟用直接傳遞。
  • 啟用 VMware Integrated OpenStack 電訊廠商版本 功能。請參閱〈啟用 Carrier Edition 功能〉

程序

  1. root 使用者身分登入 Integrated OpenStack Manager
    ssh root@mgmt-server-ip
  2. 編輯 Nova 運算組態。
    viocli update nova-compute
  3. nova_compute 區段中新增下列資訊。
    pci:
      passthrough_whitelist:
        type: multistring
        values:
        - '{"product_id": "*", "vendor_id": "*", "physical_network": "*"}'
    
  4. 如果您使用 DVS 或 NSX-T Data Center 部署,請在 vmware 區段中新增 dvs_moid 參數。
    dvs_moid: sriov-vds-moid
    dvs_moid 的值設定為與 SR-IOV 裝置的運算叢集相關聯的分散式交換器的受管理物件識別碼 (MOID)。
  5. 開啟工具箱並設定 admin 帳戶的密碼。
    toolbox
    export OS_PASSWORD=admin-password
  6. (選擇性) 如果您想要設定連接埠備援,請建立具有隔離內容的虛擬機器類型模板。
    隔離內容確保 SR-IOV 連接埠根據連接埠備援需求分佈在 ESXi 伺服器主機中的不同實體 NIC 上。
    openstack flavor set <FLAVOR_ID> --property group_policy=isolate
    FLAVOR_ID 是要用於具有隔離 SR-IOV 連接埠之虛擬機器的 Nova 類型模板的 UUID。
  7. 為 SR-IOV 裝置建立提供者網路。
    • 對於 NSX Data Center for vSphere 部署,請建立 VLAN 或連接埠群組網路。
    • 對於 NSX-T Data Center 部署,請建立 VLAN 或不透明網路。
    • 對於 DVS 部署,請建立 VLAN 網路。
    neutron net-create network-name --tenant-id project-uuid --provider:network_type {vlan | portgroup | nsx-net} --provider:physical_network physical-id [--provider:segmentation_id vlan-id]
    選項 說明
    network-name

    輸入網路名稱。

    --tenant-id

    指定要為其建立連接埠的專案的 UUID。您可以透過執行 openstack project list 命令找到專案的 UUID。

    --provider:network_type

    為 VLAN 網路輸入 vlan,為連接埠群組網路輸入 portgroup,或為不透明網路輸入 nsx-net

    --provider:physical_network
    • 對於 NSX Data Center for vSphere 中的 VLAN 網路,請指定分散式交換器的 MOID。
    • 對於 NSX-T Data Center 中的 VLAN 網路,請指定 VLAN 傳輸區域的 UUID。
    • 對於 DVS 部署中的 VLAN 網路,請指定分散式 vSwitch 的名稱。
    • 對於連接埠群組網路,請指定連接埠群組的名稱。網路名稱必須與連接埠群組名稱相符。
    • 對於不透明網路,請指定邏輯交換器的 UUID。
    --provider:segmentation_id

    如果您要建立以 VLAN 為基礎的網路,請輸入 VLAN 識別碼。

  8. 在網路上建立子網路。
    neutron subnet-create network-id --tenant-id project-uuid --name subnet-name
    選項 說明
    network-id

    指定要建立子網路的網路的 UUID。您可以透過執行 openstack network list 命令找到網路的 UUID。

    --tenant-id

    指定要為其建立子網路的專案的 UUID。

    --name

    輸入子網路的名稱。

  9. 透過使用 --vnic_type direct 參數建立已啟用傳遞的連接埠。
    neutron port-create network-id --tenant-id project-uuid --name port-name --vnic_type direct
    選項 說明
    network-id

    指定要建立連接埠的網路的 UUID。您可以透過執行 openstack network list 命令找到網路的 UUID。

    --tenant-id

    指定要為其建立連接埠的專案的 UUID。

    --name

    輸入連接埠名稱。

    備註: 已啟用傳遞的連接埠不支援連接埠安全性,將針對已建立的連接埠自動停用連接埠安全性。
    若要為您的 OpenStack 執行個體提供實體網路介面卡的存取權,請為該執行個體設定此單一連接埠。或者,若要部署具有多個可提供備援之連接埠的虛擬機器,請記下輸出中的連接埠識別碼,然後重複此步驟以建立第二個直接連接埠。
  10. (選擇性) 部署具有虛擬機器類型模板和兩個直接連接埠的虛擬機器。
    nova boot --flavor <FLAVOR_ID> --image <IMAGE_ID> --nic port-id=<port1-id> --nic port-id=<port2-id> <VM_NAME>
    選項 說明
    FLAVOR_ID

    指定在 步驟 6 中建立的類型模板。

    --nic

    輸入使用每個直接連接埠建立的連接埠識別碼。