如何在ESXi主机上克隆虚拟机:5种方法

虛擬化技術能夠透過 VM 模板或 VM 克隆等功能,實現更高效的工作流程和資源利用率,這使您能夠快速創建現有 VM 的相同副本。新 VM 無需從頭開始配置,因為它與原始 VM 具有相同的虛擬硬件、安裝軟件和其他設置。

VM 克隆功能適用於由 vCenter Server 管理的 VM。但是,如果您正在使用 VMware ESXi 的免費版本,例如,您也可以克隆在 VMware ESXi 主機上運行的 VM。

本博客文章將解釋如何使用不同方法在 ESXi 伺服器上克隆現有的 VMware 虛擬機器,無論是否使用 vCenter Server。

VMware ESXi 克隆 VM 環境

建議在開始之前,不要為要克隆的 VM 創建快照。這可以幫助避免問題,例如在使用快照恢復 VM 克隆的 VM 狀態時恢復原始 VM 網路適配器的 MAC 地址。如果有 VM 快照,您需要在從快照恢復 VM 狀態以避免衝突的 MAC 地址之後,手動更改 MAC 地址。

我們用於演示如何製作克隆機器的環境如下:

  • ESXi 主機 1:192.168.101.201
  • ESXi 主機 1 上的 VM:Windows-VM
  • ESXi 主機 2:192.168.101.202
  • vCenter Server:192.168.101.103在這個環境中使用ESXi 7 和 vCenter 7來解釋工作流程和克隆虛擬機器。

ESXi7和 vCenter7在此環境中用於解釋工作流程和複製虛擬機器。

方法1:VMware ESXi無需 vCenter克隆 VM–使用 VMware Host Client

如果您有一個未由 vCenter Server管理的 ESXi主機,您可以使用 VMware Host Client在該 ESXi主機上通過用戶友好的網頁界面克隆 VM。

我們有一個 ESXi主機 (192.168.101.201),帶有兩個資料存儲 (datastore10adatastore10c)。名為 Windows-VM的 VM位於 datastore10a。我們將克隆此 VM並將 VM克隆存儲在 datastore10c

