如果您擁有的 ESXi 主機是獨立的,則無法透過 Web 型 vSphere Web Client 存取該主機。在此案例中,您可以使用此程序將虛擬機器連結至 NSX-T 邏輯交換器。

執行這項作業的原因和時機

此程序顯示的範例會說明如何將名為 app-vm 的虛擬機器連結至名為 app-switch 的邏輯交換器。

先決條件

  • 虛擬機器必須裝載在已新增至 NSX-T 網狀架構的 Hypervisor 上。

  • 網狀架構節點必須具有 NSX-T 管理平面 (MPA) 和 NSX-T 控制平面 (LCP) 連線。

  • 網狀架構節點必須新增至傳輸區域。

  • 必須建立邏輯交換器。

  • 您必須具有 NSX Manager API 的存取權。

  • 您必須具有虛擬機器之 VMX 檔案的寫入權限。

程序

  1. 使用 (安裝型) vSphere Client 應用程式或某些其他虛擬機器管理工具,編輯虛擬機器並新增 VMXNET 3 乙太網路介面卡。

    選取任何具名網路。您會在稍後的步驟中變更網路連線。

  2. 使用 NSX-T API 發出 GET https://<nsx-mgr>/api/v1/fabric/virtual-machines/<VM-ID> API 呼叫。

    在結果中尋找虛擬機器的 externalId。

    例如:

    GET https://<nsx-mgr>/api/v1/fabric/virtual-machines/60a5a5d5-ea2b-407e-a806-4fdc8468f735
    
    {
      "resource_type": "VirtualMachine",
      "id": "60a5a5d5-ea2b-407e-a806-4fdc8468f735",
      "display_name": "app-vm",
      "compute_ids": [
        "instanceUuid:50066bae-0f8a-386b-e62e-b0b9c6013a51",
        "moIdOnHost:5",
        "externalId:50066bae-0f8a-386b-e62e-b0b9c6013a51",
        "hostLocalId:5",
        "locationId:564dc020-1565-e3f4-f591-ee3953eef3ff",
        "biosUuid:4206f47d-fef7-08c5-5bf7-ea26a4c6b18d"
      ],
      "external_id": "50066bae-0f8a-386b-e62e-b0b9c6013a51",
      "type": "REGULAR",
      "host_id": "cb82b0fa-a8f1-11e5-92a9-6b7d1f8661fa",
      "local_id_on_host": "5"
    }
    
    
    
  3. 關閉虛擬機器的電源並從主機解除登錄虛擬機器。

    您可以使用虛擬機器管理工具或 ESXi CLI,如此處所示。

    [user@host:~] vim-cmd /vmsvc/getallvms
    Vmid    Name             File               Guest OS      Version   Annotation
    5      app-vm   [ds2] app-vm/app-vm.vmx   ubuntuGuest     vmx-08
    8      web-vm   [ds2] web-vm/web-vm.vmx   ubuntu64Guest   vmx-08
    
    [user@host:~] vim-cmd /vmsvc/power.off 5 
    Powering off VM:
    
    [user@host:~] vim-cmd /vmsvc/unregister 5
    
    
  4. NSX Manager UI 取得邏輯交換器識別碼。

    例如:

  5. 修改虛擬機器的 VMX 檔案。

    刪除 ethernet1.networkName = "<name>" 欄位並新增下列欄位:

    • ethernet1.opaqueNetwork.id = "<logical switch's ID>"

    • ethernet1.opaqueNetwork.type = "nsx.LogicalSwitch"

    • ethernet1.externalId = "<VM's externalId>"

    • ethernet1.connected = "TRUE"

    • ethernet1.startConnected = "TRUE"

    例如:

    舊內容 (OLD)
    ethernet1.pciSlotNumber = "224"
    ethernet1.virtualDev = "vmxnet3"
    ethernet1.networkName = "VM Network"
    ethernet1.addressType = "vpx"
    ethernet1.generatedAddress = "00:50:56:86:7b:d7"
    ethernet1.uptCompatibility = "true"
    ethernet1.present = "TRUE"
    
    
    新內容 (NEW)
    ethernet1.pciSlotNumber = "224"
    ethernet1.virtualDev = "vmxnet3"
    ethernet1.addressType = "vpx"
    ethernet1.generatedAddress = "00:50:56:86:7b:d7"
    ethernet1.uptCompatibility = "true"
    ethernet1.present = "TRUE"
    ethernet1.opaqueNetwork.id = "22b22448-38bc-419b-bea8-b51126bec7ad"
    ethernet1.opaqueNetwork.type = "nsx.LogicalSwitch"
    ethernet1.externalId = "50066bae-0f8a-386b-e62e-b0b9c6013a51"
    ethernet1.connected = "TRUE"
    ethernet1.startConnected = "TRUE"
    
    
  6. NSX Manager UI 中,新增邏輯交換器連接埠,並使用虛擬機器的 externalId 來連結 VIF。

    例如:

  7. 重新登錄虛擬機器並開啟其電源。

    您可以使用虛擬機器管理工具或 ESXi CLI,如此處所示。

    [user@host:~] vim-cmd /solo/register /path/to/file.vmx
    
    For example:
    [user@host:~] vim-cmd solo/registervm /vmfs/volumes/355f2049-6c704347/app-vm/app-vm.vmx
    9
    
    [user@host:~] vim-cmd /vmsvc/power.on 9 
    Powering on VM:
    
    

結果

NSX Manager UI 的交換 > 連接埠 (Switching > Ports)下方,尋找符合虛擬機器之 externalId 的 VIF 連結識別碼,並確定管理和運作狀態皆為已開啟。

如果兩個虛擬機器連結至相同的邏輯交換器,而 IP 位址也設定在相同的子網路中,則應該可以互相進行 Ping 偵測。

下一步

新增邏輯路由器。

您可以監控邏輯交換器連接埠上的活動以針對問題進行疑難排解。請參閱監控邏輯交換器連接埠活動