?

企業信息系統高質量元數據管理?

2019-03-26 08:44孫煜華
計算機與數字工程 2019年3期
關鍵詞:結點數據量備份

孫煜華

(廣州供電局有限公司 廣州 518000)

1 引言

信息時代企業信息數據量呈海量化的增長趨勢,大規模數據的有效存儲和管理應用己成為關系企業生存發展的重要因素,分布式文件系統的對外統一、高性能服務,滿足了大規模信息數據管理的要求,是目前數據存儲研究的重點和難點。

元數據描述目錄屬性和文件屬性等信息,其訪問操作時延遲和吞吐的數據量較小,雖然占用空間往往不到總數據量的10%,但其查詢量占到總數據訪問的50%到80%[1]。為此,通常構建元數據管理服務器(metadata server,MDS)[2],以減少服務器負載和客戶等待時間,但大規模數據集訪問時,大量并發操作會使Google文件系統[3]、Hadoop系統[4]等基于單點MDS的元數據集管理方案的結點負載劇增[5],因而亟需管理高效、擴展性強的集群式元數據管理方案,通過對外提供多MDS結點訪問服務,實現負載分享,但多MDS間的的數據一致、負載均衡和可靠擴展影響著集群的性能[6]?;谧訕浜突贖ash是目前元數據集群面方案中主要的兩種劃分方法[7]。但靜態子樹易產生訪問集中的熱點問題,而動態子樹需處理大量的數據遷移,集群的可擴展性受限[8]?;贖ash的分布式集群方案能夠實現快速查詢和負載平衡[9],但目錄操作的性能不足,在集群結點變化時目錄需更新從而同樣面臨數據遷移的巨大開銷。

一致性 Hash[10~11]是一種去中心化、容錯性強以及結點可擴展性強的分布式結構,為此,提出一種基于一致性Hash的動態元數據集群管理方案,方案通過在MDS與元數據之間增加虛擬映射,有效提高了元數據均衡分布,通過備份結點策略保證MDS失效時數據不丟失,通過數據延遲處理策略降低集群變化時數據遷移量,實現海量數據存儲系統中的集群元數據高效管理、柔性擴展,同時減少結點變動產生的數據遷移開銷。

2 一致性Hash算法

一致性Hash算法是是經典Hash算法的擴展[12~13],其在動態節點環境下,將元數據對象和MDS節點順時針映射到圓環上,一致性Hash須滿足平衡性、單調性和分散性三個適應條件[14]。

元數據完成Hash環映射后,根據一致Hash,其沿環邊順時針最近的節點為其保存設置對應的映射節點,當Hash環上新增節點時,其節點位置至最近下一設備節點之間的對象應遷移到新設備;而當移除節點時,其設備存入數據應遷移到下一節點的設備上[15]。圖1為一個值區間為1~232的Hash環,理論上通過合適的Hash映射,各節點可均勻覆蓋環的值區間,從而將區間內數據存儲到設備。

圖1 一致性Hash環示意圖

3 基于一致性Hash的動態集群方案

3.1 系統架構

圖2所示為文中集群方案系統架構,元數據與數據之間分離管理MDS節點之間相互備用作為備用節點。全局布局表(layout-table)用于集群方案的網絡架構描述、邏輯結構定義和延遲更新監視等信息的維護;MDS協議定義互操作接口用于MDS實例間的互操作,節點備份策略用于備用交互機制。

圖2 基于一致性Hash動態集群架構

3.2 MDS集群全局布局表

布局表是MDS實例用以控制集群的一種復合數據結構,記為LMDS=Tc∪Td∪Tu,其中Tc為集群布局,描述MDS集群網絡拓撲結構,含有構建一個結點所需的信息表;Td為元數據分布,描述元數據到MDS的映射;Tu為延遲更新表,基于Td構建本地記錄,以延遲處理數據遷移。LMDS對構建和維護集群的高效一致起至關重要作用,直接決定了集群的邏輯結構。

圖3所示為值域為 K∈[0,2n-1]的Hash環Sh,MDS分成若干 vMi且 vM0<vM1<…<vM2n-1,vMi被賦于標識 MIDi,其中 vM0與 0~Kr,0元數據、vM1與 K0,1~Kr,1間元數據,依次類推建立映射。 Td根據映射關系確定元數據的存儲MDS,該過程也是分布均衡和為查詢建立匹配MDS的過程。Tu負責標記本地元數據變更信息,同時防止因待遷移元數據量過大而導致存儲碎片化。

3.3 MDS集群的更新策略

如圖4所示為根據系統框架圖3構建的一個值域K∈[0,2n-1]的集群Sh,圖中Ef為元數據項目,其通過映射函數映射到節點Kf;Em為MDS結點,其同樣通過映射函數映射到節點Km。Sh更新時,根據Hash函數計算新元數據Ef的K值并查找與其距離最近的Em節點,然后將其存放到Em上;而當移除Ef時,同樣根據布局表查找其存放的Em結點,然后移除其相應存儲信息。