要在沒有 vCenter的情況下克隆 ESXi主機上的 VM,請執行以下操作:

  1. 使用管理員帳戶 (root)登錄 VMware Host Client。
  2. 在所需的資料存儲上創建一個目錄來存儲 VM克隆的文件。我們點擊 存儲在導航器面板中,轉到 datastore10c,點擊 創建目錄,並輸入 Win-VM-Clone作為目錄名稱。點擊 創建目錄

  3. 打開源虛擬機(VM)的VM設置,並檢查VM文件的位置。要做到這一點,轉到虛擬機,在導航器中選擇Windows VM,並展開硬盤1硬件配置窗格中。

    我們可以看到我們的VM的虛擬硬盤位於Windows-VM目錄中的datastore10a。如果您的VM有多個虛擬磁盤,請檢查每個磁盤的位置。在一些自定義配置中,一個VM的虛擬磁盤可能位於不同的位置。複製克隆虛擬機的所有虛擬磁盤非常重要。

    您也可以點擊編輯VM設置,並在VM設置中展開硬盤部分以查看虛擬硬盤的位置。

  4. 關閉您想克隆的VM。
  5. 打開資料存儲瀏覽器,並轉到來源虛擬機的目錄。要做到這一點,請點擊存儲中的導航器窗格,然後點擊datastore10a,再點擊資料存儲瀏覽器。然後,我們在資料存儲瀏覽器中選擇Windows-VM目錄在datastore10a上。
  6. 複製來源虛擬機的VMDK檔案和VMX檔案到VM克隆的目錄中。首先,我們複製原始VM的虛擬磁碟。在資料存儲瀏覽器中選擇VMDK檔案(在我們的情況下為Windows-VM.vmdk),然後點擊複製

  7. 在下一個窗口中選擇目標目錄,然後點擊複製。我們選擇Win-VM-Clone目錄在datastore10c上。

  8. 如果您的原始虛擬機器有多個虛擬磁碟,請重複執行以下步驟以複製該虛擬機器的所有虛擬磁碟。

    請注意,VMware 主機客戶端將 .vmdk-flat.vmdk 檔案顯示為一個項目。您可以在命令行界面中看到每個虛擬磁碟有兩個檔案。 .vmdk 檔案是虛擬磁碟描述符檔案,而 -flat.vmdk 則是包含資料的虛擬磁碟檔案。與 ESXi 虛擬機器相比,在 VMware Workstation 中運行的虛擬機器的虛擬磁碟使用具有嵌入式描述符的 .vmdk 虛擬磁碟(一個檔案而不是兩個檔案)。

  9. 等待文件複製完成。您可以在網頁界面底部的最近的任務條上監視進度。

  10. 下載 VMX 檔案,這是一個虛擬機配置檔,到您的電腦上。要做到這一點,打開資料存儲瀏覽器,並轉到datastore10a上的Windows-VM目錄。選擇.vmx檔案(在我們的情況下為Windows-VM.vmx),並點擊下載(您可以右鍵單擊.vmx檔案打開帶有選項的上下文菜單)。將選定的 VMX 檔案保存到您的電腦上。

  11. 編輯您已經下載的 VMX 檔案(在我們的情況下為Windows-VM.vmx)。您可以使用您喜歡的文本編輯器。儘管克隆的虛擬機是一致的虛擬機,但在 VMware vSphere 中有某些設置,例如 VM 名稱,必須為每個 VM 不同,以便更方便地識別 VM。
  12. displayName。將VM克隆名稱更改為與原始VM名稱不同。

    我們將VM名稱從

    displayName = “Windows-VM”

    更改為

    displayName = “Win-VM-Clone”

    我們顯示的VM名稱將與存儲我們VM克隆文件的目錄名稱相同。

    可選:您也可以在數據存儲瀏覽器中重新命名虛擬磁盤(Windows-VM.vmdk),並更改.vmx配置文件中的相應行的值,以獲得唯一的虛擬磁盤名稱(例如,在我們的情況下為Win-VM-Clone.vmdk)。

  13. 將編輯後的 VMX 檔案上傳到克隆 VM 的檔案位於的資料存放區(使用資料存放區瀏覽器,就像之前一樣)。我們選擇 datastore10c/Win-VM-Clone/ 目錄,然後點擊 上傳(在瀏覽器窗口中選擇適當的已編輯 VMX 檔案)。

  14. 現在,編輯後的 VMX 檔案位於 VM 克隆的目錄中(在我們的情況下是 Win-VM-Clonedatatore10c 上)。您可以關閉資料存放區瀏覽器。

    注意:如果您想要將 VM 克隆到另一個 ESXi 主機,請將 VM 配置和虛擬磁碟檔案下載到您的電腦,然後將這些檔案上傳到目的地 ESXi 主機的資料存放區。您也可以使用 SCP / SFTP 客戶端從/到資料存放區下載和上傳檔案(例如 Windows 中的 WinSCP)。

  15. 一旦我們複製了VM檔案,我們需要在我們的ESXi主機上註冊一個VM克隆。在導航窗格中進入虛擬機器,並點擊創建/註冊VM

  16. 新虛擬機精靈將打開。
  17. 選擇創建類型。 選擇註冊現有虛擬機,然後點擊下一步

  18. 選擇要註冊的VM。 點擊選擇一個或多個虛擬機、數據存儲或目錄

  19. 在打開的數據存儲瀏覽器窗口中選擇VM克隆目錄中的一個VMX文件,然後點擊選擇

  20. 請確保在向導的第二步選擇所需的 VMX 檔案,然後點擊下一步。
    下一步

  21. 在準備完成畫面上點擊 完成
    準備完成

  22. VM 克隆現在註冊為一個 VM,並顯示在 VM 列表中。您可以在 VMware 主機客戶端的 Web 介面中隨時重新命名 VM 克隆。您可以右擊 VM 名稱,然後點擊開啟的菜單中的 重新命名

  23. 現在,您可以開始 VM 克隆。啟動 VM 後,應該會看到如屏幕截圖所示的問題。

    選擇 我複製了它(不是移動)。這對於設置 VM 的新 MAC 地址和通用唯一標識符(UUID)至關重要。請記住,您可能需要在客戶操作系統中更改 VM 名稱和 SID(對於 Windows VM)以避免衝突。點擊 回答

    虛擬機已成功在 ESXi 主機上克隆。

