Hyper-V 可讓您從主機作業系統備份虛擬機器 (VM),而不需要在虛擬機器內執行自訂備份軟體。 開發人員可以根據自己的需求使用多種方法。
您可以執行 VM 備份或僅限資料備份:
VM 備份:此方法會備份整個虛擬機器,包括組態和所有資料。 當您想要將整個 VM 還原到先前的狀態時,它很有用。 每個虛擬機器備份 (完整或增量) 都必須複製所有相關聯的虛擬機器組態和虛擬機器狀態檔案,包括虛擬機器組態 (
.VMCX)、虛擬機器客體狀態 (.VMGS) 和虛擬機器執行階段狀態 (.VMRS) 檔案。 如果您未複製所有這些檔案,則不會完全擷取虛擬機器狀態。僅資料備份:此方法只會備份儲存在虛擬機器虛擬硬碟上的資料。 若要還原純資料備份,請建立新的虛擬機器,並將資料還原至該虛擬機器。
Hyper-V VSS 寫入器
Hyper-V 會在支援 Hyper-V 的所有 Windows Server 版本上實作磁碟區陰影複製服務 (VSS) 寫入器。 此 VSS 寫入器允許開發人員利用現有的 VSS 基礎架構來備份虛擬機。 但是,它專為小規模備份操作而設計,其中服務器上的所有虛擬機都同時備份。
Hyper-V 基於 WMI 的備份
從 Windows Server 2016 開始,Hyper-V 支援透過 Hyper-V Windows Management Instrumentation (WMI) API 進行備份。 此方法仍會利用虛擬機器內的 VSS 進行備份,但不再在主機作業系統中使用 VSS。 相反地,會使用參考點和彈性變更追蹤 (RCT) 的組合,讓開發人員能夠以有效的方式存取備份虛擬機器的相關資訊。 此方法比在主機中使用 VSS 更具延展性,但僅適用於 Windows Server 2016 和更新版本。
如需詳細資訊,請參閱 Hyper-V WMI 提供者參考。
從基於 WMI 的備份讀取備份的方法
當您使用 Hyper-V WMI 建立虛擬機器備份時,有三種方法可從備份讀取實際資料。 每個都有獨特的優點和缺點。
WMI 匯出
開發人員可以透過 Hyper-V WMI 介面匯出備份資料 (如上一個範例中所用) 。 Hyper-V 將變更編譯到虛擬硬碟中,並將檔案複製到請求的位置。 這種方法易於使用,適用於所有場景,並且可以遠程工作。 然而,產生的虛擬硬碟通常會產生大量資料透過網路傳輸。
Win32 API 函式庫
開發人員可以在虛擬硬碟 Win32 API 集上使用 SetVirtualDiskInformation、 GetVirtualDiskInformation和 QueryChangesVirtualDisk API,如 虛擬硬碟 Win32 參考中所述。
若要使用這些 API,仍需要使用 Hyper-V WMI 在相關聯的虛擬機器上建立參考點。 然後,這些 Win32 API 允許有效存取備份虛擬機器的資料。 Win32 API 確實有數個限制:
- 它們只能在本地訪問
- 它們不支援從共用虛擬硬碟檔案讀取資料
- 它們傳回相對於虛擬硬碟內部結構的資料位址
遠端共用虛擬磁碟通訊協定
最後,如果開發人員需要有效率地從共享虛擬硬碟檔案存取備份資料訊息,則需要使用遠端共享虛擬磁碟協定。 此通訊協定記載在 遠端共用虛擬磁碟通訊協定參考中。