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

一种虚拟机的增量备份方法、系统、装置及可读存储介质与流程

2021-11-22 13:51:00 来源:中国专利 TAG:


1.本发明涉及云计算环境下的数据恢复技术领域,更具体的说是涉及一种虚拟机的增量备份方法、系统、装置及可读存储介质。


背景技术:

2.cbt(changed block tracking,块修改跟踪)增量备份技术可以在虚拟机运行时,创建虚拟机磁盘的位图信息,然后根据位图信息来保存相较于上次备份的增量数据。当虚拟机内部执行io操作时,对那些改变的磁盘扇区进行跟踪,进而修改磁盘脏数据对应的位图。当需要对虚拟机进行增量备份时,只需要根据位图信息拷贝脏数据到新的增量备份磁盘文件中即可。相对于全量备份需要将虚拟磁盘的全部数据块保存下来,基于cbt的增量备份只保存上次备份以来的发生变化的数据块,因此其性能要更好,速度也要更快。
3.但是,现有的虚拟化平台产品中,并不是所有的虚拟机都支持cbt增量备份功能。如果要实现虚拟化平台对cbt增量备份功能的兼容,需要解决以下问题:a.如何生成脏数据位图;b.在何时生成/导出脏数据位图。


技术实现要素:

4.针对以上问题,本发明的目的在于提供一种虚拟机的增量备份方法、系统、装置及可读存储介质,能够在虚拟机开关机时,自动加载与导出磁盘位图,进而根据位图来生成增量备份,实现了虚拟化平台对cbt增量备份功能的支持。
5.本发明为实现上述目的,通过以下技术方案实现:一种虚拟机的增量备份方法,包括如下步骤:
6.s1:在虚拟机执行关机时,生成虚拟机所有磁盘的位图信息,并导出至备份存储池中,作为备份的磁盘位图信息;
7.s2:在虚拟机执行开机时,生成当前的磁盘位图信息并加载进虚拟机内存中;在每次对虚拟机磁盘进行io读写时,对当前的磁盘位图信息进行更新与置位;s3:读取备份存储池中的备份的磁盘位图信息,通过与当前的磁盘位图信息进行比对,确定存储有增量数据的数据块,根据确定的数据块,拷贝增量数据并移动到备份存储池,生成块修改跟踪(cbt)的增量备份数据。
8.进一步,所述步骤s2具体为:
9.在虚拟机开机时,通过管理工具libvirt创建虚拟机对应的qemu进程,创建完成后将生成的位图信息加载进虚拟机的内存中;在每次虚拟机进行io读写时,下发io到虚拟磁盘中时,对每个数据块对应的位图信息进行更新与置位。
10.进一步,若当前虚拟机采用强制关机的方式进行虚拟机关机,所述步骤s1包括:
11.执行强制关机命令destroy;
12.使用管理工具libvirt接收destroy命令,收到后,执行虚拟机磁盘位图导出;销毁虚拟机对应的qemu进程;
13.清理qemu进程对应的虚拟硬件资源。
14.进一步,若当前虚拟机采用内部关机的方式进行虚拟机关机,所述步骤s1包括:
15.在虚拟机内部执行关闭命令或断电命令poweroff;
16.利用qemu进程通过虚拟化控制台qemu monitor推送出停止(stop)事件;
17.通过管理工具libvirt执行虚拟机资源清理;
18.利用qemu进程通过qemu monitor推送出关机(shutdown)事件;
19.通过管理工具libvirt处理shutdown事件,并创建一个新qemu线程;
20.在新创建的qemu线程中,遍历虚拟机所有磁盘,执行虚拟机磁盘位图导出;销毁虚拟机对应的qemu进程。
21.进一步,所述步骤s3具体为:
22.读取备份存储池中的备份的磁盘位图信息,并生成磁盘位图信息快照;
23.通过将磁盘位图信息快照与当前的磁盘位图信息的快照进行比对,确定存储有增量数据的数据块;
24.根据确定的数据块,拷贝增量数据并移动到备份存储池,生成块修改跟踪的增量备份数据。
25.相应的,本发明还公开了一种虚拟机的增量备份系统,包括:
26.磁盘位图信息加载单元,用于在虚拟机执行开机时,生成当前的磁盘位图信息并加载进虚拟机内存中;在每次对虚拟机磁盘进行io读写时,对当前的磁盘位图信息进行更新与置位;
27.磁盘位图信息备份单元,用于在虚拟机执行关机时,生成虚拟机所有磁盘的位图信息,并导出至备份存储池中,作为备份的磁盘位图信息;
28.增量数据备份单元,用于读取备份存储池中的备份的磁盘位图信息,通过与当前的磁盘位图信息进行比对,确定存储有增量数据的数据块,根据确定的数据块,拷贝增量数据并移动到备份存储池,生成块修改跟踪的增量备份数据。
29.进一步,所述磁盘位图信息备份单元包括:
30.第一备份模块,用于虚拟机执行强制关机时,在管理工具libvirt中执行第一备份流程,将磁盘位图信息保存至备份存储池的文件中。
31.进一步,所述磁盘位图信息备份单元还包括:
32.第二备份模块,用于虚拟机执行内部关机时,在管理工具libvirt中执行第二备份流程,将磁盘位图信息保存至备份存储池的文件中。
33.进一步,所述磁盘位图信息加载单元具体用于:
34.在虚拟机开机时,通过libvirt在创建虚拟机对应的qemu进程,创建完成后将生成的位图信息加载进虚拟机的内存中;在每次虚拟机进行io读写时,下发io到虚拟磁盘中时,对每个数据块对应的位图信息进行更新与置位。
35.进一步,所述增量数据备份单元具体用于:
36.读取备份存储池中的备份的磁盘位图信息,并生成磁盘位图信息快照;
37.通过将磁盘位图信息快照与当前的磁盘位图信息的快照进行比对,确定存储有增量数据的数据块;
38.根据确定的数据块,拷贝增量数据并移动到备份存储池,生成块修改跟踪的增量
备份数据。
39.进一步,所述第一备份流程包括:
40.执行强制关机命令;
41.libvirt收到destroy命令后,执行虚拟机磁盘位图导出;
42.销毁虚拟机对应的qemu进程;
43.清理虚拟机对应的资源。
44.进一步,所述第二备份流程包括:
45.在虚拟机内部执行关闭命令或断电命令poweroff;
46.利用qemu进程通过qemu monitor推送出stop事件;
47.通过libvirt执行虚拟机资源清理;
48.利用qemu进程通过qemu monitor推送出shutdown事件;
49.通过libvirt处理shutdown事件,并创建一个新qemu线程;
50.在新创建的qemu线程中,遍历虚拟机所有磁盘,执行位图导出;
51.销毁虚拟机对应的qemu进程。
52.相应的,本发明公开了一种虚拟机的增量备份装置,包括:
53.存储器,用于存储虚拟机的增量备份程序;
54.处理器,用于执行所述虚拟机的增量备份程序时实现如上文任一项所述虚拟机的增量备份方法的步骤。
55.相应的,本发明公开了一种可读存储介质,所述可读存储介质上存储有虚拟机的增量备份程序,所述虚拟机的增量备份程序被处理器执行时实现如上文任一项所述虚拟机的增量备份方法的步骤。
56.对比现有技术,本发明有益效果在于:本发明提供了一种虚拟机的增量备份方法、系统、装置及可读存储介质,实现了在libvirt中添加对cbt增量备份功能的支持,并在虚拟机开关机时自动实现磁盘脏数据位图的加载与保存。由于虚拟机的磁盘位图信息会随着每次io读写发生变化,通过将位图信息加载进虚拟机的内存中,实时对位图信息进行更改与置位;在虚拟机关机时,将位图信息保存到备份存储池中,可以实时根据保存的位图信息文件来对虚拟机进行增量备份。即使在宿主机异常断电情况下,备份存储池上仍有断电前上次保存的虚拟机磁盘位图信息,可以根据该位图信息和备份快照,将虚拟机恢复至上次备份前的状态,保证用户数据的安全和业务的正常运行。
57.使用本发明后,每次进行数据备份时,只需要根据位图信息和上次备份快照保存磁盘增量数据即可,相较于全量备份,更快速而且更节省磁盘空间。
58.由此可见,本发明与现有技术相比,具有突出的实质性特点和显著的进步,其实施的有益效果也是显而易见的。
附图说明
59.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
60.附图1是本发明的方法流程图;
61.附图2是本发明的系统结构图。
62.图中,1为磁盘位图信息加载单元;2为磁盘位图信息备份单元;3为增量数据备份单元;4为第一备份模块;5为第二备份模块。
具体实施方式
63.本发明的核心是提供一种虚拟机的增量备份方法,现有的虚拟化平台产品中,并不是所有的虚拟机都支持cbt增量备份功能。如果要实现虚拟化平台对cbt增量备份功能的兼容,需要解决以下问题:a.如何生成脏数据位图;b.在何时生成/导出脏数据位图。
64.而本发明提供的虚拟机的增量备份方法,在虚拟机关机(内部关闭和强制关机)时,生成虚拟机磁盘的脏数据位图,保存在备份池中;在虚拟机开机时,从备份池中加载数据位图至虚拟机内存中,在虚拟机运行过程中实时对脏数据位图进行更新;根据脏数据位图,来生成cbt增量备份,进而在虚拟化平台产品中支持cbt备份功能,来对虚拟机数据进行备份,保护用户数据安全。由此可见,本发明能够在虚拟机开关机时,自动加载与导出磁盘位图,进而根据位图来生成增量备份,实现了虚拟化平台对cbt增量备份功能的支持。
65.为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
66.实施例一:
67.如图1所示,本实施例提供了一种虚拟机的增量备份方法,包括如下步骤:
68.s1:在虚拟机执行关机时,生成虚拟机所有磁盘的位图信息,并导出至备份存储池中,作为备份的磁盘位图信息。
69.由于虚拟机的关机方式,可以分为强制关机和内部关机两种方式。因此,本步骤根据关机方式的不同,可以包括以下两种实现方式:
70.1、当前虚拟机采用强制关机的方式进行虚拟机关机时:首先,执行强制关机命令destroy;使用管理工具libvirt接收destroy命令,收到后,执行虚拟机磁盘位图导出。然后,销毁虚拟机对应的qemu进程。最后,清理qemu进程对应的虚拟硬件资源。
71.2、当前虚拟机采用内部关机的方式进行虚拟机关机时,本步骤的具体实现方式如下:
72.(1)在虚拟机内部执行关闭命令或断电命令poweroff。
73.(2)利用qemu进程通过qemu monitor推送出stop事件。
74.(3)通过管理工具libvirt执行虚拟机资源清理。
75.(4)利用qemu进程通过qemu monitor推送出shutdown事件。
76.(5)通过管理工具libvirt处理shutdown事件,并创建一个新qemu线程。
77.(6)在新创建的qemu线程中,遍历虚拟机所有磁盘,执行虚拟机磁盘位图导出。
78.(7)销毁虚拟机对应的qemu进程。
79.s2:在虚拟机执行开机时,生成当前的磁盘位图信息并加载进虚拟机内存中;在每次对虚拟机磁盘进行io读写时,对当前的磁盘位图信息进行更新与置位。
80.本步骤具体为:在虚拟机开机时,通过libvirt在创建虚拟机对应的qemu进程,创建完成后将生成的位图信息加载进虚拟机的内存中;在每次虚拟机进行io读写时,下发io到虚拟磁盘中时,对每个数据块对应的位图信息进行更新与置位。
81.s3:读取备份存储池中的备份的磁盘位图信息,通过与当前的磁盘位图信息进行比对,确定存储有增量数据的数据块,根据确定的数据块,拷贝增量数据并移动到备份存储池,生成cbt增量备份。
82.具体为:首先,读取备份存储池中的备份的磁盘位图信息,并生成磁盘位图信息快照。然后,通过将磁盘位图信息快照与当前的磁盘位图信息的快照进行比对,确定存储有增量数据的数据块。最后,根据确定的数据块,拷贝增量数据并移动到备份存储池,生成块修改跟踪的增量备份数据。
83.本实施例提供了一种虚拟机的增量备份方法,能够在虚拟机第一次关机的时候,libvirt通过调用qemu monitor生成虚拟机所有磁盘的位图信息,并导出至备份存储池中;在虚拟机开机时,libvirt将生成的位图信息加载进虚拟机的内存中;在每次虚拟机进行io读写时,对每个数据块对应的位图信息进行更新与置位;根据位图信息以及上次备份时生成的快照,生成增量数据并移动到备份存储池。
84.实施例二:
85.基于实施例一,如图2所示,本发明还公开了一种虚拟机的增量备份系统,包括:磁盘位图信息加载单元1、磁盘位图信息备份单元2和增量数据备份单元3。
86.磁盘位图信息加载单元1,用于在虚拟机执行开机时,将磁盘位图信息加载进虚拟机内存中;并在每次对虚拟机磁盘进行io读写时,对位图信息进行更新与置位。磁盘位图信息加载单元1具体用于:在虚拟机开机时,通过libvirt在创建虚拟机对应的qemu进程,创建完成后将生成的位图信息加载进虚拟机的内存中;在每次虚拟机进行io读写时,下发io到虚拟磁盘中时,对每个数据块对应的位图信息进行更新与置位。
87.磁盘位图信息备份单元2,用于在虚拟机执行关机时,生成虚拟机所有磁盘的位图信息,并导出至备份存储池中。磁盘位图信息备份单元2具体包括:第一备份模块4,用于虚拟机执行强制关机时,在libvirt中执行第一备份流程,将磁盘位图信息保存至备份存储池的文件中。第二备份模块5,用于虚拟机执行内部关机时,在libvirt中执行第二备份流程,将磁盘位图信息保存至备份存储池的文件中。
88.增量数据备份单元3,用于根据磁盘位图信息,拷贝增量数据并移动到备份存储池,并生成cbt增量备份。增量数据备份3单元具体用于:根据磁盘位图信息和上次备份时生成的快照,拷贝增量数据并移动到备份存储池,并生成cbt增量备份。
89.其中,第一备份流程包括:
90.执行强制关机命令;
91.libvirt收到destroy命令后,执行虚拟机磁盘位图导出;
92.销毁虚拟机对应的qemu进程;
93.清理虚拟机对应的资源。
94.第二备份流程包括:
95.在虚拟机内部执行关闭或poweroff;
96.利用qemu进程通过qemu monitor推送出stop事件;
97.通过libvirt执行虚拟机资源清理;
98.利用qemu进程通过qemu monitor推送出shutdown事件;
99.通过libvirt处理shutdown事件,并创建一个新qemu线程;
100.在新创建的qemu线程中,遍历虚拟机所有磁盘,执行位图导出;
101.销毁虚拟机对应的qemu进程。
102.本实施例提供了一种虚拟机的增量备份系统,能够在libvirt中添加对cbt备份功能的支持,在虚拟机开关机时,实现磁盘脏数据位图信息的自动加载与保存,在每次虚拟机进行io读写时,对位图信息进行更新与置位;每次进行数据备份时,只需要根据位图信息和上次备份快照保存磁盘增量数据即可,相较于全量备份,更快速而且更节省磁盘空间。
103.实施例三:
104.本实施例公开了一种虚拟机的增量备份装置,包括处理器和存储器;其中,所述处理器执行所述存储器中保存的虚拟机的增量备份程序时实现以下步骤:
105.1、在虚拟机执行开机时,将磁盘位图信息加载进虚拟机内存中;并在每次对虚拟机磁盘进行io读写时,对位图信息进行更新与置位。
106.2、在虚拟机执行关机时,生成虚拟机所有磁盘的位图信息,并导出至备份存储池中。
107.3、根据磁盘位图信息,拷贝增量数据并移动到备份存储池,并生成cbt增量备份。
108.进一步的,本实施例中的虚拟机的增量备份装置,还可以包括:
109.输入接口,用于获取外界导入的虚拟机的增量备份程序,并将获取到的虚拟机的增量备份程序保存至所述存储器中,还可以用于获取外界终端设备传输的各种指令和参数,并传输至处理器中,以便处理器利用上述各种指令和参数展开相应的处理。本实施例中,所述输入接口具体可以包括但不限于usb接口、串行接口、语音输入接口、指纹输入接口、硬盘读取接口等。
110.输出接口,用于将处理器产生的各种数据输出至与其相连的终端设备,以便于与输出接口相连的其他终端设备能够获取到处理器产生的各种数据。本实施例中,所述输出接口具体可以包括但不限于usb接口、串行接口等。
111.通讯单元,用于在虚拟机的增量备份装置和外部服务器之间建立远程通讯连接,以便于虚拟机的增量备份装置能够将镜像文件挂载到外部服务器中。本实施例中,通讯单元具体可以包括但不限于基于无线通讯技术或有线通讯技术的远程通讯单元。
112.键盘,用于获取用户通过实时敲击键帽而输入的各种参数数据或指令。
113.显示器,用于运行服务器供电线路短路定位过程的相关信息进行实时显示。
114.鼠标,可以用于协助用户输入数据并简化用户的操作。
115.本实施例提供了一种rbd虚拟机的批量升级装置,实现了在libvirt中添加对cbt增量备份功能的支持,并在虚拟机开关机时自动实现磁盘脏数据位图的加载与保存。由于虚拟机的磁盘位图信息会随着每次io读写发生变化,通过将位图信息加载进虚拟机的内存中,实时对位图信息进行更改与置位;在虚拟机关机时,将位图信息保存到备份存储池中,可以实时根据保存的位图信息文件来对虚拟机进行增量备份。即使在宿主机异常断电情况下,备份存储池上仍有断电前上次保存的虚拟机磁盘位图信息,可以根据该位图信息和备份快照,将虚拟机恢复至上次备份前的状态,保证用户数据的安全和业务的正常运行。。
116.实施例四:
117.本实施例还公开了一种可读存储介质,这里所说的可读存储介质包括随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动硬盘、cd

rom或技术领域内所公知的任意其他形式的存储介质。可读存储介质中存储有虚拟机的增量备份程序,所述虚拟机的增量备份程序被处理器执行时实现以下步骤:
118.1、在虚拟机执行开机时,将磁盘位图信息加载进虚拟机内存中;并在每次对虚拟机磁盘进行io读写时,对位图信息进行更新与置位。
119.2、在虚拟机执行关机时,生成虚拟机所有磁盘的位图信息,并导出至备份存储池中。
120.3、根据磁盘位图信息,拷贝增量数据并移动到备份存储池,并生成cbt增量备份。
121.本实施例提供了一种可读存储介质,实现了在虚拟机关机(内部关闭和强制关机)时,生成虚拟机磁盘的脏数据位图,保存在备份池中;在虚拟机开机时,从备份池中加载数据位图至虚拟机内存中,在虚拟机运行过程中实时对脏数据位图进行更新;根据脏数据位图,来生成cbt增量备份,进而在虚拟化平台产品中支持cbt备份功能,来对虚拟机数据进行备份,保护用户数据安全。
122.综上所述,本发明能够在虚拟机开关机时,自动加载与导出磁盘位图,进而根据位图来生成增量备份,实现了虚拟化平台对cbt增量备份功能的支持。
123.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的方法而言,由于其与实施例公开的系统相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
124.专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
125.在本发明所提供的几个实施例中,应该理解到,所揭露的系统、系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,系统或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
126.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
127.另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。
128.同理,在本发明各个实施例中的各处理单元可以集成在一个功能模块中,也可以是各个处理单元物理存在,也可以两个或两个以上处理单元集成在一个功能模块中。
129.结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd

rom、或技术领域内所公知的任意其它形式的存储介质中。
130.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
131.以上对本发明所提供的虚拟机的增量备份方法、系统、装置及可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献