CN109358977A - 一种应用于云存储冗余性验证的方法及系统 - Google Patents
一种应用于云存储冗余性验证的方法及系统 Download PDFInfo
- Publication number
- CN109358977A CN109358977A CN201810952250.3A CN201810952250A CN109358977A CN 109358977 A CN109358977 A CN 109358977A CN 201810952250 A CN201810952250 A CN 201810952250A CN 109358977 A CN109358977 A CN 109358977A
- Authority
- CN
- China
- Prior art keywords
- client
- cloud
- time
- file
- redundancy
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1464—Management of the backup or restore process for networked environments
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/373—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with erasure correction and erasure determination, e.g. for packet loss recovery or setting of erasures for the decoding of Reed-Solomon codes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种应用于云存储冗余性验证的方法及系统。本发明方法为:选取客户端1和客户端2,通过测量客户端2在设定时间读取设定位置的文件所消耗的时间来判断云存储的冗余性;其中,设定时间是指客户端1在向云端上传文件F的时刻,设定位置是指该文件F在上传云端过程中,云端备份写入的机械硬盘。本发明可以对云存储服务商进行多次冗余性验证,且不受时间和地点的限制。
Description
技术领域
本发明属于云存储技术领域,尤其涉及一种对云存储中数据冗余性验证的方法及系统。
背景技术
目前,云存储的使用变得越来越广泛,由于云存储具有空间可扩展、管理简单、价格低廉等优势,越来越多的个人和企业将需要弹性空间的业务和数据迁移到云端。但与此同时,大量业务与数据集中由云存储服务商管理,也势必带来较高的安全风险。一旦云端发生故障,其带来的影响也将难以估量。在常见的云端故障中,硬盘损坏是最容易发生的,而云端中任何硬盘故障都将导致未经冗余处理数据的不可用,从而造成巨大的经济损失。因此云存储中数据的冗余性问题越来越受到人们的重视。
为了保证数据的冗余性,云存储服务商通常会对硬盘数据进行备份。常见的备份方式有三副本备份和纠删码备份,它们的共同特点是,将数据在存储设备中进行多次重复存储,这虽然增加了数据的冗余性,降低了数据丢失的可能性,但同时也增加了硬盘空间的使用,对云存储服务商来说,这意味着存储成本的上升。
一些云存储服务商为了赚取最大利润,可能会违反与客户签订的SLA(服务水平协议)。为了降低运营成本,云服务可能会减少数据的备份数量,或者将备份数据放到少数硬盘上,从而减少硬盘空间的使用和运行中的硬盘数量,这会使得存储在云端数据的冗余性被破坏,大大增加数据丢失的风险。
对于用户来说,云存储服务相当于一个黑盒,用户无法得知云存储内部的结构。云存储服务商是否对数据进行了备份,备份数量是否按照SLA的约定,用户都不得而知。因此,目前急需一种对云存储冗余性进行验证的方法。
为了本专利申请描述的方便,下面将介绍一些与本专利申请有关的云存储的特征。
云存储中常见的备份方式:
云存储中常见的备份方式有三副本备份和纠删码备份。
三副本备份是指将数据复制为三份,并将这些数据分别存入不同位置的备份策略。这三份数据具有强一致性,位于不同的存储域中,当故障发生时,如果某一副本丢失或者不可访问,系统会重新启用一个存储域,并根据剩下的两个副本将数据复制到新的存储域中,使得数据始终有三份。
纠删码(Erasure Code,简称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在向云端上传文件的时刻,特定位置是指文件在上传云端过程中,备份写入的机械硬盘。
如果t很小,小于阈值t0,说明机械硬盘未发生读写冲突,云端未将备份数据存入储机械硬盘,即未执行图2中步骤3、4,云存储中存储的文件不具有冗余性;如果t很大,大于阈值t0,说明机械硬盘发生了读写冲突,云端将备份数据存储到机械硬盘,即执行了图2中步骤2、3、4,云存储中存储的文件具有冗余性。
本发明所涉及的冗余性验证原理可以简单概况为:在文件上传云端的过程中,试图使得云端存入备份数据的机械硬盘发生读写冲突,通过检测文件读取时间,判断机械硬盘是否发生读写冲突,从而推断云存储中存储的文件是否具有冗余性。
本发明所涉及的方法可分为三个主要步骤,分别是初始化步骤、参考时间测量步骤和冗余性验证步骤,它们分别对应于三个模块,这三个模块为初始化模块、参考时间测量模块、冗余性验证模块,每个模块的正常运行需要一定的物理设备支持,初始化模型需要使用一个客户端,参考时间测量模块和冗余性验证模块需要使用两个客户端,参考时间测量模块只运行一次,通过参考时间测量模块测得参考时间Tij后就不再运行。各模块的功能和作用如下:
初始化模块:
初始化模块为冗余性验证提供验证环境。由于本发明所涉及的方法需要试图制造机械硬盘读写冲突,所以需要读取云端硬盘中存储的文件。初始化模块的主要功能是在对云存储冗余性进行验证之前,向云端上传一些文件,这些文件将在参考时间测量模块和冗余性验证模块的执行过程中被读取。初始化模块只需要运行一次即可,在第一次测量云存储的冗余性前,必须先依次运行初始化模块和参考时间测量模块,得到参考时间集。之后需要测量云存储冗余性时,只需要运行冗余性测量模块。初始化模块使用客户端2完成其功能。
参考时间测量模块:
参考时间测量模块用于测得参考时间,并和冗余性测量模块测得的时间进行对比。因为本专利所涉及的方法是通过测量云端文件的读取耗时t的大小来推断是否发生读写冲突,从而判断云存储中存储的文件是否具有冗余性。而t的大小是一个相对值,所以本发明需要一个阈值t0来判断t值的大小,参考时间测量模块的作用就是测量t0。其中t0不是一个定值,此处引入t0只是为了方便阐述本专利所涉及的原理。t0在不同情况下的值会有所差异,其中有两个因素会影响到t0,下文中我们用Tij表示t0在不同情况下的实际值。
影响t0的第一个因素是测量t0的时刻。由于每天中不同的时刻云存储的负载不同,而不同的负载会影响到硬盘数据读取的响应时间,从而对阈值t0产生影响。
影响t0的第二个因素是不同的硬盘。因为云端在对上传的文件进行备份时,会生成多个副本,并将不同的副本存储在不同的磁盘中。例如云存储中最常见的三副本备份方式,会将客户上传的文件复制两份(加上原始文件一共三份),并将这些复制文件存储在不同的硬盘上,假设云存储将这三份文件存储在硬盘A、B、C上,其中硬盘B、C是备份文件写入的硬盘,那么在测量上传文件的冗余性时,就需要分别测量硬盘B、C是否有备份数据写入,而不同的硬盘情况不同,因此利用本专利阐述的方法测量备份数据是否写入硬盘B、C时,需要两个阈值来判断t值的大小。本专利用Tij中的下标j表示对不同硬盘的t0进行测量。
Tij表示在时间段i读取硬盘j中文件所花费时间,Tij确定方法见下文“参考时间测量模块”。
参考时间测量模块是在确定云端对文件进行了备份(即云端执行了图2中的2、3、4步骤)的情况下,用本专利所涉及的方法测得阈值时间t0。因为每天中不同时段网络的拥堵程度、云存储的负载情况不同,测量的备份硬盘不同,而这些都会影响到t0的值。所以,参考时间测量模块需要在每天中不同时段、测量不同硬盘的t0,从而得到在不同情况下的t0值Tij,建立一个参考时间Tij集合。参考时间测量模块只需要运行一次即可,在第一次测量云存储的冗余性前,必须先依次运行初始化模块和参考时间测量模块,得到参考时间集。之后需要测量云存储冗余性时,只需要运行冗余性测量模块。参考时间测量模块需要使用客户端1和客户端2完成其功能。
冗余性验证模块:
冗余性验证模块用于验证云存储的冗余性。其执行流程与参考时间测量模块相似,冗余性验证模块中存入云端的文件与参考时间测量模块存入云端的文件是相同的。这两个模块不同的地方在于,在执行冗余性验证模块的时候,并不确定云端是否对上传的文件进行了备份并将备份文件写入硬盘,即不确定云端是否执行了图2中的步骤2、3、4,此刻需要通过冗余性验证模块来验证云存储是否具有冗余性。在此模块,通过本发明所涉及到的方法测得从云端读取文件的耗时,并与在参考时间测量模块中测得的相应时段的参考时间相对比,从而判断云存储的冗余性。在第一次测量云存储的冗余性前,必须先依次运行初始化模块和参考时间测量模块,得到参考时间集。之后需要测量云存储冗余性时,只需要运行冗余性测量模块。冗余性验证模块需要使用客户端1和客户端2完成其功能。
各模块执行的详细功能如下:
初始化模块:
[1]客户端2与云端建立连接。
[2]客户端2在云端建立存储池,用于上传文件的存储。
[3]客户端2生成随机文件,并将这些文件上传到云端。
[4]客户端2与云端断开连接。
参考时间测量模块:
[1]客户端1、2与云端建立连接。
[2]客户端1选定要上传的文件F。
[3]客户端1在文件上传到云端前得到文件F的备份在云端硬盘的存储位置B、C….X,并将位置B、C….X告诉客户端2。
[4]客户端2得到其初始化步骤中存储在云端文件的硬盘存储位置,假设FB、FC…FX分别为初始化过程中上传到云端硬盘B、C….X中的文件集合。
[5]客户端1向云端上传文件F。
[6]客户端1在向云端上传文件F的同时,客户端2从硬盘B中读取文件集合FB中的所有文件。
[7]客户端2记录文件读取的耗时。
[8]客户端1从云端删除文件F,并重复步骤[5]、[6]、[7]两遍,求得客户端2从硬盘B中读取文件集合FB的平均耗时Tij。其中i表示在时间点i对文件集合进行读取,j表示对第j个硬盘进行读取,此处表示在时间点i=δ1从硬盘B中读取文件集合FB的平均耗时。
[9]客户端1从云端删除文件F,将步骤[6]、[8]中的硬盘B依次替换为C、D….X,同时将步骤[8]的文件集合FB依次替换为FC、FD……FX,重复步骤[5]、[6]、[7]、[8],得到读取耗时T12、T13……T1n,它们分别表示在时间点i=δ1客户端2从硬盘C、D…X中读取文件集合FB、FC…、FX的平均耗时,n为硬盘的数量。
[10]客户端1、2与云端断开连接。
[11]在每天的不同时间点重复上述过程,得到不同时间点i=δ2,δ3….δk,文件读取的耗时时间Ti1、Ti2……Tin,并记录,根据得到的时间建立数据库。具体时间点的选取,以及选取多少时间点要依照测量条件及云存储的负载情况决定。
冗余性验证模块:
[1]客户端1、2与云端建立连接,记录此时的时刻δ。
[2]客户端1选定要上传的文件F,文件F与参考时间测量模块中的F相同
[3]客户端1在文件上传到云端前得到文件F的备份在云端硬盘的存储位置B、C….X,并将位置B、C….X告诉客户端2。
[4]客户端2得到初始化步骤中存储在云端文件的硬盘存储位置,假设FB、FC…FX为初始化过程中分别存储在硬盘B、C….X中的文件集合。
[5]客户端1向云端上传文件F。
[6]客户端1在向云端上传文件F的同时,客户端2从硬盘B中读取文件集合FB中的所有文件。
[7]客户端2记录文件读取的耗时。
[8]客户端1从云端删除文件F,并重复步骤[5]、[6]、[7]两遍,求得客户端2从硬盘B中读取文件集合FB的平均耗时T1’。
[9]客户端1从云端删除文件F,将步骤[6]、[8]中的硬盘B分别替换为硬盘C、D….X,同时将步骤[8]中的文件集合FB依次替换为FC、FD…FX,重复步骤[5]、[6]、[7]、[8],得到读取耗时T1’、T2’……Tn’,它们分别表示客户端2从硬盘C、D…X中读取文件集合FB、FC…、FX的平均耗时。
[10]客户端1、2与云端断开连接。
[11]在参考时间测量模块得到的数据库中,找到最接近时刻δ的时间点i,将得到的T1’、T2’……Tn’与参考时间测量模块得到的数据库中的Ti1、Ti2……Tin进行对比。如果Tk’的值小于Tik的值α%以上,那么有90%的概率说明云端没有向相应的硬盘写入备份数据,云存储的冗余性不足。如果当k=1,2….n时,超过80%的Tk’的值小于Tik的值α%以上,那么有90%的概率说明云存储不具有冗余性。其中α的具体值与云存储品牌、云存储的负载、参考时间测量模块中选取的时间点、时间点数目有关。
上述三个模块中初始化模块、参考时间测量模块都是用于辅助冗余性验证模块完成冗余性验证的。冗余性验证模块需要在初始化模块、参考时间测量模块执行完成后运行。在初始化模块和参考时间测量模块运行一次后,可多次运行冗余性验证模块,从而多次完成冗余性的验证。
本发明的积极效果为:
1、不需要对现有云存储的云端进行改动,或者改动极小。
2、验证过程不影响云存储服务商的性能。
3、验证过程中验证方的行为和普通用户一样,云存储服务商无法区分验证方和普通用户,所以云存储服务商很难对验证方进行欺骗。
4、可以对云存储服务商进行多次冗余性验证,且不受时间和地点的限制。
附图说明
图1为云存储对数据的备份过程;
图2为本发明的云存储冗余性验证过程;
图3为冗余性验证方法的系统模型;
图4为冗余性验证方法的初始化模块流程示意图;
图5为冗余性验证方法的参考时间测量模块流程示意图;
图6为冗余性验证方法的验证模块流程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下参照附图对本发明作进一步详细说明。
图3公开了云存储冗余性验证方法的系统模型。该模型由客户端和云端两部分组成。客户端和云端指的是本发明中所提出方法中涉及到的物理设备。本发明中提出的方法需要利用这些物理设备来实现。客户端与云端通过网络相连接,客户端向云端请求服务,云端为客户端提供服务。云端提供云存储服务,客户端对云端提供的云存储服务进行冗余性验证。初始化模块运行在客户端2上,客户端2就可以实现初始化模块的功能。参考时间测量模块的运行需要客户端1和客户端2的配合,客户端1与客户端2共同完成参考时间测量模块的功能。冗余性验证模块的运行需要客户端1和客户端2的配合,客户端1与客户端2共同完成冗余性测量模块的功能。第一次测量云存储的冗余性之前,需要在确定云存储对数据进行了备份的情况下,运行初始化模块与参考时间测量模块。之后,当需要对云存储的冗余性进行检验的时候,只需运行冗余性检验模块,结合之前运行初始化模块、参考时间测量模块得到的结果来判断云存储的冗余性。
图4公开了一种云存储冗余性验证方法的初始化模块的流程。初始化模块作为一个程序运行在客户端2上。它的功能是为参考时间测量模块和冗余性验证模块的正常运行做好准备工作。
初始化模块首先使得客户端2与云端建立连接。连接建立成功后,客户端2在云端建立指定参数的存储池,用于存储将要上传至云端的文件。然后客户端2生成许多随机文件,并将这些文件全部成功上传到云端。这些文件将在参考时间测量模块以及冗余性测量模块中被读取。最后,客户端2与云端断开连接。
图5公开了一种云存储冗余性验证方法的参考时间测量模块的流程。参考时间测量模块运行在客户端1和客户端2上,它的功能是测量云端在对文件进行备份并将备份存入到硬盘的情况下,在特定时间读取特定位置的文件的读取耗时,特定时间指客户端1正在向云端上传文件的时刻,特定位置指上传文件的备份数据将要写入的硬盘。由于从云端读取文件的耗时与网络延时、云端负载有关,而每天不同时刻的网络延时、云端负载情况不同,所以需要测量并记录每天中不同时段上传相同文件F时,读取相应文件的读取耗时,形成参考时间集。参考时间测量模块的具体过程如下:
1.客户端1、客户端2与云端建立连接。
2.客户端1选定将要上传的文件F,并查询文件F的备份在云端将要存入的硬盘B、C….X。
3.客户端1查询在初始化过程中客户端2上传到云端的文件的存储位置,将存储在硬盘B的所有文件组成文件集合FB,同理,将存储在硬盘C、D….X中的所有文件分别组成文件集合FC、FD….FX,
4.客户端1向云端上传文件F,客户端2同时读取集合FB中的所有文件,从而使得硬盘B发生读写冲突。记录读取文件集合FB中所有文件的耗时t。然后删除文件F,重复上述测量t的过程,求读取文件集FB中所有文件的平均耗时Tij。其中i表示在时间点i对文件集合进行读取,j表示对某个硬盘进行读取,此处i=1,j=1,表示在时间点1点从硬盘B中读取文件集合FB的平均耗时。
5.将上一步骤中的硬盘B依次替换为硬盘C、D…X,同时将读取文件集FB中的文件依次替换为读取文件集FC、FD…FX中的文件,并重复上一步骤,测量读取文件集FC、FD…FX中的文件的平均耗时T12、T13……T1n。
6.客户端1、客户端2与云端断开连接。
7.在每天不同时间点i=δ1,δ2….δk重复上述过程,得到并记录不同时间点的文件读取的耗时时间Ti1、Ti2……Tin,根据得到的时间建立数据库。具体时间点的选取,以及选取多少时间点要依照测量条件及云存储的负载情况决定。
图6公开了一种云存储冗余性验证方法的冗余性验证模块的流程。冗余性验证模块运行在客户端1和客户端2上,它的功能是验证云存储的冗余性。此时,我们并不确定云端是否对上传的文件进行备份,并将备份文件存入相应的硬盘。所以,我们需要使用冗余性验证模块测得在特定时间对特定位置文件读取的时间,特定时间是指客户端1在向云端上传文件的时刻,特定位置是指文件在上传云端过程中,备份写入的机械硬盘。然后将测量得到结果同参考时间模块中建立的参考时间集进行比较,从而判断云存储的冗余性。冗余性验证模块的具体步骤如下:
1.客户端1、客户端2与云端建立连接,记录此刻的时刻δ。
2.客户端1选定将要上传的文件F(此文件同参考时间测量模块中的F相同),查询文件F的备份将要存入的硬盘位置B、C….X。
3.客户端1查询在初始化过程中客户端2上传到云端的文件的存储位置,将存储在硬盘B的所有文件组成文件集合FB,同理,将存储在硬盘C、D….X中的所有文件分别组成文件集合FC、FD….FX,。
4.客户端1向云端上传文件F,客户端2同时读取集合FB,中的所有文件,试图使得硬盘B发生读写冲突。记录读取文件集合FB,中所有文件的耗时t。然后删除文件F,重复上述测量t的过程,求读取文件集FB,中所有文件的平均耗时T1’。
5.将上一步骤中的硬盘B依次替换为硬盘C、D…X,同时将读取文件集FB中的文件依次替换为读取文件集FC、FD…FX中的文件,依次试图使得硬盘C、D….X发生读写冲突,并分别测量读取文件集FC、FD…FX中的所有文件的平均耗时T2’、T3’……Tn’。
6.客户端1、客户端2与云端断开连接。
7.在参考时间测量模块得到的数据库中,找到最接近时刻δ的时间点i,将得到的T1’、T2’……Tn’与参考时间测量模块得到的数据库中的Ti1、Ti2……Tin进行对比。如果Tk’的值小于Tik的值α%以上,那么有90%的概率说明云端没有向相应的硬盘写入备份数据,云存储的冗余性不足。如果当k=1,2….n时,所有的Tk’的值小于Tik的值α%以上,那么有90%的概率说明云存储不具有冗余性。其中α的具体值与云存储品牌、云存储的负载、参考时间测量模块中选取的测量时间点、时间点数目有关。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,本领域的技术人员应可理解,凡在本发明的精神和原则之内所作的任何修改,等同替换或改进等,均应包含在本发明的保护范围之内,保护范围以权利要求书所界定者为准。
Claims (10)
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,其中客户端1上运行参考时间测量模块、冗余性检验模块,客户端2上运行初始化模块、参考时间测量模块、冗余性校验模块;
初始化模块,用于对云存储冗余性进行验证之前,向云端上传若干文件,为冗余性验证提供验证环境;
参考时间测量模块,用于建立一参考时间数据库;
冗余性校验模块,用于通过测量客户端2在设定时间读取设定位置的文件所消耗的时间与参考时间数据库中的时间进行对比来判断云存储的冗余性;其中,设定时间是指客户端1在向云端上传文件F的时刻,设定位置是指该文件F在上传云端过程中,云端备份写入的机械硬盘。
7.如权利要求6所述的系统,其特征在于,所述参考时间测量模块建立该参考时间数据库的方法为:71)客户端1、客户端2分别与云端建立连接,客户端1将待上传文件F在云端硬盘的存储位置B、C....X发送给客户端2,该文件F为客户端1已上传过且具有冗余备份的文件;72)客户端2获取其初始化模块上传文件存储在云端的硬盘存储位置,其中,在云端硬盘的存储位置B、C、....、X上的文件集合分别为FB、FC、…、FX;73)客户端1向云端上传该文件F的同时,客户端2从云端的硬盘B中读取文件集合FB中的文件并记录文件读取耗时Ti1;74)客户端1从云端删除该文件F;75)时间点i时,选取不同硬盘重复步骤73)、74),计算得到客户端2从其他硬盘中读取对应文件集合的耗时序列Ti2……Tin;76)改变时间点i,根据得到的多组耗时序列得到参考时间数据库。
8.如权利要求7所述的系统,其特征在于,通过冗余性校验模块测量得到时间并与参考时间数据库中对应的时间进行对比来判断云存储的冗余性的方法为:81)客户端1、客户端2分别与云端建立连接,客户端1将待上传文件F在云端硬盘的存储位置B、C....X发送给客户端2;82)客户端2获取其初始化模块上传文件存储在云端的硬盘存储位置,其中,在云端硬盘的存储位置B、C、....、X上的文件集合分别为FB、FC、…、FX;83)客户端1向云端上传该文件F的同时,客户端2从云端的硬盘B中读取文件集合FB中的文件并记录文件读取耗时;84)客户端1从云端删除该文件F;85)选取不同时间段重复步骤83)、84),计算得到客户端2从硬盘B中读取文件集合FB的平均耗时T1’;86)客户端1向云端上传该文件F的同时,客户端2将读取的硬盘B分别替换为C、D、....、X并选取不同时间段从对应的文件集合中读取文件并记录读取耗时,得到平均耗时T2’、T3’……Tn’;87)将得到的T1’、T2’……Tn’与参考时间数据库中时刻δ对应的或最接近的序列Tδ1、Tδ2……Tδn进行对比,如果Tk’的值小于Tδk的值α%以上,则判定云端未对文件进行备份,云存储不具有冗余性。
9.如权利要求8所述的系统,其特征在于,α的取值根据云存储品牌、云存储的负载、参考时间测量模块中选取的测量时间点、时间点数目确定。
10.如权利要求6所述的系统,其特征在于,设置一参考时间阈值t0,如果所消耗的时间t大于参考时间阈值t0,则判定云存储冗余性验证通过,否则判定云端未进行冗余性存储。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810952250.3A CN109358977B (zh) | 2018-08-21 | 2018-08-21 | 一种应用于云存储冗余性验证的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810952250.3A CN109358977B (zh) | 2018-08-21 | 2018-08-21 | 一种应用于云存储冗余性验证的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109358977A true CN109358977A (zh) | 2019-02-19 |
CN109358977B CN109358977B (zh) | 2020-12-22 |
Family
ID=65350202
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810952250.3A Active CN109358977B (zh) | 2018-08-21 | 2018-08-21 | 一种应用于云存储冗余性验证的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109358977B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110282837A1 (en) * | 2005-04-08 | 2011-11-17 | Microsoft Corporation | Virtually infinite reliable storage across multiple storage devices and storage services |
CN102710630A (zh) * | 2012-05-29 | 2012-10-03 | 新华网股份有限公司 | 一种多线程分片的云上传下载方法及系统 |
CN102970317A (zh) * | 2012-03-27 | 2013-03-13 | 广州市国迈科技有限公司 | 一种私有云存储系统的安全性设计方案 |
CN103312815A (zh) * | 2013-06-28 | 2013-09-18 | 安科智慧城市技术(中国)有限公司 | 一种云存储系统及其数据存取方法 |
CN105227672A (zh) * | 2015-10-13 | 2016-01-06 | 国家电网公司 | 数据存储及访问的方法和系统 |
CN105320899A (zh) * | 2014-07-22 | 2016-02-10 | 北京大学 | 一种面向用户的云存储数据完整性保护方法 |
CN107422986A (zh) * | 2017-05-10 | 2017-12-01 | 郑州云海信息技术有限公司 | 一种云存储系统并发读写请求的控制装置及方法 |
CN108418796A (zh) * | 2018-01-30 | 2018-08-17 | 西安电子科技大学 | 云数据多副本完整性验证及关联删除的方法、云存储系统 |
-
2018
- 2018-08-21 CN CN201810952250.3A patent/CN109358977B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110282837A1 (en) * | 2005-04-08 | 2011-11-17 | Microsoft Corporation | Virtually infinite reliable storage across multiple storage devices and storage services |
CN102970317A (zh) * | 2012-03-27 | 2013-03-13 | 广州市国迈科技有限公司 | 一种私有云存储系统的安全性设计方案 |
CN102710630A (zh) * | 2012-05-29 | 2012-10-03 | 新华网股份有限公司 | 一种多线程分片的云上传下载方法及系统 |
CN103312815A (zh) * | 2013-06-28 | 2013-09-18 | 安科智慧城市技术(中国)有限公司 | 一种云存储系统及其数据存取方法 |
CN105320899A (zh) * | 2014-07-22 | 2016-02-10 | 北京大学 | 一种面向用户的云存储数据完整性保护方法 |
CN105227672A (zh) * | 2015-10-13 | 2016-01-06 | 国家电网公司 | 数据存储及访问的方法和系统 |
CN107422986A (zh) * | 2017-05-10 | 2017-12-01 | 郑州云海信息技术有限公司 | 一种云存储系统并发读写请求的控制装置及方法 |
CN108418796A (zh) * | 2018-01-30 | 2018-08-17 | 西安电子科技大学 | 云数据多副本完整性验证及关联删除的方法、云存储系统 |
Non-Patent Citations (1)
Title |
---|
付艳艳 等: "面向云存储的多副本文件完整性验证方案", 《计算机研究与发展》 * |
Also Published As
Publication number | Publication date |
---|---|
CN109358977B (zh) | 2020-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106201338B (zh) | 数据存储方法及装置 | |
US8140484B2 (en) | Techniques for determining an implemented data protection policy | |
CN108804253B (zh) | 一种用于海量数据备份的并行作业备份方法 | |
US20070136200A1 (en) | Backup broker for private, integral and affordable distributed storage | |
KR101107564B1 (ko) | 로그 분석 기반 데이터 스토리지 서비스 관리 방법 및 이를 실현시키기 위한 프로그램을 기록한 컴퓨터로 판독 가능한 기록 매체 | |
CN112148542B (zh) | 一种分布式存储集群的可靠性测试方法、装置及系统 | |
Song et al. | Parity cloud service: a privacy-protected personal data recovery service | |
JP2008516343A (ja) | 冗長データストレージの再構成 | |
CN111988188A (zh) | 交易背书方法、装置及存储介质 | |
CN104978336A (zh) | 基于Hadoop分布式计算平台的非结构化数据存储系统 | |
CN116107516B (zh) | 数据写入方法、装置、固态硬盘、电子设备及存储介质 | |
CN114416665B (zh) | 一种数据一致性检测和修复的方法、装置及介质 | |
KR101050476B1 (ko) | 스토리지 관리 서버 기반 스크립트 관리 방법 및 이를 실현시키기 위한 프로그램을 기록한 컴퓨터로 판독 가능한 기록 매체 | |
CN110291505A (zh) | 减少应用的恢复时间 | |
WO2021151298A1 (zh) | 一种数据冗余处理方法、装置、设备及存储介质 | |
CN110442298A (zh) | 存储设备异常检测方法及装置、分布式存储系统 | |
Iliadis | Reliability evaluation of erasure-coded storage systems with latent errors | |
Li et al. | Reliability equations for cloud storage systems with proactive fault tolerance | |
CN111475839B (zh) | 一种用于不可信环境的冗余数据编码方法、存储介质 | |
US11281532B1 (en) | Synchronously storing data in a dispersed storage network | |
CN110121712A (zh) | 一种日志管理方法、服务器和数据库系统 | |
CN109358977A (zh) | 一种应用于云存储冗余性验证的方法及系统 | |
Nugraha et al. | Official document management for government service in Indonesia using smart contract | |
CN110543385A (zh) | 一种虚拟化备份方法和虚拟化备份还原方法 | |
Pamies-Juarez et al. | Maintaining data reliability without availability in p2p storage systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |