虚拟机备份方法、系统、设备及可读存储介质与流程
未命名
10-08
阅读:71
评论:0

1.本发明是关于信息技术领域,特别是关于一种虚拟机备份方法、系统、设备及可读存储介质。
背景技术:
2.虚拟化是一种能够充分利用物理资源,通过互联网实现计算资源的共享的物理模型。虚拟化技术不断发展的同时,虚拟机作为虚拟化技术实现的焦点,在运行时,由虚拟机所在的主机,即宿主机为虚拟机虚拟出各种硬件单元,例如虚拟机内存和虚拟机硬盘等。虚拟机内存中的数据由虚拟机自身进行管理,而虚拟机硬盘上的数据则由宿主机存储和管理。
3.为了保持虚拟机业务运行的连续性和稳定性,避免因意外造成的数据丢失,如何保证虚拟机在使用过程中有效及时地备份成为当前热点问题。在现有技术中,可以采用qemu提供的进行实时磁盘备份方案drive-backup,即虚拟机开机状态下,可以使用qcow2格式磁盘文件的快照链以及关联到外置快照的bitmap对磁盘进行全量、增量备份。
4.但现有的虚拟机备份方法,只支持在虚拟机开机状态下进行备份任务,关机状态使用相应命令进行备份会无法识别虚拟机,并且bitmap只能绑定在指定快照文件(或原磁盘文件)上,当一个磁盘创建了新的外置快照之后,在旧快照上创建的bitmap将不能为虚拟机新产生的脏数据创建增量备份。
5.因此,针对上述技术问题,有必要提供一种虚拟机备份方法、系统、设备及可读存储介质。
6.公开于该背景技术部分的信息仅仅旨在增加对本发明的总体背景的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域一般技术人员所公知的现有技术。
技术实现要素:
7.本发明的目的在于提供一种虚拟机备份方法、系统、设备及可读存储介质,其能够在关机状态下执行备份任务,同时避免了旧快照不参与增量备份导致的备份数据缺失。
8.为实现上述目的,本发明提供的技术方案如下:
9.第一方面,本发明提供了一种虚拟机备份方法,其包括:
10.基于备份命令,以所述虚拟机当前处于active状态的外置快照或处于active状态的原磁盘创建持久型bitmap;
11.基于qemu-img的变基操作,对关机状态下的虚拟机的磁盘进行全量备份;
12.基于所述持久型bitmap和qemu-nbd操作,获取所述备份后的脏数据,对所述虚拟机的磁盘进行增量备份。
13.在一种或多种实施方式中,所述基于qemu-img的变基操作,对关机状态下的虚拟机的磁盘进行全量备份,包括:
14.若存在所述外置快照,则创建备份文件,将备份文件的后端镜像文件指向最后创
建的虚拟机外置快照;
15.若当前不存在外置快照,则创建备份文件,将备份文件的后端镜像文件指向原磁盘;
16.对备份文件进行变基操作,并指定后端镜像文件为空字符串。
17.在一种或多种实施方式中,所述基于所述持久型bitmap和qemu-nbd操作,获取所述备份后的脏数据,对所述虚拟机的磁盘进行增量备份,包括:
18.若上一次备份后未创建新的外置快照,获取所述备份后的脏数据,对所述虚拟机磁盘进行增量备份;
19.若上一次备份后创建了新的外置快照,获取所述备份后的脏数据,对所述虚拟机磁盘进行增量备份。
20.在一种或多种实施方式中,所述若上一次备份后未创建新的外置快照,获取所述备份后的脏数据,对所述虚拟机磁盘进行增量备份,包括:
21.若存在外置快照,则基于qemu-nbd命令,获取最后创建的虚拟机外置快照绑定的持久型bitmap中的脏数据作为增量备份数据;
22.若不存在外置快照,则获取原磁盘绑定的持久型bitmap中的脏数据作为增量备份数据;
23.将所述增量备份数据写入所述备份文件。
24.在一种或多种实施方式中,所述若上一次备份后创建了新的外置快照,获取所述备份后的脏数据,对所述虚拟机磁盘进行增量备份,包括:
25.若在上一次备份时存在外置快照,则基于qemu-nbd命令,获取基于在上一次备份时最后创建的虚拟机外置快照绑定的持久型bitmap中的脏数据并将所述脏数据写入备份文件;
26.若在上一次备份时不存在外置快照,则基于qemu-nbd命令,获取原磁盘绑定的持久型bitmap中的脏数据并将所述脏数据写入备份文件;
27.通过qemu-img的变基操作,将上一次备份后创建的外置快照的数据与所述备份文件数据合并。
28.在一种或多种实施方式中,所述通过qemu-img的变基操作,将上一次备份后创建的外置快照的数据与所述备份文件数据合并,包括:
29.新建备份文件,通过变基操作将所述新建备份文件的后端镜像文件指向上一次备份后创建的外置快照;
30.基于变基操作指定后端镜像文件为备份后创建的外置快照的父快照,将备份后创建的外置快照的数据合并至所述新建备份文件;
31.基于变基操作指定后端镜像文件为原备份文件;
32.基于变基操作指定后端镜像文件为空字符串,将原备份文件的数据合并至所述新建备份文件。
33.在一种或多种实施方式中,所述方法还包括:
34.基于drive-backup备份命令,对开机状态的虚拟机,以所述虚拟机当前处于active状态的外置快照或处于active状态的原磁盘创建持久型bitmap并对磁盘做全量备份;
35.基于qemu-nbd命令,获取上次备份时处于active状态的外置快照绑定的持久型bitmap的脏数据以及上一次备份后创建的不处于active状态的外置快照的数据写入备份文件;
36.新建备份文件,基于drive-backup备份命令,获取当前处于active状态的外置快照的数据,写入所述新建备份文件并对当前处于active状态的外置快照创建持久型bitmap;
37.通过变基操作,将所述备份文件合并至所述新建备份文件,完成增量备份。
38.第二方面,本发明提供了一种虚拟机备份系统,其包括:
39.创建模块,用于基于备份命令,以所述虚拟机当前处于active状态的外置快照或处于active状态的原磁盘创建持久型bitmap;
40.全量备份模块,用于基于qemu-img的变基操作,对关机状态下的虚拟机的磁盘进行全量备份;
41.增量备份模块,用于基于所述持久型bitmap和qemu-nbd操作,获取所述备份后的脏数据,对所述虚拟机的磁盘进行增量备份。
42.第三方面,本发明提供了一种计算机设备,其包括:存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行所述的虚拟机备份方法。
43.第四方面,本发明提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使计算机执行所述的虚拟机备份方法。
44.与现有技术相比,本发明提供的虚拟机备份方法,基于备份命令,以所述虚拟机当前处于active状态的外置快照或处于active状态的原磁盘创建持久型bitmap;基于qemu-img的变基操作,对关机状态下的虚拟机的磁盘进行全量备份;基于所述持久型bitmap和qemu-nbd操作,获取所述备份后的脏数据,对所述虚拟机的磁盘进行增量备份。该虚拟机备份方法具有以下优点:
45.(1)本发明提供的虚拟机备份方法,支持关机状态进行备份,防止关机后虚拟机磁盘损坏导致数据丢失。可以在关机后进行备份操作而不需要对虚拟机进行重启,使备份操作更加便捷。
46.(2)本发明提供的虚拟机备份方法,避免了当一个磁盘创建了新的外置快照之后,在旧快照上创建的bitmap将不能为虚拟机新产生的脏数据创建增量备份。可以将旧快照bitmap记录的脏数据写入备份文件,防止备份数据有所缺失。
附图说明
47.图1是本发明一实施方式中虚拟机备份方法的应用场景示意图;
48.图2是本发明一实施方式中虚拟机备份的流程示意图;
49.图3是本发明一实施方式中虚拟机备份系统的结构框图;
50.图4是本发明一实施方式中电子设备的结构框图。
具体实施方式
51.下面结合附图,对本发明的具体实施方式进行详细描述,但应当理解本发明的保
护范围并不受具体实施方式的限制。
52.除非另有其它明确表示,否则在整个说明书和权利要求书中,术语“包括”或其变换如“包含”或“包括有”等等将被理解为包括所陈述的元件或组成部分,而并未排除其它元件或其它组成部分。
53.为了方便理解本技术的技术方案,下面首先对本发明中可能出现的技术术语进行详细解释。
54.backingfile:只读的qcow2格式的后端镜像文件。
55.快照:关于指定数据集合的一个完全可用拷贝,该拷贝包括相应数据在某个时间点(拷贝开始的时间点)的映像。快照可以是其所表示的数据的一个副本,也可以是数据的一个复制品。
56.外置快照:快照保存在外置单独的文件中,本文提到的快照都属于外置快照。
57.bitmap:也称为dirty bitmap,可以为某一段时间内磁盘文件增加的脏数据设置标记,是qemu支持的一个高级功能,bitmap记录在内存中。支持任意格式的磁盘格式,比如qcow2、raw等等。
58.persistent dirty bitmap:持久性bitmap,是dirty bitmap的改进版,记录在磁盘上,当虚拟机关机后,persistent dirty bitmap不会消失,persistent dirty bitmap是v2.10开始才支持。
59.drive-backup:drive-backup是qemu提供的进行实时磁盘备份方案,即可以使用qcow2格式磁盘文件的快照链以及关联到外置快照的bitmap对磁盘进行全量、增量备份。
60.qemu:qemu是一套以gpl许可证分发源码的模拟处理器软件,默认支持多种架构。可以模拟多种架构,可扩展,可自定义新的指令集,开源,可移植,仿真速度快。在支持硬件虚拟化的x86构架上可以使用kvm加速配合内核ksm大页面备份内存,速度稳定远超过vmware esx,增加了模拟速度,某些程序甚至可以实时运行,可以在其他平台上运行linux的程序,可以储存及还原运行状态(如运行中的程序),可以虚拟网络卡。
61.虚拟机:指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。在实体计算机中能够完成的工作在虚拟机中都能够实现。在计算机中创建虚拟机时,需要将实体机的部分硬盘和内存容量作为虚拟机的硬盘和内存容量。每个虚拟机都有独立的cmos、硬盘和操作系统,可以像使用实体机一样对虚拟机进行操作。
62.qcow2:是qemu的一种镜像格式,是“qemu copy on write”的简写,可以通过qemu-img来管理。qcow2是虚拟的块设备,存在结构的定义,有减少存储空间,快照,加密等功能。
63.qemu-nbd:nbd指的是network block device,正如其名字的意思,nbd让用户可以通过网络访问到某个块设备,或者设备镜像。所述qemu-nbd即指虚拟化程序qemu中基于nbd方式对块设备或文件进行挂载。
64.qemu-img:虚拟化程序qemu中的磁盘镜像实用程序。qemu-img可以创建,查看qcow2镜像。另外还支持制作快照,镜像转换,支持父镜像。
65.请参考图1,其所示为本发明提供的虚拟机备份方法的应用场景示意图。在图1所示的实施场景下,包括需要数据备份服务的终端101以及具有虚拟机数据备份功能的数据储存服务器102。具体而言,当终端101需要数据备份服务时,其可以通过数据储存服务器102,基于备份命令,以所述虚拟机当前处于active状态的外置快照或处于active状态的原
磁盘创建持久型bitmap并进行全量备份操作。进一步的,基于所述持久型bitmap,获取所述备份后的脏数据,对所述虚拟机磁盘进行增量备份。
66.本发明实施例的虚拟机备份方法可应用于本发明实施例的虚拟机备份系统。该虚拟机备份系统可以配置于终端。终端可以包括但不限于pc(personal computer,个人计算机)、pda(平板电脑)﹑智能手机、智能可穿戴设备等等。
67.终端可以通过网络103与各个服务器建立通信连接,并且该网络可以是无线网络,也可以是有线网络,本发明实施例对此不做限制。
68.待备份数据可以包括但不仅限于:文件数据(word、excel、ppt等)、图片数据(照片、图像等)﹑音频数据(音乐、语音等)﹑视频数据(动画、录像等)等。
69.所述数据储存服务器102可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(content delivery network,cdn)、以及大数据和人工智能平台等基础云计算服务的云服务器。
70.请参照图2所示,为本发明一实施方式中虚拟机备份的流程示意图。该虚拟机备份方法,具体包括以下步骤:
71.s201:基于备份命令,以所述虚拟机当前处于active状态的外置快照或处于active状态的原磁盘创建持久型bitmap;
72.需要说明的是,所述处于active状态的外置快照指最后一个创建的外置快照在开机状态下的状态,当再次创建新快照后,同样在开机状态下,所述新快照处于active状态,原处于active状态的外置快照丧失该状态。若不存在外置快照,则认为原磁盘处于active状态。
73.还需说明的是,本技术方案中磁盘是指虚拟机一个磁盘的所有数据对应的一个包含父子关系的qcow2文件链,原磁盘是指虚拟机磁盘对应的一个qcow2文件。
74.s202:基于qemu-img的变基操作,对关机状态下的虚拟机的磁盘进行全量备份;
75.在一示例性实施例中,所述基于qemu-img的变基操作,对关机状态下的虚拟机的磁盘进行全量备份,包括:若存在所述外置快照,则创建备份文件,将备份文件的后端镜像文件指向最后创建的虚拟机外置快照;若当前不存在外置快照,则创建备份文件,将备份文件的后端镜像文件指向原磁盘;对备份文件进行变基操作,并指定后端镜像文件为空字符串。
76.例如,所述备份文件为backup.qcow2,基于qemu-img命令将所述备份文件的后端镜像文件指向所述处于active状态的外置快照[b]。而后对备份文件进行变基操作,当指定backingfile为空字符串时,会将[a][b]中的数据自动合并到备份文件中,所以变基操作完成后[backup.qcow2]就是所要求的全量备份文件。
[0077]
s203:基于所述持久型bitmap和qemu-nbd操作,获取所述备份后的脏数据,对所述虚拟机的磁盘进行增量备份。
[0078]
需要说明的是,所述基于所述持久型bitmap和qemu-nbd操作,获取所述备份后的脏数据,对所述虚拟机的磁盘进行增量备份,包括:若上一次备份后未创建新的外置快照,获取所述备份后的脏数据,对所述虚拟机磁盘进行增量备份;若上一次备份后创建了新的外置快照,获取所述备份后的脏数据,对所述虚拟机磁盘进行增量备份。
[0079]
在一示例性实施例中,所述若上一次备份后未创建新的外置快照,获取所述备份后的脏数据,对所述虚拟机磁盘进行增量备份,包括:若存在外置快照,则基于qemu-nbd命令,获取最后创建的虚拟机外置快照绑定的持久型bitmap中的脏数据作为增量备份数据;若不存在外置快照,则获取原磁盘绑定的持久型bitmap中的脏数据作为增量备份数据;将所述增量备份数据写入所述备份文件。
[0080]
需要说明的是,在上一次备份后未创建新的外置快照,则认为在上一次的备份后所有新增的数据被以脏数据的形式记录在持久型bitmap中,若在上一次备份时无外置快照,则所述持久型bitmap绑定在虚拟机原磁盘上,反之则绑定在基于上一次备份的时间点,最后创建的外置快照上。此时对虚拟机磁盘的增量备份仅需获取备份后记录在处于外置快照或虚拟机原磁盘中的脏数据,并将其写入备份文件。
[0081]
例如,服务端使用qemu-nbd,客户端使用libnbd去连接,使用blockstatus接口按指定大小获取每个数据块的状态,筛选并读取脏数据,进而写入增量备份文件[backup.qcow2]。
[0082]
在另一示例性实施例中,所述若上一次备份后创建了新的外置快照,获取所述备份后的脏数据,对所述虚拟机磁盘进行增量备份,包括:若在上一次备份时存在外置快照,则基于qemu-nbd命令,获取基于在上一次备份时最后创建的虚拟机外置快照绑定的持久型bitmap中的脏数据并将所述脏数据写入备份文件;若在上一次备份时不存在外置快照,则基于qemu-nbd命令,获取原磁盘绑定的持久型bitmap中的脏数据并将所述脏数据写入备份文件;通过qemu-img的变基操作,将上一次备份后创建的外置快照的数据与所述备份文件数据合并。
[0083]
具体的,所述通过qemu-img的变基操作,将上一次备份后创建的外置快照的数据与所述备份文件数据合并,包括:新建备份文件,通过变基操作将所述新建备份文件的后端镜像文件指向上一次备份后创建的外置快照;基于变基操作指定后端镜像文件为备份后创建的外置快照的父快照,将备份后创建的外置快照的数据合并至所述新建备份文件;基于变基操作指定后端镜像文件为原备份文件;基于变基操作指定后端镜像文件为空字符串,将原备份文件的数据合并至所述新建备份文件。
[0084]
需要说明的是,由于在上一次备份后陆续创建了多个外置快照,故而在每个所述外置快照上均记录了该外置快照处于active状态时,由虚拟机磁盘新增的数据记录形成的脏数据。若在增量备份时仅对最后一个创建的外置快照进行备份,则会造成备份数据缺失。所以若上一次备份后创建了新的外置快照,则需要基于qemu-nbd命令,获取基于上一次备份的时间点来说最后创建的外置快照绑定的持久型bitmap的脏数据并将所述脏数据写入备份文件,并通过qemu-img的变基操作,将上一次备份后创建的外置快照的数据与所述备份文件数据合并。
[0085]
例如,若上次备份仅在[a]上创建了bitmap0,而后又创建了外置快照[b],则增量数据包含[a]的持久型bitmap上记录的脏数据以及[b]的所有数据。原备份文件为[backup0.qcow2]。首先新建备份文件[backup.qcow2],按照上一示例性实施例中的方法,获取[a]中bitmap0记录的脏数据并写入原备份文件[backup0.qcow2]。然后第一次变基,将[b]中所有数据合并到[backup.qcow2],第二次变基,使用不安全模式,只将[backup.qcow2]的backingfile指向[backup0.qcow2]而不进行数据合并,第三次变基,将
[backup0.qcow2]的数据合并到[backup.qcow2],由此就完成了增量备份[backup.qcow2]。
[0086]
在另一具体的实施例中,若上次备份仅在[a]上创建了bitmap0,而后又陆续创建了外置快照[b],外置快照[c]等多个外置快照,则增量数据包含[a]绑定的bitmap0上记录的脏数据以及在[a]后创建的所有外置快照中的数据。此时应当首先创建新增备份文件[backup.qcow2],按照上述方法,获取[a]中bitmap0记录的脏数据并写入原备份文件[backup0.qcow2]。然后通过变基操作,将所述[b]、[c]等多个外置快照中所有数据合并到[backup.qcow2];再次变基,使用不安全模式,只将[backup.qcow2]的backingfile指向[backup0.qcow2]而不进行数据合并;最后,基于变基操作,将[backup0.qcow2]的数据合并到[backup.qcow2]完成增量备份。
[0087]
还需说明的是,所述方法还包括:基于drive-backup备份命令,对开机状态的虚拟机,以所述虚拟机当前处于active状态的外置快照或处于active状态的原磁盘创建持久型bitmap并对磁盘做全量备份;基于qemu-nbd命令,获取上次备份时处于active状态的外置快照绑定的持久型bitmap的脏数据以及上一次备份后创建的不处于active状态的外置快照的数据写入备份文件;新建备份文件,基于drive-backup备份命令,获取当前处于active状态的外置快照的数据,写入所述新建备份文件并对当前处于active状态的外置快照创建持久型bitmap;通过变基操作,将所述备份文件合并至所述新建备份文件,完成增量备份。
[0088]
在开机状态下,不在active状态的外置快照的脏数据的获取方法可以参照上述关机状态的增量备份的方式,使用qemu-nbd获取bitmap记录的脏数据,并合并那些没有绑定bitmap的快照的所有数据到备份文件[backup.qcow2]。
[0089]
对于当前处于active状态的最新快照,使用drive-backup全量备份的top模式进行备份。将获取的备份数据写入到[backup.qcow2],并为最新的快照创建持久性bitmap1,以便进行下次增量备份。
[0090]
经过上述两个步骤便可以获取继上次备份之后的全部增量数据,然后再将得到的增量数据合并为最终增量备份,合并方法与关机状态增量备份的合并方式类似。
[0091]
请参照图3所示,基于与前述虚拟机备份方法相同的发明构思,本发明一实施方式中提供了一种虚拟机备份系统300,其中包括创建模块301、全量备份模块302和增量备份模块303。
[0092]
具体的,创建模块301,用于基于备份命令,以所述虚拟机当前处于active状态的外置快照或处于active状态的原磁盘创建持久型bitmap;全量备份模块302,用于基于qemu-img的变基操作,对关机状态下的虚拟机的磁盘进行全量备份;增量备份模块303,用于基于所述持久型bitmap和qemu-nbd操作,获取所述备份后的脏数据,对所述虚拟机的磁盘进行增量备份。
[0093]
需要说明的是,所述全量备份模块302用于基于qemu-img的变基操作,对关机状态下的虚拟机的磁盘进行全量备份,包括:若存在所述外置快照,则创建备份文件,将备份文件的后端镜像文件指向最后创建的虚拟机外置快照;若当前不存在外置快照,则创建备份文件,将备份文件的后端镜像文件指向原磁盘;对备份文件进行变基操作,并指定后端镜像文件为空字符串。
[0094]
所述增量备份模块303,用于基于所述持久型bitmap,获取所述备份后的脏数据,对所述虚拟机磁盘进行增量备份,包括:若上一次备份后未创建新的外置快照,且上一次备
份时存在外置快照,则基于qemu-nbd命令,获取最后创建的虚拟机外置快照绑定的持久型bitmap中的脏数据作为增量备份数据;若上一次备份后未创建新的外置快照且上一次备份时不存在外置快照,则获取原磁盘绑定的持久型bitmap中的脏数据作为增量备份数据;将所述增量备份数据写入所述备份文件。若上一次备份后创建了新的外置快照且在上一次备份时存在外置快照,则基于qemu-nbd命令,获取基于在上一次备份时最后创建的虚拟机外置快照绑定的持久型bitmap中的脏数据;若上一次备份后创建了新的外置快照且在上一次备份时不存在外置快照,则基于qemu-nbd命令,获取原磁盘绑定的持久型bitmap中的脏数据并将所述脏数据写入备份文件;通过qemu-img的变基操作,将上一次备份后创建的外置快照的数据与所述备份文件数据合并。
[0095]
还需说明的是,所述创建模块301还用于基于drive-backup备份命令,对开机状态的虚拟机,以所述虚拟机当前处于active状态的外置快照或处于active状态的原磁盘创建持久型bitmap;所述全量备份模块302还用于对开机状态的虚拟机磁盘进行全量备份;所述增量备份模块303还用于对于开机状态的虚拟机,基于qemu-nbd命令,获取上次备份时处于active状态的外置快照绑定的持久型bitmap的脏数据以及上一次备份后创建的外置快照的数据;基于drive-backup备份命令,获取当前处于active状态的外置快照的数据并对当前处于active状态的外置快照创建持久型bitmap;通过变基操作,将所述上次备份时处于active状态的外置快照绑定的持久型bitmap的脏数据以及上一次备份后创建的外置快照的数据合并至所述备份文件。
[0096]
请参照图4所示,本发明实施例还提供了一种电子设备400,该电子设备400包括至少一个处理器401、存储器402(例如非易失性存储器)、内存403和通信接口404,并且至少一个处理器401、存储器402、内存403和通信接口404经由总线405连接在一起。至少一个处理器401用于调用在存储器402中存储或编码的至少一个程序指令,以使得至少一个处理器401执行本说明书的各个实施方式中所描述虚拟机备份方法的各种操作和功能。
[0097]
在本说明书的实施例中,电子设备400可以包括但不限于:个人计算机、服务器计算机、工作站、桌面型计算机、膝上型计算机、笔记本计算机、移动电子设备、智能电话、平板计算机、蜂窝电话、个人数字助理(pda)、手持装置、消息收发设备、可佩戴电子设备、消费电子设备等等。
[0098]
本发明实施例还提供了一种计算机可读介质,该计算机可读介质上承载有计算机执行指令,所述计算机执行指令被处理器执行时,可用于实现本说明书的各个实施例中描述的虚拟机备份方法的各种操作和功能。
[0099]
本发明中的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0100]
而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传
播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、rf等等,或者上述的任意合适的组合。
[0101]
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0102]
本发明是参照根据本发明实施例的方法、装置、系统、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0103]
前述对本发明的具体示例性实施方案的描述是为了说明和例证的目的。这些描述并非想将本发明限定为所公开的精确形式,并且很显然,根据上述教导,可以进行很多改变和变化。对示例性实施例进行选择和描述的目的在于解释本发明的特定原理及其实际应用,从而使得本领域的技术人员能够实现并利用本发明的各种不同的示例性实施方案以及各种不同的选择和改变。本发明的范围意在由权利要求书及其等同形式所限定。
技术特征:
1.一种虚拟机备份方法,其特征在于,包括:基于备份命令,以所述虚拟机当前处于active状态的外置快照或处于active状态的原磁盘创建持久型bitmap;基于qemu-img的变基操作,对关机状态下的虚拟机的磁盘进行全量备份;基于所述持久型bitmap和qemu-nbd操作,获取所述备份后的脏数据,对所述虚拟机的磁盘进行增量备份。2.如权利要求1所述的虚拟机备份方法,其特征在于,所述基于qemu-img的变基操作,对关机状态下的虚拟机的磁盘进行全量备份,包括:若存在所述外置快照,则创建备份文件,将备份文件的后端镜像文件指向最后创建的虚拟机外置快照;若当前不存在外置快照,则创建备份文件,将备份文件的后端镜像文件指向原磁盘;对备份文件进行变基操作,并指定后端镜像文件为空字符串。3.如权利要求2所述的虚拟机备份方法,其特征在于,所述基于所述持久型bitmap和qemu-nbd操作,获取所述备份后的脏数据,对所述虚拟机的磁盘进行增量备份,包括:若上一次备份后未创建新的外置快照,获取所述备份后的脏数据,对所述虚拟机磁盘进行增量备份;若上一次备份后创建了新的外置快照,获取所述备份后的脏数据,对所述虚拟机磁盘进行增量备份。4.如权利要求3所述的虚拟机备份方法,其特征在于,所述若上一次备份后未创建新的外置快照,获取所述备份后的脏数据,对所述虚拟机磁盘进行增量备份,包括:若存在外置快照,则基于qemu-nbd命令,获取最后创建的虚拟机外置快照绑定的持久型bitmap中的脏数据作为增量备份数据;若不存在外置快照,则获取原磁盘绑定的持久型bitmap中的脏数据作为增量备份数据;将所述增量备份数据写入所述备份文件。5.如权利要求3所述的虚拟机备份方法,其特征在于,所述若上一次备份后创建了新的外置快照,获取所述备份后的脏数据,对所述虚拟机磁盘进行增量备份,包括:若在上一次备份时存在外置快照,则基于qemu-nbd命令,获取基于在上一次备份时最后创建的虚拟机外置快照绑定的持久型bitmap中的脏数据并将所述脏数据写入备份文件;若在上一次备份时不存在外置快照,则基于qemu-nbd命令,获取原磁盘绑定的持久型bitmap中的脏数据并将所述脏数据写入备份文件;通过qemu-img的变基操作,将上一次备份后创建的外置快照的数据与所述备份文件数据合并。6.如权利要求5所述的虚拟机备份方法,其特征在于,所述通过qemu-img的变基操作,将上一次备份后创建的外置快照的数据与所述备份文件数据合并,包括:新建备份文件,通过变基操作将所述新建备份文件的后端镜像文件指向上一次备份后创建的外置快照;基于变基操作指定后端镜像文件为备份后创建的外置快照的父快照,将备份后创建的外置快照的数据合并至所述新建备份文件;
基于变基操作指定后端镜像文件为原备份文件;基于变基操作指定后端镜像文件为空字符串,将原备份文件的数据合并至所述新建备份文件。7.如权利要求1所述的虚拟机备份方法,其特征在于,所述方法还包括:基于drive-backup备份命令,对开机状态的虚拟机,以所述虚拟机当前处于active状态的外置快照或处于active状态的原磁盘创建持久型bitmap并对磁盘做全量备份;基于qemu-nbd命令,获取上次备份时处于active状态的外置快照绑定的持久型bitmap的脏数据以及上一次备份后创建的不处于active状态的外置快照的数据写入备份文件;新建备份文件,基于drive-backup备份命令,获取当前处于active状态的外置快照的数据,写入所述新建备份文件并对当前处于active状态的外置快照创建持久型bitmap;通过变基操作,将所述备份文件合并至所述新建备份文件,完成增量备份。8.一种虚拟机备份系统,其特征在于,包括:创建模块,用于基于备份命令,以所述虚拟机当前处于active状态的外置快照或处于active状态的原磁盘创建持久型bitmap;全量备份模块,用于基于qemu-img的变基操作,对关机状态下的虚拟机磁盘进行全量备份;增量备份模块,用于基于所述持久型bitmap和qemu-nbd操作,获取所述备份后的脏数据,对所述虚拟机的磁盘进行增量备份。9.一种计算机设备,其特征在于,包括:存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1-7中任一项所述的虚拟机备份方法。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使计算机执行权利要求1-7中任一项所述的虚拟机备份方法。
技术总结
本发明公开了一种虚拟机备份方法、系统、设备及可读存储介质,该虚拟机备份方法包括:基于备份命令,以虚拟机当前处于active状态的外置快照或处于active状态的原磁盘创建持久型bitmap;基于qemu-img的变基操作,对关机状态下的虚拟机的磁盘进行全量备份;基于持久型bitmap和qemu-nbd操作,获取备份后的脏数据,对虚拟机的磁盘进行增量备份。本发明提供的虚拟机备份方法使得对于虚拟机的备份可以在关机状态下进行,有效防止关机期间虚拟机磁盘损坏造成数据损坏,亦可以在关机后进行备份操作而不需要对虚拟机进行重启,使备份操作更加便捷。同时,避免了当一个磁盘创建了新的外置快照之后,在旧快照上创建的bitmap将不能为虚拟机新产生的脏数据创建增量备份的问题。机新产生的脏数据创建增量备份的问题。机新产生的脏数据创建增量备份的问题。
技术研发人员:请求不公布姓名
受保护的技术使用者:安超云软件有限公司
技术研发日:2023.06.30
技术公布日:2023/10/6
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/
上一篇:一种含双三氟虫脲的杀虫组合物及其应用的制作方法 下一篇:一种建筑通风结构的制作方法