虛擬機備份與恢復的主要方法
?一、概述
服務器虛擬化,它能解決服務器擴充、資源消耗、能源消耗,高可用等相關的問題,為用戶帶來諸多的益處,但同時也會帶來一些新的相關問題點,最突出的就是如何保證虛擬機數據的安全性,即使可以做備份,但如何保證數據一致性是當中最大的挑戰。虛擬化的基本原理是將整個物理服務器,虛擬成多個虛擬服務器,每個虛擬服務器會封裝成一種特定格式的文件。那么備份虛擬機數據,是不是僅僅把這些文件備份下來那么簡單呢?當然不是,因為在虛擬機正在運行的情況下,備份不能覆蓋所有文件,換言之不能保證恢復后的虛擬機包含足夠的精確數據,也就是是否能100%成功恢復,另外一點虛擬機在備份的時候的工作負載也需要優化,否則會影響業務。
二、幾種主要的虛擬機備份與恢復方法
1、在每臺虛擬機中安裝備份程序,這種方法其實就是把每臺虛擬機看成是一臺真實的物理機,像對物理機備份一樣,在虛擬機上直接安裝備份的Agent。
(1)優點:備份的安裝和配置相對簡單,無需專門的技巧,數據恢復時的操作也沒有變化,和物理機一樣,可以實現完全備份和增量備份的方式,也可以安裝針對特定應用的備份Agent,比如數據庫,郵件系統備份等,這種針對專門應用的備份Agent有利于數據的一致性。這種方式可支持恢復虛擬機中的單個文件;
(2)缺點:有可能會過度消耗虛擬機宿主機的資源,因為一臺宿主機可以虛擬出許多臺虛擬機,如果多臺虛擬機都采用這種方法的話,會給宿主機造成很大的壓力,影響正常業務的負載,而且這種方法備份和恢復速度相對較慢,無法實現快速的備份和映像級恢復。
2、在宿主機的虛擬機化系統中(比如ESX Service Console)安裝備份程序,從而備份虛擬化文件,比如VMDK等。
(1)優點:只需要一個備份程序就能備份所有的虛擬機,方便的做到完全備份,只要備份虛擬化封裝文件比如VMDK,就能備份所有虛擬機,可實現快速的映像級別的備份與恢復;
(2)缺點:為了保證數據一致性,需要采用腳本(或虛擬化系統自帶保護模塊)才能自動關閉(在備份之前要關閉虛擬機,虛擬機文件在備份過程中是要靜止不動)、快照(如果不能關閉虛擬機,就要利用虛擬機軟件自帶的快照功能獲取即時備份映像)以及啟動虛擬機(如果之前關閉了虛擬機器,在備份完成之后要把虛擬機重新開啟),另外不能實現增量備份和恢復虛擬機中單個文件的操作,一般都是將某個虛擬機整機恢復。
3、使用代理服務器操作備份,以VADP Backup-Proxy為例,它可消除宿主機的備份負載,可杜絕來自網絡的備份流量,釋放宿主機資源以優化虛擬機性能。數據通過第三方災備軟件傳送到代理服務器中,然后把這個代理服務器中的數據作為后續再備份的源頭,再進行備份。Backup-Proxy server 必須和ESX server安裝在相同的LUN當中,但Backup-Proxy Server不支持多路徑,VADP不是備份與恢復程序,而是能夠集成到第三方災備應用程序中的組件。架構參考下圖:
(1)這種備份與恢復方式的工作原理步驟:
第1步:第三方軟件調用備份前腳本,該腳本可能執行以下任務:
- 調用每臺虛擬機的自定義凍結腳本;
- 暫停NTFS,FAT或者EXT2/3等文件系統。
第2步:使得虛擬機進入快照模式,這樣就可以將磁盤掛起,同時產生新的變更行為會寫入一個臨時的磁盤空間中,等待快照完成后并入原磁盤。這個進程執行時,虛擬機是不間斷運行的。
第3步:解凍文件系統
- 調用每臺虛擬機上運行的自定義解凍后的腳本;
- 將虛擬機快照從虛擬機共享存儲加載到備份代理服務器上的本地目錄或將虛擬機快照導出到備份代理服務器。
第4步:第三方軟件執行針對虛擬機快照數據集的備份,由于此過程僅讀取虛擬機的快照,因此不影響虛擬機的不間斷的運行。
第5步:第三方軟件完成備份進程后,會調用備份后腳本,執行如下任務:
- 從備份代理服務器卸載虛擬機快照;
- 將虛擬機退出快照模式,并將處于快照狀態時所做的修改與原來磁盤合并,用來保證數據修改的完整性。
第6步:恢復時利用第三方災備軟件,將輸出的虛擬機圖像恢復到一個虛擬化軟件能夠訪問的區域,該區域可能位于Proxy Server 或ESX Service Console。
(2)這種備份與恢復方式的優缺點
優點:將備份過程轉移到備份代理服務器中,明顯降低了宿主機的資源開銷,可以在SAN網絡中實施,速度比LAN要快,也支持光纖通道以及網絡直連存儲和本地或 iSCSI 存儲基礎架構,所有虛擬機只需使用一個備份代理即可,方便做完整備份,增量備份、合成備份,一致性處理和快速的恢復;
缺點:對第三方的災備軟件要求不低,因為能否實現全自動化,需要編寫腳本的多少,使用是否便捷,都要看第三方災備軟件的能力如何,這也是諸多商業化虛擬機災備軟件的區別所在。需要新增一個代理服務器,一般是windows系統的,最好集成VSS組件,如果你想將文件直接恢復到某個虛擬機中,就需要在虛擬機中安裝備份代理。如果需要恢復某個文件,但你又不想為每個虛擬機都安裝備份程序,你就可以創建一個僅用于恢復的虛擬機,將文件恢復到這個虛擬機中,然后通過網絡共享將文件遷移到正確的目標虛擬機中。另外虛擬機的快照份數不能太多,太多也會造成性能影響。?