謝起朝
摘要:云計算技術(shù)目前已經(jīng)在科學(xué)技術(shù)和商業(yè)領(lǐng)域發(fā)揮了重要作用。云計算環(huán)境下的分布式存儲技術(shù)是云計算的核心技術(shù)之一。本文對云計算環(huán)境下的分布式存儲關(guān)鍵技術(shù)開展研究,首先詳細介紹了分布式存儲中常見的數(shù)據(jù)中心網(wǎng)絡(luò)結(jié)構(gòu),包括以交換機為中心的結(jié)構(gòu)、以服務(wù)器為中心的結(jié)構(gòu)和混合結(jié)構(gòu),然后分析了數(shù)據(jù)容錯技術(shù),包括基于復(fù)制的容錯技術(shù)和基于糾刪碼的容錯技術(shù)。
關(guān)鍵詞:云計算;分布式存儲;數(shù)據(jù)中心網(wǎng)絡(luò);數(shù)據(jù)容錯
中圖分類號:TP393? ? ? 文獻標識碼:A
文章編號:1009-3044(2021)03-0059-02
1 引言
近年來,信息技術(shù)高速發(fā)展,為社會和科學(xué)的進步與發(fā)展提供了強勁動力。云計算技術(shù)是近年來較為典型的新興技術(shù)之一,已經(jīng)在各個行業(yè)發(fā)揮了巨大作用。在云計算中,數(shù)據(jù)中心是基礎(chǔ),基于數(shù)據(jù)中心才可提供各種業(yè)務(wù)操作,服務(wù)提供商才能從中盈利。云計算環(huán)境下的存儲技術(shù)是十分關(guān)鍵的技術(shù)之一,該技術(shù)領(lǐng)域的研究點主要包括數(shù)據(jù)中心中數(shù)據(jù)的安全存儲、高效組織和有序管理,并向用戶提供數(shù)據(jù)存儲服務(wù),在研究數(shù)據(jù)存儲技術(shù)時,還需同時關(guān)注數(shù)據(jù)中心網(wǎng)絡(luò)的構(gòu)建和設(shè)備運營的耗能問題[2]。
2 數(shù)據(jù)中心網(wǎng)絡(luò)
數(shù)據(jù)中心是云計算技術(shù)對用戶提供服務(wù)的基礎(chǔ)。在數(shù)據(jù)中心中,根據(jù)節(jié)點在路由轉(zhuǎn)發(fā)功能的類型,可以將數(shù)據(jù)中心的網(wǎng)絡(luò)分為以交換機為中心、以服務(wù)器為中心和混合結(jié)構(gòu)。下面對這三種結(jié)構(gòu)進行詳細介紹。
2.1 以交換機為中心的結(jié)構(gòu)
在這種結(jié)構(gòu)中,交換機作為整個網(wǎng)絡(luò)構(gòu)建的中心,把多個服務(wù)器連接起來,并承擔(dān)數(shù)據(jù)轉(zhuǎn)發(fā)功能,可進一步分為傳統(tǒng)的樹型結(jié)構(gòu)和改進的樹型結(jié)構(gòu)兩類[3]。其中,傳統(tǒng)的樹型結(jié)構(gòu)以交換機為中心,分為邊緣、聚合和核心三層。傳統(tǒng)樹型結(jié)構(gòu)存在的主要問題包括:(1)帶寬有限,在傳統(tǒng)的樹形結(jié)構(gòu)中,由于用戶在訪問服務(wù)器時需要通過上層的路由器進行數(shù)據(jù)轉(zhuǎn)發(fā),因此,當(dāng)路由器的吞吐量較大時,上層鏈路往往由于帶寬不足,無法將任務(wù)分配給其他服務(wù)器。(2)靈活性較差,在這種結(jié)構(gòu)中,節(jié)點使用的IP和結(jié)構(gòu)往往聯(lián)系較為緊密,在實際使用時,通常需要在第2層域中預(yù)留一定資源,導(dǎo)致資源利用率不高。(3)交換機資源利用率不高,為了保證系統(tǒng)的可靠性,通常交換機都采用1:1的比例,這導(dǎo)致交換機資源的利用率較低。改進的樹型結(jié)構(gòu)包括胖樹型(fat tree)、VL2型等,這種樹型結(jié)構(gòu)可有效緩解或避免傳統(tǒng)樹型結(jié)構(gòu)中存在的各種問題。
2.2 以服務(wù)器為中心的結(jié)構(gòu)
與樹型結(jié)構(gòu)不同,以服務(wù)器為中心的結(jié)構(gòu)中在每個服務(wù)器上安裝多個網(wǎng)卡來連接不同的服務(wù)器,不需要交換機、路由器等設(shè)備,典型的以服務(wù)器為中心的結(jié)構(gòu)是CamCube。CamCube結(jié)構(gòu)完全依靠服務(wù)器自身相互連接,每個服務(wù)器節(jié)點在三維的每個方向與其他服務(wù)器直接相連,構(gòu)建類似于CAN的環(huán)狀結(jié)構(gòu),且其物理拓撲和邏輯拓撲相一致。CamCube結(jié)構(gòu)相對簡單,但是鏈路冗余較高,不會出現(xiàn)單點瓶頸問題,在這種而機構(gòu)中服務(wù)器可以與底層的網(wǎng)絡(luò)直接交互。CamCube結(jié)構(gòu)存在的主要問題是路由路徑較長,為此研究者們提出了基于DeBruijintu圖的拓撲結(jié)構(gòu),有效降低了網(wǎng)絡(luò)的路由開銷。
2.3 混合結(jié)構(gòu)
混合結(jié)構(gòu)是上述兩類結(jié)構(gòu)的綜合利用,即既通過交換機連接各個服務(wù)器,同時又讓服務(wù)器節(jié)點對數(shù)據(jù)包進行轉(zhuǎn)發(fā),這種結(jié)構(gòu)能夠滿足更多的應(yīng)用場景需求。常見的混合結(jié)構(gòu)包括DCell結(jié)構(gòu)、BCube結(jié)構(gòu)等。其中DCell結(jié)構(gòu)在設(shè)計時同時考慮網(wǎng)絡(luò)的帶寬和系統(tǒng)的容錯能力,DCell結(jié)構(gòu)被設(shè)計為分層、遞歸定義的結(jié)構(gòu),上層網(wǎng)絡(luò)由多個低層網(wǎng)絡(luò)組成。在擴展網(wǎng)絡(luò)時,DCell結(jié)構(gòu)采用自上而下的方法。與樹型結(jié)構(gòu)相比,DCell結(jié)構(gòu)不需要再服務(wù)器中查詢路由表,其冗余鏈路可以提供更優(yōu)的聚合帶寬。BCube結(jié)構(gòu)是一種類似于超立方體的數(shù)據(jù)中心網(wǎng)絡(luò)結(jié)構(gòu),在這種結(jié)構(gòu)中,數(shù)據(jù)中心有集裝箱組成的模塊化形式,將大量服務(wù)器、網(wǎng)絡(luò)連接設(shè)備等構(gòu)建在一個環(huán)境中。
綜上所述,從網(wǎng)絡(luò)結(jié)構(gòu)角度考慮,混合結(jié)構(gòu)同時采用交換機和服務(wù)器作為轉(zhuǎn)發(fā)設(shè)備,可滿足特定場景的應(yīng)用需求,較為自由靈活。從路由開銷角度考慮,以交換機為中心的結(jié)構(gòu)路由開銷集中于交換機中,服務(wù)器的負載較輕,僅負責(zé)數(shù)據(jù)的存儲和處理。從可擴展性方面考慮,以交換機為中心的結(jié)構(gòu)擴展性較好。從構(gòu)建成本方面考慮,混合結(jié)構(gòu)同時兼具交換機結(jié)構(gòu)和服務(wù)器結(jié)構(gòu)的優(yōu)點,在同等性能條件下構(gòu)建成本更低。
3 數(shù)據(jù)容錯技術(shù)
在分布式存儲研究領(lǐng)域中,數(shù)據(jù)容錯技術(shù)是關(guān)鍵技術(shù)之一。較好的數(shù)據(jù)容錯性不僅使血系統(tǒng)的可靠性較高,還能同時提高系統(tǒng)的訪問效率。為了實現(xiàn)當(dāng)部分數(shù)據(jù)出現(xiàn)失效仍能夠通過訪問冗余數(shù)據(jù)來提供正常服務(wù),數(shù)據(jù)容錯技術(shù)通常采用增加數(shù)據(jù)冗余的方式實現(xiàn),但同時增加了對存儲資源的占用和消耗[4]。因此,數(shù)據(jù)容錯技術(shù)的目的就是在盡可能提供系統(tǒng)資源利用率的同時又花費較低的成本。目前較為常見的數(shù)據(jù)容錯技術(shù)包括基于復(fù)制的容錯技術(shù)和基于糾刪碼的容錯技術(shù)兩種。
3.1 基于復(fù)制的容錯技術(shù)
在基于復(fù)制的容錯技術(shù)領(lǐng)域,研究者們通常從數(shù)據(jù)組織結(jié)構(gòu)和數(shù)據(jù)復(fù)制策略兩個方面開展研究。其中,數(shù)據(jù)組織結(jié)構(gòu)的研究主要內(nèi)容是如何對大量的數(shù)據(jù)及其副本進行組織和管理,當(dāng)先數(shù)據(jù)組織結(jié)構(gòu)主要有基于元數(shù)據(jù)服務(wù)器的和究P2P的組織結(jié)構(gòu)兩種,基于元數(shù)據(jù)服務(wù)器的組織結(jié)構(gòu)在存儲數(shù)據(jù)時,通常采用元數(shù)據(jù)服務(wù)器,將副本的相關(guān)屬性,包括位置、版本、映射關(guān)系等信息存儲在元數(shù)據(jù)服務(wù)器上,從而實現(xiàn)對大量數(shù)據(jù)的統(tǒng)一管理,當(dāng)用戶需要訪問數(shù)據(jù)時,首先通過元數(shù)據(jù)服務(wù)器找到其需要的數(shù)據(jù)的位置等信息,然后根據(jù)該位置到對應(yīng)的服務(wù)器上獲取其所需數(shù)據(jù)[5]。基于P2P的組織結(jié)構(gòu)將每個節(jié)點根據(jù)P2P的組織方式進行組織管理,每個節(jié)點之間是相互平等的,不存在明顯的服務(wù)器和客戶端之分,在存儲數(shù)據(jù)時,采用分布式哈希表的方式進行存儲,當(dāng)用戶需要訪問數(shù)據(jù)時,需要首先從服務(wù)器上查詢到其所需數(shù)據(jù)對應(yīng)的哈希值,然后根據(jù)哈希值獲得數(shù)據(jù)的存儲位置并獲取數(shù)據(jù)。目前較為典型的基于P2P結(jié)構(gòu)管理元數(shù)據(jù)的系統(tǒng)包括Dynamo、Cassandra等。在基于P2P的組織結(jié)構(gòu)中,不需要專門的中央服務(wù)器,因此,不會出現(xiàn)由于節(jié)點失效而導(dǎo)致的系統(tǒng)不可靠問題,但是由于缺乏全局信息,難免會出現(xiàn)副本存儲位置不均衡的問題。
數(shù)據(jù)的復(fù)制方法通常需要根據(jù)不同的應(yīng)用需求、網(wǎng)絡(luò)狀況、存儲資源等確定,研究內(nèi)容主要包括數(shù)據(jù)復(fù)制策略和副本放置策略兩個部分。其中,數(shù)據(jù)復(fù)制策略聚焦于創(chuàng)建副本的時機和數(shù)量,包括靜態(tài)和動態(tài)兩種策略,所謂靜態(tài)策略是指在存儲數(shù)據(jù)之初就為其創(chuàng)建一定數(shù)目的副本,然后把這些副本存儲在不同的節(jié)點上,這種策略較為簡單但是靈活性不足,難以根據(jù)環(huán)境變化做出有效調(diào)整。所謂動態(tài)策略是指根據(jù)當(dāng)前的存儲情況、用戶需求等多個因素,動態(tài)的增加或刪除副本,從而實現(xiàn)資源的有效利用和存儲節(jié)點的負載均衡。放置策略的目的是提高系統(tǒng)的容錯能力,確保當(dāng)用戶的部分數(shù)據(jù)副本丟失時仍可以通過訪問其他副本來獲得數(shù)據(jù)。但是,在創(chuàng)建副本時,通常需要占用較大的帶寬且花費的時間較長,因此放置策略需要考慮多方面因素?,F(xiàn)有的放置策略可以分為順序放置策略和隨機放置策略兩類。所謂順序放置策略是指將創(chuàng)建的數(shù)據(jù)副本按照一定的順序存儲在對應(yīng)的節(jié)點上,這種策略的優(yōu)勢在于在隨機失效模式下數(shù)據(jù)存儲的可靠性較高,該策略通常應(yīng)用于反集群結(jié)構(gòu)中和分布式哈希表結(jié)構(gòu)中。隨機放置策略的基本思想是在數(shù)據(jù)可存儲的多個節(jié)點中,隨機的選擇若干個節(jié)點用于存放數(shù)據(jù)副本,這種策略是目前應(yīng)用較多的數(shù)據(jù)放置策略,該策略可以緩解關(guān)聯(lián)失效對系統(tǒng)可靠性的影響,同時兼顧系統(tǒng)節(jié)點的負載均衡。
3.2 基于糾刪碼的容錯技術(shù)
利用糾刪碼技術(shù)進行數(shù)據(jù)容錯時,通常首先將數(shù)據(jù)分割成多個數(shù)據(jù)塊,這些數(shù)據(jù)塊大小相同,然后利用編碼技術(shù)對這些數(shù)據(jù)塊進行編碼,從而得到編碼后的編碼塊,當(dāng)需要獲取數(shù)據(jù)時,只需要獲得相應(yīng)的編碼塊再進行解碼即可得到原始數(shù)據(jù)。在對數(shù)據(jù)進行編碼時,通常采用的編碼方法包括Reed-Solomon碼、奇偶陣列碼(parity array code)、奇偶校驗碼(parity-check code)和低密度奇偶校驗碼(low-density parity-check code)等等[6]。
在基于糾刪碼的容錯技術(shù)中,還需關(guān)注的一個方面是數(shù)據(jù)的容錯修復(fù)。所謂容錯修復(fù)是指當(dāng)系統(tǒng)中節(jié)點失效時,重新構(gòu)建冗余數(shù)據(jù)的過程。容錯修復(fù)的成本主要與數(shù)據(jù)塊和冗余塊的度數(shù)兩個因素有關(guān),度數(shù)越高則修復(fù)成本越高?,F(xiàn)有降低糾刪碼修復(fù)成本的方法主要包括基于度數(shù)限制的和基于網(wǎng)絡(luò)編碼的優(yōu)化方法兩種。其中,基于度數(shù)限制的優(yōu)化方法的基本思想是,在對數(shù)據(jù)塊進行編碼時,限制糾刪碼數(shù)據(jù)塊的數(shù)量和冗余塊的度數(shù),從而降低糾刪碼修復(fù)成本。典型方法如WEAVER碼將數(shù)據(jù)塊和冗余塊存儲在同一個節(jié)點上,并對數(shù)據(jù)庫進行相應(yīng)的操作得到冗余塊,在計算時限制數(shù)據(jù)塊和冗余塊的度數(shù),進而降低修復(fù)成本,但是這種方法存在的問題是對存儲空間的利用率不高,且通常采用更多的存儲空間來保證系統(tǒng)的讀取性能,導(dǎo)致存儲開銷較大。另一種典型的方法是基于概率密度函數(shù)對數(shù)據(jù)塊和冗余塊的度數(shù)進行計算,這種方法能夠達到一定的優(yōu)化效果,但是不能保證譯碼的成功率,不適用于較大規(guī)模的分布式存儲。基于網(wǎng)絡(luò)編碼的優(yōu)化方法利用了現(xiàn)有較為成熟的網(wǎng)絡(luò)編碼技術(shù)。網(wǎng)絡(luò)編碼技術(shù)通常應(yīng)用于通信領(lǐng)域,通過對要轉(zhuǎn)發(fā)的數(shù)據(jù)包進行編碼來提高每次傳輸?shù)男畔⒘?,進而提高網(wǎng)絡(luò)傳輸?shù)恼w性能。基于網(wǎng)絡(luò)編碼的優(yōu)化方法的代表是稱為再生碼的糾刪碼,該方法不考慮限制數(shù)據(jù)塊和冗余塊的度數(shù),而是采用特定的編碼系數(shù)構(gòu)造生成矩陣,當(dāng)需要對數(shù)據(jù)進行修復(fù)時,只要報存儲在節(jié)點上的多個數(shù)據(jù)塊進行融合即可實現(xiàn)對數(shù)據(jù)的修復(fù),這樣既降低了傳輸?shù)臄?shù)據(jù)量,同時也節(jié)省了帶寬成本。
4 結(jié)論
云計算技術(shù)的不斷發(fā)展和成熟,使其成為當(dāng)前各種公司普遍采用的數(shù)據(jù)存儲平臺之一,在當(dāng)前的大數(shù)據(jù)環(huán)境下,云計算技術(shù)也在各個行業(yè)和領(lǐng)域得到了十分廣泛的應(yīng)用。本文研究了云計算環(huán)境下的分布式存儲關(guān)鍵技術(shù),詳細介紹了相關(guān)技術(shù)的研究成果及其存在的主要問題,預(yù)期可為其他研究者提供參考和幫助。盡管云計算環(huán)境下的分布式存儲相關(guān)技術(shù)已經(jīng)取得了很多陳國,但是仍有很多問題需要進一步研究和解決,隨著數(shù)據(jù)量不斷增大,分布式存儲技術(shù)仍將面臨諸多挑戰(zhàn)。
參考文獻:
[1] 孟慶玉.基于云計算的分布式存儲技術(shù)研究[J].信息系統(tǒng)工程,2018(10):43.
[2] 侯桂云,陳桂英,盧志強.關(guān)于云計算中分布式數(shù)據(jù)存儲仿真研究[J].計算機仿真,2018,35(7):318-322.
[3] 任尚云.云計算環(huán)境下網(wǎng)絡(luò)空間數(shù)據(jù)分布式存儲方法研究[J].信息通信,2019,32(8):21-22,25.
[4] 胡家源. 云計算環(huán)境下安全分布式存儲架構(gòu)與容錯技術(shù)研究[J].科學(xué)與信息化,2018(27):52-53.
[5] 張華麗,楊帆,楊華勇.云計算下大數(shù)據(jù)分布式存儲中冗余數(shù)據(jù)分配算法[J].中國電子科學(xué)研究院學(xué)報,2018,13(4):433-438.
[6] 劉永波,李亞瓊,周博,等.一種面向分布式機器學(xué)習(xí)的云計算資源調(diào)度方法[J].計算機與數(shù)字工程,2019,47(12):3059-3062,3068.
【通聯(lián)編輯:光文玲】