如何使用 Hyper-V 管理員或 PowerShell 刪除快照

快照(在 Hyper-V 中稱為檢查點)在您需要保留虛擬機器最後一次正常運作的狀態,以便部署新軟體或安裝更新時,非常實用。然而,刪除快照時必須謹慎,否則可能會導致重要資料遺失。

在這篇文章中,我們將說明 Hyper-V 檢查點的運作機制。 我們將說明何時應使用這些檢查點,並展示如何透過 Hyper-V 管理員介面以及使用 PowerShell 來刪除快照。

NAKIVO Hyper-V 備份解決方案

NAKIVO Hyper-V 備份解決方案

適用於 Hyper-V 的無代理程式、應用程式感知的備份解決方案。具備防勒索軟體防護功能、可從備份立即啟動虛擬機器,並支援其他虛擬/實體平台等更多功能。

Hyper-V 檢查點機制

在我們詳細探討如何 Hyper-V 檢查點 在開始之前,讓我先釐清"快照"和"檢查點"這兩個術語可能造成的混淆。

快照和檢查點代表了同一項特點,即在特定時間點儲存虛擬機(VM)的狀態。若虛擬機日後發生問題,可回滾至該狀態。在 Windows Server 2012 R2 之前的版本中,微軟將儲存虛擬機狀態的特點稱為"快照"。 在後續發布中,Microsoft 改用"檢查點"一詞。此外,"快照"則是 VMware 環境中使用的術語。在本篇文章中,我們將這兩個術語交替使用,因為所探討的機制與程序同時適用於快照和檢查點。那麼,檢查點/快照究竟是如何運作的呢?

Hyper-V 檢查點的儲存方式

Hyper-V 虛擬機器資料以 .vhdx 檔案. 建立檢查點時,.vhdx 檔案會變成唯讀檔案。對虛擬機器所做的新的變更會儲存於差異虛擬硬碟中。此差異虛擬硬碟會以 .avhdx 檔案的形式,儲存於與 .vhdx 檔案相同的資料夾中。

您可以建立一連串的檢查點。每個檢查點代表虛擬機器在特定時間點的狀態。 每個檢查點皆由一個 .avhdx 檔案代表。

此機制 Hyper-V 檢查點 在儲存空間利用率方面相當高效。然而,虛擬磁碟的讀取操作效能卻大幅降低。原因在於,讀取檔案時必須檢查整個檢查點鏈(.avhdx 檔案),直到抵達虛擬機器的 .vhdx 檔案為止。

A VM with no checkpoints created

在下方的螢幕截圖中,您可以看到在為虛擬機器建立兩個 Hyper-V 檢查點後,出現了一個父 .vhdx 虛擬磁碟和兩個 .avhdx 磁碟。

the VM files after creating two checkpoints

根據此機制,刪除 .avhdx 檔案並不會刪除檢查點。相反地,此類刪除操作會中斷鏈結,進而導致資料遺失。

若要在不遺失資料的情況下刪除檢查點,應將 .avhdx 檔案與鏈結中另一個(父級)的 .avhdx 檔案(或 .vhdx 檔案)進行合併。 若此檢查點是虛擬機器的唯一檢查點,則 .avhdx 檔案將與 .vhdx 檔案合併,且 .vhdx 檔案將恢復可寫入狀態。

在下一節中,我們將展示如何透過 Hyper-V 管理員介面刪除快照(檢查點)而不造成資料遺失。

使用 Hyper-V 管理員介面刪除快照

Hyper-V Manager 是一款用於管理 Hyper-V 主機和虛擬機的免費圖形化介面工具。它可用於配置虛擬機、分配記憶體、建立快照或刪除快照。

若要刪除快照 Hyper-V 快照 (檢查點) 來自 Hyper-V 管理員 介面:

  1. 請從左側窗格中選取主機。
  2. Virtual Machines 面板。
  3. 在要從中刪除的檢查點上按右鍵 Checkpoints 窗格。選取 Delete Checkpoint…

deleting a Hyper-V snapshot or checkpoint in Hyper-V Manager

在下方的螢幕截圖中,您可以看到在刪除第二個 Hyper-V 檢查點後,主 .vhdx 虛擬磁碟與 .avhdx 快照檔案的狀態。

The deleted checkpoint’s .avhdx is merged automatically with another .avhdx

使用 PowerShell 刪除快照

若要在 Hyper-V 虛擬機器上執行批次操作, Windows PowerShell 比 Hyper-V 管理員的圖形化介面更有效率,因為您可以透過指令一次刪除多個快照。此外,某些操作(例如刪除在圖形化介面中沒有刪除選項的檢查點)只能透過 PowerShell 來完成。

The delete option is unavailable in the Hyper-V Manager interface for a Hyper-V checkpoint

無法從 Hyper-V 管理員中刪除的檢查點稱為"殘留檢查點"。當虛擬機器備份工作失敗時,便會產生殘留檢查點。

當虛擬機器備份工作開始使用備份解決方案時,虛擬機器會被置於唯讀模式。 虛擬機器使用者提交的新資料會儲存至一種稱為"還原檢查點"的特殊檢查點中。當備份工作成功完成時,還原檢查點的 .avhdx 檔案會與虛擬機器的 .vhdx 檔案合併,且該檢查點會自動刪除。然而,若備份工作失敗,還原檢查點便不會自動刪除,而會作為殘留檢查點保留下來。

To delete a checkpoint by using PowerShell:

  1. 打開窗戶 PowerShell 以 ISE 身分擔任管理員。
  2. 使用以下指令取得檢查點的精確名稱 Get-VMSnapshot. 出現提示時,請輸入 VMName。
  3. 執行以下指令:

    Get-VM -Name | Get-VMSnapShot -Name | Remove-VMSnapshot

  1. 請使用以下指令確認檢查點已成功刪除:

    Get-VMSnapshot

Deleting a recovery checkpoint from Windows PowerShell ISE

結語

建立檢查點是為了進行測試及建立驗收環境的一項良好做法。然而,不建議在生產環境中保留檢查點。檢查點會對 Hyper-V 的讀取操作效能造成負面影響。

直接從磁碟刪除檢查點檔案將導致資料遺失。 應透過 Hyper-V 管理員刪除檢查點。若 Hyper-V 管理員圖形介面中未提供刪除選項,亦可使用 PowerShell 進行刪除。

採用備份與複製解決方案對於保護您的資料和應用程式至關重要。

試試看 NAKIVO Backup & Replication

試試看 NAKIVO Backup & Replication

立即申請免費試用,全面體驗本解決方案的所有資料保護特點。15 天免費試用。無功能或容量限制。無需提供信用卡資訊。

People also read