韋靖康



摘? 要:隨著大數據、物聯網的快速發展,每天都有海量數據產生,如何有效存儲海量數據并保證數據的安全性是亟待解決的一個問題。針對存儲在云端的數據,遭到破壞后如何修復這一問題,本文提出了一種針對數據局部進行修復的云存儲修復方案,該方案通過在編碼塊前添加標簽支持對損壞編碼塊的局部修復,與已有方案相比,在計算開銷和通信開銷上都進行了改善。
關鍵詞:局部修復、云存儲、安全性、計算開銷
中圖分類號:TP333? ? ? ? ?文獻標識碼:A? ? ? ? ? ? 文章編號:1672-4437(2022)02-0055-03
近幾年,云計算讓很多行業感受到了便利。隨著云計算的普及,云存儲作為一種新興的網絡存儲技術應運而生。人們在享受云儲存便捷服務的同時,也在關注數據安全問題。云上數據一旦遭到破壞,需要對受損的數據進行快速修復。現有的方案是對數據的完整性進行校驗,在用戶側生成一個數據塊的消息認證碼,數據塊與生成的驗證碼一起上傳到存儲節點,當用戶獲取數據塊時,同時得到相應的消息認證碼,可以完成完整性的認證[1-6]。現有修復方案主要是進行整體修復,即在某一部分數據發生損壞時通過把全部數據重新生成的方式進行修復,修復過程中帶來較大的通信開銷和計算開銷,給系統帶來額外的負擔,特別是在存儲節點較多的場景下,云存儲系統性能將受到較大的影響,降低系統的可用性[7]。
針對上述問題,本研究提出一種基于數據部分修復的云存儲數據修復方案(Cloud storage repair scheme based on data partial repair,簡稱DPR),該方案支持僅修復部分損壞數據,無需對未損壞數據進行修復,可以較好地節省計算開銷和通信開銷,既對存儲在云平臺上的數據進行安全保護,也能迅速修復破損數據,避免云端計算數據冗長、壓力過大。
1 DPR數據修復方案設計
1.1 數據存儲過程
(1)原始數據處理。首先將原始數據等分成m(n-m)塊,分塊的大小取決于用戶對于數據部分修復的需求,當用戶需要支持更小數據塊修復時,可在原始數據分塊時分成更多塊,即m(n-m)可以取更大的值。
(2)選取編碼矩陣。為保證數據的私密性及數據的可修復性,在對原始數據分塊后,需要選取編碼矩陣對原始數據塊進行編碼,將編碼后的數據塊上傳到存儲節點,選取編碼矩陣時,需要選取n(n-m)×m(n-m)階矩陣,滿足任取m(n-m)行得到的子矩陣都是滿秩矩陣,且編碼矩陣中任一元素都不為0。
(3)數據編碼。將編碼矩陣和原始數據塊進行矩陣運算,得到n(n-m)個編碼數據塊。為便于后期數據修復,需要在每個編碼后的數據塊前加上數據標簽,標簽格式為(i,q),其中i表示存儲節點編號,q表示第i個存儲節點上第q個編碼塊。
(4)數據上傳。將(3)中的n(n-m)個編碼數據塊分別存放到n個存儲節點上,每個節點存放(n-m)個編碼塊,同時將編碼矩陣和數據標簽同步上傳到存儲節點。
1.2 數據讀取過程
當某個用戶需要讀取數據時,可選取任意m個存儲節點,下載其對應的所有編碼塊和編碼矩陣,便可恢復出原始數據,數據恢復的可用性已經在文獻[8]中證明。
1.3 數據修復過程
(1)選取修復矩陣。為保證修復后數據能夠正常恢復,選取的修復矩陣需要滿足以下條件:1)需選取(n-m)×(n-1)階矩陣,且矩陣中無0元素存在;2)(n-m)×(n-1)階修復矩陣中任取(n-m)列都是線性獨立的。
(2)數據修復過程。當第i個節點的第q個數據塊發生損壞時,修復服務器從其他n-1個節點中各任取一個編碼塊及對應的數據標簽,根據數據標簽在編碼矩陣中找到對應的編碼系數向量,同時從修復矩陣中任取一行,將兩者進行矩陣修復運算,得到一個新的編碼塊和與之對應的編碼系數向量。
(3)數據更新過程。將(2)中得到的編碼塊根據數據標簽上傳到對應的存儲節點上,同時更新編碼矩陣。
為了更清楚地表示修復過程,本研究以n=4,m=2場景為例詳細介紹修復過程,具體如下:
首先,設第1個存儲節點的第1個編碼塊發生數據損壞,修復服務器從另外3個存儲節點中各任取1個編碼塊及對應的數據標簽,如從另外3個為損壞的存儲節點中取的編碼塊分別是第1個、2個、1個,則對應的數據標簽分別為:(2,1)、(3,2)、(4,1),同時根據數據標簽從編碼矩陣中找到對應的編碼系數向量。
其次,從修復矩陣中任取一行,與(1)中選取參與修復的編碼塊、編碼塊對應的編碼系數向量做矩陣運算,得到一個新的編碼塊和對應的編碼系數向量。
第三,更新受損存儲節點上對應的編碼塊和編碼矩陣,完成受損節點的數據修復。
2 數據修復方案性能分析
2.1可用性分析
(1)理論證明
DPR修復方案可用性理論證明如下:
定理:根據DPR修復方案修復后生成的編碼塊對應的編碼系數向量和未受損編碼塊所對應的編碼系數向量是線性獨立的。
證明:根據線性代數相關知識可得出如下結論:
對于向量組A=(1,2,…,n),向量組中各向量線性獨立的充要條件是當且僅當i全為0時,
由文獻[2,9]中給出的理論證明過程可知,若修復時修復矩陣中所有行向量都參與修復過程,即(n-m)×(n-1)階修復矩陣中(n-m)個行向量和(n-1)個修復數據塊進行矩陣運算,得到個新(n-m)的編碼塊,則n-m個新的編碼塊和未受損存儲節點上的編碼塊是線性獨立的,即(1)式只有0解。
其中i表示存儲節點編號,j表示某節點上編碼塊的編號, 表示第i個節點上第j個編碼塊。
若(1)成立,則(2)也成立,即:
其中 表示新修復的編碼塊。
由公式(2)可知,新修復的編碼塊對應的編碼系數向量和未受損編碼塊所對應的編碼系數向量是線性獨立的,定理得證,即DPR修復滿足可用性。
(2)模擬驗證
為驗證DPR修復方案可用性,本研究使用Matlab 7.0在(4,2)存儲場景下模擬DPR修復方案的修復過程。模擬器的配置為:3.30 GHz CPU ,3.40G RAM,通過100次的仿真過程,均反饋修復后編碼塊對應的編碼系數向量和(n-m)個未受損節點編碼塊所對應的編碼系數向量組成的矩陣是滿秩的,即是相互獨立的。
2.2 修復計算開銷分析
本研究以文獻[10]中的修復方案為比較對象。由于在矩陣運算中,乘除運算占主要地位,所以,本研究主要比較兩種方案中乘除運算的次數,具體如下:
其中k表示數據塊在有限域中包含的字符個數。
為更直觀反映兩種修復方案計算開銷的優劣勢,本研究在n=4,m=2,k=1024場景下,給出了兩種方案修復計算開銷的具體值,其中NCCloud-PRM方案修復計算開銷45162,而DPR方案僅需22581,DPR方案修復計算開銷方面優勢明顯。
2.3 通信開銷分析
各修復方案中,通信開銷主要來自選取修復數據塊和更新修復后的數據塊兩部分。DPR修復方案和NCCloud-PRM修復方案選取修復數據過程相似,兩者在此過程中的修復開銷相同。DPR修復方案采用的是局部數據修復方式,只需更新單個編碼塊,相較于NCCloud-PRM修復方案可以節省(n-m-1)個編碼塊的通信開銷。
2.4存儲開銷分析
在NCCloud-PRM修復方案中,為使用戶能夠準確恢復出原始數據,需要在每個存儲節點保存全部的編碼矩陣,而DPR修復方案引入數據標簽后,無需保存全部編碼矩陣,僅根據數據標簽和本節點存儲編碼塊對應的編碼系數便可恢復,因此,DPR修復方案可以節省一定的存儲開銷。
3 結論
本研究針對當下云存儲中面臨的數據損壞后的修復問題,提出一種新的方案,該方案支持局部數據修復,通過在編碼塊前添加標簽支持對損壞編碼塊的局部修復,與已有方案相比,可以節省計算開銷和通信開銷。
參考文獻:
[1]Shah M A,Swaminathan R,Baker M.Privacy-preserving audit and extraction of digital contents ,HP Labs Technical Report No.HPL-2008-32[R].2008.
[2]Bowers K D,Juels A,Oprea A.Proofs of retrievability:Theory and implementation [C] // Proceedings of the 2009 ACM Workshopon Cloud Computing Security.ACM,2009:43-54.
[3]Bowers K D,Juels A,Oprea A.HALL:A high-avilability?and inergrity layer for cloud storage[C]//Proceedings?of the 16th ACM Conference on Computer and Communications?Security.ACM, 2009: 187-198.
[4]Wang C,Wang Q,RenK,etal.Toward secure and dependable?storage service in cloud computing [J].IEEE Transactions on Service Computing,2012, 5(2):220-232.
[5]Rodrigues R,Liskov B.High availability in DHTs:Erasure coding vs.replication[M]// Peer-to- Peer?Systems IV.Springer Berlin Heidelberg,2005: 226-239.
[6]王偉平,張俊峰,王建新.基于零空間的網絡編碼云存儲完整性校驗方案[J].清華大學學報,2016(56):83- 86,96.
[7]閔少穎.云數據精確修復方法研究[D].武漢:武漢科技大學,2018.
[8]Hu Y,Chen H C H,Lee P P C,et al.NCCloud:Applying Network Coding for the Storage Repair in a Cloud-of-Clouds[C]//USENIX FAST,2012:265–272.
[9]Subashini S,Kavitha V.A survey on security issues in service delivery models of cloud computing[J].Journal of Network&Computer Applications,2011,34(1):1-11.
[10]張俊峰.基于網絡編碼云存儲方案研究[D].長沙:中南大學,2014.