CN107015888B - 一种基于子模模型的数据备份方法和*** - Google Patents
一种基于子模模型的数据备份方法和*** Download PDFInfo
- Publication number
- CN107015888B CN107015888B CN201710203404.4A CN201710203404A CN107015888B CN 107015888 B CN107015888 B CN 107015888B CN 201710203404 A CN201710203404 A CN 201710203404A CN 107015888 B CN107015888 B CN 107015888B
- Authority
- CN
- China
- Prior art keywords
- data
- container
- data block
- model
- quoted
- 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.)
- Active
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/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
- G06F11/1453—Management of the data involved in backup or backup restore using de-duplication of the data
-
- 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/1469—Backup restoration techniques
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
本发明公开了一种基于子模模型的数据备份方法和***,属于计算机存储技术领域。本发明方法首先对数据流进行分块并且分别组成不同的数据段;之后计算每个数据段每个数据块的指纹,并且查询指纹索引得到重复数据块引用的容器信息;再建立子模函数最大化模型选取含有更多可引用无冗余的数据块的容器;最后将引用这些容器的数据块去重,重写引用其他容器的碎片数据块。本发明还实现了一种基于子模模型的数据备份***。本发明技术方案能够去除更多的重复数据块,并且减少冗余和非引用数据块对恢复带宽的消耗,在保证较高的去重率的同时提高恢复性能。
Description
技术领域
本发明属于计算机存储技术领域,更具体地,涉及一种基于子模模型的数据备份方法和***。
背景技术
在备份***中,周期性地备份数据会耗费大量的存储空间,而且备份之间存在大量的冗余数据,所以现常用数据去重技术(重复数据删除技术)来消除这些冗余数据,减少存储开销。
然而,在基于去重的备份***中,新版本与旧版本的数据备份共享数据块,从而使得原本在逻辑上连续的数据流分散地存储在不同的容器(Container:去重***中磁盘上数据读写的基本单位)中,形成了大量数据碎片,严重的降低了数据的恢复性能。原因在于,首先,为了读取数据流中连续的数据块进行的磁盘访问从原本的有序操作变成了随机访问,然而磁盘上随机访问会耗费大量寻道时间;其次,在恢复过程中,数据碎片的存在使得一些含有少量可引用的数据块的容器也被预取到内存里,其中含有的大量未被引用的数据块耗费了有限的磁盘带宽,降低了恢复速度。
现有一些基于容器选择的碎片消除算法通过在备份过程中选择性重写一些数据碎片来提高恢复性能。例如,有方法将数据流分段,对于每个数据段优先选择含有更多可引用数据块的容器进行引用,对于原本可以引用剩下没有被选择的容器的数据块进行重写;还有方法通过设定容器利用率(容器中能够被数据流引用的数据块数目占所有数据块数目的比例)阈值来选取容器,首先对于每个备份的数据流计算每个容器的利用率,如果容器利用率高于阈值则将被选中来去重数据流的数据块,否则备份数据流中引用该容器的所有数据块将被重写。其中,重写是指,已存储的一样的数据块保留不变,新来的一样的数据块写入新的容器中。
然而,随着数据备份的次数和文件数目的增加,越来越多的数据块被重写到新的容器中,造成了容器间存在大量的冗余数据。尽管上述碎片消除方法都减少了在恢复过程中的预取容器含有的非引用数据块的数目,然而由于忽略了容器间存在的冗余数据块,它们在确定容器利用率时会产生误判,即有些被选择的容器的利用率实际上低于预期。在这些消除方法中,如果容器中存在与数据流中的数据块一样的数据块,那么它将被当作引用的数据块计入容器利用率中。但是,对于多个被选择容器中的大量相同的数据块,一旦其中一个数据块被选择来去重和恢复数据流中所有同内容的数据块,那么其他的容器中内容相同的数据块就不会被引用而变成冗余的数据块了,因此这些数据块并不是引用的数据块,不能被计入容器利用率。误判会导致含有大量冗余数据块的容器被选择,浪费恢复过程的带宽,降低恢复性能。
由此可见,基于去重的备份***中,在恢复数据流时,预取的容器中含有的非引用和冗余的数据块都会降低数据恢复性能。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种基于子模模型的数据备份方法和***,其目的在于优先选择含有更多可利用且非冗余的数据块的容器,使得更多数据块被去重,并且重写未被选择去重的数据碎片以及减少了恢复时访问不被利用和冗余的数据块耗费的磁盘读写次数,同时提高了数据去重率和恢复性能,解决了现有技术在恢复数据流时,预取的容器中含有的非引用和冗余的数据块都会降低数据恢复性能的问题。
为实现上述目的,按照本发明的一个方面,提供了一种基于子模模型的数据备份方法,所述方法包括以下步骤:
(1)数据预处理:将待备份数据流分成多个数据块,然后再组成固定大小的数据段,将数据段作为去重和恢复操作的基本单位;
(2)生成容器总集合:获取待备份数据段中各重复数据块所对应的被引用容器,生成待选容器的总集合V={C1,C2,…,Cn};
(3)生成子模模型:根据总集合V建立子模函数最大化模型,进而得到被选择的容器集合
其中,Si是用贪心算法遍历容器总集合V得到的所有子集,F()是满足子模性的评分函数,用于量化Si的质量,即含有的可引用且非冗余的数据块数目,容器子集S中的容器数量|S|≤T,T为子模函数最大化模型的预算,即设定的每个数据段能够引用的容器数目上限;
(4)数据备份:将备份数据段中能够引用这些容器的重复数据块进行去重,并更新容器信息;将剩下的重复数据块标记为碎片进行重写,写入新容器;最后数据段备份完成。
进一步地,所述步骤(3)中的评分函数
其中,w(Cx)为容器Cx含有的能被数据段引用的所有数据块;∪是集合并集运算符;||表示数目运算符。
按照本发明的另一方面,提供了一种基于子模模型的数据备份***,所述***包括:
数据预处理模块,用于将待备份数据流分成多个数据块,然后再组成固定大小的数据段,将数据段作为去重和恢复操作的基本单位;
容器总集合生成模块,用于获取待备份数据段中各重复数据块所对应的被引用容器,生成待选容器的总集合V={C1,C2,…,Cn};
子模模型生成模块,用于根据总集合V建立子模函数最大化模型,进而得到被选择的容器集合
其中,Si是用贪心算法遍历容器总集合V得到的所有子集,F()是满足子模性的评分函数,用于量化Si的质量,即含有的可引用且非冗余的数据块数目,容器子集S中的容器数量|S|≤T,T为子模函数最大化模型的预算,即设定的每个数据段能够引用的容器数目上限;
数据备份模块,用于将备份数据段中能够引用这些容器的重复数据块进行去重,并更新容器信息;将剩下的重复数据块标记为碎片进行重写,写入新容器;最后数据段备份完成。
进一步地,所述子模模型生成模块中的评分函数
其中,w(Cx)为容器Cx含有的能被数据段引用的所有数据块;∪是集合并集运算符;||表示数目运算符。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有以下技术特征及有益效果:
(1)在原有的基于数据去重的备份***中,通过引用容器统计过程,找出待备份数据段中所有重复数据块,并且统计得到所有可引用容器的信息,通过子模函数最大化模型选择引用容器,将不可引用这些容器的重复数据块标记为数据碎片,重写到新的容器中,去除碎片达到提高恢复性能的目的;
(2)通过子模函数最大化模型优先选择含有更多可引用且非冗余的数据块的容器,使得更多重复数据块引用已有容器,增加数据去重率;并且在选择的引用容器数目有限的情况下,减少写入新容器的数据块,使得总体存储这些数据块的容器数目减少,在恢复带宽有限的情况下,减少了容器读取的次数,并且减少了恢复过程中访问不被利用和冗余数据块耗费的磁盘读写开销,提高了恢复性能。
附图说明
图1是本发明方法的步骤流程图;
图2是本发明实施例的步骤流程图;
图3是本发明实施例步骤(5)的具体流程细节图;
图4是应用了本发明***的备份***的示例图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
如图1所示,本发明方法包括以下步骤:
(1)数据预处理:将待备份数据流分成多个数据块,然后再组成固定大小的数据段,将数据段作为去重和恢复操作的基本单位;
(2)生成容器总集合:获取待备份数据段中各重复数据块所对应的被引用容器,生成待选容器的总集合V={C1,C2,…,Cn};
(3)生成子模模型:根据总集合V建立子模函数最大化模型,进而得到被选择的容器集合
其中,Si是用贪心算法遍历容器总集合V得到的所有子集,F()是满足子模性的评分函数,用于量化Si的质量,即含有的可引用且非冗余的数据块数目,容器子集S中的容器数量|S|≤T,T为子模函数最大化模型的预算,即设定的每个数据段能够引用的容器数目上限;
(4)数据备份:将备份数据段中能够引用这些容器的重复数据块进行去重,并更新容器信息;将剩下的重复数据块标记为碎片进行重写,写入新容器;最后数据段备份完成。
如图2所示,本发明实施例包括如下步骤:
(1)将待备份数据流进行分块,得到多个数据块;
(2)将多个数据块分组,组成不同的数据段,将数据段作为去重和恢复操作的基本单位;
(3)计算该数据段每个数据块的指纹;
(4)在指纹索引中查询每个数据块的指纹,判断每个数据块是否已经被存储;若没有存储,则标记为新数据块,并转到步骤(7);否则标记为重复数据块,获得存储这个数据块的容器ID,转到步骤(5);
(5)根据重复数据块的容器ID信息和这些容器含有的重复数据块信息,生成待选容器的总集合V={C1,C2,…,Cn},建立子模函数最大化模型,进而得到被选择的容器集合标记容器集合S中的所有容器为被选择的容器,Si是用贪心算法遍历容器集合V的所有子集,F()是满足子模性的评分函数,用于量化Si的质量,其中,w(Cx)为容器Cx含有的能被数据段引用的所有数据块;∪是集合并集运算符;||表示数目运算符;容器子集S中的容器数量|S|≤T,T为子模函数最大化模型的预算;
如图3所示,具体进一步包括如下步骤:
(51)设定每个数据段能够引用已有容器的数目上限T;
(52)获取待备份数据段中各重复数据块所对应的被引用容器和被引用的数据块,生成备选容器的总集合V={C1,C2,…,Cn},建立子模函数最大化模型;
(53)初始化选择容器计数器i=0,已选择容器集合;
(54)对于每个属于集合V但是不属于集合S的容器,分别计算选择它们给子模函数F()带来的增益,如果存在增益大于0的容器,且i小于T,则进入步骤(55);否则进入步骤(57);
(55)对于每个在属于集合V但是不属于集合S的容器中,分别计算将它们各自加入容器集合S后对于子模函数F()产生的增益,找到增益最大的容器c,并记录下来;
(56)将容器c加入被选择的容器集合S,更新计数器i=i+1,转到步骤(54);
(57)标记所有属于集合S的容器为被选择容器,用于后续的碎片重写判断。
(6)对于每个重复数据块,判断它们是否引用这些被选择的容器;若是,则去除这些重复的数据块,转入步骤(8);否则,将这些重复数据块标记为碎片,转到步骤(7);
(7)将碎片数据块和非重复数据块写入容器缓冲区,待缓冲区满时写入磁盘中;
(8)更新容器存储信息和每个数据块对应存储的容器ID信息;
(9)判断此时数据流含有的所有数据块是否都已备份,备份过程是否结束;若是,则转到步骤(10);否则转到步骤(3);
(10)更新该数据流的所有备份信息。
如图4所示,原有的基于数据去重的备份***中增加了本发明***,选择引用含有更多可引用且非冗余数据块的容器,将剩余的重复块标记为碎片重写入新的容器,保持每个引用容器的高利用率。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (4)
1.一种基于子模模型的数据备份方法,其特征在于,该方法包括以下步骤:
(1)数据预处理:将待备份数据流分成多个数据块,然后再组成固定大小的数据段,将数据段作为去重和恢复操作的基本单位;
(2)生成容器总集合:获取待备份数据段中各重复数据块所对应的被引用容器,生成待选容器的总集合V={C1,C2,…,Cn};
(3)生成子模模型:根据总集合V建立子模函数最大化模型,进而得到被选择的容器集合
其中,Si是用贪心算法遍历容器总集合V得到的所有子集,F(Si)是满足子模性的评分函数,用于量化Si的质量,即含有的可引用且非冗余的数据块数目,容器子集S中的容器数量|S|≤T,T为子模函数最大化模型的预算,即设定的每个数据段能够引用的容器数目上限;
(4)数据备份:将备份数据段中能够引用这些容器的重复数据块进行去重,并更新容器信息;将剩下的重复数据块标记为碎片进行重写,写入新容器;最后数据段备份完成。
2.根据权利要求1所述的一种基于子模模型的数据备份方法,其特征在于,所述步骤(3)中的评分函数
其中,w(Cx)为容器Cx含有的能被数据段引用的所有数据块;∪是集合并集运算符;||表示数目运算符。
3.一种基于子模模型的数据备份***,其特征在于,所述***包括:
数据预处理模块,用于将待备份数据流分成多个数据块,然后再组成固定大小的数据段,将数据段作为去重和恢复操作的基本单位;
容器总集合生成模块,用于获取待备份数据段中各重复数据块所对应的被引用容器,生成待选容器的总集合V={C1,C2,…,Cn};
子模模型生成模块,用于根据总集合V建立子模函数最大化模型,进而得到被选择的容器集合
其中,Si是用贪心算法遍历容器总集合V得到的所有子集,F()是满足子模性的评分函数,用于量化Si的质量,即含有的可引用且非冗余的数据块数目,容器子集S中的容器数量|S|≤T,T为子模函数最大化模型的预算,即设定的每个数据段能够引用的容器数目上限;
数据备份模块,用于将备份数据段中能够引用这些容器的重复数据块进行去重,并更新容器信息;将剩下的重复数据块标记为碎片进行重写,写入新容器;最后数据段备份完成。
4.根据权利要求3所述的一种基于子模模型的数据备份***,其特征在于,所述子模模型生成模块中的评分函数
其中,w(Cx)为容器Cx含有的能被数据段引用的所有数据块;∪是集合并集运算符;||表示数目运算符。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710203404.4A CN107015888B (zh) | 2017-03-30 | 2017-03-30 | 一种基于子模模型的数据备份方法和*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710203404.4A CN107015888B (zh) | 2017-03-30 | 2017-03-30 | 一种基于子模模型的数据备份方法和*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107015888A CN107015888A (zh) | 2017-08-04 |
CN107015888B true CN107015888B (zh) | 2019-06-18 |
Family
ID=59446514
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710203404.4A Active CN107015888B (zh) | 2017-03-30 | 2017-03-30 | 一种基于子模模型的数据备份方法和*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107015888B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019037878A1 (en) | 2017-08-25 | 2019-02-28 | Huawei Technologies Co., Ltd. | APPARATUS AND METHOD FOR STORING DATA BLOCKS RECEIVED AS DEDPLICATED DATA BLOCKS |
CN109271353B (zh) * | 2018-09-06 | 2020-11-24 | 华中科技大学 | 一种在数据去重过程中选择性重写自引用块方法及*** |
CN109408288B (zh) * | 2018-09-29 | 2020-07-10 | 华中科技大学 | 一种打包文件备份过程中数据去重碎片消除方法 |
CN111240893B (zh) * | 2019-12-26 | 2023-07-18 | 曙光信息产业(北京)有限公司 | 一种基于数据流分片技术的备份和还原管理方法及*** |
CN111858574B (zh) * | 2020-07-30 | 2022-02-11 | 暨南大学 | 一种面向数据去重技术的近似最优数据碎片块重写方法 |
CN113625961B (zh) * | 2021-07-07 | 2024-05-17 | 暨南大学 | 一种基于贪心选择的自适应阈值重复数据删除方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104536849A (zh) * | 2015-01-20 | 2015-04-22 | 成都携恩科技有限公司 | 一种基于云计算的数据备份方法 |
CN106487911A (zh) * | 2016-10-25 | 2017-03-08 | 广东欧珀移动通信有限公司 | 一种数据同步方法、装置和*** |
-
2017
- 2017-03-30 CN CN201710203404.4A patent/CN107015888B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104536849A (zh) * | 2015-01-20 | 2015-04-22 | 成都携恩科技有限公司 | 一种基于云计算的数据备份方法 |
CN106487911A (zh) * | 2016-10-25 | 2017-03-08 | 广东欧珀移动通信有限公司 | 一种数据同步方法、装置和*** |
Non-Patent Citations (5)
Title |
---|
Accelerating the Cloud Backup using GPU based Data Deduplication;Kiatchumpol Suttisirikul 等;《2012 IEEE 18th International Conference on Parallel and Distributed Systems》;20130117;全文 |
一种在去重备份***中的源端去重算法;韩莹;《科技通报》;20160131;第32卷(第1期);全文 |
基于贪心算法的数据备份策略的研究;戴庆 等;《长江大学学报(自科版)理工卷》;20070630;第4卷(第2期);全文 |
数据备份***中冗余数据的高性能消除技术研究;夏文;《万方数据知识服务平台》;20150730;全文 |
数据备份***中数据去重技术研究;谭玉娟;《万方数据知识服务平台》;20121225;全文 |
Also Published As
Publication number | Publication date |
---|---|
CN107015888A (zh) | 2017-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107015888B (zh) | 一种基于子模模型的数据备份方法和*** | |
US9767140B2 (en) | Deduplicating storage with enhanced frequent-block detection | |
US9921955B1 (en) | Flash write amplification reduction | |
US20170293450A1 (en) | Integrated Flash Management and Deduplication with Marker Based Reference Set Handling | |
CN101814044B (zh) | 元数据处理方法及装置 | |
CN106548789B (zh) | 用于操作叠瓦式磁记录设备的方法和装置 | |
US8548948B2 (en) | Methods and apparatus for a fine grained file data storage system | |
CN102158349B (zh) | 一种日志管理装置及方法 | |
CN105787037B (zh) | 一种重复数据的删除方法及装置 | |
CN1645516B (zh) | 用于闪速存储器的数据恢复设备和方法 | |
CN101788995A (zh) | 一种热点数据识别方法及装置 | |
CN104050057B (zh) | 一种历史感知的数据去重碎片消除方法与*** | |
CN109598156A (zh) | 一种写时重定向引擎快照流方法 | |
CN103399823A (zh) | 业务数据的存储方法、设备和*** | |
CN104765575A (zh) | 信息存储处理方法 | |
CN104050103A (zh) | 一种用于数据恢复的缓存替换方法与*** | |
CN101777017A (zh) | 一种连续数据保护***的快速恢复方法 | |
CN103942011A (zh) | 一种差量快照***及其使用方法 | |
CN110019361A (zh) | 一种数据的缓存方法及装置 | |
CN110007870A (zh) | 一种存储设备写请求处理方法及相关装置 | |
CN106933747A (zh) | 基于多流的数据存储***和数据存储方法 | |
CN107506466B (zh) | 一种小文件存储方法及*** | |
CN111078143B (zh) | 基于段映射进行数据布局和调度的混合存储方法及*** | |
CN101661415A (zh) | 一种保存快照数据的方法及存储快照*** | |
CN103841168B (zh) | 数据副本更新方法及元数据服务器 |
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 |