楊志勇
(武漢船舶職業(yè)技術(shù)學(xué)院 湖北省武漢市 430051)
在現(xiàn)代化社會(huì)發(fā)展過程中,云計(jì)算成為了社會(huì)各界關(guān)注的焦點(diǎn),在技術(shù)方面,云存儲(chǔ)系統(tǒng)為上層服務(wù)提供了十分重要的支持,與此同時(shí),通過應(yīng)用云存儲(chǔ)技術(shù)可以對(duì)海量數(shù)據(jù)進(jìn)行科學(xué)管理。從本質(zhì)來看,云存儲(chǔ)分布式文件系統(tǒng)架構(gòu)十分復(fù)雜,在建立過程中需要將計(jì)算機(jī)系統(tǒng)作為前提條件,而且必須要支持節(jié)點(diǎn)規(guī)模較大的數(shù)據(jù)存儲(chǔ),在這樣的要求下,云存儲(chǔ)系統(tǒng)也面臨著十分嚴(yán)峻的挑戰(zhàn)。
目前,云計(jì)算技術(shù)的快速崛起,使其成為了信息發(fā)展領(lǐng)域中一項(xiàng)重點(diǎn)研究話題,與以往存儲(chǔ)設(shè)備相比,云存儲(chǔ)不單純是硬件這么簡(jiǎn)單,是一個(gè)由多種類型程序客戶端組成的綜合系統(tǒng)[1]。從使用者角度分析來看,云存儲(chǔ)不單指某一具體設(shè)備,而是代表著多種存儲(chǔ)設(shè)施與存儲(chǔ)器的融合結(jié)構(gòu)。在云存儲(chǔ)系統(tǒng)應(yīng)用期間,工作人員并不會(huì)使用同一類型設(shè)備,而是針對(duì)整個(gè)系統(tǒng)數(shù)據(jù)進(jìn)行訪問。云存儲(chǔ)技術(shù)應(yīng)用的關(guān)鍵就是將軟件和存儲(chǔ)設(shè)備結(jié)合在一起,利用應(yīng)用軟件使存儲(chǔ)設(shè)備轉(zhuǎn)化為存儲(chǔ)服務(wù)。在云存儲(chǔ)概念提出之后,社會(huì)眾多廠商都給予了其較大的關(guān)注,例如:Goole 推出了在線存儲(chǔ)服務(wù)GDrive,Amazon 公司推出了彈性塊存儲(chǔ)技術(shù),用來支持?jǐn)?shù)據(jù)長久性存儲(chǔ)。云存儲(chǔ)技術(shù)更關(guān)注于為其他組織結(jié)構(gòu)提供充足存儲(chǔ)空間,每個(gè)云存儲(chǔ)設(shè)備都會(huì)由單一的組織運(yùn)行。而服務(wù)是云存儲(chǔ)系統(tǒng)中的關(guān)鍵組成內(nèi)容。系統(tǒng)使用人員可以利用服務(wù)器來上傳或訪問資源。同時(shí),云存儲(chǔ)服務(wù)利用SLA 等服務(wù)來提供最基本的技術(shù)保障。在云存儲(chǔ)系統(tǒng)中,存儲(chǔ)服務(wù)通過DAAS 提供,這與云計(jì)算SaaS 和HaaS 等其他服務(wù)模塊組建成paaS[2]。所以在整合服務(wù)的影響下,用戶可以建立一個(gè)虛擬化平臺(tái)。如此一來就能夠使相關(guān)服務(wù)帶來較大的靈活性。
現(xiàn)如今,云存儲(chǔ)系統(tǒng)類型有將近上百種,部分云存儲(chǔ)系統(tǒng)中都有重要關(guān)注要素,比如電子郵件數(shù)據(jù)和數(shù)字化圖像等。
云存儲(chǔ)技術(shù)與云計(jì)算技術(shù)之間的關(guān)系十分密切。甚至從另一角度來看,云存儲(chǔ)系統(tǒng)是在云計(jì)算系統(tǒng)基礎(chǔ)上建立起來的,這時(shí)候云存儲(chǔ)概念只能夠充當(dāng)于一種云計(jì)算服務(wù),通常被稱之為存儲(chǔ)云。像Amazon 公司的S3 服務(wù),就是以云計(jì)算服務(wù)為基礎(chǔ)形成的數(shù)據(jù)存儲(chǔ)體系,S3 服務(wù)指的就是云服務(wù),所以該系統(tǒng)也被稱之為云存儲(chǔ)系統(tǒng)。另外,文件是云存儲(chǔ)系統(tǒng)中必不可少的支持內(nèi)容,一般都依靠分布式文件系統(tǒng)來實(shí)現(xiàn),這也是組成云存儲(chǔ)系統(tǒng)的基礎(chǔ)條件,它能夠?qū)ν饨缰苯犹峁┰拼鎯?chǔ)服務(wù)[3]。所以,云存儲(chǔ)也是云計(jì)算的底層服務(wù)內(nèi)容。
3.1.1 分布式文件系統(tǒng)與云存儲(chǔ)系統(tǒng)
所謂得到分布式文件系統(tǒng)指的是與本地節(jié)點(diǎn)沒有直接關(guān)聯(lián)的存儲(chǔ)資源,而是通過計(jì)算機(jī)網(wǎng)絡(luò)與節(jié)點(diǎn)之間聯(lián)系在一起。分布式文件系統(tǒng)設(shè)計(jì)主要是將服務(wù)器模式作為基礎(chǔ)內(nèi)容。一個(gè)基礎(chǔ)的網(wǎng)絡(luò)必然會(huì)包含多個(gè)服務(wù)器來實(shí)現(xiàn)用戶訪問。此外,它所具備的對(duì)等特性也會(huì)讓一些系統(tǒng)擔(dān)任服務(wù)器和客戶機(jī)雙重身份。例如:用戶可以退出能夠被其他用戶訪問的目錄,如果目錄被訪問,那么對(duì)用戶而言就與使用本地驅(qū)動(dòng)器相同。
從實(shí)際應(yīng)用情況來看,不同的分布式文件系統(tǒng)可以適應(yīng)不同的環(huán)境,在云存儲(chǔ)技術(shù)飛速發(fā)展的各個(gè)關(guān)鍵時(shí)期,都能夠發(fā)揮出應(yīng)有的性能,滿足當(dāng)前計(jì)算系統(tǒng)所提出的要求[4]。分布式文件系統(tǒng)在設(shè)計(jì)期間需要基本的存儲(chǔ)結(jié)構(gòu)支持,結(jié)合存儲(chǔ)介質(zhì)融合形式來展開劃分。
3.1.2 GFS 架構(gòu)研究
GFS 與傳統(tǒng)的分布式文件系統(tǒng)之間擁有很多相似的目標(biāo),但是在具體設(shè)計(jì)過程中受環(huán)境驅(qū)動(dòng)的影響,與早期文件系統(tǒng)也有所不同。這就要求對(duì)分布式文件系統(tǒng)進(jìn)行重新挑選,并在此基礎(chǔ)上檢驗(yàn)不同的設(shè)計(jì)觀點(diǎn)。
master 和眾多chunk server 組成了GFS 整體,用戶可以進(jìn)行多層次訪問。如果信息資源的可靠性能夠得到保障,那么chunk server 與客戶端運(yùn)行就會(huì)處于同一臺(tái)機(jī)器上[5]。分布式并行拓展架構(gòu)如圖1 所示。
圖1:分布式文件并行擴(kuò)展架構(gòu)
3.1.3 HDFS 架構(gòu)研究
現(xiàn)如今,有關(guān)GFS 研究的相關(guān)資料較少,特別是一些具體實(shí)現(xiàn)細(xì)節(jié),在保密因素的影響下無從得知。以云計(jì)算平臺(tái)為中心的研究正逐漸成為科研和商業(yè)領(lǐng)域研究的熱點(diǎn)話題。HDFS 屬于是GFS架構(gòu)的開源實(shí)現(xiàn),并且其中包含著大量的參考文檔和實(shí)驗(yàn)方法,因此可以通過某些關(guān)鍵技術(shù)進(jìn)行深入研究。HDFS 所采用的是master slave 架構(gòu),一個(gè)完整的HDFS 集群主要是由Namenode 和少部分DataNodes 組成。Namenode 是一種核心服務(wù)器,主要負(fù)責(zé)管理文件系統(tǒng)的名字空間和客戶端對(duì)文件的訪問情況。處于集群當(dāng)中的DataNode 通常每個(gè)節(jié)點(diǎn)都分布一個(gè),主要任務(wù)就是管理其他節(jié)點(diǎn)上的存儲(chǔ)。HDFS 暴露了文件系統(tǒng)的名字空間,用戶可以通過文件的形式來了解上面的存儲(chǔ)數(shù)據(jù)。從內(nèi)部情況來看,一個(gè)完整的文件可以被分成多個(gè)數(shù)據(jù)塊,這些數(shù)據(jù)塊也會(huì)存儲(chǔ)在一組Datannode 上。而Namenode 在統(tǒng)一調(diào)度下可以進(jìn)行數(shù)據(jù)塊創(chuàng)建、刪除和復(fù)制,與DataNode 都被共同設(shè)計(jì)在普通商用機(jī)器上運(yùn)行。這些機(jī)器工程都在運(yùn)行GNU 或Linux 系統(tǒng)。
除了上述內(nèi)容之外,HDFS 還可以支持傳統(tǒng)層次型文件組織結(jié)構(gòu)。用戶或者應(yīng)用程序都可以創(chuàng)建目錄,隨后將其保存到目錄當(dāng)中。文件系統(tǒng)名字空間層次結(jié)構(gòu)與大多數(shù)現(xiàn)存文件系統(tǒng)相類似,用戶都可以在上面重建、刪除或重命名文件,現(xiàn)如今,HDFS 不再支持用戶磁盤配額和訪問權(quán)限控制,更不支持軟硬鏈接。
Namenode 負(fù)責(zé)的是維護(hù)文件系統(tǒng)中的名字空間,如果發(fā)現(xiàn)任何修改文件系統(tǒng)名字空間或?qū)傩缘男袨椋紩?huì)被Namenode 記載下來。應(yīng)用程序可以設(shè)置HDFS 保存文件的副本數(shù)量,這里的文件副本數(shù)目也被稱之為副本系數(shù),這些信息也都是由Namenode 負(fù)責(zé)保存的。
為了能夠全面提高分布式系統(tǒng)的穩(wěn)定性和性能,其架構(gòu)經(jīng)常會(huì)采取元數(shù)據(jù)冗余的方法。也就是通過數(shù)據(jù)服務(wù)器來構(gòu)成元數(shù)據(jù)服務(wù)層,讓每個(gè)代理機(jī)構(gòu)都能夠形成相應(yīng)的服務(wù)節(jié)點(diǎn)。利用元數(shù)據(jù)來優(yōu)化云存儲(chǔ)系統(tǒng)方案,這是因?yàn)镚FS 為代表的主從存儲(chǔ)模式,構(gòu)成了性能和可靠性方面的問題。為了能夠有效提高并行處理性能,可以利用BlobSeer 存儲(chǔ)層來取代Hadoop 云計(jì)算系統(tǒng)的分布式文件存儲(chǔ)系統(tǒng)。但是雖然BlobSeer 加強(qiáng)了并發(fā)性,但是并沒有從根本上解決可靠性問題。雖然一致性和可靠性不能同時(shí)兼得,但是可以盡可能地做到平衡。所以元數(shù)據(jù)服務(wù)器在不同節(jié)點(diǎn)都會(huì)有所備份,這樣一來既提高了容錯(cuò)率,同時(shí)也降低了文件鎖服務(wù)的難度。也就是說,科學(xué)高效的冗余方法是加強(qiáng)云存儲(chǔ)系統(tǒng)穩(wěn)定性的必要保障。由于很多代理機(jī)構(gòu)都肩負(fù)著元數(shù)據(jù)服務(wù)器中的服務(wù)內(nèi)容,因此每個(gè)節(jié)點(diǎn)都可以成為服務(wù)器入口,從而提高云存儲(chǔ)系統(tǒng)運(yùn)行的穩(wěn)定性。此外,不同的代理機(jī)之間也會(huì)應(yīng)用P2P 設(shè)置和搜索引擎等技術(shù),大大提高了分布式系統(tǒng)的穩(wěn)定性,其他代理服務(wù)器也會(huì)因此將各自元數(shù)據(jù)當(dāng)做系統(tǒng)緩存,加強(qiáng)了訪問工作的并發(fā)性。然而,元數(shù)據(jù)服務(wù)代理機(jī)構(gòu)也使得元數(shù)據(jù)復(fù)制一致性問題解決難度逐漸提高。
元數(shù)據(jù)服務(wù)層屬于分布式文件系統(tǒng)的中心內(nèi)容。與GFS 系統(tǒng)相比,架構(gòu)應(yīng)用了不同代理方式,使其中的元數(shù)據(jù)和master 主機(jī)整合在一起,形成了比較對(duì)等的分布式網(wǎng)絡(luò)服務(wù)結(jié)構(gòu),并組成了元數(shù)據(jù)服務(wù)層[6]。元數(shù)據(jù)服務(wù)層的功能模塊定義有以下幾點(diǎn):
(1)請(qǐng)求偵聽:其中主要包含客戶端和數(shù)據(jù)服務(wù)器請(qǐng)求??蛻舳耸侵负忻挚臻g創(chuàng)建、刪除以及重用名等相關(guān)服務(wù)平臺(tái)。
(2)請(qǐng)求處理:請(qǐng)求處理具體是指將偵聽時(shí)間進(jìn)行科學(xué)有效的處理并將結(jié)果及時(shí)返回。
(3)元數(shù)據(jù)管理:元數(shù)據(jù)主要代表的是名字空間,反映的是文件塊和文件之間的聯(lián)系。
(4)文件夾管理:這主要指的是新文件夾的創(chuàng)建、拷貝以及無效文件夾的移除與回收。
GFS 系統(tǒng)所采用的是無關(guān)命名服務(wù),對(duì)容災(zāi)系統(tǒng)起到了有利支持。當(dāng)一臺(tái)設(shè)備出現(xiàn)故障問題時(shí),增加一臺(tái)新的主機(jī)就能夠獲得指定的IP 地址,并不需要與其他地址信息進(jìn)行關(guān)聯(lián)。而在接入和負(fù)載均衡系統(tǒng)中。此系統(tǒng)的架構(gòu)與HDFS 相類似,都可以在集群內(nèi)部使用,這樣就可以使用常見的軟件和技術(shù),上層路由器的帶寬必須要足夠大,之后再利用分流軟件來均衡負(fù)載,再這樣的系統(tǒng)架構(gòu)作用下,由于應(yīng)用了大量的服務(wù)器代理,所以每個(gè)元數(shù)據(jù)服務(wù)器都能夠通過隨機(jī)接入的方法很好的工作。與此同時(shí),每個(gè)運(yùn)輸局服務(wù)層節(jié)點(diǎn)都可以構(gòu)成一個(gè)接入點(diǎn),接入過程可以采用Lamport 時(shí)鐘,確保負(fù)載能夠得到良好均衡。
在HDFS 典型配置情況下,每個(gè)機(jī)架都擁有至少40 臺(tái)服務(wù)器,在GFS 系統(tǒng)中,不同的集群都可以支持1000 左右的節(jié)點(diǎn)。在此系統(tǒng)架構(gòu)作用下,大量節(jié)點(diǎn)模式可以得到有效支持,這也是應(yīng)用代理機(jī)模式所擁有的獨(dú)特優(yōu)勢(shì)。
在此期間,代理機(jī)模型可以用于元數(shù)據(jù)服務(wù)層,但設(shè)計(jì)規(guī)模要控制在合理范圍內(nèi),這樣可以有效提高其實(shí)用性,滿足廣域網(wǎng)所提出的架構(gòu)要求。因?yàn)樵搶又饕捎玫氖菍?duì)等式架構(gòu),當(dāng)p2p 網(wǎng)絡(luò)規(guī)模超出標(biāo)準(zhǔn)范圍時(shí),網(wǎng)絡(luò)數(shù)據(jù)更新就會(huì)出現(xiàn)延遲、抖動(dòng)等情況,與此同時(shí)還有在一定程度上提高搜索流程的復(fù)雜性,特別是Dynamo系統(tǒng)中的DHT 協(xié)議,并不能良好地支持語義搜索。除此之外,更加重要的是,小規(guī)模元數(shù)據(jù)服務(wù)層不僅有效減少了大規(guī)模對(duì)等式網(wǎng)絡(luò)設(shè)計(jì)的復(fù)雜程度,同時(shí)也可以將現(xiàn)有的GFS,HDFS 主從式網(wǎng)絡(luò)服務(wù)器節(jié)點(diǎn)數(shù),可以將服務(wù)并發(fā)處理能力提高超過200 多倍,當(dāng)代理基數(shù)不超過256 時(shí),這就是一個(gè)效果十分明顯的提升。
總而言之,云存儲(chǔ)的分布式文件系統(tǒng)結(jié)構(gòu)十分復(fù)雜,它與以往的文件分布系統(tǒng)相比,始終建立與云計(jì)算基礎(chǔ)設(shè)施之上,這樣的基礎(chǔ)設(shè)施價(jià)格十分低廉,還要容納海量的超大節(jié)點(diǎn)數(shù)據(jù),與此同時(shí)并發(fā)能力較高和低延遲的服務(wù)能力也是其重要優(yōu)勢(shì)。為了可以滿足這部分高性能要求,必須要研究并實(shí)現(xiàn)各項(xiàng)關(guān)鍵技術(shù)。