陳 敏
(廣東電網(wǎng)公司,廣東廣州 510600)
安全存儲(chǔ)以及備份數(shù)據(jù)一直是人們?cè)谟?jì)算機(jī)存儲(chǔ)領(lǐng)域關(guān)注的焦點(diǎn)。人們經(jīng)常把數(shù)據(jù)存儲(chǔ)于自己的單體計(jì)算機(jī)上??墒?,單體計(jì)算機(jī)數(shù)據(jù)丟失的風(fēng)險(xiǎn)很大,比如系統(tǒng)錯(cuò)誤、物理?yè)p傷、病毒感染、人為錯(cuò)誤等,所以時(shí)常丟失重要的文件和數(shù)據(jù)。而且,單體計(jì)算機(jī)的存儲(chǔ)容量是比較有限的,且擴(kuò)張能力受到了很大的限制[1]。
分布式存儲(chǔ)系統(tǒng)的問(wèn)世使得存儲(chǔ)方式從上述的集中式存儲(chǔ)系統(tǒng)的缺點(diǎn)中得到了優(yōu)化。分布式系統(tǒng)從某個(gè)角度來(lái)看有點(diǎn)同于把雞蛋放進(jìn)不同籃子里的理念。這其實(shí)是很多年前人類就有的意識(shí),而非是新概念,并且可以追溯到工業(yè)控制領(lǐng)域由集散型控制變化至分布式控制的進(jìn)程。這原理可以解釋為在不同的服務(wù)器上形成大量的存儲(chǔ)文件,它可以顯著提高所存儲(chǔ)的文件的安全性。分布式存儲(chǔ)系統(tǒng)實(shí)際上是建立在網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)(圖1所示)中。該系統(tǒng)具有高透明性,不僅可以為用戶提供高安全性,并能提供更高的可伸縮性。而分布式文件系統(tǒng)也有很多技術(shù)難點(diǎn),其中有不同的接口和數(shù)據(jù)標(biāo)準(zhǔn)化、元數(shù)據(jù)集群的負(fù)載均衡以及快照備份等。實(shí)際上,計(jì)算、儲(chǔ)存以及標(biāo)準(zhǔn)接口是所有的云系統(tǒng)建設(shè)成功的最基本的保證[2]。
圖1 分布式文件系統(tǒng)框圖
由于廣域網(wǎng)的分布式存儲(chǔ)系統(tǒng)通常僅限于局域網(wǎng),并以構(gòu)建分布式系統(tǒng)存儲(chǔ)在更大范圍內(nèi),網(wǎng)絡(luò)文件系統(tǒng)理所當(dāng)然地被提了出來(lái);這是通過(guò)互聯(lián)網(wǎng)聯(lián)通的網(wǎng)格,融入整個(gè)網(wǎng)絡(luò)可以實(shí)現(xiàn)資源存儲(chǔ)、信息數(shù)據(jù)資源、以及其他資源全面協(xié)作共享。該協(xié)議GirdFTP是存儲(chǔ)服務(wù)器使用更多的控制權(quán)后在FTP上的優(yōu)化結(jié)果,所以,網(wǎng)格文件系統(tǒng)恰是分布式文件系統(tǒng)的擴(kuò)張。
Google文件系統(tǒng)GFS就是Google公司應(yīng)對(duì)大規(guī)模文件處理存儲(chǔ)需要的結(jié)果,其結(jié)構(gòu)如圖2所示。GFS的主要組成部分有一個(gè)主服務(wù)器(mas?ter)、多個(gè)訪問(wèn)客戶端(clients)以及多個(gè)塊服務(wù)器(chunkserver)。而GFS實(shí)際上不具備多個(gè)主服務(wù)器,因此本質(zhì)上是屬于DCS分散控制系統(tǒng),因此不可避免地存在單點(diǎn)故障[3]。
圖3 服務(wù)端功能組圖
圖2 GFS的體系結(jié)構(gòu)圖
通過(guò)采用現(xiàn)有的網(wǎng)路存儲(chǔ)服務(wù),將其整理,這樣就有了資源服務(wù)“云”,一個(gè)分布式資源管理服務(wù)系統(tǒng)由此形成。通過(guò)分散聚合和管理存儲(chǔ)服務(wù)點(diǎn),從而使原來(lái)的點(diǎn)被整合在各種存儲(chǔ)服務(wù)中,形成關(guān)聯(lián)的面至點(diǎn)的服務(wù)模式。可以在運(yùn)行中把自己的系統(tǒng)規(guī)模放大。
一個(gè)好的云存儲(chǔ)安全系統(tǒng)的建設(shè)有許多技術(shù)上的困難。其中有必不可少的較好的硬件系統(tǒng)、可靠的服務(wù)器和存儲(chǔ)設(shè)備、安全的客戶端程序、應(yīng)用軟件以及公共訪問(wèn)端口等。以可靠的存儲(chǔ)設(shè)備為基礎(chǔ),通過(guò)軟件程序支持從而最終構(gòu)成一個(gè)可以對(duì)外進(jìn)行訪問(wèn)和數(shù)據(jù)存儲(chǔ)服務(wù)的復(fù)雜系統(tǒng)[4]。
該系統(tǒng)首先需要獲取和管理存儲(chǔ)服務(wù)。這些存儲(chǔ)服務(wù)可以通過(guò)各種方法得到。再者,要?jiǎng)?chuàng)建網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),需要整合各種存儲(chǔ)服務(wù)。該系統(tǒng)一共有兩個(gè)基礎(chǔ)任務(wù),即通過(guò)服務(wù)接口和客戶端的配合,進(jìn)行數(shù)據(jù)的共享處理和存儲(chǔ)管理。
(1)服務(wù)端
服務(wù)端的組成部分有:存儲(chǔ)服務(wù)管理、元數(shù)據(jù)管理、調(diào)度模塊以及存儲(chǔ)服務(wù)選擇模塊等。主要是用來(lái)提供數(shù)據(jù)存儲(chǔ)管理服務(wù),如圖3。各功能模塊定義如下:
存儲(chǔ)服務(wù)管理器——用于管理存儲(chǔ)群的效率,最大限度地提高存儲(chǔ)點(diǎn)、存儲(chǔ)組;
元數(shù)據(jù)管理——用于記錄元數(shù)據(jù),管理處理信息系統(tǒng)和期望的狀態(tài),以及和文件共享客戶端共同處理共享任務(wù)。
(2)客戶端
客戶端的構(gòu)成部分有:資源定位模塊、本地?cái)?shù)據(jù)管理模塊、文件處理等模塊,如圖4所示。各功能模塊定義如下:
資源定位模塊——以元數(shù)據(jù)為基礎(chǔ),通過(guò)系統(tǒng)的當(dāng)前狀態(tài)判斷和定位資源所在區(qū)域;
本地?cái)?shù)據(jù)管理模塊——接受服務(wù)器數(shù)據(jù),存儲(chǔ)于內(nèi)存,緩解了服務(wù)器壓力;
文檔處理模塊——可以用不同的方式對(duì)不同屬性的文件進(jìn)行共享。
由客戶端來(lái)構(gòu)建P2P覆蓋網(wǎng)絡(luò),這樣每個(gè)用戶都相互共享文件,最終一定程度上解決了存儲(chǔ)服務(wù)任務(wù)太重的問(wèn)題??蛻舳送ㄟ^(guò)保存一部分信息,如客戶文件保存信息、客戶的臨接點(diǎn)??蛻舻牟僮饔涗浀刃畔⒖梢愿玫木S護(hù)覆蓋網(wǎng)絡(luò)。
(3)服務(wù)器—客戶端功能模塊配置
具體配置如圖5所示。
圖4 客戶端組件功能
圖5 服務(wù)器-客戶端功能模塊配置圖
為了整合各種網(wǎng)絡(luò)上的獨(dú)立存儲(chǔ)服務(wù),系統(tǒng)需要接觸到各種不同的應(yīng)用協(xié)議,也就是說(shuō),需要設(shè)計(jì)一個(gè)標(biāo)準(zhǔn)的接口,這樣它甚至可以解決多種數(shù)據(jù)集的幀格式。而且,出于長(zhǎng)遠(yuǎn)性發(fā)展的考慮,標(biāo)準(zhǔn)接口應(yīng)該是易于擴(kuò)展的。本標(biāo)準(zhǔn)接口可以被看作是一個(gè)廣泛適用的“編譯器”,它可以在不同的幀格式下屏蔽不同協(xié)議的異質(zhì)性。
每個(gè)節(jié)點(diǎn)以延遲量為基本依據(jù)來(lái)維護(hù)一個(gè)Meridian多解析同心結(jié)構(gòu)。組播組節(jié)點(diǎn)應(yīng)用就是基于這種環(huán)的結(jié)構(gòu)。Meridian實(shí)際上是一個(gè)松散的非結(jié)構(gòu)化網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。在Meridian中,每個(gè)節(jié)點(diǎn)負(fù)責(zé)維護(hù)若干相鄰節(jié)點(diǎn),而一個(gè)通信的多個(gè)解析環(huán)則是根據(jù)延遲量組織而成,如圖6所示。Meridian通過(guò)上述方法不僅保證了連接,并且把相對(duì)較小等待時(shí)間的內(nèi)部節(jié)點(diǎn)放在一起,確保了多組節(jié)點(diǎn)低延遲特征。應(yīng)用層組播網(wǎng)絡(luò)節(jié)點(diǎn)實(shí)際在拓?fù)浣Y(jié)構(gòu)上和Gnutella非常相似。
圖6 拓?fù)浣Y(jié)構(gòu)
系統(tǒng)必須要添加新節(jié)點(diǎn),添加新的節(jié)點(diǎn)的過(guò)程如下所述:向服務(wù)器發(fā)出調(diào)度服務(wù)請(qǐng)求,然后將請(qǐng)求發(fā)送到在調(diào)度中的其他節(jié)點(diǎn),調(diào)度節(jié)點(diǎn)通過(guò)程序在自己的維護(hù)的各環(huán)中選擇幾個(gè)節(jié)點(diǎn),通過(guò)各種子節(jié)點(diǎn)和新加入節(jié)點(diǎn)之間的測(cè)速,利用信息的延遲時(shí)間,找到最合適的種子節(jié)點(diǎn)。
新節(jié)點(diǎn)通過(guò)定期在其環(huán)結(jié)構(gòu)中更新調(diào)度節(jié)點(diǎn),新節(jié)點(diǎn)向調(diào)度節(jié)點(diǎn)發(fā)送種子節(jié)點(diǎn)請(qǐng)求信息,重復(fù)一個(gè)新節(jié)點(diǎn)被添加的過(guò)程系統(tǒng),更新每層環(huán)結(jié)構(gòu)的方法則是測(cè)試種子節(jié)點(diǎn)之間的延遲信息。一旦有節(jié)點(diǎn)退出,該節(jié)點(diǎn)所在環(huán)結(jié)構(gòu)中心節(jié)點(diǎn)會(huì)發(fā)現(xiàn)與其之間的消息不通,從而將其刪除出隊(duì)列。
共享信息路由是通過(guò)應(yīng)用層多播組轉(zhuǎn)發(fā)的。不同節(jié)點(diǎn)的應(yīng)用層多播組挑選節(jié)點(diǎn)的位置是自己維護(hù)的多解析環(huán)結(jié)構(gòu)部分的最內(nèi)層的環(huán)中。開始時(shí)應(yīng)用層多播組中沒(méi)有節(jié)點(diǎn),選擇中心節(jié)點(diǎn)與多解析環(huán)結(jié)構(gòu)中延遲相對(duì)最小的一組候選節(jié)點(diǎn)作為新的應(yīng)用層多播節(jié)點(diǎn)。應(yīng)用層組播組的策略是心跳機(jī)制,它使用定期查詢反饋以確保節(jié)點(diǎn)的活躍。一旦發(fā)現(xiàn)組內(nèi)的死亡節(jié)點(diǎn),系統(tǒng)便會(huì)把其刪除,然后再用上述方式補(bǔ)充新節(jié)點(diǎn)。如果系統(tǒng)發(fā)現(xiàn)最內(nèi)層多解析環(huán)結(jié)構(gòu)為空,系統(tǒng)將延遲一個(gè)時(shí)間長(zhǎng)度,以使多解析環(huán)結(jié)構(gòu)維護(hù)和填充最里面的環(huán),延遲結(jié)束后如果發(fā)現(xiàn)時(shí)間后最里面的環(huán)還未空,便要刺激解析環(huán)結(jié)構(gòu),然后通過(guò)系統(tǒng)服務(wù)器調(diào)度重建環(huán)狀結(jié)構(gòu)。
如果系統(tǒng)要建立自動(dòng)復(fù)制數(shù)據(jù)的更有效的機(jī)制,系統(tǒng)需要看兩個(gè)因素,即:數(shù)據(jù)開始復(fù)制的時(shí)間和數(shù)據(jù)復(fù)制的價(jià)值。
對(duì)節(jié)點(diǎn)的操作進(jìn)行比較準(zhǔn)確的預(yù)測(cè)是確定啟動(dòng)復(fù)制時(shí)機(jī)的核心。但是,準(zhǔn)確預(yù)測(cè)的難度是很大的,這其中的一個(gè)主要原因便是網(wǎng)絡(luò)中各個(gè)客戶的操作有很大的隨機(jī)性和不確定性。為了解決這個(gè)問(wèn)題,一個(gè)基本的方法便是通過(guò)獲取用戶歷次會(huì)話情況從而得到會(huì)話長(zhǎng)度的平均值。通過(guò)分析用戶會(huì)話時(shí)長(zhǎng)的平均值和當(dāng)前在線時(shí)間的某種關(guān)聯(lián)特征,利用這種特點(diǎn)判斷預(yù)測(cè)用戶節(jié)點(diǎn)的退出時(shí)間。雖然不能做到十分準(zhǔn)確,但是可以提高準(zhǔn)確性,最終減少數(shù)據(jù)復(fù)制的頻度。
而估計(jì)數(shù)據(jù)的復(fù)制價(jià)值需要引入供給系數(shù)和需求系數(shù)。也就是說(shuō)數(shù)據(jù)塊的需求系數(shù)和被請(qǐng)求訪問(wèn)的數(shù)量成正比;供給系數(shù)和數(shù)據(jù)塊副本數(shù)量成正比。最終,復(fù)制價(jià)值和需求系數(shù)成正比,和供給系數(shù)成反比。
綜上,數(shù)據(jù)的供給系數(shù)相對(duì)于需求系數(shù)對(duì)于系統(tǒng)數(shù)據(jù)主動(dòng)復(fù)制機(jī)制來(lái)講是一個(gè)更重要的參數(shù),這是由于一個(gè)數(shù)據(jù)塊即使需求系數(shù)高,但該數(shù)據(jù)有了很多備份拷貝文件,從而復(fù)制價(jià)值反而可能比較低;而用戶節(jié)點(diǎn)會(huì)話時(shí)間平均值與當(dāng)前在線時(shí)間的某種關(guān)系,其結(jié)論也僅僅具一定的統(tǒng)計(jì)價(jià)值,不過(guò)這確實(shí)能夠減少服務(wù)器的負(fù)擔(dān)。
數(shù)據(jù)塊數(shù)據(jù)的準(zhǔn)確性和數(shù)據(jù)的準(zhǔn)確定位的一個(gè)重要因素便是數(shù)據(jù)塊在數(shù)據(jù)庫(kù)中的緩存信息和數(shù)據(jù)塊的快照信息的一致程度。而畢竟客戶機(jī)的存儲(chǔ)能力有限度,因而需要留下新數(shù)據(jù)去除舊的復(fù)制價(jià)值最小的數(shù)據(jù)。
為了保障當(dāng)前緩存的狀態(tài)能夠正確無(wú)誤地反映于快照信息,緩存服務(wù)器進(jìn)行所有數(shù)據(jù)塊的添加或刪除操作都應(yīng)該和該數(shù)據(jù)所屬文件快照信息更新操作進(jìn)行緊密結(jié)合。而任何一個(gè)數(shù)據(jù)庫(kù)的添加或刪除的失誤操作都會(huì)觸發(fā)數(shù)據(jù)操作的恢復(fù)和回滾。
為了保護(hù)緩存反映快照正確的信息的工作狀態(tài),緩存服務(wù)器添加或刪除所有的數(shù)據(jù)塊應(yīng)和提交的信息的快照進(jìn)行實(shí)時(shí)的信息交流。添加或刪除任何數(shù)據(jù)庫(kù)錯(cuò)誤都將觸發(fā)操作回滾和恢復(fù)。
本文設(shè)計(jì)的開放資源管理服務(wù)系統(tǒng),通過(guò)把孤立分散的網(wǎng)上存儲(chǔ)服務(wù)資源進(jìn)行統(tǒng)一管理,從而為用戶提供了可靠、快速、低成本的存儲(chǔ)服務(wù);本系統(tǒng)一定程度上解決了系統(tǒng)數(shù)據(jù)復(fù)制任務(wù)太重的問(wèn)題,提出了合理的措施,可以高效地管理服務(wù)器的存儲(chǔ)空間,而且降低了數(shù)據(jù)復(fù)制任務(wù)的壓力。該系統(tǒng)利用的是網(wǎng)上容易獲取的存儲(chǔ)資源,本系統(tǒng)采用的存儲(chǔ)資源可以在網(wǎng)上獲取,而且采用的是面到點(diǎn)的服務(wù),規(guī)??梢院罄m(xù)伸縮,性價(jià)比高。
[1]金海,袁平鵬.語(yǔ)義網(wǎng)數(shù)據(jù)管理技術(shù)及應(yīng)用[M].北京:科學(xué)出版社,2010.
[2]Hayes B.Cloud Computing [J].Communications of the ACM,2008,51(7):9-11.
[3] NAMJOSHI J,GUPTE A.Service Oriented Architecture for Cloud Based Travel Reservation Software as a Service[A].Proceedings of the 2009 IEEE International Con?ference on Cloud Computing (CLOUD’ 09)[C].USA:IEEE Computer Society,2009:147-150.
[4]王慶波,金涬,何樂(lè),等.虛擬化與云計(jì)算[M].北京:電子工業(yè)出版社,2009.