將 VMware 虛擬機器從一個 EXSi 主機移至另一台的六種方法
當您的環境中擁有多個 ESXi 主機時,您可能需要將虛擬機器從一個主機遷移至另一個主機。原因可能是為了合理利用資源,或是其中某個主機的運算資源不足。瞭解在 VMware vSphere 中,無論是否使用 vCenter,可用的虛擬機器遷移方法。
我們將使用前一篇部落格文章中部署的 在 VMware 家庭實驗室中設定的環境 來說明虛擬機器遷移的工作流程:
ESXi01 - 192.168.101.101 (datastore10a, datastore40)ESXi02 - 192.168.101.102 (datastore40-2)vCenter8 - 192.168.101.103
使用 vMotion 在主機間遷移 VMware 虛擬機器
將虛擬機器遷移至另一台 ESXi 主機最方便且有效的方法,是使用 vCenter 及其 vMotion 特點。請確保兩台執行 ESXi 的主機以及 vCenter 虛擬機器均處於運作狀態。在網頁瀏覽器中開啟 VMware vSphere Client,以存取您的 vCenter Server。
VMware 提供 vMotion 特點,用於在主機與資料存放區之間執行虛擬機器遷移。 當虛擬機器從一個儲存裝置遷移至另一個儲存裝置時,則使用 Storage vMotion。即使虛擬機器正在運行,vMotion 仍可讓您進行遷移。您可以在自己的 ESXi 家庭實驗室中測試這項出色的 Enterprise 特點。請在遷移過程中嘗試對您的嵌套 Linux 虛擬機器執行 ping 指令,以確認沒有停機時間。
右鍵點擊運行於第一個 ESXi 主機上的虛擬機器 (ESXi01 – 192.168.101.101) ,並在 動作 選單中點選 遷移 。

此時將開啟 遷移 精靈:
- 選擇遷移類型 。在此步驟中,您可以從以下三種選項中選擇其一:
- 僅變更運算資源 。若虛擬機器位於連接至多個 ESXi 主機的共用資料存放區上,請選擇此選項。
- 僅變更儲存 。若要將虛擬機器從一個直接連接的資料存放區移至另一個,請選取此選項。在此情況下,兩個直接連接的資料存放區均連接到同一台 ESXi 主機。
- 同時變更運算資源與儲存 。若要將虛擬機器從一台主機遷移至另一台主機,請選取此選項。因此,這兩台主機可能使用不同的資料存放區。
- 跨 vCenter Server 匯出 。用於將虛擬機器遷移至隸屬於另一個 SSO 網域的 vCenter Server。
第三個選項適用於當前 VMware 家庭實驗室中重現的情境。兩台 ESXi 主機各自擁有 40 GB 的資料存放區。正在運行的虛擬機器將從一台主機遷移至另一台主機(
ESXi01>ESXi02),並從一個 40 GB 的資料存放區遷移至另一個(datastore40>datastore40-2)。
- 選擇運算資源 。此選項可讓您定義 ESXi 主機,以及用於執行虛擬機器的 CPU 和記憶體資源。選擇
vCenter8 > Datacenter01 > 192.168.101.102(此為ESXi02的 IP 位址,即此 VMware 測試環境中的第二台主機)。
- 選擇儲存裝置 。在此階段,您應選擇虛擬機器遷移的目的地儲存裝置。選擇虛擬磁碟格式: 與來源相同(此處為精簡佈建)。選取資料存放區(我們的範例中為
datastore40-2)。 - 選取網路 。選取虛擬機器移轉的目的地網路。在我們的範例中,已選取 VM Network 作為此用途。
- 選取 vMotion 優先順序 。您可以將 vMotion 設為高優先順序(建議)或一般優先順序。請設為高優先順序。
- 準備完成 。檢查您的虛擬機器移轉參數,然後按一下 完成 以開始移轉。
請等待虛擬機器移轉程序完成。您可以在 VMware vSphere Client 網頁介面底部開啟 最近的工作 列,以查看工作進度。虛擬機器移轉工作成功完成後,您的虛擬機器將開始在第二台 ESXi 主機上執行(請參閱下方螢幕擷取畫面)。