圖3 文中集體方案的Layout-table結構表

圖4 集群更新策略示意圖

MDS實例對等存在,某實例的服務關閉、增加與剔除等操作不會影響到其他實例,在圖4中,當對K5和K6元數據的請求達到峰值時,K7對應的MDS負載加重,但 K2,K4和 K9對應的MDS負載仍然較輕。K7的重負載工作不會降低K3,K8以及K10等存放在K2,K2和 K9對應的MDS中元數據的請求性能,從而避免K7成為系統的性能瓶頸。另外,圖中K2被設置為K9的備份結點,K9又為K7的備份結點,K9結點MDS僅與 K2和 K7對應的MDS有交互操作,而與其他MDS元交互,僅在集群更新附近節點變動時,會有相應變更指令。當結點 K9失效,存于 K9上的元數據{Ef|Kf∈(K7,K9)}的請求將暫停,但該區間外的的元數據請求不受到影響。K2作為K9的備份結點,感知到K9失效后,可快速導入其對應MDS中存放的K9備份數據,并變更layout-table。 K2從本地MDS導入,在快速實現的同時,避免全部reHash帶來的大量數據遷移,結點備份策略使得集群網絡對結點失效所需的數據遷移量接近為0,有效降低整個集群網絡的負載和計算量。在K11結點MDS加入集群時,原存儲于 K7結點MDS的元數據{Ef|Kf∈(K5,K7)} 中 (K5,K11)部分會相應的遷移到 K11上,但(K5,K11)的元數據量相對完整系統的數據遷移量要小很多,同時也沒有reHash所需的額外計算。因此,文中MDS集群結點間依賴性很小,擴展性較好。

Md加入時,根據本地布局表的加鎖情況來判斷加入操作是否可行,若可行,則將Md記錄新建到布局表中,并隨之遷移{K|K∈Mnext∩k<Md}對應的元數據到Md上,但由于本地延遲記錄及有序的Key值,只需記錄Key值起始索引標記遷移過程即可,故算法復雜度為O(1),且由于算法不影響其他MDS請求,因此不會出現停止服務請求的時間。

節點Mfail失效后,其備份節點首先標記元數據失效;然后修改鎖定狀態并將Mfail的備份復制到到本地內存,復制過程在本地進行,元網絡負載且不影響其他元數據訪問請求。

MDS實例的加入與剔除過程中的投票決策、更新本地標記以及全局延遲變更,與元數據訪問服務的執行是異步的,且不影響其一致性布局,因而無需中斷服務請求,即使廣播變更時需對MDS加鎖,但仍不影響其查詢操作且不影響其他MDS請求,因此文中方案具有良好的擴展性。

3.4 虛擬MDS平衡節點

MDS映射的隨機性會造成Sh上各元素的不均勻分布,為此,本文方案通過在MDS與Hash環之間再映射虛擬MDS節點的方法來均衡Sh上各區域MDS的元數據駐留概率。

圖5 虛擬節點映射關系圖

如圖5所示為虛擬節點映射圖,一個虛擬MDS節點對應一個實際MDS節點,而實際MDS對應多個虛擬節點,虛擬MDS節點在Sh上均勻分布后,元數據映射到vMDS上而MDS則包含多個虛擬節點,當某實例加入時,集群為其先預分配P個虛擬節點 [vM0,vM1,…,vMp-1],以保持 MDS 的加入不影響Sh的平衡。圖中M1、M2和M3三個MDS實例存儲的元數據映射到Sh后分布不均,影響整個集群的計算性能和空間利用率,根據虛擬節點技術,將M1在[0,2n-1]內均勻映射得到四個虛擬節點而 這 四 個 節 點 將 整 個Hash環均分,每個等分的值域區間內,采用一致的數據分布、流程和操作。虛擬節點的引入,MDS實例與一致性Hash環之間的映射對應就由對象到Hash環節點映射轉換為其到虛擬MDS的映射,從而緩解集群的負載均衡問題。

虛擬節點的分配與建立算法如表1所示,算法關鍵在于其Δ值在[0,N/ρ]間不斷輪轉以提高虛擬MDS節點的均勻分布程度,即分布方差達到一個極低值。虛擬節點技術提供了一個均衡機制,從而有效提高集群的訪問性能。

表1 虛擬MDS節點分配與構建算法

3.5 失效接管

內存數據按一定的時間間隔更新到非易失存儲的MDS設備上,當在系統更新時間間隔內出現MDS的意外失效,導致數據駐留在MDS設備的日志文件時,文中集群方案采用節點備份(Standby Node)[10,19]機制,在失效恢復時將待更新數據重新映射到內存中,實現MDS元數據的失效接管。

