韋靖康
摘? 要:隨著大數(shù)據(jù)、物聯(lián)網(wǎng)的快速發(fā)展,每天都有海量數(shù)據(jù)產(chǎn)生,如何有效存儲海量數(shù)據(jù)并保證數(shù)據(jù)的安全性是亟待解決的一個問題。針對存儲在云端的數(shù)據(jù),遭到破壞后如何修復(fù)這一問題,本文提出了一種針對數(shù)據(jù)局部進行修復(fù)的云存儲修復(fù)方案,該方案通過在編碼塊前添加標(biāo)簽支持對損壞編碼塊的局部修復(fù),與已有方案相比,在計算開銷和通信開銷上都進行了改善。
關(guān)鍵詞:局部修復(fù)、云存儲、安全性、計算開銷
中圖分類號:TP333? ? ? ? ?文獻標(biāo)識碼:A? ? ? ? ? ? 文章編號:1672-4437(2022)02-0055-03
近幾年,云計算讓很多行業(yè)感受到了便利。隨著云計算的普及,云存儲作為一種新興的網(wǎng)絡(luò)存儲技術(shù)應(yīng)運而生。人們在享受云儲存便捷服務(wù)的同時,也在關(guān)注數(shù)據(jù)安全問題。云上數(shù)據(jù)一旦遭到破壞,需要對受損的數(shù)據(jù)進行快速修復(fù)?,F(xiàn)有的方案是對數(shù)據(jù)的完整性進行校驗,在用戶側(cè)生成一個數(shù)據(jù)塊的消息認證碼,數(shù)據(jù)塊與生成的驗證碼一起上傳到存儲節(jié)點,當(dāng)用戶獲取數(shù)據(jù)塊時,同時得到相應(yīng)的消息認證碼,可以完成完整性的認證[1-6]?,F(xiàn)有修復(fù)方案主要是進行整體修復(fù),即在某一部分?jǐn)?shù)據(jù)發(fā)生損壞時通過把全部數(shù)據(jù)重新生成的方式進行修復(fù),修復(fù)過程中帶來較大的通信開銷和計算開銷,給系統(tǒng)帶來額外的負擔(dān),特別是在存儲節(jié)點較多的場景下,云存儲系統(tǒng)性能將受到較大的影響,降低系統(tǒng)的可用性[7]。
針對上述問題,本研究提出一種基于數(shù)據(jù)部分修復(fù)的云存儲數(shù)據(jù)修復(fù)方案(Cloud storage repair scheme based on data partial repair,簡稱DPR),該方案支持僅修復(fù)部分損壞數(shù)據(jù),無需對未損壞數(shù)據(jù)進行修復(fù),可以較好地節(jié)省計算開銷和通信開銷,既對存儲在云平臺上的數(shù)據(jù)進行安全保護,也能迅速修復(fù)破損數(shù)據(jù),避免云端計算數(shù)據(jù)冗長、壓力過大。
1 DPR數(shù)據(jù)修復(fù)方案設(shè)計
1.1 數(shù)據(jù)存儲過程
(1)原始數(shù)據(jù)處理。首先將原始數(shù)據(jù)等分成m(n-m)塊,分塊的大小取決于用戶對于數(shù)據(jù)部分修復(fù)的需求,當(dāng)用戶需要支持更小數(shù)據(jù)塊修復(fù)時,可在原始數(shù)據(jù)分塊時分成更多塊,即m(n-m)可以取更大的值。
(2)選取編碼矩陣。為保證數(shù)據(jù)的私密性及數(shù)據(jù)的可修復(fù)性,在對原始數(shù)據(jù)分塊后,需要選取編碼矩陣對原始數(shù)據(jù)塊進行編碼,將編碼后的數(shù)據(jù)塊上傳到存儲節(jié)點,選取編碼矩陣時,需要選取n(n-m)×m(n-m)階矩陣,滿足任取m(n-m)行得到的子矩陣都是滿秩矩陣,且編碼矩陣中任一元素都不為0。
(3)數(shù)據(jù)編碼。將編碼矩陣和原始數(shù)據(jù)塊進行矩陣運算,得到n(n-m)個編碼數(shù)據(jù)塊。為便于后期數(shù)據(jù)修復(fù),需要在每個編碼后的數(shù)據(jù)塊前加上數(shù)據(jù)標(biāo)簽,標(biāo)簽格式為(i,q),其中i表示存儲節(jié)點編號,q表示第i個存儲節(jié)點上第q個編碼塊。
(4)數(shù)據(jù)上傳。將(3)中的n(n-m)個編碼數(shù)據(jù)塊分別存放到n個存儲節(jié)點上,每個節(jié)點存放(n-m)個編碼塊,同時將編碼矩陣和數(shù)據(jù)標(biāo)簽同步上傳到存儲節(jié)點。
1.2 數(shù)據(jù)讀取過程
當(dāng)某個用戶需要讀取數(shù)據(jù)時,可選取任意m個存儲節(jié)點,下載其對應(yīng)的所有編碼塊和編碼矩陣,便可恢復(fù)出原始數(shù)據(jù),數(shù)據(jù)恢復(fù)的可用性已經(jīng)在文獻[8]中證明。
1.3 數(shù)據(jù)修復(fù)過程
(1)選取修復(fù)矩陣。為保證修復(fù)后數(shù)據(jù)能夠正常恢復(fù),選取的修復(fù)矩陣需要滿足以下條件:1)需選?。╪-m)×(n-1)階矩陣,且矩陣中無0元素存在;2)(n-m)×(n-1)階修復(fù)矩陣中任?。╪-m)列都是線性獨立的。
(2)數(shù)據(jù)修復(fù)過程。當(dāng)?shù)趇個節(jié)點的第q個數(shù)據(jù)塊發(fā)生損壞時,修復(fù)服務(wù)器從其他n-1個節(jié)點中各任取一個編碼塊及對應(yīng)的數(shù)據(jù)標(biāo)簽,根據(jù)數(shù)據(jù)標(biāo)簽在編碼矩陣中找到對應(yīng)的編碼系數(shù)向量,同時從修復(fù)矩陣中任取一行,將兩者進行矩陣修復(fù)運算,得到一個新的編碼塊和與之對應(yīng)的編碼系數(shù)向量。
(3)數(shù)據(jù)更新過程。將(2)中得到的編碼塊根據(jù)數(shù)據(jù)標(biāo)簽上傳到對應(yīng)的存儲節(jié)點上,同時更新編碼矩陣。
為了更清楚地表示修復(fù)過程,本研究以n=4,m=2場景為例詳細介紹修復(fù)過程,具體如下:
首先,設(shè)第1個存儲節(jié)點的第1個編碼塊發(fā)生數(shù)據(jù)損壞,修復(fù)服務(wù)器從另外3個存儲節(jié)點中各任取1個編碼塊及對應(yīng)的數(shù)據(jù)標(biāo)簽,如從另外3個為損壞的存儲節(jié)點中取的編碼塊分別是第1個、2個、1個,則對應(yīng)的數(shù)據(jù)標(biāo)簽分別為:(2,1)、(3,2)、(4,1),同時根據(jù)數(shù)據(jù)標(biāo)簽從編碼矩陣中找到對應(yīng)的編碼系數(shù)向量。
其次,從修復(fù)矩陣中任取一行,與(1)中選取參與修復(fù)的編碼塊、編碼塊對應(yīng)的編碼系數(shù)向量做矩陣運算,得到一個新的編碼塊和對應(yīng)的編碼系數(shù)向量。
第三,更新受損存儲節(jié)點上對應(yīng)的編碼塊和編碼矩陣,完成受損節(jié)點的數(shù)據(jù)修復(fù)。
2 數(shù)據(jù)修復(fù)方案性能分析
2.1可用性分析
(1)理論證明
DPR修復(fù)方案可用性理論證明如下:
定理:根據(jù)DPR修復(fù)方案修復(fù)后生成的編碼塊對應(yīng)的編碼系數(shù)向量和未受損編碼塊所對應(yīng)的編碼系數(shù)向量是線性獨立的。
證明:根據(jù)線性代數(shù)相關(guān)知識可得出如下結(jié)論:
對于向量組A=(1,2,…,n),向量組中各向量線性獨立的充要條件是當(dāng)且僅當(dāng)i全為0時,
由文獻[2,9]中給出的理論證明過程可知,若修復(fù)時修復(fù)矩陣中所有行向量都參與修復(fù)過程,即(n-m)×(n-1)階修復(fù)矩陣中(n-m)個行向量和(n-1)個修復(fù)數(shù)據(jù)塊進行矩陣運算,得到個新(n-m)的編碼塊,則n-m個新的編碼塊和未受損存儲節(jié)點上的編碼塊是線性獨立的,即(1)式只有0解。
其中i表示存儲節(jié)點編號,j表示某節(jié)點上編碼塊的編號, 表示第i個節(jié)點上第j個編碼塊。
若(1)成立,則(2)也成立,即:
其中 表示新修復(fù)的編碼塊。
由公式(2)可知,新修復(fù)的編碼塊對應(yīng)的編碼系數(shù)向量和未受損編碼塊所對應(yīng)的編碼系數(shù)向量是線性獨立的,定理得證,即DPR修復(fù)滿足可用性。
(2)模擬驗證
為驗證DPR修復(fù)方案可用性,本研究使用Matlab 7.0在(4,2)存儲場景下模擬DPR修復(fù)方案的修復(fù)過程。模擬器的配置為:3.30 GHz CPU ,3.40G RAM,通過100次的仿真過程,均反饋修復(fù)后編碼塊對應(yīng)的編碼系數(shù)向量和(n-m)個未受損節(jié)點編碼塊所對應(yīng)的編碼系數(shù)向量組成的矩陣是滿秩的,即是相互獨立的。
2.2 修復(fù)計算開銷分析
本研究以文獻[10]中的修復(fù)方案為比較對象。由于在矩陣運算中,乘除運算占主要地位,所以,本研究主要比較兩種方案中乘除運算的次數(shù),具體如下:
其中k表示數(shù)據(jù)塊在有限域中包含的字符個數(shù)。
為更直觀反映兩種修復(fù)方案計算開銷的優(yōu)劣勢,本研究在n=4,m=2,k=1024場景下,給出了兩種方案修復(fù)計算開銷的具體值,其中NCCloud-PRM方案修復(fù)計算開銷45162,而DPR方案僅需22581,DPR方案修復(fù)計算開銷方面優(yōu)勢明顯。
2.3 通信開銷分析
各修復(fù)方案中,通信開銷主要來自選取修復(fù)數(shù)據(jù)塊和更新修復(fù)后的數(shù)據(jù)塊兩部分。DPR修復(fù)方案和NCCloud-PRM修復(fù)方案選取修復(fù)數(shù)據(jù)過程相似,兩者在此過程中的修復(fù)開銷相同。DPR修復(fù)方案采用的是局部數(shù)據(jù)修復(fù)方式,只需更新單個編碼塊,相較于NCCloud-PRM修復(fù)方案可以節(jié)?。╪-m-1)個編碼塊的通信開銷。
2.4存儲開銷分析
在NCCloud-PRM修復(fù)方案中,為使用戶能夠準(zhǔn)確恢復(fù)出原始數(shù)據(jù),需要在每個存儲節(jié)點保存全部的編碼矩陣,而DPR修復(fù)方案引入數(shù)據(jù)標(biāo)簽后,無需保存全部編碼矩陣,僅根據(jù)數(shù)據(jù)標(biāo)簽和本節(jié)點存儲編碼塊對應(yīng)的編碼系數(shù)便可恢復(fù),因此,DPR修復(fù)方案可以節(jié)省一定的存儲開銷。
3 結(jié)論
本研究針對當(dāng)下云存儲中面臨的數(shù)據(jù)損壞后的修復(fù)問題,提出一種新的方案,該方案支持局部數(shù)據(jù)修復(fù),通過在編碼塊前添加標(biāo)簽支持對損壞編碼塊的局部修復(fù),與已有方案相比,可以節(jié)省計算開銷和通信開銷。
參考文獻:
[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]王偉平,張俊峰,王建新.基于零空間的網(wǎng)絡(luò)編碼云存儲完整性校驗方案[J].清華大學(xué)學(xué)報,2016(56):83- 86,96.
[7]閔少穎.云數(shù)據(jù)精確修復(fù)方法研究[D].武漢:武漢科技大學(xué),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]張俊峰.基于網(wǎng)絡(luò)編碼云存儲方案研究[D].長沙:中南大學(xué),2014.