一种提高重复数据删除备份系统恢复性能的数据布局方法

文档序号:10697566阅读:237来源:国知局
一种提高重复数据删除备份系统恢复性能的数据布局方法
【专利摘要】本发明提出一种基于数据块存储地址的数据布局方法,用于提高重复数据删除备份系统的恢复性能。该方法充分考虑每个数据块的具体存储位置,并结合磁盘的带宽和寻道时间,在备份时计算数据的恢复速度,若恢复速度满足用户需求,则认为对应的数据不是数据碎片,反之则是数据碎片。与已有方法不同的是,该方法是一种基于数据块存储地址的数据布局方法,碎片识别时使用更加细粒度的碎片识别方式,能精确定位每一个碎片。通过这种方法,可以获得比其他方法更高的重删率和数据恢复性能。
【专利说明】
-种提高重复数据删除备份系统恢复性能的数据布局方法
技术领域
[0001] 本发明属于计算机信息存储技术领域,设及一种提高重复数据删除备份系统恢复 性能的,基于数据块存储地址的数据布局方法。
【背景技术】
[0002] 随着信息时代的来临,数据呈现爆炸式地增长,IDC预测到2020年将会产生44ZB的 数据。备份系统需要存储的备份数据越来越多,如何利用有限的存储资源,高效地存储PB级 甚至邸级的数据是亟待解决的问题。重复数据删除技术是一种通过大规模消除冗余数据, 降低数据存储成本的重要技术。重复数据删除技术常用于数据备份系统中,用来删除备份 系统中重复存储的数据块,W节约存储空间。不过,该技术虽然能够节约存储成本,但其在 重复数据块被删除之后,逻辑上连续的数据块在物理空间上被分散存储,导致在恢复数据 的过程中需要大量的数据块随机读取操作和磁盘寻道操作,使恢复性能严重降低。例如,在 重复数据块被删除之后,组成一个文件的N个连续的数据块很可能存储在N个不同的地方, 数据恢复时读取运个文件需要脚欠的磁盘随机读取操作,导致该文件的读取性能非常低。运 些在逻辑上连续但物理空间上不连续的数据块被称为数据碎片,数据碎片是导致数据恢复 性能严重降低的最主要的原因。
[0003] 解决碎片的主要思想是改变数据的布局,具体方法是重写适量的碎片数据,使大 部分逻辑上连续的数据块在物理存储空间上也连续,从而减少碎片的数量。W牺牲少量存 储空间为代价,换取恢复性能的提升。目前,主流识别碎片的方法是W固定大小的连续物理 空间为基本识别单位(容器),碎片识别程序检测每个容器内的有效数据量,即恢复或读取 某个数据对象(数据对象可W指一个备份文件或一个备份数据流)时需要从该容器中读取 的数据量,若该容器内的有效数据量达到一定的阔值,则认为在此次数据读取或恢复过程 中,该容器内的有效数据不是数据碎片,反之是则被认定为数据碎片,例如帽子算法(CAP, the ca邮ing algorithm)和基于上下文重写算法(CBR,The Context-Based Rewriting algorithm)等。虽然通过重写该类碎片能够在一定程度上提升数据恢复性能,但是运种碎 片识别方法只关注容器中有效数据块的总量,不考虑每个有效数据块的具体存储地址,无 法精确定位数据碎片,导致重写过多的数据,并且恢复性能得不到有效的提升。
[0004] 针对已有解决方案存在的问题,我们提出一种全新的用于提高重复数据删除备份 系统恢复性能的数据布局方法。该方法充分考虑每个数据块的具体存储位置,并结合磁盘 的带宽和寻道时间,在备份时计算数据的恢复速度,若恢复速度满足用户需求,则认为对应 的数据不是数据碎片,反之则是数据碎片。与已有方法不同的是,该方法是一种基于数据块 存储地址的数据布局方法,碎片识别时使用更加细粒度的碎片识别方式,不再使用固定大 小的容器,不再忽视容器内部数据块的数据布局,精确定位每一个碎片。通过运种方法,可 W获得比其他方法更高的重删率和数据恢复性能。

【发明内容】