您可以預覽 Lubuntu 虛擬機器桌面;移轉前曾開啟主控台,以檢查網路並安裝 VMware Tools。虛擬機器的執行狀態會保留。
如何在沒有 vMotion 的情況下將虛擬機器移至另一台主機?
在某些情況下,無法使用 vMotion 和 Storage vMotion,因為未安裝 vCenter,或 VMware vSphere Essentials 授權不允許使用 Storage vMotion。在這種情況下,您可以在沒有 vCenter 的情況下,對虛擬機器進行冷移轉。
讓我們在不使用共享資料存放區的情況下,將 Windows 虛擬機器從第一台 ESXi 主機(ESXi01)移轉至第二台主機(ESXi02)。若要在沒有 vCenter Server 的情況下將虛擬機器從一台 ESXi 主機複製到另一台,請執行下列操作:
- 使用網頁瀏覽器登入來源 ESXi 主機上的 VMware Host Client;來源虛擬機器儲存在該主機上(
ESXi01)。 - 在 導覽器 窗格中按一下 儲存 ,按一下儲存虛擬機器檔案的資料存放區,然後按一下 資料存放區瀏覽器 按鈕。
- 瀏覽您要移轉至另一台 ESXi 主機的虛擬機器目錄(本範例中為
Windows-VM,位於datastore10a上)。 - 下載來源虛擬機器在 ESXi01 上的 .
vmdk、-flat.vmdk和 .vmx檔案。在資料存放區瀏覽器中選取虛擬機器的 .vmdk檔案,然後按一下 下載 。將 .vmdk和 –flat.vmdk檔案(虛擬磁碟描述檔和虛擬磁碟原始資料檔)儲存到您的電腦。如果您的虛擬機器有多個虛擬磁碟,請對其他虛擬磁碟重複此操作。同樣地,下載 .vmx虛擬機器組態檔。注意:在資料存放區瀏覽器中,
.vmdk和 –flat.vmdk檔案都會顯示為單一 .vmdk檔案。或者,您也可以使用 SSH 用戶端檢視檔案,並使用 WinSCP 等 SFTP 用戶端,從 ESXi 資料存放區下載虛擬機器檔案。下載的 –flat.vmdk檔案會以厚置備檔案的形式下載。請確定您有足夠的磁碟空間來儲存虛擬磁碟檔案。
- 登入第二部(目的地)ESXi 主機上的 VMware Host Client,也就是您要將虛擬機器遷移至的主機(本例中為
ESXi02)。 - 在導覽器窗格中,按一下儲存,選取遷移後要放置虛擬機器的資料存放區(
datastore40b),然後開啟資料存放區瀏覽器。 - 在資料存放區瀏覽器視窗中,按一下建立目錄,輸入虛擬機器目錄的名稱(例如
Windows-VM-copy),然後在適當的視窗中按一下建立目錄。
- 建立目錄後,按一下上傳,並選取先前從
vmdk下載的虛擬機器 .flat.vmdk、-vmx和 .ESXi01檔案。等待檔案上傳至ESXi02的資料存放區。
- 在此情況下,上傳的虛擬磁碟會以厚置備虛擬磁碟格式儲存。請依照下列步驟將虛擬磁碟轉換為精簡置備格式,以節省儲存空間。
- 使用 SSH 用戶端連線至目的地 ESXi 主機(
ESXi02)。您可以在 Windows 中使用 PuTTY,並以root身分登入。必須在 ESXi 主機上啟用 SSH 存取權。 - 前往您在 ESXi02 資料存放區上建立的虛擬機器目錄,該目錄是虛擬機器遷移的目的地目錄。
cd /vmfs/volumes/datastore40b/Windows-VM-copy/ - 執行命令,將厚置備虛擬磁碟轉換為精簡置備虛擬磁碟:
vmkfstools -i sourcename.vmdk -d thin targetname.vmdk在本例中,完整命令如下:
vmkfstools -i Windows-VM.vmdk -d thin Windows-VM-thin.vmdk - 使用下列命令重新命名原始厚置備虛擬磁碟(稍後確認轉換後一切正常,即可刪除此磁碟):
vmkfstools -E targetname.vmdk sourcename.vmdk在此範例中,命令如下:
vmkfstools -E Windows-VM.vmdk Windows-VM-thick.vmdk注意:此命令會重新命名虛擬磁碟描述檔和虛擬磁碟資料檔(.
vmdk和 –flat.vmdk)。 - 將轉換後寫入的新精簡置備虛擬磁碟重新命名,使其名稱與原始虛擬磁碟相符:
vmkfstools -E Windows-VM-thin.vmdk Windows-VM.vmdk
- 在
ESXi02的資料儲存庫瀏覽器中,前往已複製虛擬機器(Windows-VM-copy)的目錄,並選取虛擬機器配置檔vmx。 - 右鍵點擊
vmx檔案,並在快顯選單中點選 註冊虛擬機器 ,以將克隆的虛擬機器註冊至目標 ESXi 主機(ESXi02)。
- 啟動遷移後建立的虛擬機器。
- 若一切運作正常,請刪除將虛擬磁碟從厚式 (thick) 轉換為薄式 (thin) 格式後保留的厚式虛擬磁碟檔案(
Windows-VM-thick-flat.vmdk以及對應的 .vmdk檔案)。
若轉換後磁碟大小未減少,您可在 使用精簡配置的虛擬磁碟時回收可用空間。
使用共用儲存裝置進行 VMware 遷移
採用此方法進行虛擬機器遷移時,所有參與的 ESXi 主機都必須連接至共用儲存裝置。
VMware 遷移有兩種情境:複製(克隆)虛擬機器或移動虛擬機器。
- 要複製虛擬機器:
- 在共用資料存放區上建立新的虛擬機器資料夾。
- 將來源虛擬機器的檔案複製到該新建立的資料夾中。
- 在連接到該共用資料存放區的目標 ESXi 主機上註冊虛擬機器副本。
- 要移動虛擬機器:
- 在來源(第一台)ESXi 主機上取消註冊虛擬機器。
- 在目標(第二台)ESXi 主機上註冊虛擬機器。
如何透過手動匯出/匯入虛擬機器範本來移動虛擬機器
您可以將虛擬機器匯出為範本,並將這些範本匯入至另一台 ESXi 主機以建立虛擬機器,藉此遷移或克隆虛擬機器。此方法可讓您執行冷遷移(適用於已關機的虛擬機器)。 您可以透過範本,在不使用 vCenter 或使用 vCenter 的情況下,將 VMware 虛擬機器複製或移動至另一台主機。
在不使用 vCenter 的情況下,透過範本進行虛擬機器遷移
請執行以下步驟,在不使用 vCenter 的情況下將虛擬機器遷移至另一台主機:
- 在來源 ESXi 主機()上的 VMware Host Client 中,前往 虛擬機器 位於 導覽窗格
ESXi01中。 - 右鍵點擊虛擬機器,並在快顯選單中點選 匯出 。
- 檢查已選取的檔案(您可以直接使用預設選項,不包含 .
nvram),然後點擊 “匯出” 。
- 請等待檔案在網頁瀏覽器中完成下載。在此範例中,我們已下載了該匯出虛擬機的三個檔案:
Windows-VM.mfWindows-VM.ovfWindows-VM-1.vmdk
- 在目的地 ESXi 主機 (
ESXi02) 的 VMware Host Client 中,前往 導覽器 中的 虛擬機器 ,然後按一下 建立/登錄虛擬機器 。
- 在 新增虛擬機器 精靈的第一個步驟中,選取 從 OVF 或 OVA 檔案部署虛擬機器。按一下精靈每個步驟中的 下一頁 以繼續。
- 輸入目的地 ESXi 主機上的唯一虛擬機器名稱,例如
Windows-VM-clone,並選取先前匯出為 OVF 範本的 .ovf(或 .ova)和 .vmdk檔案。
- 選取儲存體 。在目的地 ESXi 主機上選取資料存放區,以儲存要移轉的虛擬機器。
- 設定部署選項 。選取虛擬機器連線的網路、虛擬磁碟的精簡或完整佈建方式,以及部署後是否要自動啟動虛擬機器。
- 準備完成 。確認設定,然後按一下 完成 。
- 等待從範本匯入虛擬機器 。您應該會看到訊息:
VM_name successfully imported。
如果發生錯誤,例如 缺少必要的磁碟映像 ,導致匯入程序失敗,請確認已選取 .ovf 和 .vmdk 檔案。如果選取所有必要檔案仍無法解決問題,請嘗試下列動作:
- 將使用 .
vmdk範本匯出的 .ovf檔案複製到目的地ESXi host的資料存放區。 - 使用與來源虛擬機器相同的組態建立新的虛擬機器,並在虛擬機器建立精靈中選取使用現有的虛擬磁碟。
- 選取步驟 1 中複製到目的地資料存放區的已匯出虛擬磁碟。
使用 vCenter 中的範本移轉虛擬機器
同樣地,您可以將虛擬機器匯出為 OVF 範本,並使用 VMware vSphere Client 將這些範本匯入 vCenter,做為新的虛擬機器。
- 在虛擬機器上按一下滑鼠右鍵,然後在快顯功能表中依序按一下 範本 > 匯出 OVF 範本 。
- 在開啟的視窗中輸入範本名稱,並選取所需的選項。按一下 確定 。
- 下載範本檔案。

