楊 涌,陳勇源,劉磊鋒
(中國科學(xué)院重慶綠色智能技術(shù)研究院高性能計算應(yīng)用研究中心,重慶400714)
云災(zāi)備是利用虛擬化的、易于擴展的云存儲資源池提供數(shù)據(jù)級和應(yīng)用級容災(zāi)的解決方案。云災(zāi)備是災(zāi)備領(lǐng)域的一個新興概念,能為企業(yè)提供一套行之有效的存儲備份解決方案。云災(zāi)備是將災(zāi)備看做一種服務(wù),由客戶付費使用,災(zāi)備服務(wù)提供商將根據(jù)客戶需要提供針對性的存儲備份服務(wù)模式。采用這種模式,客戶可以利用服務(wù)提供商的優(yōu)勢網(wǎng)絡(luò)資源、技術(shù)資源、豐富的災(zāi)備項目實施經(jīng)驗和成熟的運維管理流程,快速實現(xiàn)自身的災(zāi)備目標,降低運維成本和工作強度,大幅度降低建設(shè)成本。
云災(zāi)備的基礎(chǔ)問題是數(shù)據(jù)存儲,即在新興的云存儲架構(gòu)上儲存數(shù)據(jù),而不是傳統(tǒng)本地存儲,因此,需要引入適合云存儲架構(gòu)的路由算法來解決數(shù)據(jù)傳輸和存儲等問題。DHT(Distributed Hash Table,分布式哈希表)算法就是使用分布式哈希函數(shù)來解決結(jié)構(gòu)化的分布式存儲問題[1]。分布式哈希表實際上是一張散列表,每個節(jié)點被分配給一個屬于自己的散列塊,并成為這個散列塊的管理者。目前,典型的DHT協(xié)議包括美國MIT的Chord、UC Berkeley的Tapestry和 CAN、紐約大學(xué)的Kademlia。文中設(shè)計的云災(zāi)備模型擬采用Kademlia協(xié)議實現(xiàn)路由算法核心功能[2]。
為了解決云災(zāi)備中存在的架構(gòu)設(shè)計難題,以目前主流的云計算和分布式存儲技術(shù)為基礎(chǔ),設(shè)計了一種基于DHT的分布式云災(zāi)備模型,該模型包括3層:物理設(shè)備層、Kaemlia路由協(xié)議層和應(yīng)用數(shù)據(jù)管理層。基于DHT的分布式云災(zāi)備模型構(gòu)架如圖1所示[3-6]。
(1)物理設(shè)備層
主要負責(zé)存儲節(jié)點的物理規(guī)劃和布局,從硬件角度解決數(shù)據(jù)存儲資源的收集和規(guī)劃。理論上隸屬因特網(wǎng)范圍內(nèi)的所有計算機存儲系統(tǒng)都能成為該災(zāi)備云網(wǎng)絡(luò)的節(jié)點之一。同時,該層還需要配置一定帶寬的通信網(wǎng)絡(luò),滿足大流量數(shù)據(jù)傳輸策略。本層是該云災(zāi)備模型的基本組成元素,貢獻給整個系統(tǒng)的是存儲空間、計算資源以及物理通信網(wǎng)絡(luò)。
(2)Kaemlia路由協(xié)議層
在路由協(xié)議設(shè)計方面,采用Kaemlia結(jié)構(gòu)化路由算法,從而實現(xiàn)對松散網(wǎng)絡(luò)節(jié)點資源的綜合利用;另外,以底層存儲物理資源互通為前提,在邏輯上實現(xiàn)DHT網(wǎng)絡(luò)的全覆蓋;該路由算法主要實現(xiàn)如下功能:①建立文件存儲的地址空間映射關(guān)系;②使用對稱加密技術(shù),實現(xiàn)存儲加密和取數(shù)據(jù)解密的功能。通常使用分組密碼或者序列密碼對上層已分塊的數(shù)據(jù)包進行密鑰控制加密。此加密方式的簡單、高效、安全等特性是該系數(shù)據(jù)存儲的核心安全機制;③負責(zé)數(shù)據(jù)的糾刪冗余性檢測,以達到一定的容錯性。
傳統(tǒng)的用于分布式系統(tǒng)的糾刪碼,如RS糾刪碼、陣列糾刪碼和LDPC糾刪碼等,都可以作為該云災(zāi)備模型中的備選糾刪碼[7-8]。
(3)應(yīng)用數(shù)據(jù)管理層
在整個系統(tǒng)中位于最上層,包含數(shù)據(jù)管理、用戶管理、數(shù)據(jù)分塊和恢復(fù)策略等災(zāi)備核心業(yè)務(wù)。首先提供給云災(zāi)備用戶文件存儲服務(wù)的接口和認證方式,提供給每個用戶的云存儲空間為100GB或者更大,主要依據(jù)底層存儲總資源的大小和用戶的信用等級,并能根據(jù)需要動態(tài)調(diào)整;然后對用戶個人信息的認證和數(shù)據(jù)前端加密,保證多用戶各自的獨立目錄空間,給予必要用戶數(shù)據(jù)安全性;最后針對數(shù)據(jù)的分塊操作,利用高響應(yīng)緩存來管理副本和元數(shù)據(jù),文件數(shù)據(jù)按照固定大小分塊加密封裝傳至下層DHT網(wǎng)絡(luò)的各個存儲節(jié)點。在完全副本冗余和就刪冗余等技術(shù)的協(xié)助下實現(xiàn)數(shù)據(jù)塊高效的索引和存取操作。
針對不同的災(zāi)備業(yè)務(wù)對災(zāi)備等級的要求,具體物理層實施方案可分為以下2種:
(1)支持虛擬節(jié)點級別的服務(wù)器集群實施方案
對于大型的云計算平臺,可采用主流的虛擬化平臺,如:VMware、XenServer、KVM 等,按照用戶需求將資源池的計算資源化分成若干虛擬的硬件資源,并采用遷移技術(shù)和云平臺管理系統(tǒng),使虛擬服務(wù)器群在統(tǒng)一的界面下進行管理,當(dāng)物理服務(wù)器因各種原因停機時,可以在網(wǎng)絡(luò)中實現(xiàn)自動切換功能,從而達到不中斷業(yè)務(wù)的目的。
(2)支持跨地域數(shù)據(jù)災(zāi)備實施方案
該方案實施時可分為2種方案:①將Internet網(wǎng)上的所有用戶PC作為災(zāi)備的節(jié)點進行實施;②在異地電信級數(shù)據(jù)機房租用存儲備份資源進行異地災(zāi)備處理。
在Kademlia算法中,每個Kademlia節(jié)點都有一個160比特的ID作為標識符。節(jié)點利用DHT儲存資料完成索引。所有節(jié)點被當(dāng)作一個二叉樹的葉子節(jié)點,并且每個節(jié)點的位置都由其ID值的最短前綴唯一確定。每個節(jié)點知道其各非空子樹的至少一個節(jié)點。Kademlia算法基于網(wǎng)絡(luò)中兩個節(jié)點之間的距離進行計算,該距離是兩個網(wǎng)絡(luò)節(jié)點ID號的異或,計算的結(jié)果最終被作為整型數(shù)值進行返回。另外,關(guān)鍵字和節(jié)點ID有同樣的格式和長度,因此,可以使用相同的方法計算關(guān)鍵字和節(jié)點ID之間的距離。
在Kademlia算法中,兩個節(jié)點之間的距離定義為兩個ID值異或的結(jié)果。Value值就存放在ID值和key值相同或者最接近的那個節(jié)點上。
在Kademlia網(wǎng)絡(luò)中,每個節(jié)點都維護了160個列表,其中,每個列表均被稱作一個k桶(k-bucket)。在第i個k桶中,記錄了當(dāng)前節(jié)點已知的與自身距離為2i~2i+1的一些其他對等節(jié)點的網(wǎng)絡(luò)信息(包括Node ID、IP地址、UDP端口等信息),每一個k桶中最多存放k個對端節(jié)點信息。每一個k桶中的對等節(jié)點信息均按訪問時間進行排序,Kademlia網(wǎng)絡(luò)中節(jié)點的路由表結(jié)構(gòu)如圖2所示。

