一种应用于云存储冗余性验证的方法及系统技术方案

技术编号:20389268 阅读:48 留言:0更新日期:2019-02-20 02:37
本发明专利技术公开了一种应用于云存储冗余性验证的方法及系统。本发明专利技术方法为:选取客户端1和客户端2,通过测量客户端2在设定时间读取设定位置的文件所消耗的时间来判断云存储的冗余性;其中,设定时间是指客户端1在向云端上传文件F的时刻,设定位置是指该文件F在上传云端过程中,云端备份写入的机械硬盘。本发明专利技术可以对云存储服务商进行多次冗余性验证,且不受时间和地点的限制。

【技术实现步骤摘要】
一种应用于云存储冗余性验证的方法及系统
本专利技术属于云存储
,尤其涉及一种对云存储中数据冗余性验证的方法及系统。
技术介绍
目前,云存储的使用变得越来越广泛,由于云存储具有空间可扩展、管理简单、价格低廉等优势,越来越多的个人和企业将需要弹性空间的业务和数据迁移到云端。但与此同时,大量业务与数据集中由云存储服务商管理,也势必带来较高的安全风险。一旦云端发生故障,其带来的影响也将难以估量。在常见的云端故障中,硬盘损坏是最容易发生的,而云端中任何硬盘故障都将导致未经冗余处理数据的不可用,从而造成巨大的经济损失。因此云存储中数据的冗余性问题越来越受到人们的重视。为了保证数据的冗余性,云存储服务商通常会对硬盘数据进行备份。常见的备份方式有三副本备份和纠删码备份,它们的共同特点是,将数据在存储设备中进行多次重复存储,这虽然增加了数据的冗余性,降低了数据丢失的可能性,但同时也增加了硬盘空间的使用,对云存储服务商来说,这意味着存储成本的上升。一些云存储服务商为了赚取最大利润,可能会违反与客户签订的SLA(服务水平协议)。为了降低运营成本,云服务可能会减少数据的备份数量,或者将备份数据放到少数硬盘上,从而减少硬盘空间的使用和运行中的硬盘数量,这会使得存储在云端数据的冗余性被破坏,大大增加数据丢失的风险。对于用户来说,云存储服务相当于一个黑盒,用户无法得知云存储内部的结构。云存储服务商是否对数据进行了备份,备份数量是否按照SLA的约定,用户都不得而知。因此,目前急需一种对云存储冗余性进行验证的方法。为了本专利申请描述的方便,下面将介绍一些与本专利申请有关的云存储的特征。云存储中常见的备份方式:云存储中常见的备份方式有三副本备份和纠删码备份。三副本备份是指将数据复制为三份,并将这些数据分别存入不同位置的备份策略。这三份数据具有强一致性,位于不同的存储域中,当故障发生时,如果某一副本丢失或者不可访问,系统会重新启用一个存储域,并根据剩下的两个副本将数据复制到新的存储域中,使得数据始终有三份。纠删码(ErasureCode,简称EC)是一种用于错误纠正的编码方式,主要在网络数据传输中避免数据包的丢失,存储系统利用它来提高存储可靠性。其基本思想是将数据分为k块原始数据,然后通过一定的编码计算,得到m块冗余数据,然后将这k+m块数据存储在不同的存储设备上。在k+m块数据中,当其中任意的m块出错(包括原始数据和冗余数据)时,均可以通过对应的重构算法恢复出原来的k块数据。云存储对数据的备份过程:图1描述的是文件从客户端上传到云端的过程,在此过程中,云存储服务商会对数据进行冗余性处理(进行三副本备份或者纠删码备份)。文件上传的具体过程描述如下:1.云端服务器在收到客户端的文件上传请求后,开始接收文件。2.服务器接收文件后,对文件进行处理,生成备份数据。如果是多副本备份,就将数据先存储在一个硬盘中,这个硬盘就称为上传文件存储的首位置,并将数据复制为若干份;如果是纠删码备份,就将数据分为k块,并对k块数据进行编码,生成m块编码数据。3.服务器将处理完的备份数据发往各硬盘进行存储。如果是多副本备份,将复制的数据发往多个硬盘进行存储;如果是纠删码备份,则将k+m块数据发送多个硬盘进行存储。4.备份数据成功写入硬盘后,硬盘将存储成功的消息发给服务器。5.服务器在收到所有备份数据存入硬盘发来的存储成功的消息后,向客户端发送文件上传成功的消息。机械硬盘读写冲突机械硬盘读写冲突是指机械硬盘在同一时刻收到读取和写入数据的请求。由于机械硬盘的物理特性,机械硬盘在同一时刻只能进行读取或者写入。当机械硬盘读写冲突时,机械硬盘的文件读取、写入耗时将远远大于未发生读写冲突的时候。
技术实现思路
本专利技术提供了一种应用于云存储冗余性检测的方法及系统。本方法基于客户端——云端模型,客户端与云端相连接,客户端向云端请求服务,云端为客户端提供服务。本专利技术方法利用客户端对云端的冗余性进行验证。本专利技术所涉及的云存储冗余性验证方法的总体过程如图2所示。图2中客户端1正在向云端上传文件。正常情况下,云端在文件上传的过程中会对文件进行备份并将备份后得到的数据存储到相应的机械硬盘中(图2中的步骤2、3、4)。如果云端在文件上传过程中,对上传文件执行了图中的步骤2、3、4,那么上传文件的备份数据会存储在相应硬盘中,此文件就具有冗余性。如果云端在文件上传过程中,未对上传文件执行步骤2、3、4,那么文件的备份就没有写到硬盘中,上传的文件就不具有冗余性。本专利技术所涉及到的方法,就是检验云端在对文件进行备份得到备份数据后,是否将备份数据存入到机械硬盘中,即检验云端是否执行了图中的步骤3,如果图中步骤3得到了执行,那么云端存储的文件就具有冗余性,云存储就具有冗余性,反之,云存储就不具有冗余性。本专利技术所涉及的云存储冗余性检验方法具体描述如下:Ⅰ、客户端2向云端上传文件,由于云存储的特性,上传的文件会均匀存储在不同的硬盘上,或者可以通过一定的技术手段,选择特殊的上传文件,使得文件能上传到云端指定的硬盘上。假设云端有硬盘B、C….X,则客户端2上传文件后,硬盘B、C…..X中都存储了一些文件,将上传后存储到硬盘B中的所有文件Fb1、Fb2、Fb3….Fbx称为文件集合FB,同理,将上传后分别存储到硬盘C、D…..X中的所有文件称为文件集合FC、FD、FX。II、客户端1向云端上传文件F,在上传文件F的过程中(假设F的备份文件将写入硬盘B、C…X),客户端2从F的备份文件写入的硬盘B中读取文件集合FB中的所有文件,即读取文件Fb1、Fb2、Fb3….Fbx。III、客户端2等待云端返回其要求读取的数据,并记录从发出读取请求,到接受完所有数据的耗时t。如图2所示,假设步骤3中,备份数据写入的硬盘为硬盘B、硬盘C······硬盘X。如果云端在文件上传过程中对文件进行了备份,并将备份数据写入了硬盘,即执行了图中步骤2、3、4,客户端2在此时读取硬盘B中的数据,即执行步骤Ⅱ。那么此时机械硬盘B既要写入备份数据(图中步骤3),又要读取数据Fb1、Fb2、Fb3….Fbx(图2中步骤Ⅰ),机械硬盘B就会发生读写冲突,客户端2读取文件的耗时t,即客户端2从发出读取请求到收到需要读取的文件的时间间隔,就会很大。如果云端在文件上传过程中未对文件进行了备份,即未执行步骤2、3、4,客户端2在此时读取硬盘B中的数据,即执行步骤Ⅱ,那么机械硬盘B只执行文件读取,没有发生读写冲突。客户端2读取文件的耗时,即t的值会很小。设t0为一阈值,当t<t0时,可以认为硬盘B没有发生读写冲突,即云端没有对上传文件进行备份,云存储不具有冗余性。当t>t0时,可以认为磁盘B发生读写冲突,即云端对客户上传的文件进行了备份,云存储具有冗余性。其中t0不是一个定值,此处引入t0只是为了方便阐述本专利所涉及的原理。t0在不同情况下的值会有所差异,其中每天不同时间段和不同的硬盘都会影响到t0,下文中我们用Tij表示t0在某些特定情况下的实际值,Tij的下标i表示不同的时间段,j表示读取的不同硬盘,Tij的确定方法见下文“参考时间测量模块”。本专利技术所涉及的方法,即通过测量客户端2在特定时间读取特定位置的文件所消耗的时间t来判断云存储的本文档来自技高网
...

