您好, 访客   登录/注册

基于数据局部修复的云存储修复方案

来源:用户上传      作者:韦靖康

  摘 要:随着大数据、物联网的快速发展,每天都有海量数据产生,如何有效存储海量数据并保证数据的安全性是亟待解决的一个问题。针对存储在云端的数据,遭到破坏后如何修复这一问题,本文提出了一种针对数据局部进行修复的云存储修复方案,该方案通过在编码块前添加标签支持对损坏编码块的局部修复,与已有方案相比,在计算开销和通信开销上都进行了改善。
  关键词:局部修复、云存储、安全性、计算开销
  中图分类号: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解。

nlc202206291613



转载注明来源:https://www.xzbu.com/1/view-15434954.htm

相关文章