圖2 Kademlia網(wǎng)絡(luò)中節(jié)點的路由表結(jié)構(gòu)Fig.2 Routing table structure of node in Kademlia network
網(wǎng)絡(luò)中的節(jié)點信息的加入與更新是隨著網(wǎng)絡(luò)中的節(jié)點被某現(xiàn)有節(jié)點不斷地發(fā)現(xiàn)而逐漸完成的,它們被逐步加入到該節(jié)點的相應(yīng)的列表中。這個過程中發(fā)現(xiàn)的所有節(jié)點都將被加入到節(jié)點的列表之中,因此,節(jié)點對整個網(wǎng)絡(luò)的具有動態(tài)感知能力,整個網(wǎng)絡(luò)的信息將保持按一定頻繁進行更新,從而提高了網(wǎng)絡(luò)抵御錯誤和攻擊的能力。
基于DHT的云災(zāi)備模型中,采用糾刪碼冗余的方式進行分布式冗余數(shù)據(jù)存儲管理。
對于RS(Reed-Solomon)糾刪碼,根據(jù)其生成矩陣的不同,可以把RS碼分為范德蒙碼和柯西碼。假若RS糾刪碼的生成矩陣G為一個k×n的矩陣,該生成矩陣由兩部分聯(lián)合構(gòu)成G=(Ik×k|Pk(nk)),其中前半部分的Ik×k是一個k階的單位矩陣,如果后面分的矩陣Pk(n-k)是范德蒙矩陣,則該RS糾刪碼為范德蒙糾刪碼;如果Pk(n-k)是柯西矩陣,那么該 RS糾刪碼為柯西糾刪碼[10-11]。RS碼數(shù)據(jù)分割編碼過程如圖3所示。

