將 VMware 虛擬機器從一個 vSphere 主機移轉至另一個主機的 6 種方法
當您的環境中擁有多個 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(的 IP 位址)ESXi02(這是此 VMware 測試環境中的第二台主機)。
- 選擇儲存空間. 在此階段,您應選擇虛擬機器遷移的目的地儲存空間。選擇虛擬磁碟格式:與來源相同(此處為精簡配置)。選擇資料存放區(
datastore40-2(在我們的範例中)。 - 選擇網路. 選擇虛擬機器遷移的目的地網路。 虛擬機器網路 在我們的範例中,是為此目的而選用的。
- 選擇 vMotion 優先級. 您可以將 vMotion 設定為高優先級(建議)或一般優先級。請設定為高優先級。
- 準備完成. 檢查您的虛擬機器遷移參數,然後按下 完成 開始遷移。
請等待虛擬機器遷移程序完成。您可以開啟 最近的任務 請查看 VMware vSphere Client 網頁介面底部的進度條,以確認任務的執行狀況。虛擬機器遷移任務成功完成後,您的虛擬機器將開始在第二台 ESXi 主機上運行(請參閱下圖)。

您可以預覽 Lubuntu 虛擬機器的桌面畫面,其中已開啟控制台,以便在遷移前檢查網路並安裝 VMware Tools。虛擬機器的運行狀態已保留。
如何在不使用 vMotion 的情況下將虛擬機器移至另一台主機?
在某些使用情境下,由於未安裝 vCenter 或 VMware vSphere Essentials 授權不允許使用 Storage vMotion,因此無法使用 vMotion 和 Storage vMotion。在此情況下,您可以不透過 vCenter 直接進行虛擬機器的冷遷移。
讓我們將一台 Windows 虛擬機器從第一台 ESXi 主機(ESXi01) 到第二個 (ESXi02) 且不使用共用資料存放區。請依照以下步驟,在不使用 vCenter Server 的情況下,將虛擬機器從一個 ESXi 主機複製到另一個:
- 請在儲存來源虛擬機的主機 ESXi 主機上登入 VMware Host Client(
ESXi01) 透過網頁瀏覽器。 - 點擊 儲存 在 導航員 在面板中,點選存放虛擬機器檔案的資料存放區,然後按下 資料存放區瀏覽器 按鈕。
- 瀏覽您要遷移至另一台 ESXi 主機的虛擬機器目錄(
Windows-VM於datastore10a(在此範例中)。 - 下載 .
vmdk, –flat.vmdk以及 .vmxESXi01 上來源虛擬機的檔案。請選取一個 .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.
- 在此情況下,上傳的虛擬磁碟將以厚虛擬磁碟格式儲存。請依照以下步驟,將虛擬磁碟轉換為精簡配置格式,以節省儲存空間。
- 連線至目標 ESXi 主機 (
ESXi02) 在 SSH 客戶端中。您可以在 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).
- 啟動遷移後建立的虛擬機器。
- 如果一切運作正常,請刪除在將虛擬磁碟從厚式轉換為薄式格式後所保留的厚式預分配虛擬磁碟檔案(
Windows-VM-thick-flat.vmdk以及相應的 .vmdk檔案)。
如果轉換後磁碟大小未減少,您可以在 使用精簡配置的虛擬磁碟.
使用共用儲存裝置進行 VMware 遷移
若要使用此方法進行虛擬機器遷移,必須將共用儲存裝置連接到所有參與遷移的 ESXi 主機。
VMware 遷移主要有兩種情境:複製(克隆)虛擬機器或移動虛擬機器。
- 要複製虛擬機器:
- 在共用資料存放區上建立一個新的虛擬機器資料夾。
- 將來源虛擬機器的檔案複製到該新建立的資料夾中。
- 在已連接到共用資料存放區的目標 ESXi 主機上註冊虛擬機器副本。
- 要移動虛擬機器:
- 在來源(第一個)ESXi 主機上取消註冊虛擬機器。
- 在目標(第二台)ESXi 主機上註冊虛擬機器。
如何透過手動匯出/匯入虛擬機器範本來移動虛擬機器
您可以將虛擬機器匯出為範本,並將這些範本匯入至另一台 ESXi 主機以建立虛擬機器,藉此遷移或複製虛擬機器。此方法可讓您執行冷遷移(適用於已關機的虛擬機器)。無論是否使用 vCenter,您皆可透過範本將 VMware 虛擬機器複製或移動至另一台主機。
在不使用 vCenter 的情況下,透過範本進行虛擬機器遷移
請依照以下步驟,在沒有 vCenter 的情況下將虛擬機器遷移至另一台主機:
- 前往 虛擬機器 在 導航員 在來源 ESXi 主機上的 VMware Host Client(
ESXi01). - 右鍵點擊虛擬機器,然後按下 匯出 在右鍵選單中。
- 請檢查已選取的檔案(您可以直接使用預設選取範圍,不包含 .
nvram) 並點擊 匯出.
- 請等待檔案在網頁瀏覽器中完成下載。在此範例中,我們已下載了三份匯出的虛擬機器檔案:
Windows-VM.mfWindows-VM.ovfWindows-VM-1.vmdk
- 在目標 ESXi 主機的 VMware Host Client 中(
ESXi02),請前往 虛擬機器 在 導航員 然後點擊 建立/註冊虛擬機器.
- 選擇 從 OVF 或 OVA 部署虛擬機器 在第一步中的檔案 新的虛擬機器 精靈。點擊 下一頁 在精靈的每個步驟中,請按一下以繼續。
- 請在目標 ESXi 主機上輸入唯一的虛擬機器名稱,例如:
Windows-VM-clone,然後選取該選項。ovf(或 .ova) 和 .vmdk先前已匯出為 OVF 範本的檔案。
- 選擇儲存空間. 請在目標 ESXi 主機上選取一個資料存放區,用以儲存您要遷移的虛擬機器。
- 定義部署選項. 選擇虛擬機器連線的網路、虛擬磁碟的精簡或完整配置,以及部署後是否自動啟動虛擬機器。
- 準備完成. 確認您的設定,然後按下 完成.
- 請等待虛擬機器從範本匯入完成. 您應該會看到以下訊息:
VM_name successfully imported.
如果您看到錯誤訊息,例如 缺少一個必要的磁碟映像檔,且匯入程序失敗時,請確認兩者皆已ovf 以及 .vmdk 已選取檔案。若選取所有必要檔案仍無法解決問題,請嘗試以下操作:
- 複製 .
vmdk以 . 結尾的檔案ovf將範本傳送至目標資料存放區ESXi host. - 建立一台與來源虛擬機器配置相同的虛擬機器,並在虛擬機器建立精靈中選擇使用現有的虛擬磁碟。
- 請選取在步驟 1 中已複製至目標資料存放區的匯出虛擬磁碟。
在 vCenter 中使用範本進行虛擬機器遷移
同樣地,您可以將虛擬機器匯出為 OVF 範本,並透過 VMware vSphere Client 在 vCenter 中將這些範本匯入為新的虛擬機器。
- 右鍵點擊虛擬機器,然後點擊 範本匯出 OVF 範本 在右鍵選單中。
- 輸入範本名稱,並在開啟的視窗中選取所需的選項。按下 好的.
- 下載範本檔案。

接著,將 OVF 範本部署至虛擬機器,以進行虛擬機器的遷移。
- 在 主機與叢集 vSphere Client 的畫面,然後按下 部署 OVF 範本.
- 完成精靈程序,即可完成虛擬機器遷移。

在 vSphere 中,除了使用 OVF 範本之外,另一種選擇是將虛擬機器轉換為 VMware 虛擬機器範本。進一步了解如何使用 VMware 虛擬機器範本.
如何使用 VMware PowerCLI 將虛擬機器遷移至另一台主機?
在 PowerCLI,您可以使用 Move-VM 用於將虛擬機器從一個 ESXi 主機遷移至另一個 ESXi 主機的 cmdlet。以下是操作步驟:
- 啟動 PowerCLI 主控台,或載入 VMware PowerCLI 模組後啟動 PowerShell。
- 使用
Connect-VIServercmdlet. ReplacevCenter_or_ESXi_Host並填入正確的伺服器位址:Connect-VIServer -Server-User -Password - 使用 Get-VM 指令碼擷取您要遷移的虛擬機器的相關資訊:
$vm = Get-VM -Name "VM_Name" - 選擇目標 ESXi 主機。請指定您要將虛擬機器移轉至的目標 ESXi 主機。
$destinationHost = Get-VMHost -Name "Destination_ESXi_Host" - 移動虛擬機器。請使用
Move-VM用於啟動遷移的 cmdlet。請指定虛擬機器 ($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 是一款工具,可讓您將實體機器、來自其他虛擬化平台的虛擬機器,以及來自早期版本 VMware vSphere 的虛擬機器轉換為虛擬機器,以便在 vSphere 環境中使用。雖然此工具並非專為即時遷移而設計,但仍可利用此轉換器在 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 解決方案的網頁介面中,前往工作 + (新增工作) 並點擊 VMware vSphere 複製工作.

- 在 適用於 VMware vSphere 的新複製工作精靈 開啟後,請在來源 ESXi 主機上選取來源虛擬機器。在此範例中,
Windows-VM於ESXi01已選取。
- 請選擇目標 ESXi 主機、資料存放區及虛擬機器資料夾。

- 完成虛擬機器複製 按照精靈的指示操作,並等待虛擬機器複本在目標位置建立完成。
至此,您已將一台正在運行的虛擬機器遷移至另一台主機。您可以透過 NAKIVO Backup & Replication 並在生產環境虛擬機器無法使用時,使用該複本進行虛擬機器的故障移轉。 NAKIVO Backup & Replication 這是一套完整的数据保護解決方案,只需安裝一次即可透過單一管理介面,提供備份、災難復原的編排與自動化、即時複寫,以及勒索軟體還原功能。