CN110941514B - 一种数据备份方法、恢复方法、计算机设备和存储介质 - Google Patents

一种数据备份方法、恢复方法、计算机设备和存储介质 Download PDF

Info

Publication number
CN110941514B
CN110941514B CN201911166855.0A CN201911166855A CN110941514B CN 110941514 B CN110941514 B CN 110941514B CN 201911166855 A CN201911166855 A CN 201911166855A CN 110941514 B CN110941514 B CN 110941514B
Authority
CN
China
Prior art keywords
data block
data
backup
hash table
fingerprint
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
Application number
CN201911166855.0A
Other languages
English (en)
Other versions
CN110941514A (zh
Inventor
张宇成
张文栋
王春枝
严灵毓
苏军
李星
王早宁
马森
官沙
王梓田
肖嘉伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan Oumingdian Technology Co ltd
Original Assignee
Hubei University of Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hubei University of Technology filed Critical Hubei University of Technology
Priority to CN201911166855.0A priority Critical patent/CN110941514B/zh
Publication of CN110941514A publication Critical patent/CN110941514A/zh
Application granted granted Critical
Publication of CN110941514B publication Critical patent/CN110941514B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1453Management of the data involved in backup or backup restore using de-duplication of the data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1456Hardware arrangements for backup
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup 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

一种数据备份方法、恢复方法、计算机设备和存储介质。本发明提供了一种数据备份、数据恢复方法,备份如下:S11.初始化一个哈希表HTB,哈希表HTB的关键码为数据块指纹,值为该数据块指纹在本次备份中的出现次数;S22.对每个被数据去重处理过的数据块的数据块指纹,查找所述数据块指纹是否存在于哈希表HTB中:S2201.如果存在,将其出现次数加1;S2202.如果不存在,插入一条记录到哈希表HTB中,记录的关键码为该数据块的指纹,值为其出现次数,赋值为1;S33.重复步骤S22直到备份结束,并将哈希表HTB中所有出现次数大于等于2的数据块指纹和出现次数写入磁盘。通过在备份过程中收集自引用数据块信息,并在恢复过程中将自引用数据块保存在内存中以消除自引用碎片块导致的磁盘读操作,提高恢复性能。

Description

一种数据备份方法、恢复方法、计算机设备和存储介质
技术领域
本发明涉及数据存储技术领域,尤指一种数据备份方法、恢复方法、计算机设备和存储介质。
背景技术
数据备份是重要的数据保护方式,重要的数据可以按照一定的频率(例如一天或一周)进行副本保存;当某次备份的数据需要再次读取时,可以把相应的备份数据恢复出来使用。由于备份的频率一般较高,其间被修改的数据量一般较小,因此数据备份系统中一般都存在大量的冗余数据。据统计,EMC和赛门铁克公司的商用备份服务器中冗余数据量高达88-90%。
因此,我们需要采取数据去重技术来消除掉完全相同的数据块,即数据备份系统中常用的冗余消除技术。数据去重技术包括如下三个环节:数据分块、指纹计算和指纹索引。待备份数据会在数据分块环节被切割成数据块;指纹计算环节会为每个分割好的数据块计算一个指纹来标记该数据块,指纹相同则表示对应的数据块相同,常用的指纹计算方法包括MD5和SHA-1等;指纹索引环节则通过匹配指纹来确定各数据块是否重复。
当数据去重技术应用于备份系统中时,如果数据块不重复,系统会保存该数据块并更新指纹库;如果重复,则系统会标识出系统中已保存的重复数据块的位置信息,而不再重复保存该数据块。需存储的数据块会打包成固定长度(一般为4MB)的容器写入备份存储系统。备份结束时,系统会写入备份数据流的指纹序列,所述指纹序列被称为文件谱。恢复数据时,系统会根据文件谱读取指纹序列,并根据指纹序列查找对应的数据块来重组文件。
由于备份数据流存在一定的局部性,所需的数据块可能会连续出现在同一个容器中,而为了减少磁盘访问次数,在数据恢复时,系统是以容器为单位读取数据的,会在内存中维护一个恢复缓存,该恢复缓存的替换单位为容器,所有包含待恢复文件所需数据块的容器(称为引用容器)会被读取到恢复缓存中。
虽然数据去重技术极大地降低了存储成本,但是也会引起数据块的碎片化,即单个版本的数据块分散在大量的容器中。由于恢复缓存的磁盘随机读性能较差,待恢复文件涉及到的引用容器越多,备份系统的数据恢复性能越差。
附图1给出了一个碎片化的简化例子。假设有三个备份,每个备份包含12个数据块,每个数据块用一个字母表示,字母相同则表示数据块相同,深色背景的数据块表示备份3包含的数据块。备份1包含12个非重复数据块,备份结束后12个数据块分别存在了容器Ⅰ、Ⅱ和Ⅲ中;备份2包含8个重复数据块和4个非重复数据块,4个非重复数据块存在容器Ⅳ中。备份3也包含8个重复数据块和4个非重复数据块,4个非重复数据块存在容器Ⅴ中。
从图1可以看到,备份1的数据块集中存放在前三个容器中,而备份3的数据块分散在5个容器中。因此,在恢复备份3时,容器Ⅰ和Ⅱ会被读取到恢复缓存中以提供备份3所需的数据块A和G,但是容器Ⅰ和Ⅱ中包含的有效数据块太少,所以,这两次读取是不划算的。我们将某次备份有效数据块占容器中所有数据块的比率(即容器利用率)低于一个预设值(一般为
Figure BDA0002287689160000021
)的容器称为稀疏容器,而稀疏容器包含的有效数据块被称为碎片块。
例如,对备份3来说,容器Ⅰ和Ⅱ就是稀疏容器,而数据块A和G是碎片块。而每个备份文件包含的数据块的个数是确定的,碎片块越多则表示稀疏容器越多,从而引用容器就越多。因此,碎片块的存在会显著降低系统的恢复性能。
重写算法可以检测出碎片块,并将其和非重复数据块一起再一次写入系统以减少稀疏容器的个数从而提高系统的恢复性能。如图2所示,例如备份3中的A和G如果被检测为碎片块,则会和Q、R、S和T一起写入到新容器中。重写数据块A和G之后,备份3只引用了4个容器,比重写之前少1个(减少了容器Ⅰ和Ⅱ,增加了容器Ⅵ),从而提高了系统的恢复性能。
实际上,单个备份内部也会存在重复数据块,即一个数据块多次出现在同一备份中,多次出现在同一个备份中的数据块被称为“自引用数据块”。由于恢复缓存的大小有限,自引用数据块在恢复时被再次需要时,包含该数据块的容器可能已被替换出恢复缓存。因此,这部分数据块可能会成为碎片块,称为自引用碎片块。重写算法可以检测多个备份间的碎片块,但是无法检测到单个备份内的自引用碎片块。如图3所示,为一个单个备份自引用碎片块的例子。
在这个单个备份中包含10个数据块,其中有2个为自引用数据块。假设恢复缓存大小为2个容器,采用LRU(Least recently used,最近最少使用)替换算法,则恢复该备份需要4次容器读取操作。容器Ⅱ会被两次读取到内存中,第一次被读取到内存中时,其中所有数据块(D、E和F)都是有效数据块;而第二次被读取到内存中时,只有其中的数据块D是有效数据块,容器利用率为
Figure BDA0002287689160000031
小于预设值
Figure BDA0002287689160000032
因此,第二次出现的数据块D是自引用碎片块,应该被重写,但是没有被检测。
因此,对于单个备份来说,自引用数据块的碎片化很难被检测到,从而降低备份系统的恢复性能,降低磁盘的读取效率,因此,亟待解决自引用数据块的碎片问题。
发明内容
本发明实施例的目的是提供提供一种基于数据去重的备份系统中的自引用碎片块消除方法,借以提高备份系统的恢复性能。
为了解决上述技术问题,本发明提供的技术方案如下:
第一方面,本发明实施例提供了一种数据备份方法,所述方法包括:
S11.初始化一个哈希表HTB,哈希表HTB的关键码为数据块指纹,值为该数据块指纹在本次备份中的出现次数;
S22.对每个被数据去重处理过的数据块的数据块指纹,查找所述数据块指纹是否存在于哈希表HTB中:
S2201.如果存在,将其出现次数加1;
S2202.如果不存在,插入一条记录到哈希表HTB中,记录的关键码为该数据块的指纹,值为其出现次数,赋值为1;
S33.重复步骤S22直到备份结束,并将哈希表HTB中所有出现次数大于等于2的数据块指纹和出现次数写入磁盘。
第二方面,本发明实施例提供了一种数据恢复方法,所述方法包括:
S300.初始化数据恢复所需要的备份信息、恢复缓存CacheR;
S301.读取需恢复数据的文件谱;
S302.从文件谱中读取恢复数据所需的数据块指纹;判断该数据块指纹是否为空;
S3021.如果为空,表示所有所需数据块已找到,执行步骤S306;
S3022.如果不为空,执行步骤S303;
S303.查看该数据块指纹是否存在于哈希表HTR中;
S3031.如果存在且其数据块内容不为空,获取对应的数据块内容,并将对应记录的数据块出现次数减1,判断数据块出现次数是否等于0;
S30311.如果等于0,将对应记录从哈希表HTR中移除以节约内存,执行步骤S302;
S30312.如果不等于0,执行步骤S302;
S304.查看该数据块指纹是否存在于恢复缓存CacheR中;
S3041.如果存在,获取对应的数据块内容;
S3042.如果不存在,将包含所需数据块的容器读取到恢复缓存CacheR中,获取该数据块内容;
S305.判断该数据块的指纹是否存在于哈希表HTR中;
S3051.如果存在,将数据块内容拷贝给记录的数据块内容,将该数据块出现次数减1;在队列Queue尾部插入一个指针指向哈希表HTR中对应的记录;执行步骤S3053;
S3052.如果不存在,执行步骤S302;
S3053.判断哈希表HTR的大小是否大于上限值Max;
S30531.如果大于Max,移除队列Queue头部指针指向的哈希表HTR中记录,执行步骤S3053;
S30532.如果不大于Max,执行步骤S302;
S306.清空哈希表HTR、队列Queue和恢复缓存CacheR。
优选地,S300中,所述初始化数据恢复所需要的备份信息、恢复缓存CacheR具体包括:
S1.初始化一个哈希表HTR,哈希表HTR的关键码为数据块指纹,值为一个结构体,所述结构体包括数据块在备份中的出现次数和数据块内容;
S2.初始化一个空队列Queue,用来记录自引用数据块在恢复时的出现顺序;
S4.初始化一个空的恢复缓存CacheR;
S5.读取备份时写入到磁盘的出现次数大于等于2的一个自引用数据块信息,所述自引用数据块信息包括数据块指纹和出现次数,用该自引用数据块信息初始化一个记录并插入哈希表HTR,记录的关键码为数据块指纹,值中结构体的出现次数为数据块指纹对应的数据块的出现次数,值中结构体的数据块内容为空;
重复步骤S4直到所有备份时统计的自引用数据块都被读取。
第三方面,本发明实施例提供了一种用于实现数据备份的计算机设备,所述计算机设备包括:
一个或更多个处理器;
一个或更多个存储器;
一个或更多个模块,其被存在存储器中且能够由所述一个或更多个处理器中的至少一个处理器以执行如第一方面所述数据备份方法的步骤。
第四方面,本发明实施例提供了一种用于实现数据恢复的计算机设备,所述计算机设备包括:
一个或更多个处理器;
一个或更多个存储器;
一个或更多个模块,其被存在存储器中且能够由所述一个或更多个处理器中的至少一个处理器以执行如第二方面所述数据恢复方法的步骤。
第五方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所述数据备份方法的步骤。
第六方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第二方面所述数据恢复方法的步骤。
本发明实施例通过在备份过程中收集自引用数据块信息,将每一个自引用块的信息都详细记录下来,并在恢复过程中利用记录信息,将自引用数据块保存在内存中以消除自引用碎片块导致的磁盘读操作,可以获得更高的恢复性能。
附图说明
下面将以明确易懂的方式,结合附图说明优选实施方式,对异步系统的实现方法、计算机设备和存储介质的上述特性、技术特征、优点及其实现方式予以进一步说明。
图1是数据备份和恢复过程中碎片块产生的示意图;
图2是本发明数据恢复中重写算法的示意图;
图3是单个备份自引用碎片块产生的示意图;
图4为本发明实施例实现数据备份的计算机设备的结构示意图;
图5为本发明实施例实现数据恢复的计算机设备的结构示意图。
具体实施方式
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。
为使图面简洁,各图中只示意性地表示出了与本发明相关的部分,它们并不代表其作为产品的实际结构。另外,以使图面简洁便于理解,在有些图中具有相同结构或功能的部件,仅示意性地绘示了其中的一个,或仅标出了其中的一个。在本文中,“一个”不仅表示“仅此一个”,也可以表示“多于一个”的情形。
为了实现上述目的,本发明实施例首先提供一种高效的自引用碎片块消除的技术方案,该实施例通过在备份时记录自引用数据块的出现次数,并在恢复时建立一个包含自引用数据块的索引表来消除自引用碎片块;为了保证索引表不会占用过多内存,本发明实施例还给索引表设定了一个内存占用的上限值Max,当内存达到Max时,索引表中的数据块会按恢复时的出现顺序移除索引表以释放内存空间。
本发明实施例提供了一种数据备份方法,所述方法包括:
S11.初始化一个哈希表HTB,哈希表的键为数据块指纹,值为该指纹在本次备份中的出现次数;
S22.对每个被数据去重处理过的数据块的指纹,查找其是否存在于哈希表HTB中;
S2201.如果存在,将其出现次数加1;
S2202.如果不存在,插入一条记录到HTB中,记录的关键码为该数据块的指纹,值为其出现次数,赋值为1;
S33.重复步骤S22直到备份结束,并将HTB中所有出现次数大于等于2的数据块指纹和出现次数写入磁盘。
本发明实施例通过在备份过程中收集自引用数据块信息,以使得在恢复过程中可以将自引用数据块保存在内存中,以消除自引用碎片块导致的磁盘读操作,提高数据恢复的性能。
本发明实施例还提供了一种数据恢复方法,所述方法包括:
S1.初始化一个哈希表HTR,哈希表的关键码为数据块指纹,值为一个结构体,所述结构体包括该数据块在备份中的出现次数Occurrence和数据块内容Content;
S2.初始化一个空队列Queue,用来记录自引用数据块在恢复时的出现顺序;
S4.初始化一个空的恢复缓存CacheR;
S5.读取备份时写入到磁盘的出现次数大于等于2的一个自引用数据块信息,所述自引用数据块信息包括数据块指纹和出现次数,用该自引用数据块信息初始化一个记录并插入HTR,记录的关键码为数据块指纹,值中结构体的Occurrence为对应指纹的出现次数,值中结构体的Content为空;
重复步骤S4直到所有备份时统计的自引用数据块都被读取;
完成数据恢复初始化后,开始数据恢复过程,其步骤如下:
S301.读取需恢复数据的文件谱;
S302.从文件谱中读取恢复数据所需的数据块指纹;判断该数据块指纹是否为空;
S3021.如果为空,表示所有所需数据块已找到,执行步骤S306;
S3022.如果不为空,执行步骤S303;
S303.查看该数据块指纹是否存在于HTR中;
S3031.如果存在且其Content不为空,获取对应的数据块内容,并将对应记录的Occurrence减1,判断Occurrence是否等于0;
S30311.如果等于0,将对应记录从HTR中移除以节约内存,执行步骤S302;
S30312.如果不等于0,执行步骤S302;
S304.查看该数据块指纹是否存在于CacheR中;
S3041.如果存在,获取对应的数据块内容;
S3042.如果不存在,将包含所需数据块的容器读取到CacheR中,获取该数据块内容;
S305.判断该数据块的指纹是否存在于HTR中;
S3051.如果存在,将数据块内容拷贝给记录的Content,将Occurrence减1;在Queue尾部插入一个指针指向HTR中对应的记录;执行步骤S3053;
S3052.如果不存在,执行步骤S302;
S3053.判断哈希表HTR的大小是否大于上限值Max;
S30531.如果大于Max,移除队列Queue头部指针指向的哈希表HTR中记录,执行步骤S3053;
S30532.如果不大于Max,执行步骤S302;
S306.清空HTR、Queue和CacheR,结束恢复过程。
与现有技术相比,本发明实施例通过在备份过程中收集自引用数据块信息,以使得在恢复过程中可以将自引用数据块保存在内存中,以消除自引用碎片块导致的磁盘读操作,提高数据恢复的性能。
图4为本发明实施例提供的计算机设备的实体结构示意图,所述计算机设备架设于第三方设备中,例如移动终端、便携式计算机、IPAD等,如图4所示,该服务器可以包括:处理器(processor)610、通信接口(Communications Interface)620、存储器(memory)630和通信总线640,其中,处理器610,通信接口620,存储器630通过通信总线640完成相互间的通信。处理器610可以调用存储器630中的逻辑指令,以执行如下方法:S11.初始化一个哈希表HTB,哈希表HTB的关键码为数据块指纹,值为该数据块指纹在本次备份中的出现次数;
S22.对每个被数据去重处理过的数据块的数据块指纹,查找所述数据块指纹是否存在于哈希表HTB中:
S2201.如果存在,将其出现次数加1;
S2202.如果不存在,插入一条记录到哈希表HTB中,记录的关键码为该数据块的指纹,值为其出现次数,赋值为1;
S33.重复步骤S22直到备份结束,并将哈希表HTB中所有出现次数大于等于2的数据块指纹和出现次数写入磁盘。
通信总线640是连接所描述的元素的电路并且在这些元素之间实现传输。例如,处理器610通过通信总线640从其它元素接收到命令,解密接收到的命令,根据解密的命令执行计算或数据处理。存储器630可以包括程序模块,例如内核(kernel),中间件(middleware),应用程序程序编程接口(Application Programming Interface,API)和应用程序。该程序模块可以是有软件、固件或硬件、或其中的至少两种组成。通信接口620将该计算机设备与其它网络设备、客户端、移动设备、网络进行连接。例如,通信接口620可以通过有线或无线连接到网络以连接到外部其它的网络设备或用户设备。无线通信可以包括以下至少一种:无线保真(WiFi),蓝牙(BT),近距离无线通信技术(NFC),全球卫星定位系统(GPS)和蜂窝通信等等。有线通信可以包括以下至少一种:通用串行总线(USB),高清晰度多媒体接口(HDMI),异步传输标准接口(RS-232)等等。网络可以是电信网络和通信网络。通信网络可以为计算机网络、因特网、物联网、电话网络。计算机设备可以通过通信接口620连接网络,计算机设备和其它网络设备通信所用的协议可以被应用程序、应用程序程序编程接口(API)、中间件、内核和通信接口620至少一个支持。
进一步地,本发明实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:S11.初始化一个哈希表HTB,哈希表HTB的关键码为数据块指纹,值为该数据块指纹在本次备份中的出现次数;
S22.对每个被数据去重处理过的数据块的数据块指纹,查找所述数据块指纹是否存在于哈希表HTB中:
S2201.如果存在,将其出现次数加1;
S2202.如果不存在,插入一条记录到哈希表HTB中,记录的关键码为该数据块的指纹,值为其出现次数,赋值为1;
S33.重复步骤S22直到备份结束,并将哈希表HTB中所有出现次数大于等于2的数据块指纹和出现次数写入磁盘。
图5为本发明实施例提供的计算机设备的实体结构示意图,所述计算机设备架设于第三方设备中,例如移动终端、便携式计算机、IPAD等,如图5所示,该服务器可以包括:处理器(processor)910、通信接口(Communications Interface)920、存储器(memory)930和通信总线940,其中,处理器910,通信接口920,存储器930通过通信总线940完成相互间的通信。处理器910可以调用存储器930中的逻辑指令,以执行如实施例中数据恢复的方法,这里不再一一赘述。
进一步地,本发明实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述数据恢复方法实施例所提供的方法,这里不再一一赘述。
本领域普通技术人员可以理解:此外,上述的存储器中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random AccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制,上述实施例均可根据需要自由组合;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (4)

1.一种数据备份与恢复方法,其特征在于,所述方法包括:
S11.初始化一个哈希表HTB,哈希表HTB的关键码为数据块指纹,值为该数据块指纹在本次备份中的出现次数;
S22.对每个被数据去重处理过的数据块的数据块指纹,查找所述数据块指纹是否存在于哈希表HTB中:
S2201.如果存在,将其出现次数加1;
S2202.如果不存在,插入一条记录到哈希表HTB中,记录的关键码为该数据块的指纹,值为其出现次数,赋值为1;
S33.重复步骤S22直到备份结束,并将哈希表HTB中所有出现次数大于等于2的数据块指纹和出现次数写入磁盘;
S300.初始化数据恢复所需要的备份信息、恢复缓存CacheR;
S301.读取需恢复数据的文件谱;
S302.从文件谱中读取恢复数据所需的数据块指纹;判断该数据块指纹是否为空;
S3021.如果为空,表示所有所需数据块已找到,执行步骤S306;
S3022.如果不为空,执行步骤S303;
S303.查看该数据块指纹是否存在于哈希表HTR中;
S3031.如果存在且其数据块内容不为空,获取对应的数据块内容,并将对应记录的数据块出现次数减1,判断数据块出现次数是否等于0;
S30311.如果等于0,将对应记录从哈希表HTR中移除以节约内存,执行步骤S302;
S30312.如果不等于0,执行步骤S302;
S304.查看该数据块指纹是否存在于恢复缓存中;
S3041.如果存在,获取对应的数据块内容;
S3042.如果不存在,将包含所需数据块的容器读取到恢复缓存中,获取该数据块内容;
S305.判断该数据块的指纹是否存在于哈希表HTR中;
S3051.如果存在,将数据块内容拷贝给记录的数据块内容,将该数据块出现次数减1;在队列Queue尾部插入一个指针指向哈希表HTR中对应的记录;执行步骤S3053;
S3052.如果不存在,执行步骤S302;
S3053.判断哈希表HTR的大小是否大于上限值Max;
S30531.如果大于Max,移除队列Queue头部指针指向的哈希表HTR中记录,执行步骤S3053;
S30532.如果不大于Max,执行步骤S302;
S306.清空哈希表HTR、队列Queue和恢复缓存CacheR。
2.如权利要求1所述的一种数据备份与恢复方法,其特征在于,S300中,所述初始化数据恢复所需要的备份信息、恢复缓存CacheR具体包括:
S1.初始化一个哈希表HTR,哈希表HTR的关键码为数据块指纹,值为一个结构体,所述结构体包括数据块在备份中的出现次数和数据块内容;
S2.初始化一个空队列Queue,用来记录自引用数据块在恢复时的出现顺序;
S4.初始化一个空的恢复缓存CacheR;
S5.读取备份时写入到磁盘的出现次数大于等于2的一个自引用数据块信息,所述自引用数据块信息包括数据块指纹和出现次数,用该自引用数据块信息初始化一个记录并插入哈希表HTR,记录的关键码为数据块指纹,值中结构体的出现次数为数据块指纹对应的数据块的出现次数,值中结构体的数据块内容为空;
重复步骤S4直到所有备份时统计的自引用数据块都被读取。
3.一种用于实现数据备份的计算机设备,其特征在于,所述计算机设备包括:
一个或更多个处理器;
一个或更多个存储器;
一个或更多个模块,其被存在存储器中且能够由所述一个或更多个处理器中的至少一个处理器以执行如权利要求1或2所述的一种数据备份与恢复方法的步骤。
4.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,该计算机程序被处理器执行时实现如权利要求1或2所述的一种数据备份与恢复方法的步骤。
CN201911166855.0A 2019-11-25 2019-11-25 一种数据备份方法、恢复方法、计算机设备和存储介质 Active CN110941514B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911166855.0A CN110941514B (zh) 2019-11-25 2019-11-25 一种数据备份方法、恢复方法、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911166855.0A CN110941514B (zh) 2019-11-25 2019-11-25 一种数据备份方法、恢复方法、计算机设备和存储介质

Publications (2)

Publication Number Publication Date
CN110941514A CN110941514A (zh) 2020-03-31
CN110941514B true CN110941514B (zh) 2022-05-20

Family

ID=69907951

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911166855.0A Active CN110941514B (zh) 2019-11-25 2019-11-25 一种数据备份方法、恢复方法、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN110941514B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111625186B (zh) * 2020-05-13 2023-11-07 深信服科技股份有限公司 数据处理方法、装置、电子设备及存储介质
CN111858574B (zh) * 2020-07-30 2022-02-11 暨南大学 一种面向数据去重技术的近似最优数据碎片块重写方法
CN112257122B (zh) * 2020-10-22 2024-06-28 深圳软牛科技有限公司 基于t2芯片的数据处理方法、装置、设备及存储介质
CN112328435B (zh) * 2020-12-07 2023-09-12 武汉绿色网络信息服务有限责任公司 目标数据备份和恢复的方法、装置、设备及存储介质
CN112612576B (zh) * 2020-12-23 2022-08-30 新华三大数据技术有限公司 虚拟机备份方法、装置、电子设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103823807A (zh) * 2012-11-16 2014-05-28 深圳市腾讯计算机系统有限公司 一种去除重复数据的方法、装置及系统
CN108984338A (zh) * 2018-06-01 2018-12-11 暨南大学 一种面向去重备份系统数据恢复的离线最优缓存替换装置及方法
CN110083487A (zh) * 2019-04-08 2019-08-02 湖北工业大学 一种基于数据局部性的引用数据块碎片消除方法及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103823807A (zh) * 2012-11-16 2014-05-28 深圳市腾讯计算机系统有限公司 一种去除重复数据的方法、装置及系统
CN108984338A (zh) * 2018-06-01 2018-12-11 暨南大学 一种面向去重备份系统数据恢复的离线最优缓存替换装置及方法
CN110083487A (zh) * 2019-04-08 2019-08-02 湖北工业大学 一种基于数据局部性的引用数据块碎片消除方法及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
基于MD5算法的重复数据删除技术的研究与改进;廖海生等;《计算机测量与控制》;20100331;第18卷(第3期);全文 *
面向数据去重的基于二次哈希的收敛加密策略;周玉坤等;《计算机工程与科学》;20160930;第38卷(第9期);全文 *

Also Published As

Publication number Publication date
CN110941514A (zh) 2020-03-31

Similar Documents

Publication Publication Date Title
CN110941514B (zh) 一种数据备份方法、恢复方法、计算机设备和存储介质
CN108427538B (zh) 全闪存阵列的存储数据压缩方法、装置、及可读存储介质
CN1230747C (zh) 用于备份和恢复计算机数据的方法和装置
US8229896B1 (en) Method and apparatus for identifying data blocks required for restoration
US11232073B2 (en) Method and apparatus for file compaction in key-value store system
CN108427539B (zh) 缓存设备数据的离线去重压缩方法、装置及可读存储介质
KR20170054299A (ko) 메모리 관리 시의 중복 제거를 위해서 기준 세트로 기준 블록을 취합하는 기법
KR102319657B1 (ko) 저장된 데이터 유닛들의 동작 관리
US9292520B1 (en) Advanced virtual synthetic full backup synthesized from previous full-backups
US20190317872A1 (en) Database cluster architecture based on dual port solid state disk
WO2019001521A1 (zh) 数据存储方法、存储设备、客户端及系统
KR20140102292A (ko) 탄력적인 클라우드 파일 시스템에서의 대기 시간 및 비용 절감
US11409766B2 (en) Container reclamation using probabilistic data structures
US9268696B1 (en) System and method for improving cache performance
CN109918352B (zh) 存储器系统和存储数据的方法
CN112612576B (zh) 虚拟机备份方法、装置、电子设备及存储介质
EP3449372B1 (en) Fault-tolerant enterprise object storage system for small objects
US9336250B1 (en) Systems and methods for efficiently backing up data
CN111796969B (zh) 一种数据差量压缩检测方法、计算机设备和存储介质
KR102275240B1 (ko) 저장된 데이터 유닛들의 동작 관리
CN107391312B (zh) 数据云备份方法及系统
US20200192760A1 (en) Apparatus and method for deduplicating data
CN110471625B (zh) 坏块信息保护方法、装置、计算机设备及存储介质
US11409604B1 (en) Storage optimization of pre-allocated units of storage
CN110729014A (zh) Ssd存储擦除计数表备份的方法、装置、计算机设备及存储介质

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
TR01 Transfer of patent right

Effective date of registration: 20230824

Address after: Leke Workshop Incubator, Building 1, Lianchuang Science and Technology Center, No. 55, Haitang Road, Wuhan Economic and Technological Development Zone, Hubei Province, 430000 (Ji-LKGC-401-5)

Patentee after: Wuhan Oumingdian Technology Co.,Ltd.

Address before: 430068 No. 28 Nanli Road, Hongshan District, Wuhan City, Hubei Province

Patentee before: HUBEI University OF TECHNOLOGY

TR01 Transfer of patent right