方法 2:如何 在 ESXi 命令行中克隆 VMs

在ESXi主機上克隆虛擬機的另一種方法,而不使用vCenter Server,是使用ESXi命令行。您可以直接使用ESXi伺服器上的ESXi shell或遠程通過SSH連接到ESXi伺服器來訪問ESXi命令行。請確保已啟用SSH訪問。

在命令行中創建一個不使用vCenter的VMware克隆VM:

  1. 使用SSH客戶端連接到ESXi伺服器。如果您使用Windows,可以使用PuTTY。

    檢查在此ESXi主機上註冊的VM清單(我們將克隆相同的Windows-VM,即上一個示例中的原始VM)。

    vim-cmd vmsvc/getallvms

  2. 我們需要關閉要克隆的原始VM。

    獲取VM的ID(VMID)以識別要關閉的VM。

    vim-cmd vmsvc/getallvms

    我們的Windows-VM的VMID為1(請參見下面的截圖)。

  3. 關閉虛擬機器的命令是:

    vim-cmd vmsvc/power.shutdown VMID

    我們使用此命令關閉我們的Windows虛擬機

    vim-cmd vmsvc/power.shutdown 1

  4. 檢查虛擬機的電源狀態的命令是:

    vim-cmd vmsvc/power.getstate VMID

    如果無法關閉虛擬機,您可以使用關閉電源的命令:

    vim-cmd vmsvc/power.off VMID

  5. 檢查此虛擬機配置文件位置的命令是:

    cat /etc/vmware/hostd/vmInventory.xml |grep -i Windows-VM | grep vmx

    vim-cmd vmsvc/getallvms |grep -i Windows-VM

  6. 若要檢查目前 VM 的虛擬磁碟位置,請開啟 vmx 虛擬機配置檔:

    less /vmfs/volumes/datastore10a/Windows-VM/Windows-VM.vmx

    如果虛擬磁碟位於相同目錄(例如我們的第一個和唯一的虛擬磁碟),則應該看到這樣的行:

    ide0:0.present = “TRUE”

    ide0:0.fileName = “Windows-VM.vmdk”

    如果有虛擬磁碟(例如第二個虛擬磁碟)儲存在 VM 目錄以外的位置,則應該看到這樣的行:

    scsi0:1.present = “true”

    scsi0:1.fileName = “/vmfs/volumes/609a545a-50d29185-ffbb-000c293004f2/directory2/SecondHardDisk.vmdk”

    如果虛擬磁碟儲存在 VM 目錄以外的位置,則將完整路徑定義在 vmx 配置檔的適當行中。

    現在我們知道虛擬機檔案的位置,可以繼續克隆 ESXi VM 副本。我們將此 ESXi 克隆 VM 儲存在 datastore10c 上。

  7. 創建一個目錄來存儲虛擬機克隆的VM文件:

    mkdir /vmfs/volumes/datastore10c/Win-VM-Clone2

  8. 複製源 VM 的配置文件和虛擬磁碟,並將虛擬磁碟克隆到 VM 克隆的目標目錄中。我們為目標 vmxvmdk 檔案設置新的名稱,以匹配新 VM 克隆的名稱。
    • 您可以使用 vmkfstools 克隆虛擬磁碟。此工具允許您設置目標虛擬磁碟格式,還允許您將厚配置格式更改為 薄配置

      vmkfstools -i /vmfs/volumes/datastore10a/Windows-VM/Windows-VM.vmdk /vmfs/volumes/datastore10c/Win-VM-Clone2/Win-VM-Clone2.vmdk -d thin

    • 複製 VM 配置文件 (.vmx)

      cp /vmfs/volumes/datastore10a/Windows-VM/Windows-VM.vmx /vmfs/volumes/datastore10c/Win-VM-Clone2/Win-VM-Clone2.vmx

    • 或者,您可以使用 cp 命令按原樣複製虛擬磁碟文件 (.vmdk-flat.vmdk),並為目標文件設置新名稱。

      cp /vmfs/volumes/datastore10a/Windows-VM/Windows-VM.vmdk /vmfs/volumes/datastore10c/Win-VM-Clone2/Win-VM-Clone2.vmdk

      cp /vmfs/volumes/datastore10a/Windows-VM/Windows-VM-flat.vmdk /vmfs/volumes/datastore10c/Win-VM-Clone2/Win-VM-Clone2-flat.vmdk

  9. 現在,我們需要編輯 VM 克隆的 vmx 檔案,以將 VM 名稱和路徑對齊到虛擬磁碟/虛擬磁碟名稱。因此,我們需要在 VM 克隆的 vmx 配置文件中將 Windows-VM 替換為 Win-VM-Clone2vmx

    使用文本編輯器 vi 離開 VM 克隆的 vmx 文件。 在 vi 中使用以下命令查找並替換整個文件中的字符串。

    :[範圍]s/{模式}/{字符串}/[標誌] [計數]

    我們情況的命令模板如下:

    :%s/foo/bar/g

    在我們的情況下,命令應該如下:

    :%s/Windows-VM/Win-VM-Clone2/g

    保存 VM 克隆的 vmx 文件。在 vi 中輸入 :wq 並按 Enter 鍵。

  10. 將 VM 克隆體註冊到 ESXi 主機上:

    vim-cmd solo/registervm /vmfs/volumes/datastore10c/Win-VM-Clone2/Win-VM-Clone2.vmx

  11. 取得已註冊 VM 的資訊,確保克隆的虛擬機器已被註冊:

    vim-cmd vmsvc/getallvms

  12. VM 克隆體已註冊(顯示的 VMID 為 3,如下圖所示)。
  13. 現在您可以開啟 VM 克隆體的電源。若要在命令列中啟動此 VM 克隆體(具有 VMID 3 的 VM),您可以使用以下命令:

    vim-cmd vmsvc/power.on 3

  14. 您應該打開 VMware 主機客戶端並回答您已複製此 VM 的問題。在您回答此問題之前,該 VM 將不會啟動。

  15. 正如您在截圖中所看到的,虛擬機的大小較小,是因為我們將源虛擬磁碟克隆為薄配置格式(2.76 GB vs 6 GB)。

已成功完成創建 ESXi 克隆虛擬機。您也可以使用此方法將虛擬機克隆到另一個獨立的 ESXi 主機,而無需使用 vCenter Server。您需要使用 SCP 或 SFTP 客戶端來從/到不同的 ESXi 主機複製 VM 文件。該方法的其餘邏輯保持不變。

方法 3:如何通過創建新 VM 來克隆 VM 而無需使用 vCenter

在 ESXi 主機上還有一種方法可以在不使用 vCenter Server 的情況下克隆 VM,即使用 VMware Host Client。此方法的優點是您無需編輯 VM 克隆的 VMX 文件。在創建 VM 克隆時,請確保新 VM 的 VM 配置與原始 VM 的配置相同。如果新 VM 的配置與原始 VM 不同,則新 VM 可以啟動。

  1. 完成新虛擬機精靈的 5 步驟以創建新 VM。
  2. 將源 VM 的虛擬磁碟複製到 VM 克隆的 VM 目錄中。您可以在 VMware Host Client 的數據存儲瀏覽器中執行此操作,類似於我們在第一個示例中執行的操作(VM 克隆方法)。
  3. 點擊儲存並選擇源VM存儲的數據存儲區(在我們的案例中為數據存儲區10a)。 點擊數據存儲瀏覽器並選擇源VM的目錄(在本示例中為Windows-VM)。 選擇vmdk虛擬磁碟並點擊複製

  4. 在接下來打開的窗口中選擇目標目錄(在我們的案例中為Win-VM-Clone3)並點擊複製

  5. 如果您的源VM有多個虛擬磁盤,請以同樣的方式複製它們。 選擇性地,您可以重命名存儲在VM克隆目錄中的虛擬磁盤副本,以便更方便地使用唯一的名稱。
  6. 編輯VM克隆的設置。 從導航器中的虛擬機頁面,右鍵單擊新的VM(將成為VM克隆)並在打開的菜單中點擊編輯設置

  7. 刪除使用新虛擬機器建立的虛擬硬碟。在虛擬硬件選項卡的硬碟1行中,點擊X圖示。

  8. 選中從資料存儲中刪除檔案核取方塊以確認刪除虛擬硬碟。
  9. 點擊保存

  10. 再次打開虛擬機器設置。
  11. 將從原始虛擬機器複製的虛擬硬碟添加到虛擬機器克隆目錄中。

    點擊添加硬碟 >現有硬碟

  12. 選擇您之前複製到 VM 克隆目錄的 vmdk 虛擬磁碟。我們在 datastore10c 上的 Win-VM-Clone 目錄中選擇 Windows-VM.vmdk

  13. 如果您的原始 VM 有多個虛擬硬碟,請將它們全部添加到 VM 配置中。在添加虛擬磁碟後,點擊 保存 保存 VM 配置。

  14. A virtual disk has been added to our VM configuration.
  15. 啟動 VM 克隆。
  16. A message with the question (whether a VM was copied or moved) doesn’t appear because we created this VM as a new VM.

