如果您擁有的 ESXi 主機是獨立的,則無法透過 Web 型 vSphere Web Client 存取該主機。在此案例中,您可以使用此程序將虛擬機器連結至 NSX 邏輯交換器。
此程序顯示的範例會說明如何將名為 app-vm 的虛擬機器連結至名為 app-switch 的邏輯交換器。
必要條件
- 虛擬機器必須裝載在已新增至 NSX 網狀架構的 Hypervisor 上。
- 網狀架構節點必須具有 NSX 管理平面 (MPA) 和 NSX 控制平面 (LCP) 連線。
- 網狀架構節點必須新增至傳輸區域。
- 必須建立邏輯交換器。
- 您必須具有 NSX Manager API 的存取權。
- 您必須具有虛擬機器之 VMX 檔案的寫入權限。
程序
- 使用 (安裝型) vSphere Client 應用程式或某些其他虛擬機器管理工具,編輯虛擬機器並新增 VMXNET 3 乙太網路介面卡。
選取任何具名網路。您會在稍後的步驟中變更網路連線。
- 使用 NSX 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"
}
- 關閉虛擬機器的電源並從主機解除登錄虛擬機器。
您可以使用虛擬機器管理工具或 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
- 從 NSX Manager UI 取得邏輯交換器識別碼。
例如:
- 修改虛擬機器的 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"
- 在 NSX Manager UI 中,新增邏輯交換器連接埠,並使用虛擬機器的 externalId 來連結 VIF。
- 重新登錄虛擬機器並開啟其電源。
您可以使用虛擬機器管理工具或 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 的
管理程式模式中,選取
。尋找符合虛擬機器之 externalId 的 VIF 連結識別碼,並確定管理和運作狀態皆為已開啟。
如果兩個虛擬機器連結至相同的邏輯交換器,而 IP 位址也設定在相同的子網路中,則應該可以互相進行 Ping 偵測。
下一步
新增邏輯路由器。
您可以監控邏輯交換器連接埠上的活動以針對問題進行疑難排解。請參閱《NSX 管理指南》中的〈監控邏輯交換器連接埠活動〉。