虚拟机数据备份方法、装置、设备及存储介质与流程

文档序号:24527439发布日期:2021-04-02 10:04阅读:93来源:国知局
虚拟机数据备份方法、装置、设备及存储介质与流程

本发明涉及虚拟机技术领域,尤其涉及一种虚拟机数据备份方法、装置、设备及存储介质。



背景技术:

对于虚拟化平台来说,所有平台的备份流程都是:必须是先创建快照,然后调用上述快照的备份接口来实现备份,最后删除上述快照,如果想在这种备份流程和操作语义的条件下要实现持续备份,只能缩短间隔时间,不停的【创建快照、备份快照、删除快照】,除了实际的备份作业外,创建快照和删除快照的时间跟虚拟机中虚拟硬盘的大小成正比,因为虚拟硬盘的镜像文件中都存在着映射表,用映射表来表达虚拟硬盘逻辑区块地址(logicalblockaddress,lba)到文件内偏移的转换,在映射块大小在64k时,通常1t的硬盘可能有128m,而这些映射表又高概率分布在虚拟硬盘镜像文件的不连续的区域,而创建或删除快照的时候会拷贝一次这些映射表,所以,在创建一次快照或删除一次快照,在虚拟硬盘大小达到tb级时,通常需要花数十秒的时间,所以,定时备份接口很难将备份间隔做到秒级甚至毫秒或微秒级。那么就不能实现持续数据备份。

上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。



技术实现要素:

本发明的主要目的在于提供一种虚拟机数据备份方法、装置、设备及存储介质,旨在解决现有技术中在进行虚拟机数据备份时需要多次创建快照导致备份花费时间长浪费系统资源且影响用户体验的技术问题。

为实现上述目的,本发明提供了一种虚拟机数据备份方法,所述方法包括以下步骤:

在对目标虚拟机镜像文件进行持续数据备份时,为所述目标虚拟机镜像文件创建对应的备份通道;

通过预设数据监控函数获取对所述目标虚拟机镜像文件的写入操作;

从所述写入操作中生成操作信息;

通过所述备份通道将所述操作信息发送至备份服务器,以使所述备份服务器对所述操作信息进行备份。

可选地,所述在对目标虚拟机镜像文件进行持续数据备份时,为所述目标虚拟机镜像文件创建对应的备份通道的步骤之前,还包括:

获取所述目标虚拟机镜像文件所在虚拟化平台的类型;

根据所述类型确定所述虚拟化平台的默认写入函数;

根据所述类型及所述默认写入函数确定所述目标虚拟机镜像文件写入操作的获取策略。

可选地,所述根据所述类型及所述默认写入函数确定所述目标虚拟机镜像文件写入操作的获取策略的步骤,包括:

若所述虚拟化平台的类型为hyper-v,在所述虚拟化平台调用所述默认写入函数执行的写入操作时,通过对应的预设数据监控函数截获所述写入操作,并执行所述写入操作;

若所述虚拟化平台的类型为基于linux,将所述默认写入函数替换为对应的预设数据监控函数,以使所述预设数据监控函数接收所述写入操作,并执行写入操作;

若所述虚拟化平台的类型为基于vmware,修改所述默认写入函数以使所述虚拟化平台调用所述默认写入函数时跳转至所述预设数据监控函数接收所述写入操作,并执行写入操作。

可选地,所述从所述写入操作中生成操作信息的步骤,包括:

根据所述写入操作获得写入数据;

根据所述写入操作获得所述写入数据的写入地址及写入时间;

根据所述写入数据、所述写入时间及所述写入地址生成所述操作信息。

此外,为实现上述目的,本发明还提出一种虚拟机数据备份装置,所述虚拟机数据备份装置包括:

创建模块,用于在对目标虚拟机镜像文件进行持续数据备份时,为所述目标虚拟机镜像文件创建对应的备份通道;

获取模块,用于通过预设数据监控函数获取对所述目标虚拟机镜像文件的写入操作;

生成模块,用于从所述写入操作中生成操作信息;

发送模块,用于通过所述备份通道将所述操作信息发送至备份服务器,以使所述备份服务器对所述操作信息进行备份。

此外,为实现上述目的,本发明还提出一种虚拟机数据备份设备,所述虚拟机数据备份设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的虚拟机数据备份程序,所述虚拟机数据备份程序配置为实现如上文所述的虚拟机数据备份方法的步骤。

此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有虚拟机数据备份程序,所述虚拟机数据备份程序被处理器执行时实现如上文所述的虚拟机数据备份方法的步骤。