方法 4:使用 vCenter 進行 VMware 虛擬機克隆

VMware vCenter Server 是 VMware vSphere 的集中管理系統,提供了一種直觀的方式來克隆 VM,比起沒有 vCenter 的 VM 克隆更加方便。您可以將 VM 克隆到相同的 ESXi 主機,或者克隆到由 vCenter 管理的另一個 ESXi 主機。

要在 VMware vSphere Client 中使用 vCenter 創建克隆的虛擬機,請執行以下操作:

  1. 登錄到 VMware vSphere Client 以訪問 vCenter 的管理 Web 介面。
  2. 選擇主機和群集檢視,並在導航窗格中選擇您的虛擬機。我們將克隆名為Windows-VM的虛擬機,該虛擬機位於ESXi主機192.168.101.201上。
  3. 右鍵單擊原始虛擬機,在打開的菜單中點擊克隆>克隆到虛擬機

  4. 打開克隆現有虛擬機精靈,其中包含5個步驟。
  5. 選擇名稱和文件夾。為虛擬機克隆輸入一個名稱。我們-在我們的情況下選擇Win-VM-Clone4。選擇一個數據中心和虛擬機文件夾以放置克隆的虛擬機。在精靈的每個步驟中點擊下一步以繼續。

  6. 選擇計算資源。選擇要執行 VM 克隆的 ESXi 主機或 vSphere 叢集。在我們的案例中,這是 ESXi 主機 192.168.101.201。您可以選擇另一個 ESXi 主機來執行 VM 克隆,但這個主機不應該與原始 VM 所在的主機相同。

  7. 選擇儲存空間。選擇放置克隆 VM 的數據存放區(我們選擇 datastore10c)。使用下列選項之一選擇虛擬磁盤格式:
    • 來源的相同格式
    • Thick Provision Lazy Zeroed
    • Thick Provision Eager Zeroed
    • Thin Provision

    您也可以選擇 VM 儲存空間政策。

  8. 選擇複製選項。您可以使用一些選項來自定義複製虛擬機(VM),包括在客戶操作系統中更改主機名稱。

  9. 準備完成。檢查複製VM的選定參數,然後點擊完成

