快照,在Hyper-V中被稱為檢查點,在需要在部署新軟件或安裝更新之前保留虛擬機器的最後一個正常運行狀態時非常方便。但是,在刪除快照時必須小心,否則可能會丟失重要數據。
在這篇文章中,我們將解釋Hyper-V檢查點的機制。我們將介紹何時使用這些檢查點,並展示如何從Hyper-V管理器界面和使用PowerShell刪除快照。
Hyper-V檢查點機制
在我們詳細介紹Hyper-V檢查點如何工作之前,讓我澄清與快照和檢查點相關的任何混淆。
快照和檢查點表示在特定時間保存虛擬機器狀態的相同能力。如果虛擬機器出現問題,可以將此狀態恢復到未來。在Windows Server 2012 R2之前的版本中,Microsoft將保存虛擬機器狀態的功能稱為快照。在隨後的版本中,Microsoft使用了檢查點這個術語。此外,快照是VMware環境中使用的術語。在這篇文章中,我們將這兩個術語互換使用,因為所涵蓋的機制和程序適用於快照和檢查點。那麼,檢查點/快照是如何工作的呢?
Hyper-V檢查點如何保存
Hyper-V VM 數據以 .vhdx 檔案 的形式保存。創建檢查點後,.vhdx 檔案變成唯讀檔案。對 VM 的新修改保存在差異虛擬硬碟中。這個差異虛擬硬碟以 .avhdx 檔案的形式保存在包含 .vhdx 檔案的同一文件夾中。
您可以創建一個檢查點鏈。每個檢查點代表 VM 在特定時間點的狀態。每個檢查點由一個 .avhdx 檔案表示。
Hyper-V 檢查點 的機制在存儲利用方面效率高。但是,虛擬磁碟讀取操作的性能會顯著降低。原因是讀取檔案需要檢查整個檢查點鏈(.avhdx 檔案),直到達到 VM 的 .vhdx 檔案。
在下面的截圖中,您可以看到一個父 .vhdx 虛擬硬碟以及為 VM 創建兩個 Hyper-V 檢查點後的兩個 .avhdx 磁碟。
根據這個機制,刪除 .avhdx 檔案不會刪除檢查點。相反,這種刪除會中斷鏈條並導致數據丟失。
要刪除檢查點而不丟失數據,應將 .avhdx 檔案與鏈條中的另一個(父).avhdx 檔案(或 .vhdx 檔案)合併。如果此檢查點是 VM 的唯一檢查點,則 .avhdx 檔案將與 .vhdx 檔案合併,並且 .vhdx 檔案再次變為可寫入狀態。
在接下來的部分中,我們將展示如何在不丟失數據的情況下從 Hyper-V 管理器界面刪除快照(檢查點)。
使用 Hyper-V 管理器界面刪除快照
Hyper-V 管理器是一個免費的 GUI 工具,用於管理 Hyper-V 主機和虛擬機(VMs)。它可以用於提供虛擬機(VMs)、分配 RAM、創建快照或刪除它們。
要從 Hyper-V Manager 界面中刪除 Hyper-V 快照(檢查點):
- 從左窗格中選擇主機。
- 從 虛擬機 窗格中選擇虛擬機(VMs)。
- 右鍵單擊要從 檢查點 窗格中刪除的檢查點。選擇 刪除檢查點…
在下面的截圖中,您可以看到在刪除第二個 Hyper-V 檢查點後的父 .vhdx 虛擬磁盤和一個 .avhdx 快照文件。
使用 PowerShell 刪除快照
為了對 Hyper-V VMs 執行批量操作,Windows PowerShell 比 Hyper-V Manager GUI 更高效,因為您可以使用命令一次刪除多個快照。此外,一些操作,例如刪除 GUI 中沒有刪除選項的檢查點,只能通過 PowerShell 完成。
A checkpoint that cannot be deleted from the Hyper-V Manager is called a lingering checkpoint. Lingering checkpoints happen when a VM backup job fails.
當使用備份解決方案開始虛擬機備份工作時,該虛擬機將進入唯讀模式。虛擬機用戶提交的新數據將保存到一種特殊類型的檢查點,稱為恢復檢查點。當備份工作成功完成時,恢復檢查點的 .avhdx 文件將與虛擬機的 .vhdx 文件合併,並且該檢查點將自動刪除。但是,如果備份工作失敗,則恢復檢查點不會自動刪除,並且會保留為懸留檢查點。
要使用 PowerShell 刪除檢查點:
- 以系統管理員身份打開 Windows PowerShell ISE。
- 使用命令 Get-VMSnapshot 獲取檢查點的確切名稱。提示時提供 VMName。
- 運行命令:
Get-VM -Name <VMName> | Get-VMSnapShot -Name <CheckpointName> | Remove-VMSnapshot
- 使用命令驗證檢查點是否已成功刪除:
Get-VMSnapshot
最終思考
創建檢查點是為了測試和創建接受環境的良好實踐。然而,在生產環境中不建議保留檢查點。檢查點對 Hyper-V 讀取操作的性能產生不利影響。
直接從磁盤上刪除檢查點的文件會導致數據丟失。應從 Hyper-V 管理器中刪除檢查點。如果在 Hyper-V 管理器 GUI 中沒有刪除選項,也可以使用 PowerShell 來刪除它們。
採用備份和複製解決方案對您的數據和應用程序保護至關重要。
Source:
https://www.nakivo.com/blog/how-to-delete-hyper-v-snapshots/