CN115543695A - 一种数据备份方法、装置及电子设备和存储介质 - Google Patents

一种数据备份方法、装置及电子设备和存储介质 Download PDF

Info

Publication number
CN115543695A
CN115543695A CN202211508008.XA CN202211508008A CN115543695A CN 115543695 A CN115543695 A CN 115543695A CN 202211508008 A CN202211508008 A CN 202211508008A CN 115543695 A CN115543695 A CN 115543695A
Authority
CN
China
Prior art keywords
data
bitmap
backup
data block
block
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.)
Granted
Application number
CN202211508008.XA
Other languages
English (en)
Other versions
CN115543695B (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.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology Co Ltd
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 Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202211508008.XA priority Critical patent/CN115543695B/zh
Publication of CN115543695A publication Critical patent/CN115543695A/zh
Application granted granted Critical
Publication of CN115543695B publication Critical patent/CN115543695B/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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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

一种数据备份方法、装置及电子设备和存储介质
技术领域
本申请涉及计算机技术领域,更具体地说,涉及一种数据备份方法、装置及一种电子设备和一种计算机可读存储介质。
背景技术
在云平台中,对于虚拟机的管理,备份策略是很重要的一环,可以有效防止系统崩溃造成的数据缺失。备份可以分为全量备份、增量备份和差异备份。增量备份用于备份两次备份时间点之间变动过的数据,变动可包括增加、修改和删除。因此,备份时会备份三种操作后的数据,当有大量的删除数据存在时,进行增量备份明显会增加备份时间。
因此,如何降低增量备份时间,提高增量备份效率是本领域技术人员需要解决的技术问题。
发明内容
本申请的目的在于提供一种数据备份方法、装置及一种电子设备和一种计算机可读存储介质,降低了增量备份时间,提高了增量备份效率。
为实现上述目的,本申请提供了一种数据备份方法,包括:
当接收到数据备份命令时,确定目标数据块;其中,所述目标数据块包括当前时间与上一次备份时间之间存在数据增加或存在数据修改的数据块,不包括当前时间与上一次备份时间之间存在数据删除的数据块;
备份所述目标数据块中的数据。
其中,所述确定目标数据块,包括:
确定当前时间与上一次备份时间之间存在数据变化的数据块作为变化数据块;其中,所述数据变化包括数据增加、数据修改和数据删除;
在所述变化数据块中剔除删除数据块得到目标数据块;其中,所述删除数据块为存在数据删除的数据块。
其中,所述确定当前时间与上一次备份时间之间存在数据变化的数据块作为变化数据块,包括:
获取当前时间与上一次备份时间之间的增量位图;其中,所述增量位图包括多个位,每个位的值表示对应的数据块是否存在数据变化;
根据所述增量位图确定存在数据变化的数据块作为变化数据块。
其中,所述获取当前时间与上一次备份时间之间的增量位图,包括:
将当前时间与上一次备份时间之间的增量位图从内存中保存至本地;其中,在全量备份时生成当前时间与上一次备份时间之间的增量位图。
其中,所述将当前时间与上一次备份时间之间的增量位图从内存中保存至本地,包括:
通过block-dirty-bitmap-dump操作将当前时间与上一次备份时间之间的增量位图从内存中保存至本地。
其中,所述在全量备份时生成当前时间与上一次备份时间之间的增量位图,包括:
在全量备份时通过block-dirty-bitmap-add操作生成当前时间与上一次备份时间之间的增量位图。
其中,所述在全量备份时通过block-dirty-bitmap-add操作生成当前时间与上一次备份时间之间的增量位图,包括:
在全量备份时利用qemu的qmp命令执行block-dirty-bitmap-add操作生成当前时间与上一次备份时间之间的增量位图。
其中,在所述变化数据块中剔除删除数据块得到目标数据块,包括:
回收删除的数据所占用的数据块;
查询当前已分配数据的数据块;
将所述变化数据块中已分配数据的数据块确定为目标数据块。
其中,所述回收删除的数据所占用的数据块,包括:
通过空间释放操作回收删除的数据所占用的数据块。
其中,所述通过空间释放操作回收删除的数据所占用的数据块,包括:
利用qemu-img convert命令执行空间释放操作,以回收删除的数据所占用的数据块。
其中,所述确定目标数据块,包括:
确定虚拟磁盘中的目标数据块;其中,所述虚拟磁盘为raw格式的磁盘或qcow2格式的磁盘。
其中,所述查询当前已分配数据的数据块,包括:
若虚拟磁盘为raw格式的磁盘,则利用ioctl命令查询当前已分配数据的数据块。
其中,所述查询当前已分配数据的数据块,包括:
若虚拟磁盘为qcow2格式的磁盘,则查询头数据的l2_table,以确定当前已分配数据的数据块。
其中,所述确定目标数据块,包括:
获取当前时间与上一次备份时间之间的增量位图;其中,所述增量位图包括多个位,每个位的值表示对应的数据块是否存在数据变化,所述数据变化包括数据增加、数据修改和数据删除;
回收删除的数据所占用的数据块,获取当前的已分配数据块位图;其中,所述已分配数据块位图包括多个位,每个位的值表示对应的数据块中是否存在数据;
根据所述增量位图和所述已分配数据块位图确定当前时间与上一次备份时间之间存在数据增加或存在数据修改的目标数据块。
其中,所述增量位图中的位的值为1时表示对应的数据块存在数据变化,所述增量位图中的位的值为0时表示对应的数据块不存在数据变化;
所述已分配数据块位图中的位的值为1时表示对应的数据块中存在数据,所述已分配数据块位图中的位的值为0时表示对应的数据块不存在数据。
其中,所述根据所述增量位图和所述已分配数据块位图确定当前时间与上一次备份时间之间存在数据增加或存在数据修改的目标数据块,包括:
对所述增量位图和所述已分配数据块位图进行与操作得到目标位图;
将所述目标位图中值为1的位对应的数据块确定为当前时间与上一次备份时间之间存在数据增加或存在数据修改的目标数据块。
其中,所述备份所述目标数据块中的数据,包括:
遍历所述目标位图,备份所述目标位图中值为1的位对应的数据块。
为实现上述目的,本申请提供了一种数据备份装置,包括:
确定模块,用于当接收到数据备份命令时,确定目标数据块;其中,所述目标数据块包括当前时间与上一次备份时间之间存在数据增加或存在数据修改的数据块,不包括当前时间与上一次备份时间之间存在数据删除的数据块;
备份模块,用于备份所述目标数据块中的数据。
其中,所述确定模块包括:
第一确定子模块,用于确定当前时间与上一次备份时间之间存在数据变化的数据块作为变化数据块;其中,所述数据变化包括数据增加、数据修改和数据删除;
剔除子模块,用于在所述变化数据块中剔除删除数据块得到目标数据块;其中,所述删除数据块为存在数据删除的数据块。
其中,所述第一确定子模块包括:
获取子单元,用于获取当前时间与上一次备份时间之间的增量位图;其中,所述增量位图包括多个位,每个位的值表示对应的数据块是否存在数据变化;
第一确定子单元,用于根据所述增量位图确定存在数据变化的数据块作为变化数据块。
其中,所述获取子单元具体用于:将当前时间与上一次备份时间之间的增量位图从内存中保存至本地;其中,在全量备份时生成当前时间与上一次备份时间之间的增量位图。
其中,所述获取子单元具体用于:通过block-dirty-bitmap-dump操作将当前时间与上一次备份时间之间的增量位图从内存中保存至本地。
其中,在全量备份时通过block-dirty-bitmap-add操作生成当前时间与上一次备份时间之间的增量位图。
其中,在全量备份时利用qemu的qmp命令执行block-dirty-bitmap-add操作生成当前时间与上一次备份时间之间的增量位图。
其中,所述剔除子模块包括:
回收子单元,用于回收删除的数据所占用的数据块;
查询子单元,用于查询当前已分配数据的数据块;
第二确定子单元,用于将所述变化数据块中已分配数据的数据块确定为目标数据块。
其中,所述回收子单元具体用于:通过空间释放操作回收删除的数据所占用的数据块。
其中,所述回收子单元具体用于:利用qemu-img convert命令执行空间释放操作,以回收删除的数据所占用的数据块。
其中,所述确定模块具体用于:确定当前时间与上一次备份时间之间虚拟磁盘中存在数据增加或存在数据修改的目标数据块;其中,所述虚拟磁盘为raw格式的磁盘或qcow2格式的磁盘。
其中,所述查询子单元具体用于:若虚拟磁盘为raw格式的磁盘,则利用ioctl命令查询当前已分配数据的数据块。
其中,所述查询子单元具体用于:若虚拟磁盘为qcow2格式的磁盘,则查询头数据的l2_table,以确定当前已分配数据的数据块。
其中,所述确定模块包括:
第一获取单元,用于获取当前时间与上一次备份时间之间的增量位图;其中,所述增量位图包括多个位,每个位的值表示对应的数据块是否存在数据变化,所述数据变化包括数据增加、数据修改和数据删除;
第二获取单元,用于回收删除的数据所占用的数据块,获取当前的已分配数据块位图;其中,所述已分配数据块位图包括多个位,每个位的值表示对应的数据块中是否存在数据;
确定单元,用于根据所述增量位图和所述已分配数据块位图确定当前时间与上一次备份时间之间存在数据增加或存在数据修改的目标数据块。
其中,所述增量位图中的位的值为1时表示对应的数据块存在数据变化,所述增量位图中的位的值为0时表示对应的数据块不存在数据变化;
所述已分配数据块位图中的位的值为1时表示对应的数据块中存在数据,所述已分配数据块位图中的位的值为0时表示对应的数据块不存在数据。
其中,所述确定单元具体用于:对所述增量位图和所述已分配数据块位图进行与操作得到目标位图;将所述目标位图中值为1的位对应的数据块确定为当前时间与上一次备份时间之间存在数据增加或存在数据修改的目标数据块。
其中,所述备份模块具体用于:遍历所述目标位图,备份所述目标位图中值为1的位对应的数据块。
为实现上述目的,本申请提供了一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述数据备份方法的步骤。
为实现上述目的,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述数据备份方法的步骤。
通过以上方案可知,本申请提供的一种数据备份方法,包括:当接收到数据备份命令时,确定目标数据块;其中,所述目标数据块包括当前时间与上一次备份时间之间存在数据增加或存在数据修改的数据块,不包括当前时间与上一次备份时间之间存在数据删除的数据块;备份所述目标数据块中的数据。
本申请提供的数据备份方法,在增量备份时,优化备份数据的选取,只备份增加和修改的数据,不再备份已删除的数据,加快备份速度,缩短备份时间,从而可以快速实现增量备份的过程。特别在进行网络远程备份时可以有效防止数据量过大而长时间占据过多的带宽,造成网络堵塞。本申请还公开了一种数据备份装置及一种电子设备和一种计算机可读存储介质,同样能实现上述技术效果。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1为根据一示例性实施例示出的一种数据备份方法的流程图;
图2为根据一示例性实施例示出的另一种数据备份方法的流程图;
图3为根据一示例性实施例示出的一种应用实施例的流程图;
图4为根据一示例性实施例示出的一种数据备份装置的结构图;
图5为根据一示例性实施例示出的一种电子设备的结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。另外,在本申请实施例中,“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本申请实施例公开了一种数据备份方法,降低了增量备份时间,提高了增量备份效率。
参见图1,根据一示例性实施例示出的一种数据备份方法的流程图,如图1所示,包括:
S101:当接收到数据备份命令时,确定目标数据块;其中,所述目标数据块包括当前时间与上一次备份时间之间存在数据增加或存在数据修改的数据块,不包括当前时间与上一次备份时间之间存在数据删除的数据块;
S102:备份所述目标数据块中的数据。
本实施例的执行主体为虚拟机,目的为对虚拟磁盘中的数据进行增量备份。也即所述确定目标数据块,包括:确定虚拟磁盘中的目标数据块。在本实施例中,在需要进行增量备份时,确定当前时间与上一次备份时间之间存在数据增加或存在数据修改的目标数据块,备份目标数据块中的数据,而不备份存在数据删除的数据块中的数据。
作为一种可行的实施方式,所述确定目标数据块,包括:确定当前时间与上一次备份时间之间存在数据变化的数据块作为变化数据块;其中,所述数据变化包括数据增加、数据修改和数据删除;在所述变化数据块中剔除删除数据块得到目标数据块;其中,所述删除数据块为存在数据删除的数据块。
在具体实施中,确定当前时间与上一次备份时间之间存在数据变化的数据块作为变化数据块,包括存在数据增加的数据块、存在数据修改的数据块、存在数据删除的数据块。然后,在变化数据块中剔除存在删除的数据块得到目标数据块。
作为一种可行的实施方式,所述确定当前时间与上一次备份时间之间存在数据变化的数据块作为变化数据块,包括:获取当前时间与上一次备份时间之间的增量位图;其中,所述增量位图包括多个位,每个位的值表示对应的数据块是否存在数据变化;根据所述增量位图确定存在数据变化的数据块作为变化数据块。
在具体实施中,获取当前时间与上一次备份时间之间的增量位图,增量位图包括多个位,每个位的值表示对应的数据块是否存在数据变化,根据增量位图可以确定存在数据变化的数据块。优选的,所述增量位图中的位的值为1时表示对应的数据块存在数据变化,所述增量位图中的位的值为0时表示对应的数据块不存在数据变化。也即,将值为1的位对应的数据块确定为存在数据变化的数据块。
作为一种可行的实施方式,所述获取当前时间与上一次备份时间之间的增量位图,包括:将当前时间与上一次备份时间之间的增量位图从内存中保存至本地;其中,在全量备份时生成当前时间与上一次备份时间之间的增量位图。
在具体实施中,在全量备份时生成增量位图,在需要进行增量备份时,将增量位图从内存中保存至本地。
作为一种可行的实施方式,所述将当前时间与上一次备份时间之间的增量位图从内存中保存至本地,包括:通过block-dirty-bitmap-dump操作将当前时间与上一次备份时间之间的增量位图从内存中保存至本地。
在具体实施中,在需要进行增量备份时,执行block-dirty-bitmap-dump操作将增量位图从内存中保存到本地。
作为一种可行的实施方式,所述在全量备份时生成当前时间与上一次备份时间之间的增量位图,包括:在全量备份时通过block-dirty-bitmap-add操作生成当前时间与上一次备份时间之间的增量位图。
在具体实施中,在全量备份时执行block-dirty-bitmap-add操作,生成增量位图。
作为一种可行的实施方式,所述在全量备份时通过block-dirty-bitmap-add操作生成当前时间与上一次备份时间之间的增量位图,包括:在全量备份时利用qemu的qmp命令执行block-dirty-bitmap-add操作生成当前时间与上一次备份时间之间的增量位图。
在具体实施中,利用qemu的qmp命令在全量备份时执行block-dirty-bitmap-add操作,生成增量位图。
作为一种可行的实施方式,在所述变化数据块中剔除删除数据块得到目标数据块,包括:回收删除的数据所占用的数据块;查询当前已分配数据的数据块;将所述变化数据块中已分配数据的数据块确定为目标数据块。
在具体实施中,回收虚拟磁盘中删除的数据所占用的数据块,也即上述删除数据块,回收操作之后,查询当前已分配数据的数据块,将变化数据块中已分配数据的数据块确定为目标数据块,也即将存在数据变化且已分配数据的数据块确定为目标数据块。
作为一种可行的实施方式,所述回收删除的数据所占用的数据块,包括:通过空间释放操作回收删除的数据所占用的数据块。
在具体实施中,对虚拟磁盘进行一次释放空间的操作,将虚拟磁盘中被删除的数据所占用的空间重新释放。
作为一种可行的实施方式,所述通过空间释放操作回收删除的数据所占用的数据块,包括:利用qemu-img convert命令执行空间释放操作,以回收删除的数据所占用的数据块。
在具体实施中,通过qemu-img convert对虚拟磁盘进行一次释放空间的操作,将虚拟磁盘中被删除的数据所占用的空间重新释放。
需要说明的是,虚拟磁盘可以为raw格式的磁盘,也可以为qcow2格式的磁盘。若虚拟磁盘为raw格式的磁盘,则所述查询当前已分配数据的数据块,包括:利用ioctl命令查询当前已分配数据的数据块。若虚拟磁盘为qcow2格式的磁盘,则所述查询当前已分配数据的数据块,包括:查询头数据的l2_table,以确定当前已分配数据的数据块。
在具体实施中,对于raw格式的虚拟磁盘,可以直接利用ioctl命令查询当前已分配数据的数据块,对于qcow2格式的虚拟磁盘,可以通过查询头数据的l2_table确定当前已分配数据的数据块。
本申请实施例提供的数据备份方法,在增量备份时,优化备份数据的选取,只备份增加和修改的数据,不再备份已删除的数据,加快备份速度,缩短备份时间,从而可以快速实现增量备份的过程。特别在进行网络远程备份时可以有效防止数据量过大而长时间占据过多的带宽,造成网络堵塞。
本申请实施例公开了一种数据备份方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。具体的:
参见图2,根据一示例性实施例示出的另一种数据备份方法的流程图,如图2所示,包括:
S201:获取当前时间与上一次备份时间之间的增量位图;其中,所述增量位图包括多个位,每个位的值表示对应的数据块是否存在数据变化,所述数据变化包括数据增加、数据修改和数据删除;
在具体实施中,获取当前时间与上一次备份时间之间的增量位图,增量位图包括多个位,每个位的值表示对应的数据块是否存在数据变化,根据增量位图可以确定存在数据变化的数据块。优选的,所述增量位图中的位的值为1时表示对应的数据块存在数据变化,所述增量位图中的位的值为0时表示对应的数据块不存在数据变化。也即,将值为1的位对应的数据块确定为存在数据变化的数据块。
作为一种可行的实施方式,所述获取当前时间与上一次备份时间之间的增量位图,包括:将当前时间与上一次备份时间之间的增量位图从内存中保存至本地;其中,在全量备份时生成当前时间与上一次备份时间之间的增量位图。
在具体实施中,在全量备份时生成增量位图,在需要进行增量备份时,将增量位图从内存中保存至本地。
作为一种可行的实施方式,所述将当前时间与上一次备份时间之间的增量位图从内存中保存至本地,包括:通过block-dirty-bitmap-dump操作将当前时间与上一次备份时间之间的增量位图从内存中保存至本地。
在具体实施中,在需要进行增量备份时,执行block-dirty-bitmap-dump操作将增量位图从内存中保存到本地。
作为一种可行的实施方式,所述在全量备份时生成当前时间与上一次备份时间之间的增量位图,包括:在全量备份时通过block-dirty-bitmap-add操作生成当前时间与上一次备份时间之间的增量位图。
在具体实施中,在全量备份时执行block-dirty-bitmap-add操作,生成增量位图。
作为一种可行的实施方式,所述在全量备份时通过block-dirty-bitmap-add操作生成当前时间与上一次备份时间之间的增量位图,包括:在全量备份时利用qemu的qmp命令执行block-dirty-bitmap-add操作生成当前时间与上一次备份时间之间的增量位图。
在具体实施中,利用qemu的qmp命令在全量备份时执行block-dirty-bitmap-add操作,生成增量位图。
S202:回收删除的数据所占用的数据块,获取当前的已分配数据块位图;其中,所述已分配数据块位图包括多个位,每个位的值表示对应的数据块中是否存在数据;
在具体实施中,回收虚拟磁盘中删除的数据所占用的数据块,也即上述删除数据块,回收操作之后,获取当前的已分配数据块位图,已分配数据块位图包括多个位,每个位的值表示对应的数据块中是否存在数据。优选的,所述已分配数据块位图中的位的值为1时表示对应的数据块中存在数据,所述已分配数据块位图中的位的值为0时表示对应的数据块不存在数据。
作为一种可行的实施方式,所述回收删除的数据所占用的数据块,包括:通过空间释放操作回收删除的数据所占用的数据块。
在具体实施中,对虚拟磁盘进行一次释放空间的操作,将虚拟磁盘中被删除的数据所占用的空间重新释放。
作为一种可行的实施方式,所述通过空间释放操作回收删除的数据所占用的数据块,包括:利用qemu-img convert命令执行空间释放操作,以回收删除的数据所占用的数据块。
在具体实施中,通过qemu-img convert对虚拟磁盘进行一次释放空间的操作,将虚拟磁盘中被删除的数据所占用的空间重新释放。
需要说明的是,虚拟磁盘可以为raw格式的磁盘,也可以为qcow2格式的磁盘。若虚拟磁盘为raw格式的磁盘,则所述查询当前已分配数据的数据块,包括:利用ioctl命令查询当前已分配数据的数据块。若虚拟磁盘为qcow2格式的磁盘,则所述查询当前已分配数据的数据块,包括:查询头数据的l2_table,以确定当前已分配数据的数据块。
在具体实施中,对于raw格式的虚拟磁盘,可以直接利用ioctl命令查询当前已分配数据的数据块,对于qcow2格式的虚拟磁盘,可以通过查询头数据的l2_table确定当前已分配数据的数据块。
S203:根据所述增量位图和所述已分配数据块位图确定当前时间与上一次备份时间之间存在数据增加或存在数据修改的目标数据块。
在本步骤中,对增量位图与已分配数据块位图进行融合,从而确定当前时间与上一次备份时间之间存在数据增加或存在数据修改的目标数据块。
作为一种可行的实施方式,所述根据所述增量位图和所述已分配数据块位图确定当前时间与上一次备份时间之间存在数据增加或存在数据修改的目标数据块,包括:对所述增量位图和所述已分配数据块位图进行与操作得到目标位图;将所述目标位图中值为1的位对应的数据块确定为当前时间与上一次备份时间之间存在数据增加或存在数据修改的目标数据块。
在具体实施中,获取增量位图和已分配数据块位图进行与操作得到目标位图,目标位图中只保留增量位图中增加数据和修改数据生成的标记,将标位图中值为1的位对应的数据块确定为当前时间与上一次备份时间之间存在数据增加或存在数据修改的目标数据块。
S204:备份所述目标数据块中的数据。
在本步骤中,备份存在数据增加或存在数据修改的目标数据块中的数据。
作为一种可行的实施方式,所述备份所述目标数据块中的数据,包括:遍历所述目标位图,备份所述目标位图中值为1的位对应的数据块。
在具体实施中,遍历目标位图中的各个位,将值为1是位对应的数据块进行备份,从而完成增量拷贝。
通过获取增量位图和已分配数据块位图,并进行与操作,只保留增加数据和修改数据在增量位图中的标记,剔除掉删除数据原来占用的数据块空间在增量位图中的标记,从而在虚拟磁盘备份时则可以有效降低需要备份的数据,加快备份速度,缩短备份时间,提升备份效率。
可见,本实施例适用于虚拟机进行虚拟磁盘增量备份时,通过将备份时所利用的位图文件中的无效位进行剔除,只保留增加和修改数据块时生成的1,对于删除数据时在位图中生成的1进行剔除,然后再对位图中1所表示的数据进行备份,从而减小了备份数据,提升了备份效率,降低了备份时间。
下面介绍本申请提供的一种应用实施例,具体实施过程如图3所示,包括以下步骤:
步骤1:利用qemu的qmp命令在全量备份时执行block-dirty-bitmap-add操作,生成增量位图,在本次备份时执行block-dirty-bitmap-dump将增量位图从内存中保存到本地。
步骤2:利用qemu-img convert对虚拟磁盘文件进行空间释放操作,将删除的数据所占用的数据块进行回收;
步骤3:查询虚拟磁盘的已分配数据块,对于raw格式,可以直接利用ioctl进行查询,对于qcow2格式的虚拟磁盘可以通过查询头数据的l2_table来生成已分配数据块的位图;
步骤4:将步骤1导出的位图和步骤3导出的位图进行与操作从而将删除的数据原先所占有的空间在位图中标为0;
步骤5:遍历步骤4中生成的位图,将位图中为1的位置所对应的数据进行备份。
下面对本申请实施例提供的一种数据备份装置进行介绍,下文描述的一种数据备份装置与上文描述的一种数据备份方法可以相互参照。
参见图4,根据一示例性实施例示出的一种数据备份装置的结构图,如图4所示,包括:
确定模块401,用于当接收到数据备份命令时,确定目标数据块;其中,所述目标数据块包括当前时间与上一次备份时间之间存在数据增加或存在数据修改的数据块,不包括当前时间与上一次备份时间之间存在数据删除的数据块;
备份模块402,用于备份所述目标数据块中的数据。
本申请实施例提供的数据备份装置,在增量备份时,优化备份数据的选取,只备份增加和修改的数据,不再备份已删除的数据,加快备份速度,缩短备份时间,从而可以快速实现增量备份的过程。特别在进行网络远程备份时可以有效防止数据量过大而长时间占据过多的带宽,造成网络堵塞。
在上述实施例的基础上,作为一种优选实施方式,所述确定模块401包括:
第一确定子模块,用于确定当前时间与上一次备份时间之间存在数据变化的数据块作为变化数据块;其中,所述数据变化包括数据增加、数据修改和数据删除;
剔除子模块,用于在所述变化数据块中剔除删除数据块得到目标数据块;其中,所述删除数据块为存在数据删除的数据块。
在上述实施例的基础上,作为一种优选实施方式,所述第一确定子模块包括:
获取子单元,用于获取当前时间与上一次备份时间之间的增量位图;其中,所述增量位图包括多个位,每个位的值表示对应的数据块是否存在数据变化;
第一确定子单元,用于根据所述增量位图确定存在数据变化的数据块作为变化数据块。
在上述实施例的基础上,作为一种优选实施方式,所述获取子单元具体用于:将当前时间与上一次备份时间之间的增量位图从内存中保存至本地;其中,在全量备份时生成当前时间与上一次备份时间之间的增量位图。
在上述实施例的基础上,作为一种优选实施方式,所述获取子单元具体用于:通过block-dirty-bitmap-dump操作将当前时间与上一次备份时间之间的增量位图从内存中保存至本地。
在上述实施例的基础上,作为一种优选实施方式,在全量备份时通过block-dirty-bitmap-add操作生成当前时间与上一次备份时间之间的增量位图。
在上述实施例的基础上,作为一种优选实施方式,在全量备份时利用qemu的qmp命令执行block-dirty-bitmap-add操作生成当前时间与上一次备份时间之间的增量位图。
在上述实施例的基础上,作为一种优选实施方式,所述剔除子模块包括:
回收子单元,用于回收删除的数据所占用的数据块;
查询子单元,用于查询当前已分配数据的数据块;
第二确定子单元,用于将所述变化数据块中已分配数据的数据块确定为目标数据块。
在上述实施例的基础上,作为一种优选实施方式,所述回收子单元具体用于:通过空间释放操作回收删除的数据所占用的数据块。
在上述实施例的基础上,作为一种优选实施方式,所述回收子单元具体用于:利用qemu-img convert命令执行空间释放操作,以回收删除的数据所占用的数据块。
在上述实施例的基础上,作为一种优选实施方式,所述确定模块401具体用于:确定当前时间与上一次备份时间之间虚拟磁盘中存在数据增加或存在数据修改的目标数据块;其中,所述虚拟磁盘为raw格式的磁盘或qcow2格式的磁盘。
在上述实施例的基础上,作为一种优选实施方式,所述查询子单元具体用于:若虚拟磁盘为raw格式的磁盘,则利用ioctl命令查询当前已分配数据的数据块。
在上述实施例的基础上,作为一种优选实施方式,所述查询子单元具体用于:若虚拟磁盘为qcow2格式的磁盘,则查询头数据的l2_table,以确定当前已分配数据的数据块。
在上述实施例的基础上,作为一种优选实施方式,所述确定模块401包括:
第一获取单元,用于获取当前时间与上一次备份时间之间的增量位图;其中,所述增量位图包括多个位,每个位的值表示对应的数据块是否存在数据变化,所述数据变化包括数据增加、数据修改和数据删除;
第二获取单元,用于回收删除的数据所占用的数据块,获取当前的已分配数据块位图;其中,所述已分配数据块位图包括多个位,每个位的值表示对应的数据块中是否存在数据;
确定单元,用于根据所述增量位图和所述已分配数据块位图确定当前时间与上一次备份时间之间存在数据增加或存在数据修改的目标数据块。
在上述实施例的基础上,作为一种优选实施方式,所述增量位图中的位的值为1时表示对应的数据块存在数据变化,所述增量位图中的位的值为0时表示对应的数据块不存在数据变化;
所述已分配数据块位图中的位的值为1时表示对应的数据块中存在数据,所述已分配数据块位图中的位的值为0时表示对应的数据块不存在数据。
在上述实施例的基础上,作为一种优选实施方式,所述确定单元具体用于:对所述增量位图和所述已分配数据块位图进行与操作得到目标位图;将所述目标位图中值为1的位对应的数据块确定为当前时间与上一次备份时间之间存在数据增加或存在数据修改的目标数据块。
在上述实施例的基础上,作为一种优选实施方式,所述备份模块402具体用于:遍历所述目标位图,备份所述目标位图中值为1的位对应的数据块。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
基于上述程序模块的硬件实现,且为了实现本申请实施例的方法,本申请实施例还提供了一种电子设备,图5为根据一示例性实施例示出的一种电子设备的结构图,如图5所示,电子设备包括:
通信接口1,能够与其它设备比如网络设备等进行信息交互;
处理器2,与通信接口1连接,以实现与其它设备进行信息交互,用于运行计算机程序时,执行上述一个或多个技术方案提供的数据备份方法。而所述计算机程序存储在存储器3上。
当然,实际应用时,电子设备中的各个组件通过总线系统4耦合在一起。可理解,总线系统4用于实现这些组件之间的连接通信。总线系统4除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图5中将各种总线都标为总线系统4。
本申请实施例中的存储器3用于存储各种类型的数据以支持电子设备的操作。这些数据的示例包括:用于在电子设备上操作的任何计算机程序。
可以理解,存储器3可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read-Only Memory)、可擦除可编程只读存储器(EPROM,Erasable Programmable Read-Only Memory)、电可擦除可编程只读存储器(EEPROM,Electrically Erasable Programmable Read-Only Memory)、磁性随机存取存储器(FRAM,ferromagnetic random access memory)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(CD-ROM,Compact Disc Read-Only Memory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(RAM,Random AccessMemory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM,Static Random Access Memory)、同步静态随机存取存储器(SSRAM,Synchronous Static Random Access Memory)、动态随机存取存储器(DRAM,Dynamic Random Access Memory)、同步动态随机存取存储器(SDRAM,SynchronousDynamic Random Access Memory)、双倍数据速率同步动态随机存取存储器(DDRSDRAM,Double Data Rate Synchronous Dynamic Random Access Memory)、增强型同步动态随机存取存储器(ESDRAM,Enhanced Synchronous Dynamic Random Access Memory)、同步连接动态随机存取存储器(SLDRAM,SyncLink Dynamic Random Access Memory)、直接内存总线随机存取存储器(DRRAM,Direct Rambus Random Access Memory)。本申请实施例描述的存储器3旨在包括但不限于这些和任意其它适合类型的存储器。
上述本申请实施例揭示的方法可以应用于处理器2中,或者由处理器2实现。处理器2可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器2中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器2可以是通用处理器、DSP,或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器2可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器3,处理器2读取存储器3中的程序,结合其硬件完成前述方法的步骤。
处理器2执行所述程序时实现本申请实施例的各个方法中的相应流程,为了简洁,在此不再赘述。
在示例性实施例中,本申请实施例还提供了一种存储介质,即计算机存储介质,具体为计算机可读存储介质,例如包括存储计算机程序的存储器3,上述计算机程序可由处理器2执行,以完成前述方法所述步骤。计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、Flash Memory、磁表面存储器、光盘、或CD-ROM等存储器。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本申请上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (20)

1.一种数据备份方法,其特征在于,包括:
当接收到数据备份命令时,确定目标数据块;其中,所述目标数据块包括当前时间与上一次备份时间之间存在数据增加或存在数据修改的数据块,不包括当前时间与上一次备份时间之间存在数据删除的数据块;
备份所述目标数据块中的数据。
2.根据权利要求1所述数据备份方法,其特征在于,所述确定目标数据块,包括:
确定当前时间与上一次备份时间之间存在数据变化的数据块作为变化数据块;其中,所述数据变化包括数据增加、数据修改和数据删除;
在所述变化数据块中剔除删除数据块得到目标数据块;其中,所述删除数据块为存在数据删除的数据块。
3.根据权利要求2所述数据备份方法,其特征在于,所述确定当前时间与上一次备份时间之间存在数据变化的数据块作为变化数据块,包括:
获取当前时间与上一次备份时间之间的增量位图;其中,所述增量位图包括多个位,每个位的值表示对应的数据块是否存在数据变化;
根据所述增量位图确定存在数据变化的数据块作为变化数据块。
4.根据权利要求3所述数据备份方法,其特征在于,所述获取当前时间与上一次备份时间之间的增量位图,包括:
将当前时间与上一次备份时间之间的增量位图从内存中保存至本地;其中,在全量备份时生成当前时间与上一次备份时间之间的增量位图。
5.根据权利要求4所述数据备份方法,其特征在于,所述将当前时间与上一次备份时间之间的增量位图从内存中保存至本地,包括:
通过block-dirty-bitmap-dump操作将当前时间与上一次备份时间之间的增量位图从内存中保存至本地。
6.根据权利要求4所述数据备份方法,其特征在于,所述在全量备份时生成当前时间与上一次备份时间之间的增量位图,包括:
在全量备份时通过block-dirty-bitmap-add操作生成当前时间与上一次备份时间之间的增量位图。
7.根据权利要求6所述数据备份方法,其特征在于,所述在全量备份时通过block-dirty-bitmap-add操作生成当前时间与上一次备份时间之间的增量位图,包括:
在全量备份时利用qemu的qmp命令执行block-dirty-bitmap-add操作生成当前时间与上一次备份时间之间的增量位图。
8.根据权利要求2所述数据备份方法,其特征在于,在所述变化数据块中剔除删除数据块得到目标数据块,包括:
回收删除的数据所占用的数据块;
查询当前已分配数据的数据块;
将所述变化数据块中已分配数据的数据块确定为目标数据块。
9.根据权利要求8所述数据备份方法,其特征在于,所述回收删除的数据所占用的数据块,包括:
通过空间释放操作回收删除的数据所占用的数据块。
10.根据权利要求9所述数据备份方法,其特征在于,所述通过空间释放操作回收删除的数据所占用的数据块,包括:
利用qemu-img convert命令执行空间释放操作,以回收删除的数据所占用的数据块。
11.根据权利要求1所述数据备份方法,其特征在于,所述确定目标数据块,包括:
确定虚拟磁盘的目标数据块;其中,所述虚拟磁盘为raw格式的磁盘或qcow2格式的磁盘。
12.根据权利要求8所述数据备份方法,其特征在于,所述查询当前已分配数据的数据块,包括:
若虚拟磁盘为raw格式的磁盘,则利用ioctl命令查询当前已分配数据的数据块。
13.根据权利要求8所述数据备份方法,其特征在于,所述查询当前已分配数据的数据块,包括:
若虚拟磁盘为qcow2格式的磁盘,则查询头数据的l2_table,以确定当前已分配数据的数据块。
14.根据权利要求1所述数据备份方法,其特征在于,所述确定目标数据块,包括:
获取当前时间与上一次备份时间之间的增量位图;其中,所述增量位图包括多个位,每个位的值表示对应的数据块是否存在数据变化,所述数据变化包括数据增加、数据修改和数据删除;
回收删除的数据所占用的数据块,获取当前的已分配数据块位图;其中,所述已分配数据块位图包括多个位,每个位的值表示对应的数据块中是否存在数据;
根据所述增量位图和所述已分配数据块位图确定当前时间与上一次备份时间之间存在数据增加或存在数据修改的目标数据块。
15.根据权利要求14所述数据备份方法,其特征在于,所述增量位图中的位的值为1时表示对应的数据块存在数据变化,所述增量位图中的位的值为0时表示对应的数据块不存在数据变化;
所述已分配数据块位图中的位的值为1时表示对应的数据块中存在数据,所述已分配数据块位图中的位的值为0时表示对应的数据块不存在数据。
16.根据权利要求15所述数据备份方法,其特征在于,所述根据所述增量位图和所述已分配数据块位图确定当前时间与上一次备份时间之间存在数据增加或存在数据修改的目标数据块,包括:
对所述增量位图和所述已分配数据块位图进行与操作得到目标位图;
将所述目标位图中值为1的位对应的数据块确定为当前时间与上一次备份时间之间存在数据增加或存在数据修改的目标数据块。
17.根据权利要求16所述数据备份方法,其特征在于,所述备份所述目标数据块中的数据,包括:
遍历所述目标位图,备份所述目标位图中值为1的位对应的数据块。
18.一种数据备份装置,其特征在于,包括:
确定模块,用于当接收到数据备份命令时,确定目标数据块;其中,所述目标数据块包括当前时间与上一次备份时间之间存在数据增加或存在数据修改的数据块,不包括当前时间与上一次备份时间之间存在数据删除的数据块;
备份模块,用于备份所述目标数据块中的数据。
19.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至17任一项所述数据备份方法的步骤。
20.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至17任一项所述数据备份方法的步骤。
CN202211508008.XA 2022-11-29 2022-11-29 一种数据备份方法、装置及电子设备和存储介质 Active CN115543695B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211508008.XA CN115543695B (zh) 2022-11-29 2022-11-29 一种数据备份方法、装置及电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211508008.XA CN115543695B (zh) 2022-11-29 2022-11-29 一种数据备份方法、装置及电子设备和存储介质

Publications (2)

Publication Number Publication Date
CN115543695A true CN115543695A (zh) 2022-12-30
CN115543695B CN115543695B (zh) 2023-08-15

Family

ID=84722151

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211508008.XA Active CN115543695B (zh) 2022-11-29 2022-11-29 一种数据备份方法、装置及电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN115543695B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101149694A (zh) * 2007-11-02 2008-03-26 西安三茗科技有限责任公司 基于块级的增量备份和整卷恢复的方法
CN103049353A (zh) * 2012-12-21 2013-04-17 华为技术有限公司 一种数据备份方法及相关装置
CN103678041A (zh) * 2013-12-11 2014-03-26 浪潮(北京)电子信息产业有限公司 一种增量备份方法及系统
CN111078464A (zh) * 2018-10-22 2020-04-28 华为技术有限公司 一种备份数据的方法、装置和系统
US10713123B2 (en) * 2018-01-18 2020-07-14 EMC IP Holding Company LLC Method, device and computer program product for data backup

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101149694A (zh) * 2007-11-02 2008-03-26 西安三茗科技有限责任公司 基于块级的增量备份和整卷恢复的方法
CN103049353A (zh) * 2012-12-21 2013-04-17 华为技术有限公司 一种数据备份方法及相关装置
CN103678041A (zh) * 2013-12-11 2014-03-26 浪潮(北京)电子信息产业有限公司 一种增量备份方法及系统
US10713123B2 (en) * 2018-01-18 2020-07-14 EMC IP Holding Company LLC Method, device and computer program product for data backup
CN111078464A (zh) * 2018-10-22 2020-04-28 华为技术有限公司 一种备份数据的方法、装置和系统

Also Published As

Publication number Publication date
CN115543695B (zh) 2023-08-15

Similar Documents

Publication Publication Date Title
CN102707990B (zh) 基于容器的处理方法和装置
EP3467635A1 (en) Data writing and reading method and apparatus, and distributed object storage cluster
CN106776130B (zh) 一种日志恢复方法、存储装置和存储节点
EP3376394B1 (en) Method and device for processing access request, and computer system
US6493730B1 (en) Efficient object faulting with generational garbage collection
CN109542682B (zh) 一种数据备份方法、装置、设备和存储介质
JP5728982B2 (ja) 処理装置および書込方法
EP3474143B1 (en) Method and apparatus for incremental recovery of data
CN111506253B (zh) 一种分布式存储系统及其存储方法
CN107203331B (zh) 写数据的方法及装置
US6944635B2 (en) Method for file deletion and recovery against system failures in database management system
CN111414231A (zh) 一种虚拟机镜像与容器镜像相互转换的方法及设备
CN113064859A (zh) 一种元数据处理方法、装置及电子设备和存储介质
CN112115515A (zh) 一种数据保护方法、装置及电子设备和存储介质
CN104965835A (zh) 一种分布式文件系统的文件读写方法及装置
KR20020016513A (ko) 메모리 저장 장치 관리 시스템 및 방법, 프로그램 저장 장치
CN108304144B (zh) 数据写入、读取方法与系统、数据读写系统
CN115543695A (zh) 一种数据备份方法、装置及电子设备和存储介质
JP2008242524A (ja) ファイル管理装置、ファイル管理方法、プログラム、コンピュータ読み取り可能な記録媒体
CN115599287A (zh) 一种数据处理方法、装置及电子设备和存储介质
CN112948173A (zh) 一种数据恢复方法、装置、设备及介质
CN117687845B (zh) 上电恢复方法、装置、可读存储介质及电子设备
CN115858251B (zh) 一种基板控制单元控制方法、装置及电子设备和存储介质
CN112463460B (zh) 一种基于纠删码的小块数据恢复方法及系统
KR101821120B1 (ko) 메모리 적재 데이터 재활용 시스템 및 이를 이용한 메모리 적재 데이터 재활용 방법

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