注意:對於VM複製使用相同的SID可能會引發問題,特別是如果VM位於Active Directory域中。您可能需要使用SYSPREP進行Windows或第三方工具來更改/重置SID。如果VM上安裝了MS SQL Server,您需要進行額外的預(啟用sysadmin SQL帳戶)和後複製操作(更改名稱)以避免問題。

A clone VM has been created, and you can power on the VM.

方法5:使用NAKIVO Backup & Replication製作複製VM

VM複製是在VMware ESXi主機上克隆虛擬機的另一種方式。VM複本是VM的精確副本,類似於VM複製。VM複製的優點是能夠自動化VM過程,並使用利用VM快照功能的解決方案保存VM複製中多個時間點的VM狀態。

NAKIVO 備份與復原是一個功能強大的數據保護解決方案,支持 VMware vSphere VM 的備份和復制。因此,您可以在任何 ESXi 主機或集群上創建一個 VM 克隆(副本)。

使用 NAKIVO 創建 VM 克隆的優勢在於,您可以將虛擬機從一個 ESXi 主機克隆到另一個 ESXi 主機,即使這些主機未由 vCenter 管理也可以。您可以將 vCenter,包括所有受管理的 ESXi 主機添加到清單中,或添加多個獨立的 ESXi 主機。配置是在用戶友好界面中完成的。

使用 NAKIVO 解決方案的其他好處包括自動化復制和備份復制、靈活的排程和保留選項、最嚴格的 RPO 的實時復制以及用於 DR 編排的站點復原

要使用 VM 復制克隆虛擬機,請執行以下操作:

  1. 通過轉到設置>清單並點擊+來添加項目,將 ESXi 主機或 vCenter Server 添加到 NAKIVO 解決方案中。您也可以點擊清單中顯示的 ESXi 主機或 vCenter,以查看駐留在該資源上的 VM。

  2. 創建一個新的 VMware vSphere 複製工作,方法是進入作業>+>VMware vSphere 複製工作

    進入VMware vSphere的複製工作精靈,共有7個步驟。

  3. 來源。選擇您要克隆的原始虛擬機。我們在 ESXi 主機192.168.101.201上選擇Windows-VM。在精靈的每一步中點擊下一步繼續。

  4. 目的地。選擇一個容器,可以是由 vCenter 管理的 ESXi 主機或叢集,用於存儲虛擬機副本(此資源必須添加到 NAKIVO 庫存中)。選擇一個數據存儲。您可以選擇與所選 ESXi 主機或叢集相連的數據存儲。如有需要,選擇所選資源上的虛擬機文件夾。

  5. 網路。虛擬機複本(ESXi克隆虛擬機)應連接到虛擬機網路。您可以將虛擬機複本連接到所選ESXi主機或叢集上的任何可用網路。這項功能得益於網路映射功能,尤其在將虛擬機複製到其他ESXi主機時非常有用。此外,您也可以跳過此選項,將虛擬機連接到默認網路。

  6. 重新IP。如果您使用網路映射並將虛擬機連接到與來源網路不同的網路,則下一步是更改VM網路適配器配置中的IP地址,以匹配目的子網的地址。在完成複製後使用重新IP功能時,無需手動編輯客戶操作系統中的網路設置。

  7. 排程。您可以手動運行 VM 複製,即按需運行,或者安排 VM 複製工作以定期間隔創建克隆 VM(複製 VM)。

  8. 保留。您可以通過配置 保留設置 創建多個恢復點並按照適當的時間保留它們。

  9. 選項。輸入複製工作名稱並配置可以提高 VM 複製速度、安全性和可靠性的工作選項。單擊 完成並運行 以保存工作設置並運行 VM 複製工作,以使用此方法創建 VMware 虛擬機克隆。

  10. 您被重定向到 工作 頁面,您可以監視複製工作的進度。等待工作完成。

正如您所見,使用NAKIVO解決方案創建VM克隆很簡單。此外,NAKIVO備份和複製支持 VMware VMs的即時複製,用於關鍵VM的災難恢復,這些VM需要嚴格的RPO,低至1秒。

Source:
https://www.nakivo.com/blog/vmware-esxi-clone-vm/