陳東偉
【摘 要】為了解決傳統(tǒng)備份技術(shù)使用成本較高、易用性和擴(kuò)展性較差的難題,引入云計(jì)算技術(shù),存儲(chǔ)后端采用云存儲(chǔ),研究新型的備份服務(wù)技術(shù),提出云備份服務(wù)架構(gòu)設(shè)計(jì)方案。實(shí)驗(yàn)證明,云備份服務(wù)具有低成本、高可擴(kuò)展性和高可用性的特點(diǎn),既可以有效解決傳統(tǒng)備份技術(shù)的不足,又可以減輕中小企業(yè)在備份服務(wù)使用上的成本壓力。
【關(guān)鍵詞】云備份 智能備份 云存儲(chǔ) 混合備份
1 引言
傳統(tǒng)的備份技術(shù)雖然在一定程度上能滿足當(dāng)前市場對備份的需求,但其使用成本較高,易用性和擴(kuò)展性方面也表現(xiàn)得不盡如人意,對中小企業(yè)而言,在備份服務(wù)上投入資金和人力,也是一種巨大的負(fù)擔(dān)。引入云計(jì)算技術(shù),研究新型的云備份服務(wù),利用云服務(wù)的低成本、高可擴(kuò)展性和高可用性的特點(diǎn),既可以有效解決傳統(tǒng)備份技術(shù)的不足,又可以減輕中小企業(yè)在備份服務(wù)使用上的成本壓力。
傳統(tǒng)備份軟件采用代理服務(wù)器及備份服務(wù)器的架構(gòu)來實(shí)現(xiàn),備份服務(wù)器提供Web等管理界面,負(fù)責(zé)調(diào)度、備份任務(wù)、創(chuàng)建備份策略、客戶端信息管理、元數(shù)據(jù)管理。代理服務(wù)器則負(fù)責(zé)把客戶端數(shù)據(jù)業(yè)務(wù)備份到具體存儲(chǔ)介質(zhì)中。作為用于存儲(chǔ)數(shù)據(jù)的存儲(chǔ)后端,需要存儲(chǔ)的備份數(shù)據(jù)會(huì)不斷增加,由于數(shù)據(jù)量的激增,傳統(tǒng)存儲(chǔ)技術(shù)對數(shù)據(jù)的索引效率逐步下降,面臨大數(shù)據(jù)更會(huì)顯得捉襟見肘。本方案服務(wù)端融合代理服務(wù)器及備份服務(wù)器功能,突破傳統(tǒng)架構(gòu)局限,精簡備份結(jié)構(gòu),并以云存儲(chǔ)[2]作為存儲(chǔ)后端,避免存儲(chǔ)系統(tǒng)與計(jì)算系統(tǒng)間存在傳輸瓶頸及單點(diǎn)故障的問題,降低備份系統(tǒng)管理維護(hù)成本,為數(shù)據(jù)存儲(chǔ)的可靠性、穩(wěn)定性提供保障。
2 云備份服務(wù)總體架構(gòu)
研究云備份技術(shù)旨在形成具有行業(yè)前瞻性的云備份服務(wù),并結(jié)合軟件開發(fā)中主流的源代碼管理工具、缺陷管理工具等開源技術(shù),形成目前比較完整的企業(yè)級云備份解決方案,可以為中小型企業(yè)提供安全、穩(wěn)定、可靠的云備份服務(wù)。本系統(tǒng)采用LAN-Base[3]組網(wǎng)方式,對中小企業(yè)而言,數(shù)據(jù)備份流量對備份服務(wù)器節(jié)點(diǎn)不會(huì)造成太大壓力。
2.1 平臺(tái)兼容性設(shè)計(jì)
總體而言,云備份從結(jié)構(gòu)上可以分成兩個(gè)部分:即管理整個(gè)備份還原等功能的Web管理控制臺(tái)部分和底層根據(jù)管理控制臺(tái)生成的配置文件實(shí)際執(zhí)行備份操作的部分。軟件設(shè)計(jì)的云備份過程由服務(wù)端驅(qū)動(dòng),備份數(shù)據(jù)由客戶端傳到服務(wù)端,再由服務(wù)端存儲(chǔ)到云存儲(chǔ)?;謴?fù)過程備份數(shù)據(jù)從云存儲(chǔ)直接恢復(fù)到客戶端。提供云存儲(chǔ)的域名以及secret key和access key[4]即可在該設(shè)備上正常使用該用戶的對象存儲(chǔ)進(jìn)行備份數(shù)據(jù)的存取。備份到云存儲(chǔ)的數(shù)據(jù)可以不限時(shí)間不限地域不限終端地訪問。
2.2 平臺(tái)特性
本云備份服務(wù)特性之一是不使用任何專有格式備份數(shù)據(jù),使用操作系統(tǒng)標(biāo)準(zhǔn)的基本應(yīng)用程序dump[5]和tar[6],也提供在許多操作系統(tǒng)上可用的開源工具GNUtar[7]與smbtar[8],來將客戶端需要備份的數(shù)據(jù)備份到備份服務(wù)器本地磁盤或者云存儲(chǔ)中。本備份服務(wù)系統(tǒng)在結(jié)構(gòu)設(shè)計(jì)上使用這些標(biāo)準(zhǔn)工具而不使用專有數(shù)據(jù)備份格式的目的是,在發(fā)生災(zāi)難或任何其他緊急情況時(shí),用戶可以手動(dòng)恢復(fù)數(shù)據(jù),即使沒有安裝云備份服務(wù)。
通信及身份驗(yàn)證方面,云備份客戶端通過TCP和UDP之上自己的網(wǎng)絡(luò)協(xié)議與云備份服務(wù)器進(jìn)行通信,并使用系統(tǒng)root主目錄中的.rhosts文件進(jìn)行登記授權(quán),使通信更為安全。云備份服務(wù)器端設(shè)計(jì)上可以指定允許與哪些客戶端進(jìn)行通信,以及允許執(zhí)行的操作類型。對于數(shù)據(jù)恢復(fù),出于安全原因只允許使用root用戶恢復(fù)數(shù)據(jù)??蛻舳松矸蒡?yàn)證方面,除了通過使用自帶的身份驗(yàn)證方式外,使用OpenSSH[9]來保障數(shù)據(jù)傳輸安全,備份客戶端的身份驗(yàn)證。
3 平臺(tái)核心組件工作原理
云備份服務(wù)平臺(tái)的核心設(shè)計(jì)和實(shí)現(xiàn)主要包括三部分:云備份客戶端、云備份服務(wù)端、云備份管理平臺(tái)。系統(tǒng)中多個(gè)核心組件之間相互配合,共同完成將備份數(shù)據(jù)備份至云存儲(chǔ)及還原的功能,系統(tǒng)整體設(shè)計(jì)思想和基本工作原理如圖2所示。
3.1 云備份客戶端
云備份使用的是C/S(Client-Server)架構(gòu)[10]。云備份服務(wù)結(jié)構(gòu)中,客戶端接收到來自服務(wù)器端的備份命令后,對備份數(shù)據(jù)以標(biāo)準(zhǔn)壓縮格式進(jìn)行打包壓縮并將壓縮數(shù)據(jù)寫到標(biāo)準(zhǔn)輸出,云備份服務(wù)端收集數(shù)據(jù)并傳輸?shù)酱鎯?chǔ)設(shè)備(本地磁盤或者云存儲(chǔ))。索引文件保留對文件的索引信息,由客戶端在數(shù)據(jù)打包時(shí)生成并發(fā)送給服務(wù)端。在數(shù)據(jù)還原時(shí),服務(wù)端能夠高效、準(zhǔn)確地找到所需還原文件。
備份數(shù)據(jù)分為冷數(shù)據(jù)和熱數(shù)據(jù)。對熱數(shù)據(jù)而言,備份客戶端采用Windows VSS(Windows Volume Shadow Copy Service)快照對數(shù)據(jù)進(jìn)行熱備份,避免在備份時(shí)對這些數(shù)據(jù)的使用用戶及應(yīng)用程序造成影響。熱數(shù)據(jù)備份流程如圖3所示。
客戶端集成VSS服務(wù),通過VSS代理請求器發(fā)送快照復(fù)制給VSS服務(wù)。獲取到該服務(wù)對應(yīng)用程序執(zhí)行的快照后,由備份客戶端將備份數(shù)據(jù)發(fā)送到備份服務(wù)端。
3.2 云備份服務(wù)端
云備份中的核心組件是云備份服務(wù)器,統(tǒng)一管理各客戶端,管控如何將數(shù)據(jù)從客戶端備份到云存儲(chǔ),及如何將數(shù)據(jù)還原到客戶端。用戶通過瀏覽器打開服務(wù)器端備份管理界面制定備份計(jì)劃。服務(wù)器接收到執(zhí)行計(jì)劃后在開始備份前預(yù)估備份計(jì)劃,然后按照用戶制定的執(zhí)行計(jì)劃,發(fā)送備份命令至客戶端讓客戶端打包好數(shù)據(jù),抓取數(shù)據(jù)到服務(wù)器端進(jìn)行緩存,并將數(shù)據(jù)索引存儲(chǔ)進(jìn)索引目錄后再寫入至云存儲(chǔ)。
預(yù)估備份計(jì)劃主要檢測云備份客戶端上哪些文件發(fā)生改變且發(fā)生改變的文件可能的大小,為后續(xù)備份方式的選擇提供判斷依據(jù)。
為降低備份架構(gòu)帶來的成本開銷及保證核心備份組件功能的統(tǒng)一,備份服務(wù)器融合了備份介質(zhì)服務(wù)器的功能,因此服務(wù)器又用于緩存數(shù)據(jù)。從客戶端文件系統(tǒng)或客戶端目錄備份過來的數(shù)據(jù)只是一堆存放在磁盤上的文件。服務(wù)器使用一個(gè)獨(dú)立的進(jìn)程,使用盡可能大的吞吐量以實(shí)現(xiàn)將服務(wù)器中緩存的數(shù)據(jù)通過具體云存儲(chǔ)接口寫入云存儲(chǔ)。云備份支持設(shè)置多個(gè)緩存目錄,以便不同客戶端的備份數(shù)據(jù)可以被發(fā)送到不同的緩存目錄上。這增加了云備份的可擴(kuò)展性,并提供了更好的負(fù)載,因?yàn)榫彺婺夸浛梢栽诓煌目刂破飨掠糜谄胶釯/O。
云備份服務(wù)器端在完全備份、增量備份、差異備份三種備份[11]方式的基礎(chǔ)上實(shí)現(xiàn)智能備份功能。智能備份主要通過獨(dú)特的方法來調(diào)度,優(yōu)化負(fù)載平衡。根據(jù)當(dāng)前變化數(shù)據(jù)量等信息智能安排增量備份級別,根據(jù)整個(gè)服務(wù)端的負(fù)載合理安排全量備份。智能備份調(diào)度方法大致如下:例如,需要在周三和每個(gè)星期日為客戶A、B、C進(jìn)行全量備份,為客戶D、E和F在其他時(shí)間執(zhí)行增量備份。類似上例需求,通過對系統(tǒng)設(shè)置一些基本規(guī)則,然后讓云備份自己去控制調(diào)度。例如,可以告知云備份以下規(guī)則:在7天時(shí)間內(nèi)至少有一個(gè)全量備份,其他時(shí)間則是增量備份。這里全量備份之間的最大間隔時(shí)間稱為“全量備份周期”。為了計(jì)算出最佳的備份級別,云備份在每次開始備份前都會(huì)執(zhí)行一個(gè)所謂的“預(yù)估”操作。每個(gè)云備份客戶端會(huì)運(yùn)行專門的程序來檢查哪些文件已經(jīng)發(fā)生改變,并且改變的文件的可能大小。預(yù)估過程可能需要一些時(shí)間,特別是如果有許多客戶端和文件系統(tǒng)的情況下。從所有客戶端收集數(shù)據(jù)結(jié)束后,云備份進(jìn)入所謂的“計(jì)劃階段”,并計(jì)算所有客戶端的全量備份和增量備份的最佳組合。
假設(shè)整個(gè)系統(tǒng)有兩個(gè)客戶端,客戶端備份目錄為/home1和/home2,客戶端B的備份目錄為/home3和/home4,假設(shè)每個(gè)主目錄為100 GB,數(shù)據(jù)變化率是15%,而全量備份周期為4天。為簡單起見,假設(shè)云備份每次寫備份數(shù)據(jù)到獨(dú)立標(biāo)記的目錄中,且每次都是執(zhí)行級別為1的增量備份。每次運(yùn)行云備份會(huì)安排數(shù)據(jù)總量×1/全量備份周期的數(shù)據(jù)進(jìn)行全量備份。為了簡化,設(shè)置全量備份周期為4天,因此周期內(nèi)備份1中會(huì)有四分之一的數(shù)據(jù)進(jìn)行全量備份,例如/home1。對于周期內(nèi)備份2中又會(huì)對另一個(gè)1/4做全量備份,例如/home2和/home1增量備份是15 GB(100 GB的15%),依此類推對周期內(nèi)備份3會(huì)做/home3的全量以及/home1和/home2的增量備份。4天初始備份完成之后,云備份將運(yùn)行一個(gè)/home目錄的全量備份和其他所有home目錄的增量備份,簡單計(jì)算每個(gè)周期內(nèi)備份數(shù)據(jù)的總量如表1所示。
周期內(nèi)的第一次和第二次備份的數(shù)據(jù)量計(jì)算是很簡單的,第三次運(yùn)行時(shí)的/home1備份,必須要考慮其中的一個(gè)15%是100 GB的15%中再次發(fā)生變化的數(shù)據(jù)。為了避免重復(fù)計(jì)算,必須從30 GB減去兩次變化重疊的區(qū)域。因此,對于增量為/home1的周期內(nèi)備份3的備份數(shù)據(jù)規(guī)模將是:
4 與傳統(tǒng)備份的比較分析
本系統(tǒng)采用LAN-Base組網(wǎng)架構(gòu),為了對比的需要,展示相同組網(wǎng)架構(gòu)下的傳統(tǒng)備份架構(gòu),具體如圖4所示:
如圖4所示,傳統(tǒng)備份中心由介質(zhì)服務(wù)器、備份服務(wù)器、備份介質(zhì)構(gòu)成。備份數(shù)據(jù)必須經(jīng)過備份介質(zhì)服務(wù)器才能存入備份介質(zhì)中。LAN-Free[3]組網(wǎng)架構(gòu)下的傳統(tǒng)備份更是每臺(tái)需要備份數(shù)據(jù)的服務(wù)器都得安裝介質(zhì)服務(wù)器,這就增大了成本開銷及運(yùn)維開銷。在可靠性方面,傳統(tǒng)備份架構(gòu)簡單,數(shù)據(jù)保護(hù)能力差。而云備份基于云存儲(chǔ)做后端存儲(chǔ),云存儲(chǔ)服務(wù)的耐久性給數(shù)據(jù)可靠性提供保障。在擴(kuò)展性方面,傳統(tǒng)備份擴(kuò)展性低,需要花巨大開銷進(jìn)行擴(kuò)展,云備份提供無限的擴(kuò)展能力,無需擔(dān)心后端存儲(chǔ)的擴(kuò)展問題。
備份方法上,傳統(tǒng)的備份方法主要采用直接從生產(chǎn)環(huán)境中通過磁帶備份連續(xù)寫入的方式。這種方式效率較低,難以應(yīng)對數(shù)據(jù)量激增給IT環(huán)境帶來的超負(fù)荷挑戰(zhàn)。傳統(tǒng)的備份方法不能全局性地解決冗余數(shù)據(jù)激增的問題,這一問題會(huì)導(dǎo)致對網(wǎng)絡(luò)、存儲(chǔ)和管理資源的過度消耗。這些都限制了企業(yè)恢復(fù)和使用受保護(hù)數(shù)據(jù)的能力,增加了數(shù)據(jù)恢復(fù)和查找所需的時(shí)間?;诜植际皆拼鎯?chǔ)后端的云備份,依靠其易擴(kuò)展性,處理冗余激增只需擴(kuò)展其存儲(chǔ)空間即可。在備份方案上,傳統(tǒng)的備份解決方案往往基于一系列松散集成的工具,這將越來越難以滿足這種大規(guī)模、多樣化的數(shù)據(jù)備份需求。對云備份集成系統(tǒng)基本工具而言,即使云備份系統(tǒng)崩潰,也能通過系統(tǒng)基本工具進(jìn)行恢復(fù)。因此,由上述比較可知,云備份在大多數(shù)方面是優(yōu)于傳統(tǒng)備份的。
5 結(jié)束語
本文所設(shè)計(jì)的系統(tǒng)主要為中小企業(yè)提供便捷可行的云備份服務(wù)平臺(tái)。在結(jié)構(gòu)上與傳統(tǒng)備份結(jié)構(gòu)存在差異,核心組件融合備份服務(wù)端功能及備份介質(zhì)服務(wù)功能。在三種備份方式上添加智能備份,智能地選擇對數(shù)據(jù)的備份級別,有利于服務(wù)器端備份數(shù)據(jù)量動(dòng)態(tài)負(fù)載均衡。存儲(chǔ)后端采用云存儲(chǔ),為備份數(shù)據(jù)的可靠性、安全性提供保障。隨著云計(jì)算技術(shù)的不斷發(fā)展,分布式云存儲(chǔ)的優(yōu)勢不斷地在實(shí)際應(yīng)用中展現(xiàn),利用云存儲(chǔ)的高擴(kuò)展性、高可用性和低成本來解決常規(guī)備份介質(zhì)的不足已經(jīng)在業(yè)界得到共識(shí),使用云備份取代傳統(tǒng)備份已經(jīng)成為發(fā)展趨勢。
參考文獻(xiàn):
[1] 羅軍舟,金嘉暉,宋愛波,等. 云計(jì)算:體系架構(gòu)與關(guān)鍵技術(shù)[J]. 通信學(xué)報(bào), 2011(7): 3-21.
[2] 任宇寧. 云計(jì)算時(shí)代的存儲(chǔ)技術(shù)——云存儲(chǔ)[J]. 科技傳播, 2012(3): 214-215.
[3] taojin1240. 圖解三種備份方式(LAN,LAN free,Server free)[EB/OL]. [2017-05-10]. http://taotao1240.blog.51cto.com/731446/839702.
[4] Amazon Web Services. Amazon Simple Storage Service(Amazon S3)[EB/OL]. [2017-05-10]. http://aws.amazon.com/cn/s3/.
[5] runoob.com. linux dump命令[EB/OL]. [2017-05-10]. http://www.runoob.com/linux/linux-comm-dump.html.
[6] linuxde.net. Tar命令[EB/OL]. [2017-05-10]. http://man.linuxde.net/tar.
[7] Gnu Operating System. Gnu Tar[EB/OL]. [2017-05-10]. http://www.gnu.org/software/tar/.
[8] smbtar(1)-Linux man page. smbtar-shell script for backing up SMB/CIFS shares directly to UNIX tape drives[EB/OL]. (2016-10-21)[2017-05-10]. https://linux.die.net/man/1/smbtar.
[9] openssh.com. OpenSSH Features[EB/OL]. [2017-05-10]. http://www.openssh.com/features.html.
[10] xinpo66. CS架構(gòu)介紹[EB/OL]. (2012-11-15)[2017-05-10]. http://blog.csdn.net/xinpo66/article/details/8187998.
[11] zhaowcheng. 三大備份方式(完全備份、增量備份、差異備份)淺析[EB/OL]. (2014-04-02)[2017-05-10]. http://blog.csdn.net/zhaowchengblog/article/details/22821627.