Vmware-Esxi
將 VMware ESXi VM 移至新數據儲存 - 保留精簡配置
我正在為沒有可用 vCenter 的 VMware ESXi 環境問題尋找一個好的解決方案。
在單個 ESXi 主機上將 VM 從一個數據儲存移動到另一個數據儲存,同時保持 VMDK 精簡配置的最佳方法是什麼?
這是使用另一個驅動器陣列/數據儲存擴展的獨立伺服器。我想將舊數組中包含的數據移動到新數組中。
編輯:目標數據儲存大小實際上小於源。我沒有足夠的空間來複製厚文件。
您也可以使用文件 -> 導出 -> 導出 OVF 模板
然後導入它。上次我嘗試過,我認為這確實保留了 vmdk 格式。現在不太確定,因為已經有一段時間了。
我自己只是想辦法做到這一點。以下是關於如何將 VM 移動到新數據儲存同時在傳輸過程中保留精簡配置(從而也減少傳輸時間)的指南,希望它易於遵循:
在 CLI 中使用 vmkfstools 的分步指南
- 關閉虛擬機
- (可選)根據需要合併快照。
- 從 vCenter 清單中移除虛擬機
- 右鍵點擊虛擬機,然後點擊“從清單中刪除”
- 在 ESXi 機器上啟用 SSH
- 在 vSphere 客戶端中,轉到:配置 -> 安全配置文件 -> 屬性(服務旁邊)-> SSH(在列表中)-> 選項 -> 開始
- 以 root 身份通過 SSH 登錄
- 在目標數據儲存上準備一個目錄
mkdir "/vmfs/volumes/destination_datastore/Some VM"
- 使用精簡配置複製 .vmdk 文件
vmkfstools -i "/vmfs/volumes/source_datastore/Some VM/Some VM.vmdk" -d thin "/vmfs/volumes/destination_datastore/Some VM/Some VM.vmdk"
- 複製所有剩余文件(避免覆蓋 .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
- 如果您在步驟 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
- 完成複製和複製所有必要文件後,將新數據儲存中的 VM 添加回清單
- 在 vSphere 客戶端中,轉到:Configuration->Storage->Data Browser,右鍵點擊您將 VM 移動到的目標數據儲存,然後點擊“瀏覽數據儲存”。
- 瀏覽到您的虛擬機並右鍵點擊**.vmx**文件,然後點擊“添加到清單”
- 啟動 VM 以查看它是否工作,當詢問您是複制還是移動它時,只需回答您複製了它。(我不確定這意味著什麼,但我認為這至少與更改 vNIC 的 MAC 地址有關。)
- 如果 VM 啟動正常,您可以從舊數據儲存中刪除 VM。
rm -rf "/vmfs/volumes/source_datastore/Some VM"
注意:僅使用 ESXi 5 進行測試
插圖無恥地從這個部落格複製。