我們來談談虛擬化備份
一、概述
虛擬化備份技術最早是由VMware提供和發起的,隨著虛擬化應用在企業和各個行業的普及,主流的備份產品基本都支持VMware、Hyper-V、Citrix和基于Xen或KVM派生出來的虛擬化平臺。
虛擬機備份,不同于虛擬機快照,虛擬機備份是虛擬化數據保護最重要的基礎措施。很多剛接觸虛擬化的用戶經常將虛擬機快照認為是備份,其實是嚴重錯誤的。原因如下:
1.快照永遠不能成為虛擬化本地備份的解決方式。
2.一旦使用快照恢復以前的狀態就永遠無法返回到現在狀態。
3.一旦虛擬機磁盤文件損壞,快照也隨之失效。
4.快照只能進行基于整個虛擬機鏡像的恢復,無法做到文件級或者應用粒度還原。
5.快照只能作為一種保護虛擬化快速恢復的一種輔助手段。
6.不是所有的虛擬機都能使用快照,但是所有的虛擬機都可以使用備份。
7.過多的快照極度影響虛擬機性能,同時快照建立或刪除過程中有可能損毀虛擬機數據。
虛擬化平臺備份目前有兩種主流備份方案,一種為無代理備份(Agentless),另一種為有代理備份(Agent)或稱為Guest OS級別備份。本文將通過分析對比無代理和有代理備份的優勢、缺點來總結虛擬化備份的***實踐經驗。
二、無代理備份分析
無代理備份通常是指,在虛擬機上不需要安裝任何備份代理程序(或稱為客戶端、探針),通過在ESXI主機或Hypervisor集群上部署一個或幾個代理虛擬機(備份代理應用)來捕獲備份VM。
無代理備份的優勢非常明顯:
1.部署安裝簡單,無需在每個虛擬機上安裝備份代理,僅通過配置hypervisor集成即可全自動部署完畢。
2.無代理備份充分利用虛擬化廠家提供的專用備份接口,在備份虛擬機時,可優化資源耗用,降低備份時虛擬機自身負載壓力。
3.在專屬適配的虛擬化平臺上使用無代理備份產品,可實現一些虛擬化平臺特有的備份、恢復功能。(比如CBT\RCT塊跟蹤、瞬時恢復、虛擬機復制等)
4.按虛擬化廠家宣傳,無代理備份和恢復速度更快。
5.無代理備份在實現LAN-FREE或Server-Free備份方式上更有優勢。
正如上所述,無代理備份被很多備份廠家,特別是虛擬化廠家極力推崇。很多用戶也認為無代理備份能跟虛擬化平臺結合更好。
但實際應用上無代理備份也有很多問題,實際操作中,發現無代理備份的缺陷如下:
1.受限于虛擬化廠家提供的備份接口,部分無代理備份產品無法做到應用程序感知、細粒度數據恢復以及RDM(裸磁盤映射)虛擬機備份。
2.無代理備份對VM做備份時,虛擬化平臺先對要備份的VM抓取快照,再將快照信息傳遞給無代理備份軟件。而正是這個VM快照,對于高I/O或數據量極大的VM(TB級的VM)和有多磁盤結構的VM最容易出現問題,快照時間可能會持續數小時甚至數天。快照過程中一旦虛擬機磁盤文件出現異常,很有可能導致VM崩潰。在備份即將結束,刪除快照時也可能出現類似的情況。而且,虛擬化平臺自身快照經常出現無法靜默應用的情況。特別是數據庫類型VM,在恢復時可能會出現數據一致性問題。
3.在實際場景下,無代理備份資源耗用并不比有代理方式低,而且在某些情況下消耗更多。無代理虛擬化備份需要特別注意CPU資源的消耗,因為宿主機CPU是一種更有限的資源,通常1個core與6個或更多的虛擬機共享。仔細分析,在備份時造成CPU使用率峰值有兩個主要原因。其一,當備份代理必須掃描整個文件系統以查找符合備份條件的文件(通常是自上次備份以來更改的那些文件)時,CPU會出現峰值。例如,在增量備份或差異備份期間,這種目錄樹的遍歷非常耗時且需占用大量CPU資源。其二,備份過程中的數據的實際傳輸會導致CPU出現峰值。目前虛擬化廠家針對***個CPU峰值問題,相繼開發出了塊跟蹤技術(例如VMware的CBT、Hyper-V 2016的RCT等),通過跟蹤底層磁盤塊的改變,不再遍歷對比VM內的目錄文件,來優化增量\差異備份時的資源消耗,。
4.真實場景下,無代理備份速度較慢。在不降低業務應用程序速度的情況下,無代理備份一般限制每個宿主機上同時備份2個VM。盡管無代理解決方案聲稱具有優勢,它們使用塊跟蹤技術,可減少傳輸的數據。但是無代理備份方法更多的采用是一種盲掃,需要對備份過程采用“拉取”方法,會降低CPU的速度。很多無代理備份產品可調整VM并發備份數量,一般***為10-15個左右并發(***數量限制也是由虛擬化平臺自身限制,同備份軟件無關)。但實際場景下,不建議開啟***并發,會極大加重虛擬化平臺的負載壓力,要根據實際虛擬機數量以及平臺性能來確定最合理的并發備份數。
5.無代理備份嚴重依賴Tools類工具(例如VMware Tools、Hyper-v系統集成工具、KVM的virt-tools等),當VM的tools無法正常運行或者沒有及時更新時,會導致無代理備份出現無法使用CBT/RCT塊跟蹤或快照異常、VM無法靜默等情況。
6.無代理備份通常要求虛擬機所在存儲卷至少保留有25%的剩余空間,如果存儲空間不足,無代理備份快照會引起存儲卷告警或者虛擬機快照失敗。
7.如果虛擬機所在的存儲卷發生掉卷或者處于非活動狀態,無代理備份將失敗。
三、有代理備份分析
有代理是指安裝在服務器上執行特定功能的小型應用程序。常見的例子是備份應用程序在服務器上安裝的客戶端,用于備份服務器并為運行在該服務器上的應用程序提供特定的服務。自從虛擬化流行起來后,有代理備份方式并不受虛擬化用戶歡迎。其原因如下:
1.部署方式復雜,需要在要備份的虛擬機中安裝客戶端代理程序,對于擁有龐大虛擬機數量的用戶來說,這是個致命的問題。
2.軟件兼容性問題,有代理方式在VM中安裝,通常要先做環境檢查,排除與備份軟件不兼容的情況(例如防病毒、系統兼容性、特殊安全應用等)。
3.當要備份的VM都過于集中在集群中某幾臺宿主機時,會導致并發備份時宿主機資源負載加重,并沖擊業務虛擬網絡。
4.有些備份軟件不具備針對物理設備的磁盤塊跟蹤功能,有代理備份時采用文件級備份,增量\差異備份時會加重VM的負載壓力。同時備份速度慢。
5.有代理相比無代理維護更困難。比如,關機的VM無法備份或者個別VM基于安全需要只開放部分端口,導致代理程序無法連接或無法傳輸數據等。
盡管有代理備份方式在虛擬化環境下劣勢明顯,但自身也有很多優勢:
1.備份VM時不依賴虛擬化平臺快照,在Guest OS系統上直接調用系統快照(系統vss或LVM快照等),對于高I/O和數據量大的VM以及多磁盤結構VM的備份,穩定性更好。
2.備份VM時帶有應用程序感知,可支持Exchange、SQL-server、AD、Oracle、SharePoint、文件等細粒度恢復。
3.對于支持物理設備塊跟蹤的備份軟件來說,有代理備份相比無代理備份備份和恢復速度更快。
4.有代理備份在備份帶有數據庫業務的虛擬機時,可配置調取數據庫備份腳本,不僅可以單獨備份數據庫,還可使數據庫的數據一致性更有保障。
5.有代理備份不受虛擬化平臺并發備份數限制,只要網絡能夠承受,并發VM備份數量無上限。
6.可支持的虛擬化平臺廣泛,有代理備份方式幾乎可以支持所有的虛擬化平臺,在軟件授權允許的情況下,基本不受虛擬化廠家限制。
四、虛擬化備份的實踐經驗
根據自己在項目中的一些實施經驗,在大規模的虛擬機備份上可以采用以下備份步驟(以VMware虛擬化為例):
1.在當前虛擬化平臺中提取全部虛擬機信息到EXCEL表單中,將數據量大(超TB的)、多磁盤結構、RDM、核心數據庫類型(高I/O)、已掉存儲卷(或所在存儲卷非活動狀態的)的VM等全部篩選出來。在這類無法使用無代理備份的VM中安裝有代理備份。
2.除上述類型之外的虛擬機可采用無代理方式備份。
3.采用無代理備份虛擬機(特別是Windows系統虛擬機)務必確認VMware Tools已經正確安裝,并且VMware Tools各項系統服務正常運行。有發生提示VMware Tools更新或無法運行的,需要及時更新VMware Tools或卸載重新安裝。
4.規劃備份網絡架構,環境要求是否符合使用LAN-BASE\LAN-FREE\SERVER-FREE等配置要求。
1)傳統LAN-BASE架構中,無代理虛擬化備份網絡要最少達到千兆網絡標準(推薦萬兆網絡)。***實踐建議,在每臺ESXI主機上富余至少一個物理網口,將該物理網口分配至備份專用虛擬網絡中,備份數據通過每臺ESXI主機上的專用網口走備份傳輸網絡,與業務網絡隔離,避免備份時大數據量傳輸對業務網絡造成沖擊。備份存儲服務器,可考慮采用多網卡綁定,同時如果交換機支持,可在備份存儲服務器連接的交換機端口上使用多鏈路匯聚方式,增加備份存儲服務器帶寬。如無法滿足***實踐要求,建議備份數據流走虛擬網絡中負載壓力較低的非核心業務網段。
2)在LAN-FREE架構中,要特別注意實施前環境檢查,主要檢查VMFS卷結構以及存儲狀態、多路徑映射、存儲LUN結構等。如發現虛擬化存儲中存在組合卷(由多個存儲lun組成的一個VMFS卷),這種卷VMware自身不支持LAN-FREE備份,只能使用LAN-BASE方式。此外,LAN-FREE架構的備份涉及到生產存儲mapping,實施有一定風險,如果操作不當,后果嚴重。
3)Server-Free架構一般需要存儲設備和備份軟件之間互相兼容,不同的備份產品支持的存儲設備不同,因此實際項目中使用該方法不多。
5.虛擬機備份要準備單獨的備份存儲服務器或備份存儲設備,不可占用寶貴的生產存儲空間。同時基于安全性考慮,備份數據如果同生產數據放置在同一存儲上,一旦存儲發生故障,將無備份數據可供恢復。要做到備份數據同生產數據分開存放。
6.備份時間窗口規劃。任何備份產品在備份時均會對前端應用造成不同程度的業務影響。因此,在實施備份項目中,一定要預留好備份時間窗口。備份時間窗口一般預留在業務較少時段,根據備份數據的總體大小以及傳輸率可大概計算出備份所需時間。由于虛擬化平臺虛擬機數量多,建議根據不同業務類型劃分成虛擬機組,為虛擬機組預留不同的備份窗口。
7.虛擬機備份周期直接影響數據可恢復的時間點,因此,要針對不同業務的虛擬機分組,按照RPO/RTO的要求制定不同的備份周期。
8.是否采用重復數據刪除。要根據虛擬化存儲數據量、備份存儲所需空間以及備份時間窗口來決定是否采用重復數據刪除。如要備份的虛擬機多,數據量大,且備份所需存儲空間不足,備份窗口時間短,采用重復數據刪除是***方案。但重復數據刪除對備份存儲服務器硬件性能有一定要求,因此建議參考備份產品廠家要求配置重刪服務器。此外,重刪有一定風險,一旦重刪數據庫損壞,所有備份將無法恢復。建議對于開啟重刪的備份數據,一定要有第二份副本,盡量滿足備份的3-2-1原則要求。***,重復數據刪除每個備份廠家均有***實踐做法,但基本思路一致,一般先備份虛擬化平臺中幾個典型虛擬機,之后再批量備份可達到***重刪效果。
9.無代理備份虛擬機并發限制,一般建議一個備份計劃按照VMware默認2個虛擬機并發備份為佳。可根據虛擬化平臺性能、網絡帶寬使用綜合考慮后,調整并發數量。但建議不要將并發數調整過多或啟用***并發,否則虛擬化平臺壓力極大,可能出現通信問題,虛擬機業務出現意外,備份失敗。
10.根據業務制定好備份計劃,備份計劃之間要確保留有一定的時間間隔。避免在同一時間段,出現大批量虛擬機同時啟動備份的情況,造成網絡和CPU負載大面積波動。
11.依據不同業務類型,確定備份保留周期。時效性強的業務建議備份可保留1-2周時間。需要歸檔的虛擬機建議保留周期設定為3個月以上。保留周期同備份存儲使用率密切相關,因此要細致規劃不同虛擬機組的數據保留時間。
12.采用有代理備份的Windows VM,為了部署方便,可采用遠程推送方式安裝備份代理。如果推送條件不滿足,則使用本地安裝。推送或本地安裝代理前一定要注意安裝環境檢查,可從補丁、兼容性、網絡、配置等方面逐一排查。
13.虛擬化備份方案實施后,要密切觀察1-2周每天的備份情況以及業務影響情況,發現備份異常或影響正常業務要及時調整備份策略,不斷優化備份方案直至備份穩定。
五、總結
虛擬化備份項目看似簡單,但需要從虛擬機數量、存儲架構、網絡架構、備份計劃周期等多方面考慮備份方案,結合虛擬化平臺的實際情況確定實施流程,并不斷優化備份策略。