本发明通过在对目标虚拟机镜像文件进行持续数据备份时,为目标虚拟机镜像文件创建对应的备份通道;通过预设数据监控函数获取对所述目标虚拟机镜像文件的写入操作;从所述写入操作中生成操作信息;通过所述备份通道将所述操作信息发送至备份服务器,以使所述备份服务器对所述操作信息进行备份。在将数据写入虚拟机镜像文件时,可获得数据写入操作,并根据写入操作生成操作信息,通过备份通道将操作信息发送至备份服务器进行备份,从而可以对系统产生的每一笔io写入操作都做备份,可以做到持续数据备份的同时无需花费创建快照的时间,极大地节省了系统资源且提升了用户体验。

附图说明

图1是本发明实施例方案涉及的硬件运行环境的虚拟机数据备份设备的结构示意图;

图2为本发明虚拟机数据备份方法第一实施例的流程示意图;

图3为本发明虚拟机数据备份方法一实施例的整体流程示意图;

图4为本发明虚拟机数据备份方法第二实施例的流程示意图;

图5为本发明虚拟机数据备份装置第一实施例的结构框图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

参照图1,图1为本发明实施例方案涉及的硬件运行环境的虚拟机数据备份设备结构示意图。

如图1所示,该虚拟机数据备份设备可以包括:处理器1001,例如中央处理器(centralprocessingunit,cpu),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(wireless-fidelity,wi-fi)接口)。存储器1005可以是高速的随机存取存储器(randomaccessmemory,ram)存储器,也可以是稳定的非易失性存储器(non-volatilememory,nvm),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。

本领域技术人员可以理解,图1中示出的结构并不构成对虚拟机数据备份设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及虚拟机数据备份程序。

在图1所示的虚拟机数据备份设备中,网络接口1004主要用于与网络服务器进行数据通信;用户接口1003主要用于与用户进行数据交互;本发明虚拟机数据备份设备中的处理器1001、存储器1005可以设置在虚拟机数据备份设备中,所述虚拟机数据备份设备通过处理器1001调用存储器1005中存储的虚拟机数据备份程序,并执行本发明实施例提供的虚拟机数据备份方法。

本发明实施例提供了一种虚拟机数据备份方法,参照图2,图2为本发明一种虚拟机数据备份方法第一实施例的流程示意图。

本实施例中,所述虚拟机数据备份方法包括以下步骤:

步骤s10:在对目标虚拟机镜像文件进行持续数据备份时,为所述目标虚拟机镜像文件创建对应的备份通道。

需要说明的是,本实施例的执行主体可为终端设备,例如电脑。终端设备上配置有虚拟化平台用于运行虚拟机镜像文件。

可以理解的是,对目标虚拟机镜像文件进行持续数据备份是指,在需要进行备份的时间内,对虚拟机镜像文件中虚拟硬盘的每一次数据改变进行备份,例如对数据的写入地址、数据的写入时间及数据本身做备份。

应理解的是,虚拟化平台可同时运行多个虚拟机镜像文件,对多个虚拟机镜像文件同时持续备份时,需要创建多个备份通道,用于传输不同虚拟机镜像文件的写入数据,例如一个虚拟化平台上同时运行了两个虚拟机镜像文件,则需要创建两条备份通道。

步骤s20:通过预设数据监控函数获取对所述目标虚拟机镜像文件的写入操作。

需要说明的是,在对虚拟机镜像文件进行数据写入操作时,不同类型的虚拟化平台会调用不同的默认写入函数完成数据的写入操作,例如在hyper-v中,默认写入函数为irp_mj_write,在对hyper-v上的虚拟机镜像文件做持续备份时,预设数据监控函数可以截获irp_mj_write的写入操作以获取写入操作。

可以理解的是,预设数据监控函数可以监测对虚拟机镜像文件的读写动作,当需要进行写操作时,预设数据监控函数可用于代替默认写入函数接收并执行写入操作。

步骤s30:从所述写入操作中生成操作信息。

进一步地,为了对便于对数据进行恢复,步骤s30包括:根据所述写入操作获得写入数据;根据所述写入操作获得所述写入数据的写入地址及写入时间;根据所述写入数据、所述写入时间及所述写入地址生成所述操作信息。

需要理解的是,写入操作包括写入虚拟硬盘的数据,写入虚拟硬盘的时间,以及数据写入虚拟硬盘的地址等信息,需要对写入操作中的重要信息做备份,根据这些重要信息生成操作信息。

