一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

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

2023-01-16 12:13:36 来源:中国专利 TAG:
1.本技术涉及计算机
技术领域
:,更具体地说,涉及一种数据备份方法、装置及一种电子设备和一种计算机可读存储介质。
背景技术
::2.在云平台中,对于虚拟机的管理,备份策略是很重要的一环,可以有效防止系统崩溃造成的数据缺失。备份可以分为全量备份、增量备份和差异备份。增量备份用于备份两次备份时间点之间变动过的数据,变动可包括增加、修改和删除。因此,备份时会备份三种操作后的数据,当有大量的删除数据存在时,进行增量备份明显会增加备份时间。3.因此,如何降低增量备份时间,提高增量备份效率是本领域技术人员需要解决的技术问题。技术实现要素:4.本技术的目的在于提供一种数据备份方法、装置及一种电子设备和一种计算机可读存储介质,降低了增量备份时间,提高了增量备份效率。5.为实现上述目的,本技术提供了一种数据备份方法,包括:当接收到数据备份命令时,确定目标数据块;其中,所述目标数据块包括当前时间与上一次备份时间之间存在数据增加或存在数据修改的数据块,不包括当前时间与上一次备份时间之间存在数据删除的数据块;备份所述目标数据块中的数据。6.其中,所述确定目标数据块,包括:确定当前时间与上一次备份时间之间存在数据变化的数据块作为变化数据块;其中,所述数据变化包括数据增加、数据修改和数据删除;在所述变化数据块中剔除删除数据块得到目标数据块;其中,所述删除数据块为存在数据删除的数据块。7.其中,所述确定当前时间与上一次备份时间之间存在数据变化的数据块作为变化数据块,包括:获取当前时间与上一次备份时间之间的增量位图;其中,所述增量位图包括多个位,每个位的值表示对应的数据块是否存在数据变化;根据所述增量位图确定存在数据变化的数据块作为变化数据块。8.其中,所述获取当前时间与上一次备份时间之间的增量位图,包括:将当前时间与上一次备份时间之间的增量位图从内存中保存至本地;其中,在全量备份时生成当前时间与上一次备份时间之间的增量位图。9.其中,所述将当前时间与上一次备份时间之间的增量位图从内存中保存至本地,包括:通过block-dirty-bitmap-dump操作将当前时间与上一次备份时间之间的增量位图从内存中保存至本地。10.其中,所述在全量备份时生成当前时间与上一次备份时间之间的增量位图,包括:在全量备份时通过block-dirty-bitmap-add操作生成当前时间与上一次备份时间之间的增量位图。11.其中,所述在全量备份时通过block-dirty-bitmap-add操作生成当前时间与上一次备份时间之间的增量位图,包括:在全量备份时利用qemu的qmp命令执行block-dirty-bitmap-add操作生成当前时间与上一次备份时间之间的增量位图。12.其中,在所述变化数据块中剔除删除数据块得到目标数据块,包括:回收删除的数据所占用的数据块;查询当前已分配数据的数据块;将所述变化数据块中已分配数据的数据块确定为目标数据块。13.其中,所述回收删除的数据所占用的数据块,包括:通过空间释放操作回收删除的数据所占用的数据块。14.其中,所述通过空间释放操作回收删除的数据所占用的数据块,包括:利用qemu-imgconvert命令执行空间释放操作,以回收删除的数据所占用的数据块。15.其中,所述确定目标数据块,包括:确定虚拟磁盘中的目标数据块;其中,所述虚拟磁盘为raw格式的磁盘或qcow2格式的磁盘。16.其中,所述查询当前已分配数据的数据块,包括:若虚拟磁盘为raw格式的磁盘,则利用ioctl命令查询当前已分配数据的数据块。17.其中,所述查询当前已分配数据的数据块,包括:若虚拟磁盘为qcow2格式的磁盘,则查询头数据的l2_table,以确定当前已分配数据的数据块。18.其中,所述确定目标数据块,包括:获取当前时间与上一次备份时间之间的增量位图;其中,所述增量位图包括多个位,每个位的值表示对应的数据块是否存在数据变化,所述数据变化包括数据增加、数据修改和数据删除;回收删除的数据所占用的数据块,获取当前的已分配数据块位图;其中,所述已分配数据块位图包括多个位,每个位的值表示对应的数据块中是否存在数据;根据所述增量位图和所述已分配数据块位图确定当前时间与上一次备份时间之间存在数据增加或存在数据修改的目标数据块。19.其中,所述增量位图中的位的值为1时表示对应的数据块存在数据变化,所述增量位图中的位的值为0时表示对应的数据块不存在数据变化;所述已分配数据块位图中的位的值为1时表示对应的数据块中存在数据,所述已分配数据块位图中的位的值为0时表示对应的数据块不存在数据。20.其中,所述根据所述增量位图和所述已分配数据块位图确定当前时间与上一次备份时间之间存在数据增加或存在数据修改的目标数据块,包括:对所述增量位图和所述已分配数据块位图进行与操作得到目标位图;将所述目标位图中值为1的位对应的数据块确定为当前时间与上一次备份时间之间存在数据增加或存在数据修改的目标数据块。21.其中,所述备份所述目标数据块中的数据,包括:遍历所述目标位图,备份所述目标位图中值为1的位对应的数据块。22.为实现上述目的,本技术提供了一种数据备份装置,包括:确定模块,用于当接收到数据备份命令时,确定目标数据块;其中,所述目标数据块包括当前时间与上一次备份时间之间存在数据增加或存在数据修改的数据块,不包括当前时间与上一次备份时间之间存在数据删除的数据块;备份模块,用于备份所述目标数据块中的数据。23.其中,所述确定模块包括:第一确定子模块,用于确定当前时间与上一次备份时间之间存在数据变化的数据块作为变化数据块;其中,所述数据变化包括数据增加、数据修改和数据删除;剔除子模块,用于在所述变化数据块中剔除删除数据块得到目标数据块;其中,所述删除数据块为存在数据删除的数据块。24.其中,所述第一确定子模块包括:获取子单元,用于获取当前时间与上一次备份时间之间的增量位图;其中,所述增量位图包括多个位,每个位的值表示对应的数据块是否存在数据变化;第一确定子单元,用于根据所述增量位图确定存在数据变化的数据块作为变化数据块。25.其中,所述获取子单元具体用于:将当前时间与上一次备份时间之间的增量位图从内存中保存至本地;其中,在全量备份时生成当前时间与上一次备份时间之间的增量位图。26.其中,所述获取子单元具体用于:通过block-dirty-bitmap-dump操作将当前时间与上一次备份时间之间的增量位图从内存中保存至本地。27.其中,在全量备份时通过block-dirty-bitmap-add操作生成当前时间与上一次备份时间之间的增量位图。28.其中,在全量备份时利用qemu的qmp命令执行block-dirty-bitmap-add操作生成当前时间与上一次备份时间之间的增量位图。29.其中,所述剔除子模块包括:回收子单元,用于回收删除的数据所占用的数据块;查询子单元,用于查询当前已分配数据的数据块;第二确定子单元,用于将所述变化数据块中已分配数据的数据块确定为目标数据块。30.其中,所述回收子单元具体用于:通过空间释放操作回收删除的数据所占用的数据块。31.其中,所述回收子单元具体用于:利用qemu-imgconvert命令执行空间释放操作,以回收删除的数据所占用的数据块。32.其中,所述确定模块具体用于:确定当前时间与上一次备份时间之间虚拟磁盘中存在数据增加或存在数据修改的目标数据块;其中,所述虚拟磁盘为raw格式的磁盘或qcow2格式的磁盘。33.其中,所述查询子单元具体用于:若虚拟磁盘为raw格式的磁盘,则利用ioctl命令查询当前已分配数据的数据块。34.其中,所述查询子单元具体用于:若虚拟磁盘为qcow2格式的磁盘,则查询头数据的l2_table,以确定当前已分配数据的数据块。35.其中,所述确定模块包括:第一获取单元,用于获取当前时间与上一次备份时间之间的增量位图;其中,所述增量位图包括多个位,每个位的值表示对应的数据块是否存在数据变化,所述数据变化包括数据增加、数据修改和数据删除;第二获取单元,用于回收删除的数据所占用的数据块,获取当前的已分配数据块位图;其中,所述已分配数据块位图包括多个位,每个位的值表示对应的数据块中是否存在数据;确定单元,用于根据所述增量位图和所述已分配数据块位图确定当前时间与上一次备份时间之间存在数据增加或存在数据修改的目标数据块。36.其中,所述增量位图中的位的值为1时表示对应的数据块存在数据变化,所述增量位图中的位的值为0时表示对应的数据块不存在数据变化;所述已分配数据块位图中的位的值为1时表示对应的数据块中存在数据,所述已分配数据块位图中的位的值为0时表示对应的数据块不存在数据。37.其中,所述确定单元具体用于:对所述增量位图和所述已分配数据块位图进行与操作得到目标位图;将所述目标位图中值为1的位对应的数据块确定为当前时间与上一次备份时间之间存在数据增加或存在数据修改的目标数据块。38.其中,所述备份模块具体用于:遍历所述目标位图,备份所述目标位图中值为1的位对应的数据块。39.为实现上述目的,本技术提供了一种电子设备,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现如上述数据备份方法的步骤。40.为实现上述目的,本技术提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述数据备份方法的步骤。41.通过以上方案可知,本技术提供的一种数据备份方法,包括:当接收到数据备份命令时,确定目标数据块;其中,所述目标数据块包括当前时间与上一次备份时间之间存在数据增加或存在数据修改的数据块,不包括当前时间与上一次备份时间之间存在数据删除的数据块;备份所述目标数据块中的数据。42.本技术提供的数据备份方法,在增量备份时,优化备份数据的选取,只备份增加和修改的数据,不再备份已删除的数据,加快备份速度,缩短备份时间,从而可以快速实现增量备份的过程。特别在进行网络远程备份时可以有效防止数据量过大而长时间占据过多的带宽,造成网络堵塞。本技术还公开了一种数据备份装置及一种电子设备和一种计算机可读存储介质,同样能实现上述技术效果。43.应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本技术。附图说明44.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:图1为根据一示例性实施例示出的一种数据备份方法的流程图;图2为根据一示例性实施例示出的另一种数据备份方法的流程图;图3为根据一示例性实施例示出的一种应用实施例的流程图;图4为根据一示例性实施例示出的一种数据备份装置的结构图;图5为根据一示例性实施例示出的一种电子设备的结构图。具体实施方式45.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。另外,在本技术实施例中,“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。46.本技术实施例公开了一种数据备份方法,降低了增量备份时间,提高了增量备份效率。47.参见图1,根据一示例性实施例示出的一种数据备份方法的流程图,如图1所示,包括:s101:当接收到数据备份命令时,确定目标数据块;其中,所述目标数据块包括当前时间与上一次备份时间之间存在数据增加或存在数据修改的数据块,不包括当前时间与上一次备份时间之间存在数据删除的数据块;s102:备份所述目标数据块中的数据。48.本实施例的执行主体为虚拟机,目的为对虚拟磁盘中的数据进行增量备份。也即所述确定目标数据块,包括:确定虚拟磁盘中的目标数据块。在本实施例中,在需要进行增量备份时,确定当前时间与上一次备份时间之间存在数据增加或存在数据修改的目标数据块,备份目标数据块中的数据,而不备份存在数据删除的数据块中的数据。49.作为一种可行的实施方式,所述确定目标数据块,包括:确定当前时间与上一次备份时间之间存在数据变化的数据块作为变化数据块;其中,所述数据变化包括数据增加、数据修改和数据删除;在所述变化数据块中剔除删除数据块得到目标数据块;其中,所述删除数据块为存在数据删除的数据块。50.在具体实施中,确定当前时间与上一次备份时间之间存在数据变化的数据块作为变化数据块,包括存在数据增加的数据块、存在数据修改的数据块、存在数据删除的数据块。然后,在变化数据块中剔除存在删除的数据块得到目标数据块。51.作为一种可行的实施方式,所述确定当前时间与上一次备份时间之间存在数据变化的数据块作为变化数据块,包括:获取当前时间与上一次备份时间之间的增量位图;其中,所述增量位图包括多个位,每个位的值表示对应的数据块是否存在数据变化;根据所述增量位图确定存在数据变化的数据块作为变化数据块。52.在具体实施中,获取当前时间与上一次备份时间之间的增量位图,增量位图包括多个位,每个位的值表示对应的数据块是否存在数据变化,根据增量位图可以确定存在数据变化的数据块。优选的,所述增量位图中的位的值为1时表示对应的数据块存在数据变化,所述增量位图中的位的值为0时表示对应的数据块不存在数据变化。也即,将值为1的位对应的数据块确定为存在数据变化的数据块。53.作为一种可行的实施方式,所述获取当前时间与上一次备份时间之间的增量位图,包括:将当前时间与上一次备份时间之间的增量位图从内存中保存至本地;其中,在全量备份时生成当前时间与上一次备份时间之间的增量位图。54.在具体实施中,在全量备份时生成增量位图,在需要进行增量备份时,将增量位图从内存中保存至本地。55.作为一种可行的实施方式,所述将当前时间与上一次备份时间之间的增量位图从内存中保存至本地,包括:通过block-dirty-bitmap-dump操作将当前时间与上一次备份时间之间的增量位图从内存中保存至本地。56.在具体实施中,在需要进行增量备份时,执行block-dirty-bitmap-dump操作将增量位图从内存中保存到本地。57.作为一种可行的实施方式,所述在全量备份时生成当前时间与上一次备份时间之间的增量位图,包括:在全量备份时通过block-dirty-bitmap-add操作生成当前时间与上一次备份时间之间的增量位图。58.在具体实施中,在全量备份时执行block-dirty-bitmap-add操作,生成增量位图。59.作为一种可行的实施方式,所述在全量备份时通过block-dirty-bitmap-add操作生成当前时间与上一次备份时间之间的增量位图,包括:在全量备份时利用qemu的qmp命令执行block-dirty-bitmap-add操作生成当前时间与上一次备份时间之间的增量位图。60.在具体实施中,利用qemu的qmp命令在全量备份时执行block-dirty-bitmap-add操作,生成增量位图。61.作为一种可行的实施方式,在所述变化数据块中剔除删除数据块得到目标数据块,包括:回收删除的数据所占用的数据块;查询当前已分配数据的数据块;将所述变化数据块中已分配数据的数据块确定为目标数据块。62.在具体实施中,回收虚拟磁盘中删除的数据所占用的数据块,也即上述删除数据块,回收操作之后,查询当前已分配数据的数据块,将变化数据块中已分配数据的数据块确定为目标数据块,也即将存在数据变化且已分配数据的数据块确定为目标数据块。63.作为一种可行的实施方式,所述回收删除的数据所占用的数据块,包括:通过空间释放操作回收删除的数据所占用的数据块。64.在具体实施中,对虚拟磁盘进行一次释放空间的操作,将虚拟磁盘中被删除的数据所占用的空间重新释放。65.作为一种可行的实施方式,所述通过空间释放操作回收删除的数据所占用的数据块,包括:利用qemu-imgconvert命令执行空间释放操作,以回收删除的数据所占用的数据块。66.在具体实施中,通过qemu-imgconvert对虚拟磁盘进行一次释放空间的操作,将虚拟磁盘中被删除的数据所占用的空间重新释放。67.需要说明的是,虚拟磁盘可以为raw格式的磁盘,也可以为qcow2格式的磁盘。若虚拟磁盘为raw格式的磁盘,则所述查询当前已分配数据的数据块,包括:利用ioctl命令查询当前已分配数据的数据块。若虚拟磁盘为qcow2格式的磁盘,则所述查询当前已分配数据的数据块,包括:查询头数据的l2_table,以确定当前已分配数据的数据块。68.在具体实施中,对于raw格式的虚拟磁盘,可以直接利用ioctl命令查询当前已分配数据的数据块,对于qcow2格式的虚拟磁盘,可以通过查询头数据的l2_table确定当前已分配数据的数据块。69.本技术实施例提供的数据备份方法,在增量备份时,优化备份数据的选取,只备份增加和修改的数据,不再备份已删除的数据,加快备份速度,缩短备份时间,从而可以快速实现增量备份的过程。特别在进行网络远程备份时可以有效防止数据量过大而长时间占据过多的带宽,造成网络堵塞。70.本技术实施例公开了一种数据备份方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。具体的:参见图2,根据一示例性实施例示出的另一种数据备份方法的流程图,如图2所示,包括:s201:获取当前时间与上一次备份时间之间的增量位图;其中,所述增量位图包括多个位,每个位的值表示对应的数据块是否存在数据变化,所述数据变化包括数据增加、数据修改和数据删除;在具体实施中,获取当前时间与上一次备份时间之间的增量位图,增量位图包括多个位,每个位的值表示对应的数据块是否存在数据变化,根据增量位图可以确定存在数据变化的数据块。优选的,所述增量位图中的位的值为1时表示对应的数据块存在数据变化,所述增量位图中的位的值为0时表示对应的数据块不存在数据变化。也即,将值为1的位对应的数据块确定为存在数据变化的数据块。71.作为一种可行的实施方式,所述获取当前时间与上一次备份时间之间的增量位图,包括:将当前时间与上一次备份时间之间的增量位图从内存中保存至本地;其中,在全量备份时生成当前时间与上一次备份时间之间的增量位图。72.在具体实施中,在全量备份时生成增量位图,在需要进行增量备份时,将增量位图从内存中保存至本地。73.作为一种可行的实施方式,所述将当前时间与上一次备份时间之间的增量位图从内存中保存至本地,包括:通过block-dirty-bitmap-dump操作将当前时间与上一次备份时间之间的增量位图从内存中保存至本地。74.在具体实施中,在需要进行增量备份时,执行block-dirty-bitmap-dump操作将增量位图从内存中保存到本地。75.作为一种可行的实施方式,所述在全量备份时生成当前时间与上一次备份时间之间的增量位图,包括:在全量备份时通过block-dirty-bitmap-add操作生成当前时间与上一次备份时间之间的增量位图。76.在具体实施中,在全量备份时执行block-dirty-bitmap-add操作,生成增量位图。77.作为一种可行的实施方式,所述在全量备份时通过block-dirty-bitmap-add操作生成当前时间与上一次备份时间之间的增量位图,包括:在全量备份时利用qemu的qmp命令执行block-dirty-bitmap-add操作生成当前时间与上一次备份时间之间的增量位图。78.在具体实施中,利用qemu的qmp命令在全量备份时执行block-dirty-bitmap-add操作,生成增量位图。79.s202:回收删除的数据所占用的数据块,获取当前的已分配数据块位图;其中,所述已分配数据块位图包括多个位,每个位的值表示对应的数据块中是否存在数据;在具体实施中,回收虚拟磁盘中删除的数据所占用的数据块,也即上述删除数据块,回收操作之后,获取当前的已分配数据块位图,已分配数据块位图包括多个位,每个位的值表示对应的数据块中是否存在数据。优选的,所述已分配数据块位图中的位的值为1时表示对应的数据块中存在数据,所述已分配数据块位图中的位的值为0时表示对应的数据块不存在数据。80.作为一种可行的实施方式,所述回收删除的数据所占用的数据块,包括:通过空间释放操作回收删除的数据所占用的数据块。81.在具体实施中,对虚拟磁盘进行一次释放空间的操作,将虚拟磁盘中被删除的数据所占用的空间重新释放。82.作为一种可行的实施方式,所述通过空间释放操作回收删除的数据所占用的数据块,包括:利用qemu-imgconvert命令执行空间释放操作,以回收删除的数据所占用的数据块。83.在具体实施中,通过qemu-imgconvert对虚拟磁盘进行一次释放空间的操作,将虚拟磁盘中被删除的数据所占用的空间重新释放。84.需要说明的是,虚拟磁盘可以为raw格式的磁盘,也可以为qcow2格式的磁盘。若虚拟磁盘为raw格式的磁盘,则所述查询当前已分配数据的数据块,包括:利用ioctl命令查询当前已分配数据的数据块。若虚拟磁盘为qcow2格式的磁盘,则所述查询当前已分配数据的数据块,包括:查询头数据的l2_table,以确定当前已分配数据的数据块。85.在具体实施中,对于raw格式的虚拟磁盘,可以直接利用ioctl命令查询当前已分配数据的数据块,对于qcow2格式的虚拟磁盘,可以通过查询头数据的l2_table确定当前已分配数据的数据块。86.s203:根据所述增量位图和所述已分配数据块位图确定当前时间与上一次备份时间之间存在数据增加或存在数据修改的目标数据块。87.在本步骤中,对增量位图与已分配数据块位图进行融合,从而确定当前时间与上一次备份时间之间存在数据增加或存在数据修改的目标数据块。88.作为一种可行的实施方式,所述根据所述增量位图和所述已分配数据块位图确定当前时间与上一次备份时间之间存在数据增加或存在数据修改的目标数据块,包括:对所述增量位图和所述已分配数据块位图进行与操作得到目标位图;将所述目标位图中值为1的位对应的数据块确定为当前时间与上一次备份时间之间存在数据增加或存在数据修改的目标数据块。89.在具体实施中,获取增量位图和已分配数据块位图进行与操作得到目标位图,目标位图中只保留增量位图中增加数据和修改数据生成的标记,将标位图中值为1的位对应的数据块确定为当前时间与上一次备份时间之间存在数据增加或存在数据修改的目标数据块。90.s204:备份所述目标数据块中的数据。91.在本步骤中,备份存在数据增加或存在数据修改的目标数据块中的数据。92.作为一种可行的实施方式,所述备份所述目标数据块中的数据,包括:遍历所述目标位图,备份所述目标位图中值为1的位对应的数据块。93.在具体实施中,遍历目标位图中的各个位,将值为1是位对应的数据块进行备份,从而完成增量拷贝。94.通过获取增量位图和已分配数据块位图,并进行与操作,只保留增加数据和修改数据在增量位图中的标记,剔除掉删除数据原来占用的数据块空间在增量位图中的标记,从而在虚拟磁盘备份时则可以有效降低需要备份的数据,加快备份速度,缩短备份时间,提升备份效率。95.可见,本实施例适用于虚拟机进行虚拟磁盘增量备份时,通过将备份时所利用的位图文件中的无效位进行剔除,只保留增加和修改数据块时生成的1,对于删除数据时在位图中生成的1进行剔除,然后再对位图中1所表示的数据进行备份,从而减小了备份数据,提升了备份效率,降低了备份时间。96.下面介绍本技术提供的一种应用实施例,具体实施过程如图3所示,包括以下步骤:步骤1:利用qemu的qmp命令在全量备份时执行block-dirty-bitmap-add操作,生成增量位图,在本次备份时执行block-dirty-bitmap-dump将增量位图从内存中保存到本地。97.步骤2:利用qemu-imgconvert对虚拟磁盘文件进行空间释放操作,将删除的数据所占用的数据块进行回收;步骤3:查询虚拟磁盘的已分配数据块,对于raw格式,可以直接利用ioctl进行查询,对于qcow2格式的虚拟磁盘可以通过查询头数据的l2_table来生成已分配数据块的位图;步骤4:将步骤1导出的位图和步骤3导出的位图进行与操作从而将删除的数据原先所占有的空间在位图中标为0;步骤5:遍历步骤4中生成的位图,将位图中为1的位置所对应的数据进行备份。98.下面对本技术实施例提供的一种数据备份装置进行介绍,下文描述的一种数据备份装置与上文描述的一种数据备份方法可以相互参照。99.参见图4,根据一示例性实施例示出的一种数据备份装置的结构图,如图4所示,包括:确定模块401,用于当接收到数据备份命令时,确定目标数据块;其中,所述目标数据块包括当前时间与上一次备份时间之间存在数据增加或存在数据修改的数据块,不包括当前时间与上一次备份时间之间存在数据删除的数据块;备份模块402,用于备份所述目标数据块中的数据。100.本技术实施例提供的数据备份装置,在增量备份时,优化备份数据的选取,只备份增加和修改的数据,不再备份已删除的数据,加快备份速度,缩短备份时间,从而可以快速实现增量备份的过程。特别在进行网络远程备份时可以有效防止数据量过大而长时间占据过多的带宽,造成网络堵塞。101.在上述实施例的基础上,作为一种优选实施方式,所述确定模块401包括:第一确定子模块,用于确定当前时间与上一次备份时间之间存在数据变化的数据块作为变化数据块;其中,所述数据变化包括数据增加、数据修改和数据删除;剔除子模块,用于在所述变化数据块中剔除删除数据块得到目标数据块;其中,所述删除数据块为存在数据删除的数据块。102.在上述实施例的基础上,作为一种优选实施方式,所述第一确定子模块包括:获取子单元,用于获取当前时间与上一次备份时间之间的增量位图;其中,所述增量位图包括多个位,每个位的值表示对应的数据块是否存在数据变化;第一确定子单元,用于根据所述增量位图确定存在数据变化的数据块作为变化数据块。103.在上述实施例的基础上,作为一种优选实施方式,所述获取子单元具体用于:将当前时间与上一次备份时间之间的增量位图从内存中保存至本地;其中,在全量备份时生成当前时间与上一次备份时间之间的增量位图。104.在上述实施例的基础上,作为一种优选实施方式,所述获取子单元具体用于:通过block-dirty-bitmap-dump操作将当前时间与上一次备份时间之间的增量位图从内存中保存至本地。105.在上述实施例的基础上,作为一种优选实施方式,在全量备份时通过block-dirty-bitmap-add操作生成当前时间与上一次备份时间之间的增量位图。106.在上述实施例的基础上,作为一种优选实施方式,在全量备份时利用qemu的qmp命令执行block-dirty-bitmap-add操作生成当前时间与上一次备份时间之间的增量位图。107.在上述实施例的基础上,作为一种优选实施方式,所述剔除子模块包括:回收子单元,用于回收删除的数据所占用的数据块;查询子单元,用于查询当前已分配数据的数据块;第二确定子单元,用于将所述变化数据块中已分配数据的数据块确定为目标数据块。108.在上述实施例的基础上,作为一种优选实施方式,所述回收子单元具体用于:通过空间释放操作回收删除的数据所占用的数据块。109.在上述实施例的基础上,作为一种优选实施方式,所述回收子单元具体用于:利用qemu-imgconvert命令执行空间释放操作,以回收删除的数据所占用的数据块。110.在上述实施例的基础上,作为一种优选实施方式,所述确定模块401具体用于:确定当前时间与上一次备份时间之间虚拟磁盘中存在数据增加或存在数据修改的目标数据块;其中,所述虚拟磁盘为raw格式的磁盘或qcow2格式的磁盘。111.在上述实施例的基础上,作为一种优选实施方式,所述查询子单元具体用于:若虚拟磁盘为raw格式的磁盘,则利用ioctl命令查询当前已分配数据的数据块。112.在上述实施例的基础上,作为一种优选实施方式,所述查询子单元具体用于:若虚拟磁盘为qcow2格式的磁盘,则查询头数据的l2_table,以确定当前已分配数据的数据块。113.在上述实施例的基础上,作为一种优选实施方式,所述确定模块401包括:第一获取单元,用于获取当前时间与上一次备份时间之间的增量位图;其中,所述增量位图包括多个位,每个位的值表示对应的数据块是否存在数据变化,所述数据变化包括数据增加、数据修改和数据删除;第二获取单元,用于回收删除的数据所占用的数据块,获取当前的已分配数据块位图;其中,所述已分配数据块位图包括多个位,每个位的值表示对应的数据块中是否存在数据;确定单元,用于根据所述增量位图和所述已分配数据块位图确定当前时间与上一次备份时间之间存在数据增加或存在数据修改的目标数据块。114.在上述实施例的基础上,作为一种优选实施方式,所述增量位图中的位的值为1时表示对应的数据块存在数据变化,所述增量位图中的位的值为0时表示对应的数据块不存在数据变化;所述已分配数据块位图中的位的值为1时表示对应的数据块中存在数据,所述已分配数据块位图中的位的值为0时表示对应的数据块不存在数据。115.在上述实施例的基础上,作为一种优选实施方式,所述确定单元具体用于:对所述增量位图和所述已分配数据块位图进行与操作得到目标位图;将所述目标位图中值为1的位对应的数据块确定为当前时间与上一次备份时间之间存在数据增加或存在数据修改的目标数据块。116.在上述实施例的基础上,作为一种优选实施方式,所述备份模块402具体用于:遍历所述目标位图,备份所述目标位图中值为1的位对应的数据块。117.关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。118.基于上述程序模块的硬件实现,且为了实现本技术实施例的方法,本技术实施例还提供了一种电子设备,图5为根据一示例性实施例示出的一种电子设备的结构图,如图5所示,电子设备包括:通信接口1,能够与其它设备比如网络设备等进行信息交互;处理器2,与通信接口1连接,以实现与其它设备进行信息交互,用于运行计算机程序时,执行上述一个或多个技术方案提供的数据备份方法。而所述计算机程序存储在存储器3上。119.当然,实际应用时,电子设备中的各个组件通过总线系统4耦合在一起。可理解,总线系统4用于实现这些组件之间的连接通信。总线系统4除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图5中将各种总线都标为总线系统4。120.本技术实施例中的存储器3用于存储各种类型的数据以支持电子设备的操作。这些数据的示例包括:用于在电子设备上操作的任何计算机程序。121.可以理解,存储器3可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(rom,readonlymemory)、可编程只读存储器(prom,programmableread-onlymemory)、可擦除可编程只读存储器(eprom,erasableprogrammableread-onlymemory)、电可擦除可编程只读存储器(eeprom,electricallyerasableprogrammableread-onlymemory)、磁性随机存取存储器(fram,ferromagneticrandomaccessmemory)、快闪存储器(flashmemory)、磁表面存储器、光盘、或只读光盘(cd-rom,compactdiscread-onlymemory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(ram,randomaccessmemory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取存储器(sram,staticrandomaccessmemory)、同步静态随机存取存储器(ssram,synchronousstaticrandomaccessmemory)、动态随机存取存储器(dram,dynamicrandomaccessmemory)、同步动态随机存取存储器(sdram,synchronousdynamicrandomaccessmemory)、双倍数据速率同步动态随机存取存储器(ddrsdram,doubledataratesynchronousdynamicrandomaccessmemory)、增强型同步动态随机存取存储器(esdram,enhancedsynchronousdynamicrandomaccessmemory)、同步连接动态随机存取存储器(sldram,synclinkdynamicrandomaccessmemory)、直接内存总线随机存取存储器(drram,directrambusrandomaccessmemory)。本技术实施例描述的存储器3旨在包括但不限于这些和任意其它适合类型的存储器。122.上述本技术实施例揭示的方法可以应用于处理器2中,或者由处理器2实现。处理器2可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器2中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器2可以是通用处理器、dsp,或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器2可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本技术实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器3,处理器2读取存储器3中的程序,结合其硬件完成前述方法的步骤。123.处理器2执行所述程序时实现本技术实施例的各个方法中的相应流程,为了简洁,在此不再赘述。124.在示例性实施例中,本技术实施例还提供了一种存储介质,即计算机存储介质,具体为计算机可读存储介质,例如包括存储计算机程序的存储器3,上述计算机程序可由处理器2执行,以完成前述方法所述步骤。计算机可读存储介质可以是fram、rom、prom、eprom、eeprom、flashmemory、磁表面存储器、光盘、或cd-rom等存储器。125.本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。126.或者,本技术上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机、服务器、或者网络设备等)执行本技术各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。127.以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本
技术领域
:的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。当前第1页12当前第1页12
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献