Vmware 虛擬化備份接口VADP與VCB

20095月隨着vSphere4.0的發佈,VMware對外公開了其新一代備份API接口vStorage APIs for DataProtection(VADPhttp://www.vmware.com/products/vstorage-apis-for-data-protection/features.html),並且在vSphere4.1發佈後確立VADP成爲唯一推薦的備份API接口,改變了之前VADPVCB (VMwareConsolidated Backup)共存的局面(下文中會對VCB進行簡單介紹)。需要指出的是VADP並不是vSphere4.0才提出的新東西,它的很多功能從ESX3.02就開始被支持了,只不過一些關鍵特性比如CBT (ChangeBlock Tracking) 直到vSphere4.0才被加進來。VADP簡單點說就是一系列管理和數據的API接口。通過這些API接口,用戶(包括備份軟件)可以在不影響目標虛擬機運行狀態的前提下對虛擬機進行備份和恢復,包括:1. 對虛擬機磁盤文件進行整體或者增量備份和恢復;2. Guest OS進行文件級別的備份和恢復,目前支持WindowsLinux系統;3. 如果Guest OSWindows系統,還能夠利用Windows Volume Shadow Copy Services(VSS)來保證數據一致性。而且VADP提供的是一套Agentless的備份解決方案,好在哪裏大家可以參考KendrickColeman在他的技術博客 (http://kendrickcoleman.com/index.php?/Tech-Blog/backup-agents-are-dead-to-me.html) 中列舉的在虛擬化環境中Backup Agent必死的十大理由。

VADP對虛擬機進行備份的過程如圖表1所示。

wKioL1NE87iCMofjAAFKJU52tto294.jpg

圖表 1

1.調用vSphere SDKAPI對目標虛擬機創建Snapshot

2. 調用VDDK中的Virtual Disk Library API(VixDiskLib API,目前只提供C語言接口)訪問新創建的Snapshot,讀取虛擬機磁盤文件;如果需要訪問Guest OS 文件系統,可以調用VDDK中的Virtual Disk Mount API(VixMntapi,目前只提供C語言接口)把虛擬機磁盤mount到本地,然後像訪問本地文件系統那樣訪問Guest OS的文件系統。

3. 備份虛擬機磁盤文件或者Guest OS文件系統中的文件到目標存儲服務器;

4. 調用vSphere SDKAPI來刪除第一步創建的Snapshot

要體會VADP帶來的便利性,我們最好先了解下在推出VADP之前,VMware提供的備份接口VCBVCB全稱爲VMware Consolidated Backup,同樣是提供對虛擬機的虛擬機磁盤和文件級別的數據保護。如圖表2所示,大家可以發現通過VCB對虛擬機進行備份的過程大體上和VADP類似,只不過用VCB需要一臺Windows機器作爲Proxy並在其上安裝VCB軟件,正如圖表2中的Backup Proxy Server

wKioL1NE88agOy_uAAExLQZpcJQ137.jpg

圖表 2

相比較,VADP並不涉及任何備份操作,而是僅包括一系列API接口,也不需要用戶安裝專門的軟件,可以很方便地被集成到各種備份軟件中。圖表3總結了VADPVCB的更詳細的差別。

wKiom1NE8_2y1VvDAAHkB-SyW8M809.jpg


圖表 3

除此之外,VADP另外一個具有巨大進步意義的新特性是CBT (ChangeBlock Tracking),簡單講CBT能夠使VMKernel記住自上次Snapshot以來哪些數據塊被改動了,從而原生支持增量備份。比如,用戶每週都要對一個虛擬機進行完整備份,每天對虛擬機進行增量備份。在沒有CBT之前,用戶每天都需要拷貝完整虛擬機磁盤文件,然後計算出增量部分進行備份;而使用CBT後,用戶在備份之前可以詢問VMKernel哪些數據塊自上次Snapshot後發生過修改,之後只備份修改過的數據。較詳細的CBT工作過程如下:

1. 全備份:創建虛擬機的Snapshot,並對Snapshot進行備份來實現虛擬機的全備份;

2. 通過vShpereAPI讀取第一步創建的Snapshot磁盤文件的ChangeId (VirtualDisk.getBacking.getChangeId),並保存;

3. 調用vShpereAPI中的queryChangedDiskAreas 方法(詳細文檔請參考:http://www.vmware.com/support/developer/vc-sdk/visdk400pubs/ReferenceGuide/vim.VirtualMachine.html#queryChangedDiskAreas)並傳入第二步保存的ChangeId作爲參數,獲得自上次Snapshot全備份後的修改文件塊,保存這些修改文件塊作爲增量備份;

4. 重複第三步完成每日增量備份;

5. 重複1~4步完成新一週的備份計劃。

顯而易見,使用CBT不僅僅可以極大地縮短備份窗口,而且還能夠顯著的減輕對底層存儲設備的IO負擔。不過值得注意的是,由於CBT會對虛擬機性能多少會有些影響,因此虛擬機關於CBT的配置項並不是默認打開的。

總結下來,VADP利用VMwarevStorageVMFSSnapshot功能來實現虛擬機備份,通過CBT技術提供給備份軟件足夠的支持來實現增量備份。藉助 VADP,用戶不需要在目標虛擬機上安裝Backup Agent,通過一個支持VADP的備份軟件,就可以在不增加ESX服務器負載以及不影響虛擬機運行狀態的基礎上,對給定的ESX服務器上所有的虛擬機進行集中式、全面的備份和恢復。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章