可以理解的是,写入地址包括虚拟机镜像文件中虚拟硬盘的地址,用于记录写入数据在虚拟硬盘中的位置。

步骤s40:通过所述备份通道将所述操作信息发送至备份服务器,以使所述备份服务器对所述操作信息进行备份。

需要说明的是,备份服务器包括多个备份区域,各备份区域存储对应虚拟机镜像文件的备份数据,且不同的备份区域对应有不同的备份通道。

可以理解的是,备份服务器在接收到操作信息时,可根据操作信息获得数据的写入时间,根据写入时间,将操作信息进行排列,方便用于根据时间进行数据恢复。

需要说明的是,如图3所示,在虚拟机镜像文件启动时,文件监控模块为虚拟机镜像文件创建对应的备份通道,文件监控模块中包含预设数据监控函数,用于获取写入操作,根据写入操作生成操作信息,并将操作信息通过备份通道发送至备份服务器。

本实施例在对目标虚拟机镜像文件进行持续数据备份时,为目标虚拟机镜像文件创建对应的备份通道;通过预设数据监控函数获取对所述目标虚拟机镜像文件的写入操作;从所述写入操作中生成操作信息;通过所述备份通道将所述操作信息发送至备份服务器,以使所述备份服务器对所述操作信息进行备份。在将数据写入虚拟机镜像文件时,可获得数据写入操作,并根据写入操作生成操作信息,通过备份通道将操作信息发送至备份服务器进行备份,从而可以对系统产生的每一笔io写入操作都做备份,可以做到持续数据备份的同时无需花费创建快照的时间,极大地节省了系统资源且提升了用户体验。

参考图4,图4为本发明一种虚拟机数据备份方法第二实施例的流程示意图。

基于上述第一实施例,本实施例虚拟机数据备份方法在所述步骤s10之前,还包括:

步骤s01:获取所述目标虚拟机镜像文件所在虚拟化平台的类型。

可以理解的是,不同的虚拟化平台有不同的内核及标准,需要针对性的对不同类型的虚拟化平台进行方案设计。例如微软公司的hyper-v、基于linux的openstack、xen、华为fusioncompute、华三h3ccas、深信服sangforhci等,以及基于vmware的vmwareworkstation。

步骤s02:根据所述类型确定所述虚拟化平台的默认写入函数。

需要说明的是,不同的虚拟化平台对应有不同的默认写入函数用于执行数据写入操作,例如:hyper-v的默认写入函数为irp_mj_write,基于linux的虚拟化平台的默认写入函数为文件系统中的open/write/aio_write,基于vmware的虚拟化平台的visorfsopenfile和visorfsobj_doio。

步骤s03:根据所述类型及所述默认写入函数确定所述目标虚拟机镜像文件写入操作的获取策略。

进一步地,为了针对不同的虚拟化平台获取写入操作,步骤s03包括:

若所述虚拟化平台的类型为hyper-v,在所述虚拟化平台调用所述默认写入函数执行的写入操作时,通过对应的预设数据监控函数截获所述写入操作,并执行所述写入操作。

需要说明的是,可通过windows-ddk中的《installablefilesystemapi》安装文件监控模块,文件监控模块中包含预设数据监控函数,在irp_mj_write执行写入操作时,预设数据监控函数可以截获该写入操作,并执行该写入操作,并且可以从该写入操作中获得写入数据、写入时间及写入地址等信息,用于生成操作信息。

若所述虚拟化平台的类型为基于linux,将所述默认写入函数替换为对应的预设数据监控函数,以使所述预设数据监控函数接收所述写入操作,并执行写入操作。

可以理解的是,在基于linux的虚拟化平台中的虚拟机镜像文件有2种接口访问,一种是文件级的映射文件,一种是基于rados(reliable,autonomicdistributedobjectstore)块设备或逻辑卷管理(logicalvolumemanager,lvm)的裸设备(rawdevice)格式的镜像文件。

需要说明的是,基于映射文件的虚拟化平台的默认写入函数为open/write/aio_write,而基于裸设备格式的虚拟化平台的默认写入函数为make_request_fn函数。文件监控模块可以直接用预设数据监控函数代替默认写入函数,执行数据写入操作。

若所述虚拟化平台的类型为基于vmware,修改所述默认写入函数以使所述虚拟化平台调用所述默认写入函数时跳转至所述预设数据监控函数接收所述写入操作,并执行写入操作。

