专利名称:一种备份数据集中存储的管理方法
技术领域:
本发明涉及信息安全技术领域,更具体地,本发明涉及一种备份数据集中 存储的管理方法。
背景技术:
随着计算机技术的不断发展和信息化程度的不断提高,人们对信息的依赖程度越来越高。信息在IT环境中的高度集中存储,很大程度上提高了信息 和数据管理的自动化,提高了运营效率,降低了成本。但同时,风险性也不 断地增加,从而灾难发生所造成的数据丢失可能会导致巨大的损失。为了避免灾难带来的不利影响,就需要建立灾备系统,对生产系统的关 键数据进行保护。而灾备系统的分散建设极大地增加了建设成本和维护成本, 导致目前灾备体系比较薄弱。另外,集中存储的备份数据中存在大量重复数 据,浪费了大量的存储空间。针对建设成本和维护成本比较高的问题,四川大学于2008年1月17曰 提交的申请号为200810045207.5的中国专利申请提供了 一种与源结构无关的 备份数据共享存储方法,其中,备份数据的组织结构没有变化,虽然备份中 心与备份源数据存储结构无关,但该专利申请仍然没有消除灾备系统中的重 复数据,使得备份数据占用巨大的存储空间。发明内容为克服现有重复备份、存储开销大的缺陷,本发明提出一种备份数据集中 存储的管理方法。根据本发明的一个方面,提出了一种多用户备份数据组织表,包括用户 表、任务表、备份点索引表、数据块索引表和数据仓库;其中,所述用户表存i文数据备份的终端用户的用户名、密码;所述任务表记录终端用户所建立的备份任务的名称、备份数据,并保存备份任务与用户之间的映射关系;所述备份点索引表记录备份任务在备份点所产生的备份数据的数据对象名 称、对象属性以及数字指紋列表;所述数据块索卩I表记录备份数据的数字指紋、存储备份数据的数据仓库编 号和备份数据在该数据仓库中的偏移量;所述数据仓库表示备份数据的存储位置和该备份数据的引用信息。其中,所述用户表中每项包括用户ID、用户名、密码;所述任务表中每一 项包括用户ID、任务ID、任务名、备份模式、备份计划;其中, 一个用户具有 一个或者多个备份任务,所述用户表通过用户ID与所述任务表建立映射。其中,所述备份点索引集描述备份任务在备份点执行备份操作而产生的备 份数据集,所述备份点索引集以数据对象为单位进行描述,数据对象是文件、 数据巻或者数据库。其中,所述数据指紋列表描述数据对象的所有数据块的数字指紋,所述数 字指紋通过安全散列算法或者信息摘要算法计算来标志数据块。其中,所述数据仓库包括数字指紋、引用次数、长度以及数据块内容,引 用次数用来表示所述数据块被引用的次数。根据本发明的第二方面,提出了根据上述一个多用户备份数据组织表的备 份方法,包括步骤10)、接收备份数据的数据对象描述信息,将和多用户备份数据组织 表中数据指紋不同的所述数据对象描述信息中的数字指紋对应的数据块进行备 份,并将所述数据块对应的索引信息以及所述数据对象描述信息对应存放到所 述多用户备4分数据组织表中,增加所述数据块的引用次数。其中,所述数据对象描述信息包括对象名、对象属性和数据指紋列 表,所 述数据指紋列表描述所述数据对象包含的所有数据块的数字指紋。其中,步骤IO)进一步包括对于和多用户备份数据组织表中数据指紋相同的所述数据对象描述信息中 的数字指紋所对应的数据块不进行备份,将所述数据对象描述信息中的所述数字指紋定位到多用户备份数据组织表中数据指紋指示的数据块,将所述数据对 象描述信息对应于所述数据块存放到所述多用户备份数据组织表中,增加所述 数据块的引用次数。其中,所述方法还包括步骤20)、根据用户信息、任务信息和备份点信息从所述备份点索引表中 获取数据对象的数字指紋列表,根据对应的所述数据块的所述数字指紋查询数 据块索引表来获取所述数据块的存放位置,从数据仓库读取所述数据块。根据本发明的第三方面,提出了根据上述一个多用户备份数据组织表的备 份数据合并方法,包括步骤IIO)、依次读取所述两个相邻备份点中数据对象对应的数字指紋;步骤120)、根据对应的数字指紋读取两个数据对象的数据块,对数据块进 行合并;步骤130)、形成新时间点的数字指紋列表和数据块,并分别保存在所述多 用户备份数据组织表和所述数据仓库。根据本发明的第四方面,提出了根据上述一个多用户备份数据组织表的备 份数据管理方法,包括步骤10)、从根据用户信息、任务信息和备份点信息定位的备份点索引表 中获取要删除的数据对象对应的数字指紋列表;步骤20)、根据所述数字指紋列表中的数据指紋在所述数据块索引表中查 找数据块的存放位置,步骤30)、从数据仓库中读取所述数据块的描述信息,将所述数据块的引 用次数减1,将所述数据对象从备份点索引表中删除。根据本发明的第五方面,提出了 一种建立多用户备份数据组织表的方法, 包括步骤10)、建立用户表和备份任务表的映射关系,其中,用户表包括用户 名和密码,备份任务表包括用户名、备份任务名称和备份数据;步骤20)、建立备份任务表和^f分点索引集的映射关系,其中,备份点索 引集包括备份任务在备份点所产生的备份数据的数据对象名称、对象属性以及 数字指紋列表;说明书第4/8页步骤30)、建立备份点索引集和数据块索引集的映射关系,其中,数据块索引集包括备份数据的数字指紋、存储备份数据的数据仓库编号和备份数据在该数据仓库中的偏移量,从而建立所述数据块索51和表示备份数据的存储位置 与该备份数据的引用信息的数据仓库的映射关系本发明通过一种支持删除重复数据的备份数据集中存储的管理方法,在备 份阶段消除各个用户备份数据中的重复内容,节约了传输带宽和存储空间开销, 并且有效降低重复数据占用的存储空间,支持公共的共享灾备平台,降低灾备 系统的建设成本和维护成本,促进灾备体系的不断完善。这种组织方式同样与 备份源数据无关,可以实现一个备份存储空间有多个用户,能够解决为突备系 统分散建设成本过高的问题,能够有效地降低建设成本和维护成本,该方法具 有很强的实用性和应用范围,具有^L广泛的应用前景。
图1是根据本发明实施例的支持消冗的多用户备份数据组织表示意图 图2是根据本发明实施例的存储备份数据的操作流程图 图3是根据本发明实施例的读取备份数据的操作流程图 图4是根据本发明实施例的合并备份数据的操作流程图;和 图5是根据本发明实施例的删除备份数据的操作流程图。
具体实施方式
下面结合附图和具体实施例对本发明提供的 一种备份数据集中存储的管理 方法进《于详细4苗述。图1示出根据本发明实施例的支持消除重复备份的多用户备份数据组织 表。如图1所示,该多用户备份数据组织表包括用户表、任务表、备份点索引 表、数据块索引表和数据仓库。其中,用户表中存放数据备份的终端用户的用 户名、密码等信息;任务表记录终端用户所建立的备份任务的名称、备份数据、 备份计划、备份选项等信息,并保存任务与用户表表示的终端用户之间的映射对象属性以及数字指紋列表等信息,并与备份任务具有映射关系;数据块索引表记录数据仓库中数据块的索引信息,包括备份数据的数字指紋、存储备份数 据的数据仓库编号和备份数据在该数据仓库中的偏移量,实现数据块的快速定位和访问;数据仓库用于存储备份数据,备份数据以数据块的形式存放在数据 仓库中。其中,用户表中每项的内容可以包括用户ID、用户名、密码等基本信息; 任务表中每一项包括用户ID、任务ID、任务名、备份模式、备份计划、高级选 项等相关信息, 一个用户可以拥有多个备份任务,通过用户ID与用户建立所属 关系,在其它实现中可以对其中的信息进行调整;备份任务在备份点执行备份 操作,可以产生该备份点的备份数据集,备份数据集通过备份点索引集来描述, 备份点索引集以数据对象为单位进行描述,数据对象可以是文件、数据巻、数 据库等各种类型的数据,针对每个数据对象的描述信息包括对象名、对象属性、 数据指紋列表等,数据指紋列表描述数据对象所拥有的所有数据块的数字指紋, 通过数据指紋可以实现对数据块的查询、定位,因此通过该列表可以确定数据 对象在该备份点的备份数据;数据块索引表中每一项由数字指紋、数据仓库编 号、偏移量等信息构成,其中,数字指紋可以通过安全散列算法(SHA-1 )或者 信息摘要算法(MD5)来计算,能够唯一地标志一个数据块,数字仓库编号和偏 移量分别表示的是数字指紋所描述的数据块所在的数据仓库的编号以及在数据 仓库中的偏移量,基于数据块索引表可以实现由数字指紋到翁:据块的快速定位, 因此可以有效支持基于数据指紋的数据块检索;数据仓库中存放数据块描述以 及数据块信息,包括数字指纹、引用次数、长度以及数据块内容,引用次数用 来表示该数据块被引用的次数,当引用次数为零时,表示该数据块不被任何数 据对象所引用,数据块的长度是可变的,因此引入长度来描述数据块的长度, 在实际实现中数据块的长度也可以是固定的,这时可以省略长度信息。本发明的管理方法主要包括存储备份数据的操作,读取备份数据的操作, 合并备份数据的操作,删除备份数据的操作。图2是根据本发明实施例的存储备份数据的操作流程图,具体步骤如下步骤201:接收备份数据的数据对象的描述信息;步骤202:接收数据对象所包含数据块的数字指紋集合F;步骤203:判断数字指紋集合F中是否存在没有与数据块索引集比较的数字指紋,如果存在,则执行步骤204,否则执行步骤211; 步骤204:从数字指紋集合F中取一个数字指紋f;步骤205:判断数据块索引集中是否存在该数字指紋f,如果存在,说明该 数据块是重复的数据块,不需要备份,直接执行步骤209;否则,说明该数据块 是新数据块,执行步骤206对该数据块进行备份;步骤206:接收数字指紋f所表示的数据块d;步骤207:将数据块d及相关信息放到数据仓库中;步骤208:生成数据块d的索引信息放到数据块索引表中,该数据块已经 处理完,重新执行步骤203处理下一个数据块;步骤209:通过数据块索引表将数字指紋f定位到对应的数据块d;步骤210:增加数据块d的引用次数,该数据块已经处理完,重新执行步骤 203处理下一个数据块;步骤211:生成数据对象的描述信息,放到备份点索引表中,备份操作执行 完成。图3是根据本发明实施例的读取备份数据的操作流程图,读取备份点全部数据对象可以通过循环执行该流程来实现,具体步骤如下步骤301:根据用户标志、任务标志、备份点信息定位到备份点索引集; 步骤302:根据数据对象名称从备份点索引集中读取数据对象属性及数字指紋列表;步骤303:判断数字指紋列表是否还有未处理的数字指紋,如果有,则执行 步骤304,否则执行步骤307;步骤304:从数字指紋列表中取一个数字指紋;步骤305:根据数字指紋查询数据块索引表,获取数据块存放位置信息; 步骤306:根据数据块存放位置信息,从数据仓库中读取数据块信息; 步骤307:根据获取的所有数据块信息构成该数据对象。 图4是根据本发明实施例的合并备份数据的操作流程图,其中o,表示o在备份 点,,.产生的数据对象,0,表示o在备份点。产生的数据对象,,,和,,是相邻的两个备份时间点,且有,M, AO,.)表示数据对象在备^f分点f,产生的数字指紋列表,丄(o》表示数 据对象在备份点,j产生的数字指紋列表,AO,)表示数字指紋列勤(O,.)中的一个数字指紋,xo》表示数字指紋列^仰中的一个数字指紋,^ ,)和《o》分别表示数字指紋/(0,)和i(0;)所对应的数据块,率(o,))表示数据块d(o,.)在数据对象o中的起始位置,^z(o,.))表示数据块rf(a)在数据对象o中的结束位置。合并的具体步骤如下步骤401:判断数据对象o,和o;的数字指紋列4i(o,)和i(o,)是否为空,如果都不为空,执行步骤402,如果指紋列扇j:(o,)为空,执行步骤415,如果指紋列扇j:(o,)为空,执行步骤416;步骤402:分别从指紋列1(0,)和丄(Q)中分別取数字指紋y^)和/(Q); 步骤403:根据数字指紋通过数据块索引定位到数据块的存放位置; 步骤404:从数据仓库分别读取数字指紋/(o,)和/(o》所对应的数据块rf(Q)和40》的信息;步骤405:判断数据块4Q)和"(o》的起始位置与截止位置之间的关系,如果满 足条4牛EW(o,.))〈s(d(o/))或者s(4o,')) < sw(o》)<=£W(。,〕)<£W(o》),则执4亍步艰A406; i口果满足条 ^f牛《j(o》)《W(o,》或者s(^5》)《s(《Q》<=£(d((9》)<£W(。,》,则4丸4亍步4聚409; j口果满足条4牛 S(d(o》)<=SW(Q'》<£W(o,))<=£(40》),贝'J 4丸4亍步4聚412 ; 》口果满足条4牛S(4Q'))"W(0/)) w(rf(o》)^(咖》),则寺丸^亍步骤414;步骤406:将ao,)放入数据指紋集^r(o);步骤407:判断数字指紋列&抑)是否为空,如果不为空,执行步骤408,否 则,执行步骤415;步骤408:从指紋列^L(o,)中取一个数字指紋yw),并从数据仓库读取对应数 据块d(o,)的信息,然后重新执行步骤4 05; 步骤409:将,o》放入数据指紋集合/'(o);步骤410:判断数字指紋列表丄(o》是否为空,如杲不为空,执行步骤411,否 则,执行步骤416;步骤411:从指紋列^L(o,)中取一个数字指紋y(0》,并从数据仓库读取对应数 据块《o》的信息,然后重新执行步骤405; 步骤412:将ao》放入数据指紋列步骤413:对乂o,)对应的数据对象40》执行删除操作,然后重新执行步骤402; 步骤414:将_/(0》和/(0》都放入数据指紋集合"(0),然后重新执行步骤步骤416:将z(q )所有的数字指紋放入指紋列知乂o);步骤417:根据l'(o)生成新的数据对象索引项,放入时间点索引集;步骤418:执行结束。两个备份点的合并可以通过重复该过程来实现,多个备份点数据集的合并可以通过依次合并相邻的备份点数据集来实现。图5是根据本发明实施例的删除备份数据的操作流程图,备份点数据的删除可以通过重复执行该过程来实现,具体步骤如下步骤501:根据用户标志、任务标志、备份点信息,定位到备份点索引集; 步骤502:获取备份点索引集中数据对象属性及数字指紋列表; 步骤503:判断数字指紋列表是否还有未处理的数字指紋,如果有,则执行步骤504,否则执行步骤509;步骤504:从数字指紋列表中取一个数字指紋;步骤505:根据数字指紋查询数据块索引表,获取数据块存放位置信息; 步骤506:根据数据块存放位置信息,从数据仓库中读取数据块描述信息, 将引用次数减l;步骤507:该数据块引用次数是否为O,如果为零,说明该数据块不被任 何数据对象引用,可以清理掉所占用的存储空间,执行步骤508,否则,说明 该数据块还被其它数据对象引用,该数据块的删除过程结束,重新执行步骤 503删除下一个数据块;步骤508:清除该数据块所占用的空间,从数据块索引表中删除该数据块 的索引项,该数据块删除过程结束,执行步骤503删除下一个数据块;步骤509:从备份点索引表中删除该数据对象的索引项;步骤510:结束。最后应说明的是,以上实施例仅用以描述本发明的技术方案而不是对本 技术方法进行限制,本发明在应用上可以延伸为其他的修改、变化、应用和 实施例,并且因此认为所有这样的修改、变化、应用、实施例都在本发明的 精神和教导范围内。
权利要求
1、一种多用户备份数据组织表,包括用户表、任务表、备份点索引表、数据块索引表和数据仓库;其中,所述用户表存放数据备份的终端用户的用户名、密码;所述任务表记录终端用户所建立的备份任务的名称、备份数据,并保存备份任务与用户之间的映射关系;所述备份点索引表记录备份任务在备份点所产生的备份数据的数据对象名称、对象属性以及数字指纹列表;所述数据块索引表记录备份数据的数字指纹、存储备份数据的数据仓库编号和备份数据在该数据仓库中的偏移量;所述数据仓库表示备份数据的存储位置和该备份数据的引用信息。
2、 权利要求1所述的多用户备份数据组织表,其中,所述用户表中每项包 括用户ID、用户名、密码;所述任务表中每一项包括用户ID、任务ID、任务名、 备份模式、备份计划;其中, 一个用户具有一个或者多个备份任务,所述用户 表通过用户ID与所述任务表建立映射。
3、 权利要求1所述的多用户备份数据组织表,其中,所述备份点索引集描 述备份任务在备份点执行备份操作而产生的备份数据集,所述备份点索引集以 数据对象为单位进行描述,数据对象是文件、数据巻或者数据库。
4、 权利要求1所述的多用户备份数据组织表,其中,所述数据指紋列表描 述数据对象的所有数据块的数字指紋,所述数字指紋通过安全散列算法或者信 息摘要算法计算来标志数据块。
5、 权利要求1所述的多用户备份数据组织表,其中,所述数据仓库包括数 字指紋、引用次数、长度以及数据块内容,引用次数用来表示所述数据块被引 用的次数。
6、 根据权利要求1到5的任意一个所述的多用户备份数据组织表的备份方 法,包括步骤10)、接收备份数据的数据对象描述信息,将和多用户备份数据组织 表中数据指紋不同的所述数据对象描述信息中的数字指紋对应的数据块进行备份,并将所述数据块对应的索引信息以及所述数据对象描述信息对应存放到所 述多用户备份数据组织表中,增加所述数据块的引用次数。
7、 权利要求6所述的方法,其中,所述数据对象描述信息包括对象名、对 象属性和数据指紋列表,所述数据指紋列表描述所述数据对象包含的所有数据 块的数字指紋。
8、 权利要求6所述的方法,其中,步骤10)进一步包括对于和多用户备份数据组织表中数据指紋相同的所述数据对象描述信息中 的数字指紋所对应的数据块不进行备份,将所述数据对象描述信息中的所述数 字指紋定位到多用户备份数据组织表中数据指紋指示的数据块,将所述数据对 象描述信息对应于所述数据块存放到所述多用户备份数据组织表中,增加所述 数据块的引用次数。
9、 权利要求7所述的方法,其中,所述方法还包括步骤20)、根据用户信息、任务信息和备份点信息从所述备份点索引表中 获取数据对象的数字指紋列表,根据对应的所述数据块的所述数字指紋查询数 据块索引表来获取所述数据块的存放位置,从数据仓库读取所述数据块。
10、 根据权利要求1到5的任意一个所述的多用户备份数据组织表的备份 数据合并方法,包括步骤IIO)、依次读取所述两个相邻备份点中数据对象对应的数字指紋; 步骤120)、根据对应的数字指紋读取两个凄t据对象的数据块,对数据块进 行合并;步骤130)、形成新时间点的数字指紋列表和数据块,并分别保存在所述多 用户备份数据组织表和所述数据仓库。
11、 根据权利要求1到5的任意一个所述的多用户备份数据组织表的备份 数据管理方法,包括步骤10)、从根据用户信息、任务信息和备份点信息定位的备份点索引表 中获取要删除的数据对象对应的数字指紋列表;步骤20)、根据所述数字指紋列表中的数据指紋在所述数据块索引表中查 找数据块的存放位置,步骤30)、从数据仓库中读取所述数据块的描述信息,将所述数据块的引用次数减1,将所述数据对象从备份点索引表中删除。
12、 一种建立多用户备4分数据组织表的方法,包括步骤10)、建立用户表和备份任务表的映射关系,其中,用户表包括用户 名和密码,备份任务表包括用户名、备份任务名称和备份数据;步骤20)、建立备份任务表和备份点索引集的映射关系,其中,备份点索 引集包括备份任务在备份点所产生的备份数据的数据对象名称、对象属性以及 数字指紋列表;步骤30)、建立备份点索引集和数据块索引集的映射关系,其中,数据块 索引集包括备份数据的数字指紋、存储备份数据的数据仓库编号和备份数据在 该数据仓库中的偏移量,从而建立所述数据块索引和表示备份数据的存储位置 与该备份数据的引用信息的数据仓库的映射关系。
全文摘要
本发明提供一种多用户备份数据组织表及基于其的备份数据集中存储的管理方法,包括接收备份数据的数据对象描述信息,将和多用户备份数据组织表中数据指纹不同的所述数据对象描述信息中的数字指纹对应的数据块进行备份,并将所述数据块对应的索引信息以及所述数据对象描述信息对应存放到所述多用户备份数据组织表中,增加所述数据块的引用次数。多用户备份数据组织表包括用户表、任务表、备份点索引表、数据块索引表和数据仓库。本发明能够在备份阶段消除各个用户备份数据中的重复内容,节约传输带宽和存储空间开销,有效降低重复数据占用的存储空间。
文档编号G06F17/30GK101599079SQ20091008905
公开日2009年12月9日 申请日期2009年7月22日 优先权日2009年7月22日
发明者严寒冰, 云晓春, 吴志刚, 王树鹏, 莉 郭 申请人:中国科学院计算技术研究所