專利名稱:針對社交類云存儲網絡應用的數據備份系統和方法
針對社交類云存儲網絡應用的數據備份系統和方法技術領域
本發明屬于數據存儲領域,具體涉及一種針對社交類云存儲網絡應用的數據備份系統和方法。
背景技術:
云存儲數據備份技術的實施,可以顯著提高系統的運行效率,保證存儲服務的可靠性以及整個云存儲系統的負載均衡。傳統的數據備份方法,都是針對存儲特性為頻繁讀的網絡應用,且云端服務器會進行經常性的負載調整,如GFS的數據備份方法,新副本會放置在低于平均硬盤使用率的Chunk服務器上,每個Chunk服務器會限制一定時間間隔內副本的創建數量,Master節點周期性地對數據進行負載均衡調整,新數據位置選擇的策略與創建策略相同;Had00p的數據備份方法基于機架感知策略,一個副本放置在本地節點上,一個副本放置在本地機架的不同節點上,一個副本放置在不同機架的節點上,副本的調整,根據對于特定文件的訪問請求記錄,適當的增加副本來滿足訪問請求。
而網絡上日趨流行的社交類云存儲網絡應用在存儲方面則具有小數據量且讀寫均頻繁的特點。在海量的數據讀寫訪問請求下,云端服務器的有限計算能力往往是保證用戶使用體驗的關鍵。社交類云存儲網絡應用的用戶數量眾多,地理位置分布廣泛,且單次上傳數據量小,但上傳次數頻繁。該類網絡應用的用戶對資源的使用具有一定的局部性,邏輯上只訪問自己社交范圍內的資源,用戶往往偏向于訪問與自己上傳資源類似的資源,且對訪問延遲時間與數據的一致性有較高的要求。
傳統的云存儲數據備份方法在支持社交類網絡應用時,衡量數據節點的標準單一,且沒有針對用戶訪問預測的副本創建機制,而且處理海量數據傳輸請求的同時會頻繁進行負載的調整,這會導致用戶使用體驗的降低及服務器端有限計算資源的浪費。發明內容
針對上述問題,本發明提供了一種針對社交類云存儲網絡應用的數據備份方法, 目的是以對數據節點的衡量及用戶訪問的預測為基礎,放置有限的數據副本,提高用戶的使用體驗,同時保證云存儲系統的健壯性,進行盡量少的負載調整活動,以避免云服務器端有限的計算資源的浪費,同時保持各數據節點負載的均衡。
本發明采取以下技術方案
本發明基于三層架構的云存儲分布式文件系統模型,該系統模型由一個邏輯 Master節點,多個Consistence節點及大量的Data節點組成。
Master節點是元數據服務器,用戶通過訪問Master節點來獲得Data節點的存儲信息。為了防止Master節點單點失效的情況,系統內可以有多個輔助Master節點進行元數據的備份。Master節點只存放數據副本保持最后更新一致性情況下的元數據,為用戶訪問數據一致性提供高可靠的保證。Consistence節點負責保持系統內數據副本的一致性,它將已同步過副本的元數據信息提交給Master節點,使用戶只可以訪問到最后更新的數據。Data節點是數據存儲服務器,存儲用戶的數據資源,理論上可以分布在世界上任何適宜的地點。考慮到讀寫頻繁網絡應用數據資源的特點多為小文件,用戶經常使用的數據一般不大于30M,以32M的定長數據塊來劃分用戶的數據資源。
當用戶上傳數據資源時,用戶連接到Master節點,發送上傳數據資源的請求信息,Master節點返回距離用戶地理位置最近且可用的Data節點信息,用戶根據Master節點返回的信息上傳資源到Data節點,Master節點更新元數據信息到Consistence節點,Data 節點向用戶返回處理的結果,并將元數據信息更新到Consistence節點,Consistence節點根據副本策略備份副本數據到適當的Data節點,并更新副本信息到Master節點;
當用戶對已有數據資源進行讀操作時,用戶連接到Master節點,發送讀數據請求,Master節點返回匹配的元數據信息,用戶根據Master節點返回的信息訪問Data節點并發送讀數據請求,Data節點傳輸用戶請求的數據。
當用戶對已有數據資源進行寫操作時,用戶連接到Master節點,發送寫數據請求,Master節點返回匹配的元數據信息,用戶根據Master節點返回的信息訪問Data節點并發送寫數據請求,Data節點傳輸用戶請求的數據并更新元數據信息到Consistence節點, Consistence節點協調各Data節點保持副本數據一致性,Consistence節點將更新的元數據傳輸到Master節點,Master節點返回更新結果。每次用戶寫資源后,由Consistence節點維護所有副本資源的數據一致性,Master節點只保存已確定更新一致性后的元數據。
本發明所述的數據備份方法包括以下步驟
步驟1,用戶上傳數據資源。
步驟2, Master節點返回存儲負載率低于100%且距離用戶位置最近的Data節點信息給用戶,用戶在該節點放置數據資源,Consistence節點檢測放置該數據資源的數據節點的存儲負載率是否達到90%,若達不到90%,直接跳到步驟3,進行副本創建;若達到90%, 則進行負載調整。
負載調整方法主要包括以下內容
在Data節點存儲負載率達到90%的情況下,Consistence節點開始動態調整數據資源的位置;
在負載調整策略可行的情況下,將存儲負載率到達90%的Data節點上所有數據資源依據健康度建立由小到大的鏈表;
基于存儲平衡預測方法返回的節點集合,對鏈表內的資源依次進行調整,當節點集合中有Data節點的負載率達到90%則屏蔽該Data節點,繼續對鏈表內資源進行調整,直到待調整Data節點的存儲負載率低于80% ;
Data節點返回更新操作的信息到Consistence節點,Consistence節點傳輸已保持一致性Data節點信息到Master節點,更新Master節點的元數據信息。
步驟3,創建副本。
副本創建方法主要包括以下內容
Consistence節點獲取到由Master節點發送的元數據信息與用戶地理位置信息;
創建副本;
放置副本;
副本元數據更新。
步驟4,創建副本后,檢測放置該副本的數據節點的存儲負載率是否達到90%,若達到90%則進行負載調整,否則結束本次數據備份過程。
本發明的有益效果是針對社交類云存儲網絡應用的特點,以多種參數的加權計算作為衡量數據節點或數據文件優劣的標準,對用戶訪問進行預測,保證了用戶數據資源可以被高效地利用,同時以其數據節點負載率作為進行負載調整的判斷依據,盡量減少云端服務器在用戶訪問頻繁的情況下進行負載調整的次數,保證云端服務器計算資源的高效利用,使用戶的使用體驗得到提升。
圖I為數據備份系統結構示意圖2為數據備份流程圖3為副本創建流程圖4為負載調整流程圖。
具體實施方式
針對社交類云存儲網絡應用的數據備份系統結構示意圖如圖I所示,該系統由一個邏輯Master節點,多個Consistence節點及大量的Data節點組成。
假如節點集群內有5個Data節點,每個Data節點的詳細資料如表I所示
表IData節點詳細信息表
權利要求
1.一種針對社交類云存儲網絡應用的數據備份系統,其特征在于,包括 Master節點,元數據服務器,用戶通過訪問Master節點來獲得Data節點的存儲信息;為了防止Master節點單點失效的情況,系統內可以有多個輔助Master節點進行元數據的備份; Consistence節點,負責保持系統內數據副本的一致性,它將已同步過副本的元數據信息提交給Master節點,使用戶只可以訪問到最后更新的數據,系統內可以有多個Consistence 節點; Data節點,數據存儲服務器,存儲用戶的數據資源,理論上可以分布在世界上任何適宜的地點; 當用戶上傳數據資源時,用戶連接到Master節點,發送上傳數據資源的請求信息,Master節點返回距離用戶地理位置最近且可用的Data節點信息,用戶根據Master節點返回的信息上傳資源到Data節點,Master節點更新元數據信息到Consistence節點,Data節點向用戶返回處理的結果,并將元數據信息更新到Consistence節點,Consistence節點根據副本策略備份副本數據到適當的Data節點,并更新副本信息到Master節點; 當用戶對已有數據資源進行讀操作時,用戶連接到Master節點,發送讀數據請求,Master節點返回匹配的元數據信息,用戶根據Master節點返回的信息訪問Data節點并發送讀數據請求,Data節點傳輸用戶請求的數據; 當用戶對已有數據資源進行寫操作時,用戶連接到Master節點,發送寫數據請求,Master節點返回匹配的元數據信息,用戶根據Master節點返回的信息訪問Data節點并發送寫數據請求,Data節點傳輸用戶請求的數據并更新元數據信息到Consistence節點,Consistence節點協調各Data節點保持副本數據一致性,Consistence節點將更新的元數據傳輸到Master節點,Master節點返回更新結果,每次用戶寫資源后,由Consistence節點維護所有副本資源的數據一致性,Master節點只保存已確定更新一致性后的元數據。
2.一種針對社交類云存儲網絡應用的數據備份方法,其特征在于包括以下步驟 步驟1,用戶上傳數據資源; 步驟2,Master節點返回存儲負載率低于100%且距離用戶位置最近的Data節點信息給用戶,用戶在該節點放置數據資源,Consistence節點檢測放置該數據資源的數據節點的存儲負載率是否達到90%,若達不到90%,直接跳到步驟3,進行副本創建;若達到90%,則按以下方法進行負載調整 在Data節點存儲負載率達到90%的情況下,Consistence節點開始動態調整數據資源的位置; 預測將節點存儲負載率由90%降到80%的可能性,若負載調整可行,返回接收數據節點的集合At {Atl,At2, At3. . . AtJ ;若不可行,則結束負載調整; 若經預測判斷負載調整可行,對存儲負載率達到90%的Data節點上所有數據資源按下式進行健康度計算^ = Copy _ Use _ Count-% 其中,I為數據資源的健康度,M為Data節點的廢棄度,Copy_Use_Count為相應數據資源被使用的次數; 依據健康度I建立由小到大的鏈表;對所建鏈表內的資源依次進行調整,直到待調整Data節點的存儲負載率低于80% ;以集合At {Atl,At2,At3. . . AtJ作為節點集合,以集合中Data節點存儲負載率達到90%作為終結條件,依據如下的優先權放置調整的數據資源,同時刪除原有數據資源包含有同類型數據且廢棄度低的Data節點,包含有同類型數據的Data節點,任意有空余空間的Data節點; 對所建鏈表內的資源依次進行調整,直到待調整Data節點的存儲負載率低于80% ;Data節點返回更新操作的信息到Consistence節點,Consistence節點傳輸已保持一致性的Data節點信息到Master節點,更新Master節點的元數據信息; 步驟3,按以下方法創建副本 Consistence節點獲取由Master節點發送的元數據信息與用戶地理位置信息; Consistence節點按下式計算各個Data節點相對于用戶的節點廢棄度Sl=U D Dis tan cex a - D Bandwidth x β其中,M為Data節點的廢棄度,α為用戶與Data節點之間距離的加權比,D_Bandwidth為Data節點接入網絡的帶寬,β為Data節點網絡帶寬的加權比,U_D_Distance為用戶與Data節點之間距離,按下式計算U_D_Dis tan ce=_ Locations — U _ Location.x)" + (I) _ Location.y — U _ Location.γ 其中,D_Location. x為Data節點位置在平面地圖上的橫坐標,U_Location. x為用戶位置在平面地圖上的橫坐標,D_Location. y為Data節點位置在平面地圖上的縱坐標,U_Location, y為用戶位置在平面地圖上的縱坐標; Consistence節點維護多個上傳相同類型數據資源用戶位置的數據集合S (S1, S2, S3. · · SJ,和系統內所有Data節點信息的數據集合D (D1, D2, D3. ..Dj ; 當用戶上傳資源時,若該資源類型的用戶位置數據集合為空,新加入元素St,則依次掃描Data節點位置的數據集合,選取廢棄度最低的Data節點作為副本放置候選節點;若該Data節點存放有副本的原始數據,則選擇廢棄度最高的Data節點作為副本放置候選節點;若廢棄度最低的Data節點與廢棄度最高的Data節點為同一節點,則隨機選擇一個Data節點作為副本放置候選節點; 當用戶上傳資源時,若該資源類型的用戶位置數據集合不空,且只有一個Data節點Dw作為該集合的副本放置節點,DwI不存在St的原始數據,則選擇Dw為新加入元素St的副本放置候選節點;若該Data節點存放有St的原始數據,則從D不包括Dw的集合中選擇廢棄度最低的Data節點作為副本放置候選節點;當該資源類型的用戶位置數據集合不空,且有多個Data節點{Da,Db, Dc. . . }作為該集合的副本放置節點,依次掃描{Da,Db, D。. . . }并做如下處理選擇對于新加入元素St的廢棄度最低的Dtl作為副本放置候選節點,選擇對于新加入元素St的廢棄度最高的Dt2作為副本放置候選節點;若Dtl與Dt2為相同節點,且不存放有St的原始數據,則只存放一份副本;若Dtl與Dt2為相同節點,且存放有St的原始數據,則在不包含Dtl與Dt2的集合中隨機選擇一個節點作為副本放置候選節點;若Dtl與Dt2為不同節點,Dtl存放有St的原始數據,則只選Dt2為副本放置候選節點;若Dtl與Dt2為不同節點,Dt2存放有St的原始數據,則只選Dtl為副本放置候選節點 ; 檢查副本放置候選節點的存儲負載率是否低于100%,若低于100%,則選擇該候選節點為副本放置節點,在該節點放置副本;否則,對St屏蔽掉該候選節點并返回,繼續尋找滿足條件的Data節點作為副本放置節點;返回兩個副本放置候選節點時,若存在至少一個候選節點的存儲負載率低于100%,則結束探尋,在符合條件的Data節點上放置副本; Data節點返回操作結果到Consistence節點,Consistence節點將集合S的數據信息更新,返回最新的元數據信息到Master節點; 步驟4,創建副本后,檢測放置該副本的數據節點的存儲負載率是否達到90%,若達到90%則進行負載調整;否則,結束本次數據備份過程。
3.根據權利要求2所述的針對社交類云存儲網絡應用的數據備份方法,其特征在于步驟2所述的預測節點存儲負載率由90%降到80%可能性的方法為存儲平衡預測方法,具體包括以下步驟 設云存儲系統內所有數據節點的集合為AiA1, A2, A3. ..Αη},μ為負載調整前某一節點的存儲負載率,ω為負載調整后該節點的存儲負載率,D_Capacity為該數據節點的存儲總量,T_Capacity為需要調整的數據節點要減少的存儲量,則T_Capacity = D_Capacity · (μ - ω) 若存在集合At {Atl, At2,At3. · · AJ,At為A的子集,使得以下式子成立At!_Capacity+T_Capacity · Jl1 < Atl_All_Capacity · μAt2_Capacity+T_Capacity · η2 ^ At2_All_Capacity · μAt3_Capac i ty+T_Capac i ty · η 3 ^ At3_Al l_Capac i ty · μ Atn-Capacity+T_Capacity · ηη ^ Atn_All_Capacity · μη” n2, n3. . . , ηη 為小于或等于 I 的數,Ati_Capacity 為 At 集合中 Ati (i = 1,2, ···,n)節點的已使用存儲容量,Ati_All_Capacity為At集合中Ati節點的總存儲容量; 則認為系統內經過負載調整可以達到存儲負載率的平衡,并返回滿足條件情況下包含最多Data節點的集合;否則,認為系統沒有進行負載調整的必要。
全文摘要
一種針對社交類云存儲網絡應用的數據備份系統和方法。該系統由一個邏輯Master節點,多個Consistence節點及大量的Data節點組成。所述數據備份方法主要包括用戶上傳數據資源、創建副本和負載調整。本發明針對社交類云存儲網絡應用的特點,以多種參數的加權計算作為衡量數據節點或數據文件優劣的標準,對用戶訪問進行預測,保證了用戶數據資源可以被高效地利用,同時以其數據節點負載率作為進行負載調整的判斷依據,盡量減少云端服務器在用戶訪問頻繁的情況下進行負載調整的次數,保證云端服務器計算資源的高效利用,使用戶的使用體驗得到提升。
文檔編號H04L29/08GK102984280SQ20121055152
公開日2013年3月20日 申請日期2012年12月18日 優先權日2012年12月18日
發明者王旭東, 張建 申請人:北京工業大學