吳家隱 莫秋燕 李先緒 鄭文武


在云計算環境中,傳統的備份技術遇到了需要安裝備份代理、空白數據占用空間、數據冗余度高和備份顆粒度大等問題。基于此,研究了通過VADP接口,實現無代理備份、數據塊修改跟蹤、文件級備份恢復、重復數據刪除、vCenter集成及應用感知等的云計算環境的備份軟件技術,并驗證了重復數據刪除對數據塊修改跟蹤技術的有效性,為云計算環境的數據備份提供了有益的參考。
云計算 備份技術 VMWare
1 引言
隨著信息化的發展,各種業務系統已經成為大型企業日常生產不可或缺的一部分,這些系統所產生的數據也成為運營商的核心資產。在軟硬件處理能力越來越強的現在,電信運營商的IT系統呈現出集約化[1]、去IOE(IBM、Oracle、EMC)化[2]、云計算化的趨勢。
對于電信運營商,大部分業務系統是由各省級單位獨立建設,互不兼容。在市場競爭激烈、成本要求苛刻、精細化管理成為企業必需的情況下,三大運營商不約而同地選擇了集約化發展的道路。業務的變化推動IT系統的集約化,運營商紛紛嘗試將分省建設、管理的系統集中到全國幾個大型中心。集約化后的IT中心帶來了數據的高度集中,對系統備份和恢復的速度要求更加苛刻。
與集約化同時進行的是IT系統“去IOE”的進程。去IOE即在服務器設備上,使用標準化程度高的X86服務器逐漸取代高可靠性、生態系統相對IBM Power小型機乃至所有的小型機在核心系統的使用。去O即從小型業務系統開始,使用Scale out架構的開源數據庫逐步消除Oracle數據庫在運營商的壟斷地位;去E即在數據存儲領域使用更為廉價的存儲方式代替昂貴的高端EMC存儲。去IOE在節省成本、降低對原廠依賴的同時,也帶來了對業務系統、數據庫及業務數據可靠性的憂慮。
云計算化是使用虛擬化基礎架構代替過去孤立的、煙囪式發展的傳統IT架構。云計算是在由服務器、存儲、網絡交換機等硬件的基礎上增加了虛擬化層和云層。其中,虛擬化層屏蔽了硬件的差異性和復雜度,為云層提供標準化、可靈活擴展和收縮、彈性的虛擬資源池;云層可以調配硬件資源池,為應用系統提供虛擬硬件。云計算化在增加靈活性的同時,也更來了更多的可能的故障點。
集約化、去IOE化、云計算化的IT系統帶來成本節約、靈活度更高的同時,也為應用系統和數據的可靠性帶來了更大的挑戰。為了保障IT系統安全,需要建立穩定、高效的備份系統,將應用系統和數據備份多份后,在異機甚至異地存儲。備份系統可以保證在應用系統出現問題的情況下能夠回退到正常狀態,是企業IT安全的最后一道防線,需要引起高度重視。
2 傳統IT基礎下的備份技術
2.1 傳統備份對象
在傳統IT基礎架構下,備份的對象主要針對操作系統、數據庫和文件系統。
操作系統是應用系統的基礎,其備份技術也是備份的難點。操作系統備份包括系統備份和系統恢復。系統備份由文件備份、系統數據一致性及系統環境等技術組成。操作系統備份時,系統文件、環境變量等參數會不斷發生變化,有可能發生相關文件備份時間不同而導致系統故障的問題[3]。為了保證一致性,需要對備份過程中的I/O(Input/Output,輸入/輸出)進行備份,在系統恢復時將備份過程的I/O操作重新寫入操作系統,從而使系統狀態與備份結束時間點的狀態一致,降低了系統崩潰的風險。系統恢復在異機恢復方面有可能面臨著設備驅動不一致,從而導致恢復后的系統無法正常使用的問題。
數據庫備份不僅需要備份數據庫中的用戶數據,還需要對重要的數據庫組件如數據文件和控制文件進行備份[4]。數據庫的備份可以分為靜態備份和動態備份。靜態備份是在系統沒有事務需要處理時進行的備份作業,在備份期間不允許對數據庫進行查詢、插入等活動。靜態備份可以很好地保持數據的一致性,但同時降低了數據庫的可用性。動態備份可以在用戶事務發生的同時進行,允許在備份期間對數據庫進行存取、修改等操作,但這種方式無法保證副本數據的有效性,需要記錄下備份期間對數據庫的存取等活動日志。數據庫恢復時,需要恢復副本和備份期間的日志才能恢復到正確的狀態。
文件系統備份可以通過文件系統定位文件所在的頁,然后備份所找到的文件。由于存儲在磁盤中的文件的頁并不一定是連續的,因此在恢復的過程中磁盤需要不斷定位,從而導致磁盤負擔較大[5]。在文件系統備份中,運營商的話單文件體積小但數量非常多,其備份是一大技術難題。
2.2 常見備份方式
在實現生產中,通常采用以下方式進行備份:
(1)使用數據庫自帶備份工具備份。對于Linux下的Oracle數據庫,可以編寫Rman腳本備份數據,再通過Crontab配置定時復制命令,將數據庫備份文件復制到磁盤陣列[6]。對于MySQL,可以使用自帶的mysqldump工具,實現基于InnoDB的熱備份[7]。
(2)使用操作系統自帶工具。Linux操作系統中常使用dump和restore命令來實現文件系統的全備、增量備份和差異備份等備份方式[8],Windows Server下也自帶了Windows Server Backup的備份和恢復工具。
(3)基于存儲的硬件備份。存儲設備是使用硬件來實現數據的存儲、備份與恢復,速度較快。通過存儲,還可以使用更高級的存儲技術,如快照、鏡像、重復數據刪除等功能。同一廠商的存儲產品往往具有遠程鏡像的功能,可以將本地備份數據通過同步或異步的方式自動實現異地備份。然而不同存儲廠商間的硬件備份技術使用不同的技術標準,互不兼容,從而導致不同品牌的存儲不能實現硬件的遠程鏡像。運營商的核心數據經常需要保留三份以上的異地備份,就需要在三個地點都使用同一個廠商的存儲設備,這也成為基于存儲的硬件備份的一大阻礙。
(4)基于備份軟件。備份軟件集成了各種數據庫、文件系統的備份等功能,又具備了鏡像復制、快照、重復數據刪除、數據校驗、SAN(Storage Area Network,存儲區域網絡)備份等高級存儲功能。備份軟件從軟件上屏蔽了硬件設備的差異,可以統一管理服務器硬盤、磁盤陣列、虛擬帶庫以及物理帶庫等存儲設備。同時,備份軟件也可以實現對不同操作系統(Windows、Linux、Unix)、不同數據庫(Oracle、SQL Server、MySQL)的備份。通過備份軟件,系統管理員不需要對不同的操作系統、不同的數據庫、不同的存儲設備和服務器各自編寫自動備份腳本,可以在統一的界面上通過命令行或圖形化界面集中管理備份設備、存儲設備、備份策略。因此,備份軟件也是核心IT系統中常用的備份方式。
(5)備份一體機。隨著一體化設備的發展,備份軟件廠商紛紛推出集成了備份服務器、存儲、備份軟件的備份一體機設備。這種備份一體機可以在用戶快速部署,大大方便了異地數據備份。
2.3 備份軟件
備份軟件架構如圖1所示,主要由備份服務器、備份代理、存儲服務器、Web服務器組成。
備份服務器可以自動進行備份作業的調度,通過指揮備份代理和存儲服務器共同完成備份、恢復任務[9]。備份服務器維護著Catalog數據庫,在數據庫里存儲備份恢復作業的信息及物理設備相關的信息。備份代理一般是安裝在需要備份的主機中,調用相關系統的接口。在備份作業發起時,數據由備份代理讀取并傳輸到網絡。對于不同的備份對象,往往需要安裝對應的模塊。例如,為了分別備份Oracle數據庫、SQL Server數據庫,就需要在對應的主機中分別安裝支持Oracle數據庫模塊和SQL Server數據庫模塊的備份代理。對于不同的操作系統,也需要安裝相應的備份代理。存儲服務器可以將關鍵數據存儲在存儲設備,如磁盤陣列、虛擬帶庫、物理帶庫,負責存儲中備份數據的讀取和寫入。Web服務器為管理員提供Web管理界面。目前主流的備份軟件不僅有商用的IBM TSM、CommVault、Symantec NetBackup、HP DP等產品,而且還有開源的備份軟件Amanda[10]、Bacula等產品。
3 云計算對傳統備份技術帶來的挑戰
云計算技術在IT基礎建設的引入,可減少硬件資源浪費,提高系統部署的速度,但也為備份帶來了新的需求。
(1)虛擬機備份代理。在存儲中為虛擬機分配的空間,以虛擬機文件格式方式如.vmdk存儲,虛擬機操作系統文件、用戶數據放置在這個vmdk文件中。如果按照傳統備份方式,要備份虛擬機中的系統和用戶數據,就需要在每臺虛擬機中安裝備份代理。這種方式在占用大量的存儲資源的同時,發起備份時也會占用大量的計算資源,從而影響虛擬機性能。
(2)空白數據的空間占用。在分配虛擬機時,精簡模式下的虛擬硬盤根據所需數據量的大小占用存儲空間。虛擬硬盤空間隨虛擬機數據量增加而變大后,在虛擬機中刪除的數據并不會減少虛擬硬盤的空間大小,這樣就造成大量空白數據占用了存儲空間。如果對虛擬機的備份只是簡單復制虛擬硬盤文件,就會出現備份中的有效數據少的問題。
(3)數據冗余程度高。在虛擬機中,往往安裝大量相同的操作系統、應用程序,這部分數據高度相同,如果直接通過安裝在每臺虛擬機中的備份代理來備份數據,則會造成大量的冗余,浪費存儲空間。
(4)備份顆粒度過大。通過虛擬化平臺自帶的虛擬化接口可以備份和恢復整臺虛擬機,但往往需要備份的數據只是虛擬機中的部分用戶數據,而不是完整的虛擬機。虛擬機級的顆粒度會拖慢備份恢復速度,消耗大量的存儲空間。此外,這種方式也無法感知應用,難以保證數據的一致性。
基于上述情況,傳統的備份方式已經不適應云計算時代的數據備份,亟需針對云計算的數據備份技術。
4 云計算環境的備份技術
4.1 基于云計算的備份技術
在云計算環境下,調用VMWare在數據存儲方面的接口,可以有效地解決虛擬機的備份難題。
(1)無代理備份。VMWare開放了VADP(vStorage
APIs for Data Protection,用于數據保護的虛擬存儲應用程序編程接口)的數據保護存儲接口。備份軟件調用VADP,即可與集成在vCenter中的vStorage for Data Protection模塊通信,對每臺虛擬機都實現不需要第三方備份代理的備份,從而減少備份對虛擬機計算資源的消耗。
(2)數據塊修改跟蹤。VMWare提供的VMKernel
級技術CBT(Change Block Tracking,數據塊修改跟蹤)可以判斷在最后一次快照后是否有虛擬機數據塊被修改,并標記被修改的數據。備份軟件調用VADP接口,即可備份被修改的增量數據,而不需要對虛擬機文件做完全備份。
(3)文件級備份恢復。VMWare FLR(File Level Recovery,文件級恢復)提供了瀏覽和裝載虛擬機備份數據的功能。通過備份軟件,調用VADP的FLR功能,可以實現對虛擬機的文件級顆粒度管理,而不需要做虛擬機級別的備份。
(4)重復數據刪除。傳統的重復數據刪除常使用固定數據塊或者固定長度數據段等技術進行重刪,但這種方式存在著即使數據集發生了非常小的改動,都會導致整個固定長度數據段的更改,從而不被識別為冗余數據。對于虛擬機的重復數據刪除技術,常采用可變長度數據段。VMWare VDP(vSphere Data Protection,vSphere數據保護)技術能夠分析數據集的二進制數據結構,確定數據段的邊界,且適用于不同類型和體積的文件,從而實現智能化的重復數據刪除。
(5)vCenter集成。備份軟件以vCenter插件的形式集成到vCenter的管理界面中,方便vCenter管理員管理虛擬機的備份,而不需要到專門的備份軟件中處理。
(6)應用感知。對于虛擬機中安裝的SQL Server、
Exchange、SharePoint、Active Direct等應用系統,可以通過在這些應用所在的虛擬機中安裝VDP客戶端,即可實現來賓級細粒度的管理,從而實現對虛擬機中的應用感知。
4.2 重復數據刪除
對VMWare vSphere虛擬化環境,使用重復數據刪除技術,對其中的30臺虛擬機總共1053GB容量的虛擬硬盤進行全備份。在自動識別并剔除空白空間后,需要備份的數據只剩下虛擬硬盤數據的76.5%。而在使用重復數據刪除進行消重后,實際寫入存儲空間的數據只有源數據的29.4%,因此實際重刪比為70.6%。重復數據刪除技術可大大減少虛擬機備份所需要消耗的存儲空間,具體如圖2所示。
初次全備份需要數小時的時間。在虛擬機進行數據讀寫操作,增加少量用戶數據,此時再做全備份,備份時間可縮短到數分鐘。這是由于調用了VMWare的CBT技術,使備份數據僅為修改的部分數據,從而加快了備份速度,減少了網絡流量和備份數據量。
5 結束語
本文研究了傳統IT基礎架構下的備份技術,包括操作系統、數據庫和文件系統等3種主要備份對象,總結了利用自帶工具、存儲硬件、備份軟件和備份一體機等常見備份方式,描述了備份軟件的架構,并分析了傳統備份方式在云計算時代遇到的問題。在此基礎上,研究了云計算環境下的備份技術,并指出了無代理備份、數據塊修改跟蹤、文件級備份恢復、重復數據刪除、vCenter集成、應用感知等關鍵技術。在實際虛擬化環境中,證明了重復數據刪除和數據塊修改跟蹤等技術的有效性,為電信運營商在云計算環境下的數據備份提供了參考。
參考文獻:
[1] 鮑明曦,朱源,鄧麗華. MSS全網集中建設助推集約化運營[J]. 通信企業管理, 2013(12): 75.
[2] 田熙清,陳泳,胡穎茂. IT支撐系統技術架構的去電信化思考[J]. 移動通信, 2014(5): 68-74.
[3] 張效斌. 備份系統在云中心的部署與應用[J]. 電腦知識與技術, 2013(29): 6530-6532.
[4] 宮婷. 計算機數據庫的備份與恢復技術研究[J]. 計算機光盤軟件與應用, 2013(21): 155.
[5] 肖克輝. 文件系統備份中目錄樹處理算法設計與實現[D]. 廣州: 中山大學, 2005.
[6] 張云帆. Oracle數據庫備份與恢復策略[J]. 計算機工程, 2009(15): 85-87.
[7] 鄔文軒,胡曉勤. 一種基于MySQL Innodb數據引擎的增備方法[J]. 計算機安全, 2013(5): 30-33.
[8] 楊寧. 基于B/S模式的Linux備份系統的設計與實現[D]. 廣州: 中山大學, 2008.
[9] 吳佳. 備份服務器的關鍵技術研究和實現[D]. 武漢: 華中科技大學, 2008.
[10] 張媛. 企業級開源備份軟件在圖書館數據中心的應用[J]. 圖書館學刊, 2014(9): 127-130.