1. 程式人生 > >基於WinServer的無代理備份

基於WinServer的無代理備份

沒有 upload 虛擬化開啟 接下來 pre 讀寫操作 api 物理機 調用

在雲計算迅猛發展的今天,虛擬化技術已被越來越多的客戶認可,虛擬化作為被普遍接受的方案登上了各行各業的信息化建設的舞臺。信息化的建設離不開備份容災,隨著虛擬化應用在企業和各個行業的普及,備份恢復問題的重要性日益凸顯。 虛擬機備份功能是虛擬化的一個數據保護基本功能。但大部分虛擬化技術自帶的備份功能在執行備份時,會對業務性能產生一定的影響,同時備份策略不靈活,所以,針對虛擬化備份,常見的方式是采用專業的備份軟件系統。 專業的備份軟件從原理上可以歸納為兩種方法:代理備份和無代理備份。 代理備份是指需要在物理主機、虛擬機內部安裝代理備份軟件進行備份操作,該代理備份軟件用於響應並處理來自網絡的備份服務器的請求,但這種方式不僅會造成備份效率低,還會造成主機端沒有必要的資源消耗,多個備份並行時,極易發生瓶頸問題。 無代理備份是指采用虛擬化提供的API(Application Programming Interface)直接對物理機上的虛擬機文件進行備份,這種方式的好處是不再需要在每臺虛擬機上部署備份代理軟件,大大降低資源消耗,同時可以快速恢復出源虛擬機或創建新的虛擬機。 基於WinServer虛擬化,CNware實現了一種無代理備份對接方案。 基於該方案,可以讓CNware基於WinServer虛擬化靈活對接第三方廠商備份系統,實現無代理備份。通過與第三方備份系統的集成,實現虛擬機在線,離線備份, 全量備份,增量備份等高級功能,同時支持對虛擬機一次性備份、定期備份、災難備份等備份策略的設置。 接下來將對WinServer虛擬化,IAAS雲平臺WinCenter,第三方備份系統三個部分彼此間的交互原理進行闡述。

一.架構設計
從架構上整體分為兩大部分:
雲平臺管理系統:以IAAS 雲平臺WinCenter與底層虛擬化WinServer組成的以管理虛擬機為核心功能的系統組件。提供必要的 API 和讀寫授權機制使第三方備份系統能完成虛擬機的備份與還原操作。
第三方廠商備份系統:以管理備份數據存儲為核心功能的系統組件,以高效可靠地歸檔和還原數據為主要目標。通過WinCenter提供的resuful API 查詢虛擬機和存儲池信息,並在得到虛擬化方的讀寫授權後,能夠直接訪問底層WinServer虛擬化指定的虛擬磁盤數據。

整體架構圖如下

技術分享圖片

說明:

  1. 在WinServer虛擬化層實現四個子命令,以便WinServer虛擬化層同WinCenter雲平臺交互,分別為
    1) prepare-backup:獲取虛擬機的 VDI 數據分布信息,開啟只讀接口讓外部讀取數據。
    2) update-backup-id:開啟寫入接口讓外部系統寫入磁盤信息命令
    3) stop-remote-access:結束由 prepare-backup 或 update-backup-id 所開啟的遠程訪問
    4) get_vdi_sm_info:通過直接訪問 vhd 的方式,獲取 vhd 的 BAT(vhd 文件中保存有效數據分布的元信息)及父鏡像。
  2. 第三方備份系統與WinCenter雲平臺進行控制類交互,采用基於 HTTPS 的 restful 方式進行通信。
  3. 第三方備份系統與WinServer虛擬化進行虛擬磁盤的 IO 讀寫操作,IO讀寫操作通過一個 C 語言函數庫(wddk)進行封裝,采用 NBD 協議(NBD 是一種簡易的遠程塊設備訪問協議,可以高效地將遠程塊設備映射到本地)。

二.備份功能
整個虛擬機備份流程,通過備份系統與雲平臺系統多次交互完成。具體關鍵步驟如下:

  1. 第三方備份系統向WinCenter雲平臺發起restful請求,告知需要備份的虛擬機ID、備份ID及備份類型。備份類型為全量備份或增量備份。
  2. 第三方備份系統周期向WinCenter雲平臺詢問備份任務進度。
  3. WinCenter雲平臺通知底層WinServer虛擬化平臺對指定虛擬機生成快照。如果發起的是增量備份,並且當前虛擬機曾經做過備份,則可以通過CBT提取在兩次備份間隔實際變更的扇區信息。如果發起的是全量備份,則可以通過CBT提取實際數據所在的扇區信息。
  4. WinCenter雲平臺通知底層WinServer虛擬化開啟對特定虛擬磁盤的讀權限。
  5. WinCenter雲平臺將虛擬機元配置信息、扇區信息和虛擬磁盤訪問方式傳給第三方備份系統。
  6. 第三方備份系統通過wddk直接連接WinServer虛擬化層讀取相應扇區的數據,並對備份數據進行歸檔。
  7. 第三方備份系統完成備份後,通知WinCenter雲平臺刪除多余的快照信息以及取消WinServer虛擬化遠程磁盤訪問授權。

三.還原功能
整個虛擬機還原流程,通過備份系統與雲平臺系統多次交互完成,同備份在調用流程上大致相似。具體關鍵步驟如下:

  1. 第三方備份系統向WinCenter雲平臺發送虛擬機元數據信息。
  2. 第三方備份系統周期性向WinCenter雲平臺查詢虛擬機恢復任務進度。
  3. WinCenter雲平臺通過第三方備份系統傳來的虛擬機元數據信息生成一臺新虛擬機,並根據元數據信息生成指定大小的空白虛擬磁盤與網卡信息。
  4. WinCenter雲平臺通知底層WinServer虛擬化開啟對特定虛擬磁盤(第三步驟創建的空白磁盤)的寫權限。
  5. WinCenter雲平臺將虛擬磁盤訪問方式返回給第三方備份系統。
  6. 第三方備份系統獲取磁盤路徑後,通過wddk開始對相應磁盤扇區寫入數據。
  7. 第三方備份系統完成虛擬磁盤寫數據後,通知WinCenter雲平臺。
  8. WinCenter雲平臺通知WinServer虛擬化取消遠程磁盤訪問授權並同步收集雲平臺數據。

    更多關於雲宏與服務器虛擬化CNware的相關內容,請搜索雲宏CNware。

基於WinServer的無代理備份