著录项信息
专利名称 | 一种适用于云备份的重复数据删除方法 |
申请号 | CN201010263933.1 | 申请日期 | 2010-08-27 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2010-12-08 | 公开/公告号 | CN101908077A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F17/30 | IPC分类号 | G;0;6;F;1;7;/;3;0;;;H;0;4;L;2;9;/;0;8查看分类表>
|
申请人 | 华中科技大学 | 申请人地址 | 湖北省武汉市洪山区珞喻路1037号
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 华中科技大学 | 当前权利人 | 华中科技大学 |
发明人 | 冯丹;谭玉娟;田磊;许蔚;晏志超;周国惠 |
代理机构 | 华中科技大学专利中心 | 代理人 | 李智 |
摘要
本发明提出一种适用于云备份的重复数据删除方法,主要包括三层次的重复数据删除:第一层根据文件的修改时间和备份时间进行初步重复文件删除,第二层是全局的基于文件级的重复数据删除,第三层是局部的基于块级的重复数据删除。本发明重复数据删除方法层层递进,在数据压缩率和重复数据的查找开销之间达到了很好的平衡,有着很高的数据压缩率/查找开销的比值,在很短的时间内删除了大量的重复数据,减少了备份数据的传输和存储,解决了云备份系统中备份窗口过大和存储开销过大的问题。
1.一种适用于云备份的重复数据删除方法,具体为:
A本地客户端接受用户备份任务请求,备份任务请求携带的信息有待备份文件内容信息、文件数据量、文件类型、最近一次修改时间和最近一次备份时间;
B若最近一次修改时间晚于最近一次的备份时间,进入步骤C,否则,结束;
C实施全局的基于文件级的重复数据删除:
C.1本地客户端使用哈希函数计算待备份文件的哈希值,使用该哈希值为代备份文件命名,文件哈希值为文件的唯一标识,任何具有相同哈希值的两个文件被认为是相同的文件;
C.2若待备份文件的数据量大于传送阈值,则认为其是大文件,本地客户端将文件哈希值传送给主服务器,进入步骤C.3,否则,进入步骤D,传送阈值的大小由用户自行确定,可参考备份文件集的特征来确定;
C.3主服务器查询是否存有该文件哈希值,若存在,则结束,否则,记录该文件哈希值,并返回备份确认信息给本地客户端,进入步骤D;
D实施局部的基于块级的重复数据删除:
D.1本地客户端对待备份文件进行分块;
D.2本地客户端使用哈希函数计算步骤D.1得到的每个数据块的哈希值,得到的数据块哈希值为数据块指纹,使用数据块指纹对数据块命名;数据块指纹为数据块的唯一标识,任何具有相同数据块指纹的两个数据块被认为是相同的数据块;
D.3若待备份文件类型为压缩文件,则将所有数据块标记为待备份数据块;若待备份文件类型为非压缩文件,则对于每一个数据块,本地客户端查询其数据块指纹是否已经存在,若不存在,表明其对应数据块没有备份过,则将该数据块标记为待备份数据块,并记录该数据块指纹;
E本地客户端将步骤D.3标记的待备份数据块传送给存储服务器,存储服务器对这些数据块进行存储。
2.根据权利要求1所述的重复数据删除方法,其特征在于,所述步骤C.3首先在内存中查询是否存在该文件哈希值,若存在,则结束;否则进入磁盘继续查询是否存在,若存在,则将磁盘中与该文件哈希值存储位置相邻的哈希值调入内存,为下一个待备份文件的哈希值查询做好准备,否则向本地客户端返回备份确认信息。
一种适用于云备份的重复数据删除方法\n技术领域\n[0001] 本发明属于计算机信息存储技术领域,具体涉及一种适用于云备份的重复数据删除方法。\n背景技术\n[0002] 随着云计算的兴起,将备份作为一种服务的方式提供给广大客户使用越来越受用户的欢迎,这种备份服务就叫做云备份。和传统的备份相比,云备份有着诸多优点。首先,云备份的安装、使用、维护都比传统的备份软件更简便。通常用户只需要在数据机安装精巧的客户端或插件,经过设置任务后,就可以按照每天或者每周的备份间隔来备份文件数据。\n其次,作为一种网络服务,云备份本身解决了数据的异地容灾问题,解决了用户自行构建容灾备份系统的技术难题。同时,与一般的备份相比,云备份更注重数据传输和数据存储的安全性。数据通常在传输的过程加密,已备份的数据由专业服务厂商负责维护其存储和访问安全性。另外,用户仅根据所索取的备份服务进行付费,在用户空闲不需要服务时,不必支付浪费额外的硬件和软件费用,并且服务的伸缩性很强,用户可以在不同的时候请求不同的服务,而不必担心软硬件的升级问题,这些问题由专业的服务厂商管理和维护,用户仅根据服务进行付费即可。\n[0003] 不过,目前的云备份系统还存在着一些挑战。其中最大的问题是备份数据的网络传输问题。由于云备份在广域网中传输备份数据,而广域网本身具有传输带宽很低,网络延迟很长的特点,用户每一次备份任务都需要很长的时间来传输备份数据,由此导致备份任务的备份窗口很大,以致用户难以接受。另外,随着用户备份数据的不断增加,备份服务提供方需要在数据中心提供巨大的存储空间和高昂的数据管理费用来保存和管理这些备份数据,给备份服务提供方的带来很大的存储开销。因此,无论是备份数据的网络传输问题,还是备份数据的存储开销问题,都需要一个很好的压缩算法来减少备份数据的传输和存储,以此来改善云备份系统的性能。\n[0004] 目前在云备份系统中用的最多的数据压缩方法是基于源端的重复数据删除方法。\n基于源端的重复数据删除法是指在备份数据到达备份目的地之前,将重复的数据在源端进行删除,消除重复数据的传输和存储。在现有的云备份系统中,主要源端重复数据删除的方法有两种:全局的基于块级的源端重复数据删除方法和局部的基于块级的源端重复数据删除方法。前者消除全局的所有重复数据块,而后者仅仅消除同一个用户的重复数据块。\n不过,由于内存容量有限,大部分的数据块指纹(数据块的唯一标识)都存放在磁盘上,因此,在鉴别某一个数据块是否已经存在时,需要查询和比对所有已存放在磁盘上的数据块指纹,这样会引入大量的磁盘访问。近年来,一些学者发现,基于块级的重复数据删除技术有着很高的这种数据块指纹的磁盘查找开销,会严重影响重复数据删除的性能和备份的性能。在全局的基于块级的源端重复数据删除方法中,由于要删除所有的重复数据块,需要在全局查询比对所有的数据块指纹,引入大规模的数据块指纹的磁盘查找,会导致重复数据删除的延时很长,致使备份窗口加大。而在局部的基于块级的源端重复数据删除方法中,由于只删除同一个用户的重复数据块,仅仅需要查询和比对同一个用户的数据块指纹,这种指纹的磁盘查找开销会比较小,不过,由于删除的重复数据变少,压缩率降低,广域网上传输的备份数据就会增多,同样会导致很大的备份窗口。\n发明内容\n[0005] 本发明提出一种适用于云备份的重复数据删除方法,减少重复数据删除过程中重复数据的查找开销,加快重复数据删除的速度,减少备份数据的传输和存储,解决现有的云备份系统中备份窗口过大和存储开销过大的问题。\n[0006] 一种适用于云备份的重复数据删除方法,具体为:\n[0007] (1)本地客户端接受用户备份任务请求,备份任务请求携带的信息有待备份文件内容信息、文件数据量、文件类型、最近一次修改时间和最近一次备份时间;\n[0008] (2)若最近一次修改时间晚于最近一次的备份时间,进入步骤(3),否则,结束;\n[0009] (3)实施全局的基于文件级的重复数据删除:\n[0010] (3.1)本地客户端使用哈希函数计算待备份文件的文件哈希值;\n[0011] (3.2)若待备份文件的数据量大于传送阈值,则本地客户端将文件哈希值传送给主服务器,进入步骤(3.3),否则,进入步骤(4);\n[0012] (3.3)主服务器查询是否存有该文件哈希值,若存在,则结束,否则,记录该文件哈希值,并返回备份确认信息给本地客户端,进入步骤(4);\n[0013] (4)实施局部的基于块级的重复数据删除:\n[0014] (4.1)本地客户端对待备份文件进行分块;\n[0015] (4.2)本地客户端使用哈希函数计算步骤(4.1)得到的每个数据块的哈希值;\n[0016] (4.3)若待备份文件类型为压缩文件,则将所有数据块标记为待备份数据块;若待备份文件类型为非压缩文件,则对于每一个数据块,本地客户端查询是否存有其对应的哈希值,若不存有,则将该数据块标记为待备份数据块,并记录其对应的哈希值;\n[0017] (5)本地客户端将步骤(4.3)标记的待备份数据块传送给存储服务器,存储服务器对这些数据块进行存储。\n[0018] 本发明的适用于云备份的重复数据删除方法包括三层,第一层为本地增量备份,本地增量备份通过判断文件的最近一次修改时间,来过滤最近一次备份后完全没有修改过的文件。第二层为全局的基于文件级的重复数据删除,在主服务器过滤已经备份过的重复文件,同时通过忽略小文件和利用重复文件的空间局部性来减少重复文件的查找空间,降低重复文件的查找开销。第三层为局部的基于块级的重复数据删除,在第二层的全局重复文件删除后,本地客户端将待备份文件进行分块,过滤此用户已经备份过的重复数据块,同时通过忽略压缩文件来降低重复数据块的查找开销。任何一次备份任务开始后,本地客户端的待备份文件将依次经过本地增量备份,全局的基于文件级的重复数据删除和局部的基于块级的重复数据删除这三层进行重复数据的删除。经过这三层处理之后,剩下没有备份过的数据块就是本次备份任务真正要备份的数据。\n[0019] 本发明具有如下的特点:\n[0020] (1)本发明将文件级的重复数据删除技术和块级的重复数据删除技术结合,在数据压缩率和重复数据的查找开销之间达到了一个很好的平衡。文件级的重复数据删除达到的数据压缩率有限,但其重复数据的查找以文件为单位,查找开销相对于数据块级的查找开销较少。块级的重复数据删除能够达到很好的数据压缩率,但其重复数据块的查找开销很大。经过将文件级的重复数据删除技术和块级的重复数据删除技术这两者相结合,可以在数据压缩率和重复数据的查找开销之间达到了一个很好的平衡。\n[0021] (2)本发明将全局的基于文件级重复数据删除和局部的基于块级重复数据删除结合,能够达到一个很高的数据压缩率/重复数据查找开销的比值。从全局的所有数据来看,全局的重复文件占主导地位,在重复文件之外的重复数据块很少,同时,由于重复文件的查找开销要小于重复数据块的查找开销,因此在全局使用基于文件级的重复数据删除能够以很小的重复数据查找开销换取很高的数据压缩率。而从局部的数据来看,通过使用增量备份过滤掉重复文件之后,重复的数据块占主导地位,使用局部的基于块级的重复数据删除能够达到很高的数据压缩率。\n[0022] (3)本发明在本地增量备份时,通过判断文件的最近一次修改时间和最近一次备份时间,就可以快速判断出哪些文件没有进行修改过,而不需要使用文件级的重复数据删除或块级的重复数据删除方法来消除这些重复文件。\n[0023] (4)本发明在全局的基于文件级的重复数据删除时,通过忽略小文件,大大减少了重复数据的查找开销,同时也提高了数据压缩率/重复数据查找开销的比值。在文件系统中,小文件的数量很大,拥有的数据量和占用的空间却非常少,通过忽略这些小文件,牺牲的很小压缩率来换取减少很大的重复文件的查找空间,大大减少了重复文件的查找开销。\n[0024] (5)本发明在全局的基于文件级的重复数据删除时,通过利用重复文件的局部性,大大减少了重复文件的查找开销。由于重复文件的出现具有空间局部性,即当一个文件是重复文件时,与其相邻的其他文件都很有可能是重复文件。利用重复文件的这种空间局部性,当发现一个文件是重复文件时,将磁盘上与其相邻存储的其他文件哈希值预取到内存,以此来减少重复文件的磁盘查找开销。\n[0025] (6)本发明在局部的基于块级的重复数据删除时,通过忽略压缩文件,大大减少了重复数据块的查找开销。压缩文件一般具有两个很强的特性:一是压缩文件很大,对压缩文件分块后其数据块非常多;二是压缩文件之间几乎很少重复的数据块。利用压缩文件的这种特性,通过忽略压缩文件,牺牲很小的数据压缩率来换取减少很大的重复数据块的查找空间,大大减少了重复数据块的查找开销。\n[0026] 综上所述,本发明通过将全局的基于文件级的重复数据删除和局部的基于块级的重复数据删除结合起来,同时通过考虑多种文件语义信息,如文件的修改时间,文件的大小,文件的类型及重复文件的局部性等,减少重复数据的查找空间,在数据压缩率和重复数据的查找开销之间达到了很好的平衡,有着很高的数据压缩率/重复数据查找开销的比值,在很短的时间内删除了大量的重复数据,减少了备份数据的传输和存储,解决了云备份系统中备份窗口过大和存储开销过大的问题。\n附图说明\n[0027] 图1为本发明整体流程示意图;\n[0028] 图2为本发明中全局的基于文件级的重复数据删除示意图;\n[0029] 图3为本发明中局部的基于块级的重复数据删除示意图;\n[0030] 图4为本发明中主服务器文件哈希值查询的流程示意图。\n具体实施方式\n[0031] 本发明涉及的主体有本地客户端,处于数据中心的主服务器和存储服务器。处于数据中心的主服务器和存储服务器构成云备份服务的提供方,本地客户端为云备份服务的使用方。本地客户端的数据通过广域网络备份到数据中心的存储服务器。\n[0032] 图1为本发明整体流程示意图,具体为:\n[0033] (1)本地客户端接受用户备份任务请求,备份任务请求携带有待备份文件的相关信息,包括文件的内容、文件的数据量,文件的类型,最近一次修改时间和最近一次备份时间等;\n[0034] (2)本地客户端查询待备份文件,若该文件最近一次的修改时间晚于该文件最近一次的备份时间,则表明此文件刚被修改过,需要重新备份,进入步骤(3),否则表明此文件没有进行最新修改,不需要再次备份,结束。\n[0035] (3)实施全局的基于文件级的重复数据删除,详细流程见图2,\n[0036] 具体方式如下:\n[0037] (3.1)本地客户端使用哈希函数计算待备份文件的文件哈希值,用文件哈希值对文件进行命名,文件哈希值为文件的唯一标识,任何具有相同文件哈希值的两个文件被认为是相同的文件;\n[0038] (3.2)本地客户端将文件哈希值发送给主服务器;为了减少主服务器的负担,本地客户端只将大文件的文件哈希值发送给主服务器,即本地客户端只向主服务器询问大文件的文件哈希值是否已经备份过,小文件不参与此询问过程,直接进入步骤(4)进行局部的基于块级的重复数据删除。这里忽略小文件是因为本地客户端的小文件的数量很大,拥有的数据量和占用的空间确非常少,通过忽略这些小文件,可以牺牲的很小压缩率来换取主服务器查询开销的大大减少。若文件的数据量大于传送阈值,则认为其是大文件,否则,则认为其是小文件。传送阈值的大小由用户自行确定,可参考备份文件集的特征来确定。\n[0039] (3.3)主服务器接收本地客户端发送过来的文件哈希值,查询是否存在该哈希值,若存在,则表明其对应文件已经备份过(被此用户或其他用户备份过),则无需再次备份,结束;若不存在,表明其对应文件没有备份过,记录该文件哈希值,并返回备份确认信息给本地客户端,告知本地客户端具有该文件哈希值的文件需要备份。\n[0040] 另外,由于主服务器的内存容量有限,大部分已经备份过的文件哈希值存储在磁盘上。当主服务器查询本地客户端发送过来的文件哈希值是否已经备份过时,需要访问磁盘上存储的文件哈希值,会引入大量的磁盘访问操作。为了减少查询过程中的磁盘访问操作,本发明利用重复文件的局部性(即当某一个文件已经备份过,和此文件相邻的其他文件也很可能已经备份过),将相邻的文件哈希值预取到内存中,使相邻文件哈希值的查询可以在内存中进行,从而减少对磁盘的访问。主服务器的文件哈希值查询的详细流程见图\n4:主服务器首先在内存中查需是否存在该文件哈希值,若存在,则表明该文件无须备份,结束;否则,进入磁盘继续查询是否存在该文件哈希值,若存在,则无须备份,但需将磁盘中与该文件哈希值存储位置相邻的哈希值调入内存(具体相邻界定范围由用户确定,推荐相邻\n5000~20000个文件哈希值),为下一个待备份文件的哈希值查询做好准备,结束,否则表明其对应文件需要备份,向本地服务器返回备份确认信息。\n[0041] (4)实施局部的基于块级的重复数据删除,参考图3,具体方式如下;\n[0042] (4.1)本地客户端使用变长分块算法,如基于指纹的分块算法(Rabin Fingerprint algorithm),对待备份文件进行分块。不局限于此分块方式,其它分块方式均可采用。\n[0043] (4.2)本地客户端使用哈希函数计算每个数据块的哈希值,得到的数据块哈希值称为数据块指纹,使用数据指纹对每个数据块命名;数据块指纹为数据块的唯一标识,任何具有相同数据块指纹的两个数据块被认为是相同的数据块。\n[0044] (4.3)本地客户端查询这些数据块指纹是否已经存在,若不存在,表明其对应数据块没有备份过,则将数据块指纹对应的数据块标记为待备份数据块,并记录该数据块指纹。为了减少本地客户端查询数据块指纹的开销,本地客户端只查询非压缩文件的数据块指纹,而对于压缩文件(比如音频文件,视频文件,图片文件,等等)的数据块,本地客户端将其全部标记为待备份数据块。这里忽略压缩文件主要是因为压缩文件具有两个很强的特性:一是压缩文件很大,对压缩文件分块后数据块非常多,二是压缩文件之间几乎很少重复的数据块。利用压缩文件的这种特性,通过忽略压缩文件,可以牺牲很小的数据压缩率来换取重复数据块的查询开销的大大减少。\n[0045] (5)本地客户端将待备份数据块传送给存储服务器,存储服务器对这些数据块进行存储。
法律信息
- 2012-11-21
- 2011-01-19
实质审查的生效
IPC(主分类): G06F 17/30
专利申请号: 201010263933.1
申请日: 2010.08.27
- 2010-12-08
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2007-11-21
|
2006-12-26
| | |
2
| |
2010-05-12
|
2009-12-10
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |