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