Vmware-Esxi

將 VMware ESXi VM 移至新數據儲存 - 保留精簡配置

  • January 26, 2021

我正在為沒有可用 vCenter 的 VMware ESXi 環境問題尋找一個好的解決方案。

在單個 ESXi 主機上將 VM 從一個數據儲存移動到另一個數據儲存,同時保持 VMDK 精簡配置的最佳方法是什麼?

這是使用另一個驅動器陣列/數據儲存擴展的獨立伺服器。我想將舊數組中包含的數據移動​​到新數組中。

編輯:目標數據儲存大小實際上小於源。我沒有足夠的空間來複製厚文件。

您也可以使用文件 -> 導出 -> 導出 OVF 模板

然後導入它。上次我嘗試過,我認為這確實保留了 vmdk 格式。現在不太確定,因為已經有一段時間了。

我自己只是想辦法做到這一點。以下是關於如何將 VM 移動到新數據儲存同時在傳輸過程中保留精簡配置(從而也減少傳輸時間)的指南,希望它易於遵循:

在 CLI 中使用 vmkfstools 的分步指南

  1. 關閉虛擬機
  2. (可選)根據需要合併快照。
  3. 從 vCenter 清單中移除虛擬機
  • 右鍵點擊虛擬機,然後點擊“從清單中刪除” 在此處輸入圖像描述
  1. 在 ESXi 機器上啟用 SSH
  • 在 vSphere 客戶端中,轉到:配置 -> 安全配置文件 -> 屬性(服務旁邊)-> SSH(在列表中)-> 選項 -> 開始
  1. 以 root 身份通過 SSH 登錄
  2. 在目標數據儲存上準備一個目錄
  • mkdir "/vmfs/volumes/destination_datastore/Some VM"
  1. 使用精簡配置複製 .vmdk 文件
  • vmkfstools -i "/vmfs/volumes/source_datastore/Some VM/Some VM.vmdk" -d thin "/vmfs/volumes/destination_datastore/Some VM/Some VM.vmdk"
  1. 複製所有剩余文件(避免覆蓋 .vmdk 文件)
  • find "/vmfs/volumes/source_datastore/Some VM" -maxdepth 1 -type f | grep -v ".vmdk" | while read file; do cp "$file" "/vmfs/volumes/destination_datastore/Some VM"; done
  1. 如果您在步驟 2 中沒有合併快照,則可能存在快照 .vmdk 增量文件,我們還需要複製這些文件(這可能需要一些時間):
  • find "/vmfs/volumes/source_datastore/Some VM" -maxdepth 1 -type f | grep [0123456789][0123456789][0123456789][0123456789][0123456789][0123456789] | grep ".vmdk" | while read file; do cp "$file" "/vmfs/volumes/destination_datastore/Some VM"; done
  1. 完成複製和複製所有必要文件後,將新數據儲存中的 VM 添加回清單
  • 在 vSphere 客戶端中,轉到:Configuration->Storage->Data Browser,右鍵點擊您將 VM 移動到的目標數據儲存,然後點擊“瀏覽數據儲存”。 在此處輸入圖像描述
  1. 瀏覽到您的虛擬機並右鍵點擊**.vmx**文件,然後點擊“添加到清單” 在此處輸入圖像描述
  2. 啟動 VM 以查看它是否工作,當詢問您是複制還是移動它時,只需回答您複製了它。(我不確定這意味著什麼,但我認為這至少與更改 vNIC 的 MAC 地址有關。) 在此處輸入圖像描述
  3. 如果 VM 啟動正常,您可以從舊數據儲存中刪除 VM。
  • rm -rf "/vmfs/volumes/source_datastore/Some VM"

注意:僅使用 ESXi 5 進行測試

插圖無恥地從這個部落格複製。

引用自:https://serverfault.com/questions/372526