[0005] 本发明提出一种基于数据块存储地址的数据布局方法,用于提高重复数据删除备 份系统的恢复性能。该方法充分考虑每个数据块的具体存储位置,并结合磁盘的带宽和寻 道时间,在备份时计算数据的恢复速度,若恢复速度满足用户需求,则认为对应的数据不是 数据碎片,反之则是数据碎片。与已有方法不同的是,该方法是一种基于数据块存储地址的 数据布局方法,碎片识别时使用更加细粒度的碎片识别方式,能精确定位每一个碎片。通过 运种方法,可W获得比其他方法更高的重删率和数据恢复性能。
[0006] 本发明的核屯、思想之一是数据碎片识别。碎片识别的基本单位为数据组。每个数 据组由一定量的存储地址相邻的数据块组成。若在一个组中,恢复或读取某个数据集对象 (数据对象可W指一个备份文件或一个备份数据流)时,该组内的有效数据块的传输速度低 于用户所期望的传输速度,则该组内的有效数据块被认定为数据碎片,反之,则该组内的有 效数据块不是数据碎片。如公式1所示,不等号左侧是有效数据传输速度,右侧为用户所期 望的传输速度。若满足公式1,则说明有效数据的传输速度高于或等于用户期望速度,组内 的有效数据块不是数据碎片。
[0007]
[000引在上述公式1中,不等号左侧的分子X指有效数据块的总大小,分母t+y/B表示读取 该有效数据所需要的传输时间,x/(t+y/B)则表示有效数据X的传输速度,其中t表示磁盘寻 道时间,y表示读取该有效数据X所需读取的数据总量,即有效数据块的最小存储地址和最 大存储地址之间所存储的数据量总和;不等号右侧的分子B表示磁盘带宽(即磁盘的传输速 度),分母η用于限定用户期望的数据读取速度,B/n表示用户期望有效数据的读取速度为磁 盘最大传输速度的1/n倍。因此,公式1表示用户期望有效数据的读取速度至少为磁盘最大 传输速度的1/η倍。
[0009] 本发明核屯、思想之二是数据块分组。首先把有效数据块按照存储地址进行排序, 然后把相邻的存储地址间隔小于分组阔值(gap)的数据块分为一个组,而相邻的存储地址 间隔大于或等于分组阔值的数据块则被分到两个不同的组。分组阔值的定义如公式2所示, 其中gap为分组阔值,gap表示满足公式1的有效数据X的最小值。
[0010]
[00川上述公式袖公式1推导得出。在公示1中,nx别t+y,因为y>x,所Wx别t/(n-l)。
[0012] 本发明的一种基于数据块存储地址的数据布局方法,主要包括四个模块:数据分 块与指纹管理模块、组划分模块、碎片识别模块、数据删除与存储模块。数据分块与指纹管 理模块主要对备份数据集采用数据块变长算法进行不定长分块,W及采用哈希函数计算每 个数据块的指纹,并对整个备份数据集的数据块指纹进行管理,该模块维护一个指纹查找 表用于判断某个数据块是否为重复数据块,指纹查找表的每一项包括数据块的指纹和该数 据块的存储地址。组划分模块和碎片识别模块用来进行数据布局的相关操作,其中组划分 模块主要使用公式2对数据进行分组操作,碎片识别模块主要使用公式1判断待识别组中的 数据是否为碎片数据。数据删除与存储模块主要用于删除非碎片的重复数据块,存储新数 据块和碎片数据块。
[0013] 数据布局的主要流程为:
[0014] (1)数据分块与指纹管理模块对需要备份的数据集使用数据块变长算法进行不定 长分块,然后采用哈希算法计算每个数据块的指纹,如采用RabinFingerprint算法进行数 据分块,采用SHA-1哈希算法计算每个数据块的指纹。
[0015] (2)数据分块与指纹管理模块在指纹查找表中查询步骤(1)中计算得到的数据块 指纹,若不存在该指纹,则标记对应的数据块为新数据块;反之若存在该指纹,则说明对应 的数据块已经被存储过,标记该数据块为重复数据块,并记录该数据块的存储地址。
[0016] (3)组划分模块对步骤(2)得到的重复数据块根据公式2进行分组操作,即把运些 重复数据块按照数据块的存储地址进行排序,将相邻的存储地址间隔小于分组阔值(gap) 的数据块分为一个组,而相邻的存储地址间隔大于或等于分组阔值的数据块则被分到两个 不同的组。
[0017] (4)碎片识别模块根据公式1对步骤(3)所得到的每个组进行碎片识别。若组内数 据是碎片,将该组中的数据块标记为碎片数据块。否则,则将该组中的数据块标记为非碎片 数据块。
[0018] (5)数据删除和存储模块删除步骤(4)中识别出的非碎片数据块,存储步骤(4)中 识别出的碎片数据块W及步骤(2)中标记出的新数据块并记录该数据块的存储地址。
[0019] (6)数据分块与指纹管理模块根据新数据块W及碎片数据块在步骤(5)获得的存 储地址更新指纹查找表。
[0020] 本发明具有如下的特点:
[0021] (1)本发明相比已有的数据布局方法,使用数据块存储地址进行数据布局,碎片识 别时使用更加细粒度的碎片识别方式,能精确定位每一个数据碎片,实现更精细化的碎片 管理,获得更高的重删率和更好的恢复性能。
[0022] (2)本发明所能获得的重删率和恢复性能是可配置的。根据不同的使用场景,不同 的性能需求,可通过调整公式2中的相关参数,获得用户理想中的恢复速度。例如,若存储空 间比较紧缺,则可W增大公式2中的η值,W降低少量恢复性能为代价获得更高的重删率,节 约存储空间;若存储空间比较充足,则可W减小公式2的η值,W牺牲较小的重删率为代价, 获得更好的恢复性能。
[0023] 综上所述,本发明是一种用于提高重复数据删除系统恢复性能的基于数据块存储 地址的数据布局方法。该方法利用存储地址进行分组并进行碎片识别,实现了更加精细化 地管理,与已有的数据布局解决方法相比拥有更高重删率和恢复性能。同时,本发明还能针 对不同的使用场景,通过调整参数获得与场景相适应的重删率和恢复性能。
【附图说明】
[0024] 图1为碎片识别示意图
[0025] 图2为分组示意图
[0026] 图3为模块结构示意图
[0027] 图4为数据布局流程图
【具体实施方式】
[0028] 图1为本发明的碎片识别示意图。碎片识别的基本单位为数据组。每个数据组由一 定量的存储地址相邻的数据块组成。若在一个组中,恢复或读取某个数据集对象(数据对象 可W指一个备份文件或一个备份数据流)时,该组内的有效数据块的传输速度低于用户所 期望的传输速度,则该组内的有效数据块被认定为数据碎片,反之,则该组内的有效数据块 不是数据碎片。图1中阴影部分之和是组内有效数据块的总大小X,包括Xl、x2、x3、x4,x = xl +x2+x3+x4"y表示读取有效数据X所需要读取的数据总量,即有效数据块的最小存储地址和 最大存储地址之间所存储的数据量总和。
[0029] 图2为本发明的分组示意图。首先把有效数据块按照存储地址进行排序,然后把相 邻的存储地址间隔小于分组阔值(gap)的数据块分为一个组,而相邻的存储地址间隔大于 或等于分组阔值的数据块则被分到两个不同的组。
[0030] 图3为本发明的模块结构示意图。本发明的一种基于数据存储地址的数据布局方 法包括四个模块,数据分块与指纹管理模块110、组划分模块120、碎片识别模块130、数据删 除与存储模块140。数据分块与指纹管理模块110主要对备份数据集采用数据块变长算法进 行不定长分块,W及采用哈希函数计算每个数据块的指纹,并对整个备份数据集的数据块 指纹进行管理,该模块维护一个指纹查找表用于判断某个数据块是否为重复数据块,指纹 查找表的每一项包括数据块的指纹和该数据块的存储地址。组划分模块120和碎片识别模 块130用来进行数据布局的相关操作,其中组划分模块120主要使用公式2对数据进行分组 操作,碎片识别模块130主要使用公式1判断待识别组中的数据是否为碎片数据。数据删除 与存储模块140主要用于删除非碎片的重复数据块,存储新数据块和碎片数据块。
[0031] 图4为本发明的数据布局流程图,具体步骤如下:
[0032] (1)数据分块与指纹管理模块110对需要备份的数据集使用数据块变长算法进行 不定长分块,然后采用哈希算法计算每个数据块的指纹,如采用RabinFingerprint算法进 行数据分块,采用SHA-1哈希算法计算每个数据块的指纹。
[0033] (2)数据分块与指纹管理模块110在指纹查找表中查询步骤(1)中计算得到的数据 块指纹,若不存在该指纹,则标记对应的数据块为新数据块;反之若存在该指纹,则说明对 应的数据块已经被存储过,标记该数据块为重复数据块,并记录该数据块的存储地址。
[0034] (3)组划分模块120对步骤(2)得到的重复数据块根据公式2进行分组操作,即把运 些重复数据块按照数据块的存储地址进行排序,将相邻的存储地址间隔小于分组阔值 (gap)的数据块分为一个组,而相邻的存储地址间隔大于或等于分组阔值的数据块则被分 到两个不同的组。
[0035] (4)碎片识别模块130根据公式1对步骤(3)所得到的每个组进行碎片识别。若组内 数据是碎片,将该组中的数据块标记为碎片数据块。否则,则将该组中的数据块标记为非碎 片数据块。
[0036] (5)数据删除和存储模块140删除步骤(4)中识别出的非碎片数据块,存储步骤(4) 中识别出的碎片数据块W及步骤(2)中标记出的新数据块并记录该数据块的存储地址。
[0037] (6)数据分块与指纹管理模块110根据新数据块W及碎片数据块在步骤(5)获得的 存储地址更新指纹查找表。
【主权项】
1. 本发明一种提高重复数据删除备份系统恢复性能的基于数据块存储地址的数据布 局方法,具体步骤为: (1) 对需要备份的数据集使用数据块变长算法进行不定长分块,然后采用哈希算法计 算每个数据块的指纹。 (2) 在指纹查找表中查询步骤(1)中计算得到的数据块指纹,若不存在该指纹,则标记 对应的数据块为新数据块;反之若存在该指纹,则说明对应的数据块已经被存储过,标记该 数据块为重复数据块,并记录该数据块的存储地址。 (3) 对步骤(2)得到的重复数据块进行分组操作,即把这些重复数据块按照数据块的存 储地址进行排序,将相邻的存储地址间隔小于分组阈值的数据块分为一个组,而相邻的存 储地址间隔大于或等于分组阈值的数据块则被分到两个不同的组。 (4) 对步骤(3)所得到的每个组进行碎片识别。若在一个组中,恢复或读取某个数据集 对象(数据对象可以指一个备份文件或一个备份数据流)时,该组内的有效数据块的传输速 度低于用户所期望的传输速度,则该组内的有效数据块被标记为数据碎片,反之,则该组内 的有效数据块被标记为非碎片数据块。 (5) 删除步骤(4)中识别出的非碎片数据块,存储步骤(4)中识别出的碎片数据块以及 步骤(2)中标记出的新数据块并记录该数据块的存储地址。 (6) 根据新数据块以及碎片数据块在步骤(5)获得的存储地址更新指纹查找表。2. 根据权利要求1所述的数据布局方法,其特征在于: (1) 本发明一种基于数据块存储地址的碎片识别方法,具体为:碎片识别的基本单位为 数据组,每个数据组由一定量的存储地址相邻的数据块组成。若在一个组中,恢复或读取某 个数据集对象(数据对象可以指一个备份文件或一个备份数据流)时,该组内的有效数据块 的传输速度低于用户所期望的传输速度,则该组内的有效数据块被认定为数据碎片,反之, 则该组内的有效数据块不是数据碎片。如公式1所示,不等号左侧是有效数据传输速度,右 侧为用户所期望的传输速度。若满足公式1,则说明有效数据的传输速度高于或等于用户期 望速度,组内的有效数据块不是数据碎片。在上述公式1中,不等号左侧的分子X指有效数据块的总大小,分母t+y/B表示读取该有 效数据所需要的传输时间,x/(t+y/B)则表示有效数据X的传输速度,其中t表示磁盘寻道时 间,y表示读取该有效数据X所需读取的数据总量,即有效数据块的最小存储地址和最大存 储地址之间所存储的数据量总和;不等号右侧的分子B表示磁盘带宽(即磁盘的传输速度), 分母η用于限定用户期望的数据读取速度,B/n表示用户期望有效数据的读取速度为磁盘最 大传输速度的1/n倍。因此,公式1表示用户期望有效数据的读取速度至少为磁盘最大传输 速度的1/η倍。 (2) 本发明一种基于数据块存储地址的数据分组方法,具体为:首先把有效数据块按照 存储地址进行排序,然后把相邻的存储地址间隔小于分组阈值(gap)的数据块分为一个组, 而相邻的存储地址间隔大于或等于分组阈值的数据块则被分到两个不同的组。分组阈值的 定义如公式2所示,其中gap为分组阈值,gap表示满足公式1的有效数据X的最小值。上述公式2由公式1推导得出。在公示1中,nx彡Bt+y,因为y彡x,所以x彡Bt/(n-l)。
【文档编号】G06F11/14GK106066818SQ201610351498
【公开日】2016年11月2日
【申请日】2016年5月25日 公开号201610351498.5, CN 106066818 A, CN 106066818A, CN 201610351498, CN-A-106066818, CN106066818 A, CN106066818A, CN201610351498, CN201610351498.5
【发明人】谭玉娟, 文舰, 晏志超
【申请人】重庆大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1