當 且 僅 當 (?Mx,Kx∈[Ki,Ktarget])∨(Ki=0 ∧Ktarget=N)時,MDS實例Mi被稱為Mtarget的備份節點,其中 Kx,Ki和 Ktarget為 Mx,Mi和 Mtarget的KEY值。文中集群方案采用Active-Standby模式[10],備份機制為Hash環的增方向上,即MDS2為MDS1的備份節點,MDS3為MDS2的備份節點,依次類推。某節點MDS3失效后,其存放的元數據及對MDS2的備份也隨之丟失,備份MDS4將檢測到失效存在,并將備份數據釋放到MDS4中以兼顧MDS3的服務工作,同時備份MDS2數據。

通過失效接管機制,任意節點的元數據及其作為備份節點的目標節點數據不會丟失,同時某節點的失效不影響其他MDS實例的查詢服務??梢?,文中集群方案具有良好的容錯和失效恢復性能。

3.6 延遲更新

更新通常為Hash技術的難題,其目標的更新需要子目標及相關文件的rehash,從而導致大量的計算和遷移,盡管文中集群方案無需rehash操作,但仍存在部分數據的遷移,為此,文中進一步采用延遲更新的策略,且由于MDS需更新的數據存在個體差異,策略僅參與本地元數據的更新。采用預設更新條目閾值和空閑檢測相結合的方法,首先根據預設的記錄計數閾值,當待更新元數據條目達到該閾值則強制部分數據遷移;周期性收集各MDS的運算情況以監視集群的空閑率,若某MDS低于預設空閑率閾值,則建議MDS進行數據遷移。具體的延遲更新過程如表2所示。

表2 延遲更新算法實現

4 實驗及分析

實驗平臺按圖1所示架構系統,各組件間使用Hadhoop遠程 RPC[9]實現,實驗采用的 Windows XP和Ubuntu系統的元數據及隨機產生的元數據集,實驗主要分析了系統查詢(LookUp)性能、元數據均衡性、MDS失效和加入時產生的數據遷移量等性能指標。

4.1 查詢(LookUp)性能分析

LookUp性能是元數據查詢性能的重要描述指標。很多文件系統的LookUp性能會隨元數據量的增加一定程度的降低[16]。如圖6所示為不同MDS量下,元數據存儲量與其對應的查詢性能之間的關系,可以看出,根據文中方案架構的文件系統的LookUp延遲在16ms~22ms間聚集,受元數據量影響很小,即其查詢性能與元數據量關聯較弱。

圖6 查詢延時隨元數據量變化

4.2 元數據均衡分布分析

元數據分布均衡影響MDS集群的負載均衡,實驗中采用式(1)所示計算式度量元數據的分布均衡性[12]:

式中,FDB為均衡性度量因子,N為MDS量值,S為所有MDS的元數據總量,而xi為第i個MDS中含有的元數據量。如圖7所示為在3.1實驗中使用的4個MDS量下,虛似MDS量與元數據分布的FDB均之間的關系,可以看出,FDB值在很小的數量級內變動,說明元數據分布具有良好的均衡性,同時,雖然虛擬MDS數量的增加,FDB表現出一定的波動性,但其始終處于較的誤差范圍內,進一步實驗分析發現,隨著元數據量的增大,表明元數據量的增加有利于系統均衡。

圖7 元數據分布均勻程度隨虛擬MDS最的變化

4.3 系統變動時數據遷移量分析

數據遷移量是評價MDS集群系統的擴展性以及容錯性等的重要指標,文中集群方案通過均衡的元數據分布有效控制了集群變動時的數據遷移量。圖8所示為MDS數量對集群變動時產生的數據遷移量的影響,可以看出,當MDS數量較少,其結點的失效產生的遷移較大,而MDS數量的增大,節點失效產生的遷移量隨之下降,當MDS數量超過一定值后,失效遷移趨于很小的穩定值。

圖8 失效遷移量隨MDS數量的變化曲線

進一步實驗分析,當系統中加入MDS結果點,其數據遷移量的變化規律同結果失效時的數據遷移量變化相似,可見,當集群系統中的MDS達到一定量后,其結果的變動引起的數據遷移量很低。

5 結語

基于一致性Hash技術提出MDS集群動態管理方案,通過在一致Hash環中引入虛擬MDS改進元數據映射,改善系統的負載均衡性能,通過節點備份、失效接管和延遲策略提高方案的容錯性能和擴展性能,以降低集群變動時的數據遷移量,實驗驗證了方案的有效性。

但方案還需進一步改善目錄操作性能,并通過失效概率估計改善MDS之間的備份關系,減少節點同時失效的概率。

猜你喜歡
結點數據量備份
LEACH 算法應用于礦井無線通信的路由算法研究
利用云備份微信聊天記錄
基于八數碼問題的搜索算法的研究
基于大數據量的初至層析成像算法優化
高刷新率不容易顯示器需求與接口標準帶寬
如何只備份有用數據而不備份垃圾數據
Windows10應用信息備份與恢復
舊瓶裝新酒天宮二號從備份變實驗室
電力營銷數據分析中的數據集成技術研究
固定資產管理系統對物流管理的促進和發展
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合