需要说明的是,在基于vmware的虚拟化平台上,文件监控模块修改vmware核心函数visorfsopenfile和visorfsobj_doio处的二进制代码,让其代码变成跳转到预设数据监控函数,在虚拟化平台调用默认写入操作时,跳转至预设数据监控函数完成数据写入操作。

本实施例通过获取所述目标虚拟机镜像文件所在虚拟化平台的类型;根据所述类型确定所述虚拟化平台的默认写入函数;根据所述类型及所述默认写入函数确定所述目标虚拟机镜像文件写入操作的获取策略。若所述虚拟化平台的类型为hyper-v,在所述虚拟化平台调用所述默认写入函数执行的写入操作时,通过对应的预设数据监控函数截获所述写入操作,并执行所述写入操作;若所述虚拟化平台的类型为基于linux,将所述默认写入函数替换为对应的预设数据监控函数,以使所述预设数据监控函数接收所述写入操作,并执行写入操作;若所述虚拟化平台的类型为基于vmware,修改所述默认写入函数以使所述虚拟化平台调用所述默认写入函数时跳转至所述预设数据监控函数接收所述写入操作,并执行写入操作。根据虚拟化平台类型的不同制定不同的备份方案,在保证正常运行的同时且对虚拟机镜像文件做持续备份,提升了用户体验。

此外,本发明实施例还提出一种存储介质,所述存储介质上存储有虚拟机数据备份程序,所述虚拟机数据备份程序被处理器执行时实现如上文所述的虚拟机数据备份方法的步骤。

参照图5,图5为本发明虚拟机数据备份装置第一实施例的结构框图。

如图5所示,本发明实施例提出的虚拟机数据备份装置包括:

创建模块10,用于在对目标虚拟机镜像文件进行持续数据备份时,为所述目标虚拟机镜像文件创建对应的备份通道;

获取模块20,用于通过预设数据监控函数获取对所述目标虚拟机镜像文件的写入操作;

生成模块30,用于从所述写入操作中生成操作信息;

发送模块40,用于通过所述备份通道将所述操作信息发送至备份服务器,以使所述备份服务器对所述操作信息进行备份。

应当理解的是,以上仅为举例说明,对本发明的技术方案并不构成任何限定,在具体应用中,本领域的技术人员可以根据需要进行设置,本发明对此不做限制。

本实施例在对目标虚拟机镜像文件进行持续数据备份时,为目标虚拟机镜像文件创建对应的备份通道;通过预设数据监控函数获取对所述目标虚拟机镜像文件的写入操作;从所述写入操作中生成操作信息;通过所述备份通道将所述操作信息发送至备份服务器,以使所述备份服务器对所述操作信息进行备份。在将数据写入虚拟机镜像文件时,可获得数据写入操作,并根据写入操作生成操作信息,通过备份通道将操作信息发送至备份服务器进行备份,从而可以对系统产生的每一笔io写入操作都做备份,可以做到持续数据备份的同时无需花费创建快照的时间,极大地节省了系统资源且提升了用户体验。

在一实施例中,所述创建模块10,还用于获取所述目标虚拟机镜像文件所在虚拟化平台的类型;根据所述类型确定所述虚拟化平台的默认写入函数;根据所述类型及所述默认写入函数确定所述目标虚拟机镜像文件写入操作的获取策略。

在一实施例中,所述创建模块10,还用于若所述虚拟化平台的类型为hyper-v,在所述虚拟化平台调用所述默认写入函数执行的写入操作时,通过对应的预设数据监控函数截获所述写入操作,并执行所述写入操作;若所述虚拟化平台的类型为基于linux,将所述默认写入函数替换为对应的预设数据监控函数,以使所述预设数据监控函数接收所述写入操作,并执行写入操作;若所述虚拟化平台的类型为基于vmware,修改所述默认写入函数以使所述虚拟化平台调用所述默认写入函数时跳转至所述预设数据监控函数接收所述写入操作,并执行写入操作。

在一实施例中,所述生成模块30,还用于根据所述写入操作获得写入数据;根据所述写入操作获得所述写入数据的写入地址及写入时间;根据所述写入数据、所述写入时间及所述写入地址生成所述操作信息。

需要说明的是,以上所描述的工作流程仅仅是示意性的,并不对本发明的保护范围构成限定,在实际应用中,本领域的技术人员可以根据实际的需要选择其中的部分或者全部来实现本实施例方案的目的,此处不做限制。

另外,未在本实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的虚拟机数据备份方法,此处不再赘述。

此外,需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器(readonlymemory,rom)/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1