圖3 RS碼數(shù)據(jù)分割編碼過程示意Fig.3 RS code data partitioning process schematic diagram
對于糾刪碼的具體使用,首先,數(shù)據(jù)的源節(jié)點通過糾刪碼的編碼規(guī)則冗余生成較多的分塊;然后,系統(tǒng)將數(shù)據(jù)分塊和冗余分塊分發(fā)給相應(yīng)的存儲結(jié)點進行分別存儲;最后,當(dāng)用戶需要進行文件重組操作時,需要讀取一定數(shù)量的分塊文件,最終完成數(shù)據(jù)的恢復(fù)與重組。
隨著計算機技術(shù)的快速發(fā)展,極大地推動了云計算及其產(chǎn)業(yè)的快速培育,并對該領(lǐng)域帶來革命性變革。雖然,短期內(nèi)很難在云計算產(chǎn)業(yè)上出現(xiàn)類似文中提出的覆蓋整個因特網(wǎng)的基于DHT云災(zāi)備存儲架構(gòu),但文中提出的云災(zāi)備模型還是具有研究和實用價值。我們有理由相信,在不久的將來,覆蓋因特網(wǎng)甚至私人網(wǎng)絡(luò)的云存儲實體將會出現(xiàn),云計算終究在災(zāi)備領(lǐng)域中嶄露鋒芒。
[1]楊峰,李鳳霞,余宏,等.一種基于分布式哈希表的混合對等發(fā)現(xiàn)算法[J].軟件學(xué)報,2007,3(30):714-721.YANG Feng,LI Feng - Xia,YU Hong - Liang etc.,A Hybrid Peer-to-Peer Lookup Service Algorithm on Distributed Hash Table[J].Journal of Software,2007,3(30):714-721.
[2]孫知信,駱冰清,陳亞當(dāng),等.一種基于多維DHT空間映射的 P2P安全拓撲方案[J].中國科學(xué),2013,43(03):343-60.SUN Zhi-xin,LUO Bing-qing,CHEN Ya-dang etc.A P2P Topology Multi DHT based on Space Mapping[J].China Science,2013,43(03):343 -60.
[3]DABEK F,LI J,SIT E,et al.Designing a DHT for Low Latency and High Throughput[C]//Proceedings of NSDI.SanFrancisco,USA:[s.n.],2004.
[4]CHEN Guihai,WU Fan,LI Hongxing,et al.Redundancy Schemes for High Availability in DHTs[J].Chinese Journal of Computers,2008,10(31):990 -1000.
[5]陳釗.基于云災(zāi)備的數(shù)據(jù)安全存儲關(guān)鍵技術(shù)研究[D].北京:北京郵電大學(xué),2012.CHEN Zhao.Research on Key Technologies of Cloud Backup Data Security based Storage[D].Beijing:Doctoral Dissertation of Beijing University of Posts and Telecommunications,2012.
[6]溫安寧.基于DHT的key_value分布式存儲系統(tǒng)[D].哈爾濱:哈爾濱工業(yè)大學(xué),2010.WEN An-ning.The Key_Value Distributed Storage System based on DHT[D].Harbin:Harbin Institute of Technology,2010.
[7]楊楠.基于Kademlia的P2P網(wǎng)絡(luò)資源定位模型改進[D].湖北:湖北工業(yè)大學(xué),2010.YANG Nan.Improved P2P Cyber Source Location Model based on Kademlia[D].Hubei:Hubei University of Technology,2010.
[8]馮丹.網(wǎng)絡(luò)存儲關(guān)鍵技術(shù)的研究及進展[J].移動通信,2009,33(11):35 -39.FENG Dan.Research and Development of Key Technologies of Network Storage[J].The Mobile Communication,2009,33(11):35 -39.
[9]侯建,帥仁俊,侯文.基于云計算的海量數(shù)據(jù)存儲模型[J].通信技術(shù),2011,44(05):163 -165.HOU Jian,SHUAI Ren - jun,HOU Wen.Massive Data Storage Model based on Cloud Computing[J].Communications Technology,2011,44(05):163 -165.
[10]陶鈞,沙基昌,王暉.基于Erasure Code的分割文件P2P存儲結(jié)構(gòu)設(shè)計[J].國防科技大學(xué)學(xué)報,2008,30(06):57-62.TAO Jun,SHA Ji- Chang,WANG Hui.A Design for the Erasure Code Based Segmented File P2P Storage Structure[J].Journal of National University of Defense Technology,2008,30(06):57 -62.
[11]彭榮華.基于DHT的存儲系統(tǒng)中糾刪碼技術(shù)研究[D].西安:西安電子科技大學(xué),2013.PENG Rong-h(huán)ua.Research on Erasure Code Storage System based on DHT[D].Xi'an:Xi'an Electronic and Science University,2013.