接著,將 OVF 範本部署至虛擬機器,以移轉虛擬機器。
- 在 vSphere Client 的” 主機和叢集 “檢視中,以滑鼠右鍵按一下目的地 ESXi 主機,然後按一下” 部署 OVF 範本 “。
- 完成精靈以完成虛擬機器移轉。

vSphere 中 OVF 範本的替代方式,是將虛擬機器轉換為 VMware 虛擬機器範本。進一步瞭解如何使用 VMware 虛擬機器範本。
如何使用 VMware PowerCLI 將虛擬機器移轉至另一部主機?
在 PowerCLI 中,您可以使用 Move-VM Cmdlet,將虛擬機器從一部 ESXi 主機移轉至另一部。以下是執行此操作的步驟:
- 啟動 PowerCLI 主控台,或載入 VMware PowerCLI 模組的 PowerShell。
- 使用
Connect-VIServerCmdlet 連線至 vCenter Server,或直接連線至來源 ESXi 主機。將vCenter_or_ESXi_Host替換為適當的伺服器位址:Connect-VIServer -Server <vCenter_or_ESXi_Host> -User <Username> -Password <Password> - 使用 Get-VM Cmdlet 擷取您要移轉之虛擬機器的資訊:
$vm = Get-VM -Name "VM_Name" - 選取目的地 ESXi 主機。找出您要將虛擬機器移至的目的地 ESXi 主機。
$destinationHost = Get-VMHost -Name "Destination_ESXi_Host" - 移動虛擬機器。使用
Move-VMCmdlet 啟動移轉。指定虛擬機器($vm)和目的地主機($destinationHost)。Move-VM -VM $vm -Destination $destinationHost - 使用
Get-TaskCmdlet 檢查工作狀態,以監控移轉進度。Get-Task | Where-Object {$_.Entity -eq $vm} | Sort-Object StartTime -Descending | Select-Object -First 1 - 如果不需要執行其他工作,您也可以選擇中斷與 vCenter Server 或 ESXi 主機的連線。
Disconnect-VIServer -Server * -Confirm:$false
範例
以下是完整範例,可作為 PowerShell 指令碼,用於在 ESXi 主機之間移轉虛擬機器:
# 連線至來源 vCenter Server 或 ESXi 主機
Connect-VIServer -Server 192.168.101.103 -User administrator@vsphere.local -Password Your_Password111
# 擷取虛擬機器的資訊
$vm = Get-VM -Name "Windows-VM"
# 找出目的地 ESXi 主機
$destinationHost = Get-VMHost -Name "192.168.101.102"
# 將虛擬機器移至目的地主機
Move-VM -VM $vm -Destination $destinationHost
# 監控移轉進度
Get-Task | Where-Object {$_.Entity -eq $vm} | Sort-Object StartTime -Descending | Select-Object -First 1
# 中斷與來源 vCenter Server 或 ESXi 主機的連線
Disconnect-VIServer -Server * -Confirm:$false
請確認您具備執行移轉所需的權限,並將上述命令中的 Source_vCenter_or_ESXi_Host、Username、Password、VM_Name 和 Destination_ESXi_Host 等預留位置替換為實際值。請根據您的環境和需求調整指令碼。
如何使用 VMware Converter 將虛擬機器遷移至另一部主機
VMware vCenter Converter Standalone 是一款工具,可讓您將實體機器、其他 Hypervisor 上的虛擬機器,以及較舊版本 VMware vSphere 中的虛擬機器,轉換為可在 vSphere 環境中使用的虛擬機器。雖然此工具並非專為即時遷移而設計,但您可以使用 Converter 在 ESXi 主機之間冷遷移虛擬機器(遷移期間必須關閉來源虛擬機器電源)。
若要使用 VMware Converter 遷移虛擬機器:
- 準備所有必要元件:
- 下載 從 VMware 網站下載 VMware vCenter Converter Standalone,並將其安裝在可存取來源和目的地 ESXi 主機的機器上。
- 確認您具有來源和目的地 ESXi 主機的管理員存取權。
- 確認執行 VMware Converter 的機器與來源和目的地 ESXi 主機之間有適當的網路連線。
- 在安裝 VMware Converter 的機器上啟動應用程式。
- 按一下 轉換機器 。
- 選取來源類型 。在此範例中,選取 已關閉電源 和 VMware Infrastructure 虛擬機器 作為來源。輸入來源 ESXi 主機的 IP 位址或主機名稱(例如
192.168.101.101),並提供連線所需的憑證。
- 選取來源虛擬機器 。從來源 ESXi 主機上可用的虛擬機器清單中,選擇您要遷移的虛擬機器。
- 選取目的地類型 。選取 VMware Infrastructure 虛擬機器 作為目的地。輸入目的地 ESXi 主機的 IP 位址或主機名稱(例如
192.168.101.102),並提供連線所需的憑證。 - 設定目的地虛擬機器 。指定目的地 ESXi 主機上目的地虛擬機器的名稱和位置。
- 選取目的地位置 。選取目的地 ESXi 主機上的資料存放區和虛擬機器硬體版本。您可以檢閱並設定其他選項,例如目的地虛擬機器的資料中心、叢集、資源庫和資料存放區。
- 選項 。視需要設定轉換選項,例如磁碟類型、網路設定和自訂選項。
- 準備好完成 。 檢閱您所選項目的摘要,然後按一下 完成 以開始轉換程序。
- 在 Converter Standalone 介面 中監控轉換進度。此工具會關閉來源虛擬機器、複製其磁碟,然後在目的地主機上建立新的虛擬機器。
- 轉換完成後,請確認虛擬機器已成功建立於目的地 ESXi 主機上。
閱讀更多關於使用 VMware Converter 的資訊。
如何使用 NAKIVO Backup & Replication 將虛擬機器遷移至另一部主機
您可以使用虛擬機器資料保護解決方案和虛擬機器複寫,將虛擬機器從一部 ESXi 主機複製到另一部主機。NAKIVO Backup & Replication 可讓您透過此情境遷移虛擬機器。虛擬機器複寫功能有助於有效完成這項作業,即使是正在執行的虛擬機器也適用。
此虛擬機器遷移方法適用於以下兩種情況:
- ESXi 主機由 vCenter 管理
- 獨立 ESXi 主機未由 vCenter 管理
需求:
- 所有獨立 ESXi 主機都必須新增至 NAKIVO 庫存。
- 如果 ESXi 主機由 vCenter 管理,則必須將 vCenter Server 新增至清單。

若要使用 NAKIVO Backup & Replication 遷移虛擬機器,請依照下列步驟操作。
- 在 NAKIVO 解決方案的 Web 介面中,前往 作業 +(新增作業),然後按一下 VMware vSphere 複寫作業 。

- 在開啟的 VMware vSphere 新複寫作業精靈 中,選取來源 ESXi 主機上的來源虛擬機器。在此範例中,選取了位於
Windows-VM上的ESXi01。
- 選取目的地 ESXi 主機、資料存放區和虛擬機器資料夾。

- 完成 完成虛擬機器複製 精靈,並等待在目的地位置建立虛擬機器副本。
如此一來,您便已將一部執行中的虛擬機器遷移至另一部主機。您可以使用 NAKIVO Backup & Replication 設定增量複寫,並在生產虛擬機器無法使用時,使用副本進行虛擬機器故障移轉。NAKIVO Backup & Replication 是完整的資料保護解決方案,只需安裝一套解決方案,並透過單一管理介面,即可提供備份、災難復原編排與自動化、即時複寫及勒索軟體復原。此解決方案只需安裝一次,即可透過單一管理介面提供這些功能。