【技术保护点】
1.一种应用于云存储冗余性验证的方法,其特征在于,选取客户端1和客户端2,通过测量客户端2在设定时间读取设定位置的文件所消耗的时间来判断云存储的冗余性;其中,设定时间是指客户端1在向云端上传文件F的时刻,设定位置是指该文件F在上传云端过程中,云端备份写入的机械硬盘。

【技术特征摘要】
1.一种应用于云存储冗余性验证的方法,其特征在于,选取客户端1和客户端2,通过测量客户端2在设定时间读取设定位置的文件所消耗的时间来判断云存储的冗余性;其中,设定时间是指客户端1在向云端上传文件F的时刻,设定位置是指该文件F在上传云端过程中,云端备份写入的机械硬盘。2.如权利要求1所述的方法,其特征在于,客户端2首先运行初始化模块,用于对云存储冗余性进行验证之前,向云端上传若干文件,为冗余性验证提供验证环境。3.如权利要求2所述的方法,其特征在于,通过参考时间测量模块建立一参考时间数据库;其方法为:31)客户端1、客户端2分别与云端建立连接,客户端1将待上传文件F在云端硬盘的存储位置B、C....X发送给客户端2,该文件F为客户端1已上传过且具有冗余备份的文件;32)客户端2获取其初始化模块上传文件存储在云端的硬盘存储位置,其中,在云端硬盘的存储位置B、C、....、X上的文件集合分别为FB、FC、…、FX;33)时间点i时,客户端1向云端上传该文件F的同时,客户端2从云端的硬盘B中读取文件集合FB中的文件并记录文件读取耗时Ti1;34)客户端1从云端删除该文件F;35)时间点i时,选取不同硬盘重复步骤33)、34),计算得到客户端2从其他硬盘中读取对应文件集合的耗时序列Ti2……Tin;36)改变时间点i,根据得到的多组耗时序列得到参考时间数据库。4.如权利要求3所述的方法,其特征在于,通过冗余性校验模块测量得到时间并与参考时间数据库中对应的时间进行对比来判断云存储的冗余性,其方法为:41)客户端1、客户端2分别与云端建立连接并记录当前时刻δ,客户端1将待上传文件F在云端硬盘的存储位置B、C....X发送给客户端2;42)客户端2获取其初始化模块上传文件存储在云端的硬盘存储位置,其中,在云端硬盘的存储位置B、C、....、X上的文件集合分别为FB、FC、…、FX;43)客户端1向云端上传该文件F的同时,客户端2从云端的硬盘B中读取文件集合FB中的文件并记录文件读取耗时;44)客户端1从云端删除该文件F;45)选取不同时间段重复步骤43)、44),计算得到客户端2从硬盘B中读取文件集合FB的平均耗时T1’;46)客户端1向云端上传该文件F的同时,客户端2将读取的硬盘B分别替换为C、D、....、X并选取不同时间段从对应的文件集合中读取文件并记录读取耗时,得到平均耗时T2’、T3’……Tn’;47)将得到的T1’、T2’……Tn’与参考时间数据库中时刻δ对应的或最接近的序列Tδ1、Tδ2……Tδn进行对比,如果Tk’的值小于Tδk的值α%以上,则判定云端未对文件进行备份,云存储不具有冗余性;其中,α的取值根据云存储品牌、云存储的负载、参考时间测量模块中选取的测量时间点、时间点数目确定。5.如权利要求1所述的方法,其特征在于,设置一参考时间阈值t0,如果所消耗的时间t大于参考时间阈值t0,则判定云存储冗余性验证通过,否则判定云端未进行冗余性存储。6.一种应用于云存储冗余性验证的系统,其特征在于,包括客户端1和客户端2,其中...

【专利技术属性】
技术研发人员:龙飞刘丽敏陈天宇王平建吕娜赵欣怡夏鲁宁方金霞贾东征朱丽袁思思
申请(专利权)人:中国科学院信息工程研究所
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1