CN112698913A - 虚拟机快照生成方法、装置、电子设备及介质 - Google Patents
虚拟机快照生成方法、装置、电子设备及介质 Download PDFInfo
- Publication number
- CN112698913A CN112698913A CN202011602157.3A CN202011602157A CN112698913A CN 112698913 A CN112698913 A CN 112698913A CN 202011602157 A CN202011602157 A CN 202011602157A CN 112698913 A CN112698913 A CN 112698913A
- Authority
- CN
- China
- Prior art keywords
- snapshot
- virtual machine
- data
- disk
- request
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 86
- 238000004590 computer program Methods 0.000 claims description 11
- 230000008569 process Effects 0.000 description 16
- 230000002159 abnormal effect Effects 0.000 description 12
- 230000004044 response Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000010606 normalization Methods 0.000 description 4
- 230000001960 triggered effect Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000002195 synergetic effect Effects 0.000 description 2
- 241000700605 Viruses Species 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- ZXQYGBMAQZUVMI-GCMPRSNUSA-N gamma-cyhalothrin Chemical compound CC1(C)[C@@H](\C=C(/Cl)C(F)(F)F)[C@H]1C(=O)O[C@H](C#N)C1=CC=CC(OC=2C=CC=CC=2)=C1 ZXQYGBMAQZUVMI-GCMPRSNUSA-N 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种虚拟机快照生成方法、装置、电子设备及介质。该方法包括:接收用户发送的快照请求;对虚拟机的系统盘、数据盘以及内存进行快照操作,得到快照数据,快照数据包括系统盘快照数据、数据盘快照数据以及内存快照数据。根据本发明实施例,能够提高虚拟机快照的可靠性。
Description
技术领域
本发明属于快照技术领域,尤其涉及一种虚拟机快照生成方法、装置、电子设备及介质。
背景技术
随着虚拟机业务的增加,虚拟机的可靠性也越来越重要。在通过虚拟机执行业务的过程中,当出现特殊情况如业务人员的误操作、木马病毒等情况时,可能造成虚拟机崩溃,进而导致业务的中断,这种情况下,通常需要依赖业务中断之前记录的快照数据,来进行虚拟机重构,进而恢复业务。
但是,目前在对虚拟机进行快照创建时,快照指令通常仅对系统盘进行了快照,导致后续虚拟机重构时,可能丢失其他盘中的数据,影响业务的恢复。
因此,如何提供一种可靠性更高的虚拟机快照生成方式是本发明所要解决的问题。
发明内容
本发明实施例提供了一种虚拟机快照生成方法、装置、电子设备及介质,能够提高虚拟机快照的可靠性。
第一方面,本发明实施例提供一种虚拟机快照生成方法,包括:
接收用户发送的快照请求;
响应于所述快照请求,解析虚拟机的配置文件,获取所述虚拟机的磁盘信息;所述磁盘信息包括系统盘信息以及数据盘信息;
基于所述磁盘信息,对系统盘和数据盘进行快照操作,得到快照数据。
第二方面,本发明实施例提供了一种虚拟机快照生成装置,包括:
快照请求接收模块,用于接收用户发送的快照请求;
文件解析模块,用于响应于所述快照请求,解析虚拟机的配置文件,获取所述虚拟机的磁盘信息;所述磁盘信息包括系统盘信息以及数据盘信息;
快照模块,用于基于所述磁盘信息,对系统盘和数据盘进行快照操作,得到快照数据。
第三方面,本发明实施例提供一种电子设备,所述设备包括:处理器以及存储有计算机程序指令的存储器;
所述处理器执行所述计算机程序指令时实现如第一方面所述的虚拟机快照生成方法。
第四方面,本发明实施例提供一种计算机存储介质,所述计算机存储介质上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现如第一方面所述的虚拟机快照生成方法。
本发明实施例的方法中,在接收到用户发送的快照请求后,对虚拟机的系统盘、数据盘以及内存进行快照操作,得到快照数据。其中,可以通过虚拟机的配置文件的解析,从而获取到虚拟机的磁盘信息,后续会对磁盘信息进行快照,来得到系统盘信息和数据盘信息,其中,数据盘指的是挂在在虚拟机上的外部盘。因此,本发明实施例中所生成的快照能够同时包含系统盘的数据、数据盘的数据以及内存数据,使得后续在虚拟机需要依据快照进行恢复重构时,能够恢复系统盘、数据盘和内存盘中的数据,减少了数据丢失,提高了虚拟机的可靠性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单的介绍,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例提供的虚拟机快照生成方法的流程示意图;
图2是本申请实施例提供了一种示例性的快照生成方法的流程示意图;
图3是本申请实施例提供了一种示例性的回退方法的流程示意图
图4示出了本发明一个实施例提供的虚拟机快照生成装置的结构示意图;
图5是本发明一个实施例提供的电子设备的结构示意图。
具体实施方式
下面将详细描述本发明的各个方面的特征和示例性实施例,为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及具体实施例,对本发明进行进一步详细描述。应理解,此处所描述的具体实施例仅被配置为解释本发明,并不被配置为限定本发明。对于本领域技术人员来说,本发明可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本发明的示例来提供对本发明更好的理解。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
如背景技术,在虚拟机执行业务的过程中,需要依赖快照数据来进行虚拟机重构。虚拟机快照保存了虚拟机在某个指定时间点的状态(包括操作系统和所有的程序的信息数据),利用快照,可以将虚拟机恢复至以前的状态,比如测试软件的时候经常需要回滚系统。但是目前所采用的虚拟机快照生成方法中,例如Openstack开源云平台中的快照的功能中,通过qemu-img命令执行系统盘的快照的创建,因此只对系统盘进行备份,无内存信息,如果虚拟机有挂载数据盘需要额外手动的创建数据盘快照,快照创建不够全面,操作较为复杂。并且,目前这种方式,只支持虚拟机的全量快照,也就是说,一次性地快照了整个系统盘,不支持增量快照。
为了解决现有技术问题,本发明实施例提供了一种虚拟机快照平台,该平台包括前端设备以及控制节点。
前端设备用于与用户进行交互,前端设备通过应用程序接口(ApplicationProgram Interface,API)接口接收用户的请求。
控制节点用于接收用户发送的快照请求,并将快照请求发送至虚拟机所在的计算节点,后续由计算节点执行快照操作。具体的。控制节点会通过远程过程调用协议(RemoteProcedure Call Protocol,RPC),远程调用Compute模块到虚拟机所在的计算节点,从而实现将快照请求发送至计算节点的目的。Compute模块调用虚拟机管理组件(Libvirt)Driver模块,Driver调用底层Libvirt命令实现虚拟机的快照或回退等操作。
基于上述虚拟机快照平台,本发明实施例提供了一种虚拟机快照生成方法、装置、电子设备及介质。下面首先对本发明实施例所提供的虚拟机快照生成方法进行介绍。
参见图1,图1示出了本发明一个实施例提供的虚拟机快照生成方法的流程示意图。
S110,接收用户发送的快照请求。
用户可以通过虚拟机快照平台的前端设备或用户的客户端,来向虚拟机快照平台发送快照请求。快照请求可以包含目标虚拟机的标识以及执行快照操作的标识等。本发明实施例不限定快照请求的具体内容。
S120,响应于快照请求,对虚拟机的系统盘、数据盘以及内存进行快照操作,得到快照数据。
其中,针对系统盘和数据盘的快照操作是基于虚拟机的磁盘信息进行的,磁盘信息是通过解析虚拟机的配置文件获取的系统盘信息以及数据盘信息。
具体地,虚拟机的配置文件中,保存有虚拟机的磁盘信息,这里的磁盘信息包括磁盘的属性信息等,例如磁盘包含的各个盘的名称、大小,此外磁盘信息中还可以包含各个盘中所保存数据的目录等信息。本发明不限定磁盘信息的内容。
此外,系统盘指的是虚拟机自带的内部盘,而数据盘指的是虚拟机外部挂载的盘,系统盘和数据盘的个数均可以不止一个。此外,虚拟机也可以不挂载数据盘,这种情况下,则磁盘信息中仅包含系统盘信息。
基于磁盘信息,能够确定系统盘和数据盘的路径,并根据该路径能够准确获取系统盘和数据盘中的数据进行快照处理。
本发明实施例的方法中,在接收到用户发送的快照请求后,对虚拟机的系统盘、数据盘以及内存进行快照操作,得到快照数据。其中,可以通过虚拟机的配置文件的解析,从而获取到虚拟机的磁盘信息,后续会对磁盘信息进行快照,来得到系统盘信息和数据盘信息,其中,数据盘指的是挂在在虚拟机上的外部盘。因此,本发明实施例中所生成的快照能够同时包含系统盘的数据、数据盘的数据以及内存数据,使得后续在虚拟机需要依据快照进行恢复重构时,能够恢复系统盘、数据盘和内存盘中的数据,减少了数据丢失,提高了虚拟机的可靠性。
并且本发明实施例,通过一键操作即可实现虚拟机的完成快照,简单易操作,降低了运维难度和成本。
此外,在前述相关技术中,在生成虚拟机快照时,虚拟机快照只有系统盘数据而没有虚拟机的内存数据,导致在虚拟机故障需要重构时或虚拟机进行回滚时,内存数据会丢失,可靠性低。本申请实施例可以通过快照请求对内存进行快照操作,使得快照数据中能够包含内存快照,后续在虚拟机故障需要重构时或虚拟机进行回滚时,也能够依据内存快照对虚拟机的内存进行恢复,提高了内存数据的可靠性。
并且,相关技术中,在生成虚拟机快照时,不会生成快照链信息,导致无法支持将虚拟机恢复到某一个快照点的回滚操作。
基于此,在一些实施例中,上述S120可以包括:
通过libvirtd中的快照指令(virDomainSnapshot)对系统盘、数据盘以及内存进行快照操作,得到快照链信息以及快照数据。快照数据包括系统盘快照、数据盘快照以及内存快照。
其中,快照链就是多个快照组成的关系链,多个快照按照创建时间排列成链。因此,上述快照链信息包括各个快照数据的生成时间的排序信息,或者,快照链信息也可以包括按照生成时间顺序排列的一组快照数据等。得到快照链信息的目的,是为了使后续能够确定各个快照数据之间的先后顺序,或者使后续确定每个快照数据的准确的生成时间。
后续会将快照链信息和快照数据进行保存,来保证后续虚拟机能够回退到任意快照点。在一个示例中,快照链信息可以存储至镜像服务(Glance)端的数据库中。当需要使用快照链信息时,可以通过API接口向Glance发起请求,Glance响应该请求,在数据库中查询请求所需要的快照链信息。
本发明实施例中,利用libvirtd中的virDomainSnapshot命令执行秒级快照操作,该指令在执行快照操作时,会保存快照数据对应的快照链信息,使得后续在需要进行虚拟机回滚时,能够根据快照链信息确定回滚点对应的快照数据,从而方便后续的回滚操作。此外,上述指令采用的快照方式为内存储快照,即快照数据与原始的文件并没有分离,而是将快照数据写入了原始文件。
此外,需要说明的是,通过快照链可以实现虚拟机的增量式快照。利用增量式快照写入不仅能够便于后续的回滚操作,还会提高快照的写入速率。
在另一些实施例中,上述S110之后,还可以包括:
创建与快照请求对应的快照记录;
根据虚拟机的属性信息创建快照元数据;
将快照元数据上传至快照记录中。
其中,也可以首先创建快照元数据,然后再创建快照记录,创建快照元数据和创建快照记录的先后顺序,本发明不做限定。
相应的,S120之后,还可以包括:
将快照数据上传至与快照记录对应的存储区域。
其中,可以通过Glance中提供的接口来生成快照记录,Driver模块创建快照元数据,并通过Glance接口将虚拟机的快照元数据上传到Glance中。
本实施例中,在接收到快照请求后,即会创建一个快照记录,即快照记录与快照请求是一一对应的,后续将虚拟机的属性信息上传至快照记录,并将快照记录与快照数据进行对应,使得快照请求-快照记录-快照数据构成一一对应的关系。这种情况下,在后续需要进行虚拟机回滚时,使得根据想要回到的回滚点能够确定快照记录,再根据快照记录查找对应的快照数据。从而方便了虚拟机的回滚以及快照数据的查询操作。
在再一些实施例中,该方法还可以包括:
接收用户发送的回退请求;
获取回退请求对应的目标快照记录;
基于快照链信息,在存储区域中查找与目标快照记录对应的目标快照数据;
根据目标快照数据,控制虚拟机回退至目标快照记录对应的状态。
需要注意的是,回退请求对应的目标快照记录以及目标快照数据,需要是在接收到回退请求之前生成的。但是,接收回退请求与接收快照请求之间,并无先后顺序关系。平台在接收到用户发送的请求后,首先判断请求的类型,若请求为快照请求,则执行前述实施例的快照操作,若请求为回退请求,则执行本实施例中的回退操作。
其中,回退请求可以是用户通过前端设备或者客户端发送的请求。回退请求会包含想要回退到的快照点的信息,快照点可以通过时间信息来表示,例如想要回退到x月x号12:00的状态等。或者快照点也可以通过快照次数或者快照记录的编号来表示,例如,想要回退到第一次快照对应的状态,或者想要回退到编号为03的快照记录对应的状态等。由于快照记录与快照请求相对应,故每个快照记录即对应有该快照请求的时间以及快照次数等,因此,每个快照记录即对应一个快照点,通过回退请求中包含的快照点的信息,即能够确定想要回退到的快照点对应的目标快照记录。
此外,上述控制虚拟机回退至目标快照记录对应的状态的,可以是Libvirtd通过snapshot-revert命令控制虚拟机回退到目标快照记录对应的状态。
本实施例中,在接收到回退请求后,基于回退请求能够确定想要想要回退到的快照点对应的目标快照记录,由于快照记录与快照数据相对应设置,因此基于目标快照记录能够查找到对应的目标快照数据,而查找过程中,需要依赖快照链信息。举例来看,目标快照记录对应的是第三次的快照数据,因此,需要依赖快照链信息来找到存储的第三个快照数据。这种情况下,本实施例即能够实现后续的虚拟机的快照回滚操作,从而使得虚拟机能够恢复至之前生成过快照的任意时间点,减少了虚拟机的数据丢失,提高了虚拟机的可靠性和稳定性。
在另一些实施例中,上述接收用户发送的回退请求之后,获取回退请求对应的目标快照记录之前,还可以包括:
检查虚拟机的状态是否满足预设准备状态;
上述获取回退请求对应的目标快照记录,具体可以包括:
在虚拟机的状态满足预设准备状态的情况下,获取回退请求对应的目标快照记录。
其中,这里的检测操作可以是通过Libvirtd Driver模块进行检测,检测的目的是为了确定虚拟机的状态是否能够进行快照回退。检测虚拟机的状态是否满足预设准备状态,可以包括:检查虚拟机是否处于运行状态、检查虚拟机中的各个组件是否存在无法工作的情况等。若虚拟机无法进行快照回退,例如虚拟机未运行,则可以返回错误响应,以使工作人员及时了解并进行处理。
本实施例中,在接收到回退请求之后,首先检查了虚拟机的状态是否符合快照回退的需求,在虚拟机的状态符合回退需求的情况下,才能够执行后续的回退操作。从而避免了虚拟机在状态不合适的情况下,强行进行数据回退导致的数据丢失或者虚拟机故障等情况,提高了虚拟机回退的可靠性和安全性。
在进一步的实施例中,上述S120之后,还可以包括:
将磁盘信息上传至快照记录中。
上述获取回退请求对应的目标快照记录之后,还可以包括:
解析目标快照记录;
在目标快照记录中的磁盘信息包括数据盘信息的情况下,根据目标快照数据中的目标数据盘快照数据,将虚拟机的数据盘中的数据回退为目标数据盘快照数据。
在本实施例中,会将磁盘信息上传至快照记录中,使得在进行虚拟机回退时,首先解析目标快照记录中包含的磁盘信息,确定需要对数据盘进行回退,即若磁盘信息中包含数据盘信息,则需要对数据盘进行回退。这种方式,使得在虚拟机进行回退时,除了虚拟机的系统盘以及内存的状态进行回退之外,还能够将挂载至虚拟机上的数据盘回退至同一时间点,从而保证虚拟机状态的一致性。
在又一些实施例中,在S110之后,还可以包括:
响应于快照请求,获取用户的用户信息;
查询用户信息对应的操作权限;
在操作权限包括快照请求对应的快照权限的情况下,触发S120。
本实施例中,在接收到快照请求后,会从快照请求中获取用户信息,并查询该用户的操作权限,若该操作权限包括快照权限的情况下,才能够进行后续的快照操作。若用户的操作权限不包含快照权限,则直接返回错误响应给客户端。客户端接收到错误响应之后,用户即能够了解自身不具备快照权限。这种方式为不同的用户设置了不同的操作权限,只有拥有操作权限的用户才能对虚拟机进行快照操作,从而降低虚拟机的数据被非法用户获取的可能,提高了虚拟机数据的安全性。
在另一些实施例中,在操作权限包括快照请求对应的快照权限的情况下,S120之前,还可以包括:
获取快照请求中的变量参数;
将变量参数与应用程序接口的接口规范进行比对;
在变量参数符合接口规范的情况下,触发S120。
本实施例中,在用户权限符合快照权限的情况下,会获取快照请求中的变量参数与API的接口规范进行对比,判断是否有异常的变量参数,如果有则直接返回错误给客户端,表示当前的快照请求不够规范。若不存在异常的变量参数,则表示可以进行后续的快照操作。从而提高了快照请求的规范性,避免非法的快照请求对虚拟机执行快照操作的情况,提高了虚拟机快照的安全性。
在又一些实施例中,在接收到用户的回退请求之后,获取回退请求对应的目标快照记录之前,还可以包括:
响应于回退请求,获取用户的用户信息;
查询用户信息对应的操作权限;
在操作权限包括回退请求对应的回退权限的情况下,获取回退请求对应的目标快照记录。
本实施例中,在接收到回退请求后,会从回退请求中获取用户信息,并查询该用户的操作权限,若该操作权限包括回退权限的情况下,才能够进行后续的回退操作。若用户的操作权限不包含回退权限,则直接返回错误响应给客户端。客户端接收到错误响应之后,用户即能够了解自身不具备回退权限。这种方式为不同的用户设置了不同的操作权限,只有拥有操作权限的用户才能对虚拟机进行回退操作,从而降低虚拟机的数据被非法用户获取的可能,提高了虚拟机数据的安全性。
在另一些实施例中,在操作权限包括回退请求对应的回退权限的情况下,获取回退请求对应的目标快照记录之前,还可以包括:
获取回退请求中的变量参数;
将变量参数与应用程序接口的接口规范进行比对;
在变量参数符合接口规范的情况下,获取回退请求对应的目标快照记录。
本实施例中,在用户权限符合快照权限的情况下,会获取快照请求中的变量参数与应用程序接口的接口规范进行对比,判断是否有异常的变量参数,如果有则直接返回错误给客户端,表示当前的快照请求不够规范。若不存在异常的变量参数,则表示可以进行后续的快照操作。从而提高了快照请求的规范性,避免非法的快照请求对虚拟机执行快照操作的情况,提高了虚拟机快照的安全性。
在其他一些实施例中,上述创建与快照请求对应的快照记录之后,根据虚拟机的属性信息创建快照元数据之前,还可以包括:
将数据库中虚拟机的任务状态更新为镜像快照准备状态‘image_snapshot_pending’。
上述根据虚拟机的属性信息创建快照元数据之后,还可以包括:
将数据库中虚拟机的任务状态更新为镜像快照状态‘image_snapshot’。
得到快照数据之后,还包括:
将数据库中虚拟机的任务状态更新为完成状态‘None’。
本实施例中,在快照过程中,实时对虚拟机的任务状态进行更新,在将虚拟机的任务状态更新为图像快照状态后,即能给避免其他操作对虚拟机的后续快照操作造成干扰。后续在完成快照后,将任务状态更新为完成状态,使得后续能够对虚拟机执行其他操作。
为了便于理解本申请实施例提供的快照生成方法,图2是本申请实施例提供了一种示例性的快照生成方法的流程示意图。如图2所示,快照生成方法包括:
S201,API接收到用户的快照请求;
S202,API响应该快照请求,调用Glance接口创建对应于快照请求的快照记录。
S203,API通过调用RPC cast snapshot接口,将快照请求发送至相应的计算节点(Nova Compute)上的虚拟机。
S204,计算节点通过snapshot接口调用Driver模块;
S205,Driver模块通过调用底层Libvirt模块创建快照元数据。
S206,Driver模块通过Glance接口将快照元数据上传快照记录。
通过本实施例中多端协同作用,可以对虚拟机的系统盘、数据盘以及内存进行快照操作,使得后续在虚拟机需要依据快照进行恢复重构时,能够恢复系统盘、数据盘和内存盘中的数据,减少了数据丢失,提高了虚拟机的可靠性。
为了便于理解本申请实施例提供的回退方法,图3是本申请实施例提供了一种示例性的回退方法的流程示意图。如图3所示,回退方法包括S301至S306。
S301,API接收到用户的回退请求;
S302,API响应该回退请求,调用Glance接口创建对应于回退请求的快照记录。
S303,API通过调用RPC cast revert接口,将回退请求发送至相应的计算节点(Nova Compute)上的虚拟机。
S304,计算节点通过revert接口调用Driver模块;
S305,Driver模块通过调用底层Libvirt模块执行虚拟机回退操作。
S306,Driver模块通过Glance接口将快照元数据上传快照记录。
通过本实施例中多端协同作用,能够恢复系统盘、数据盘和内存盘中的数据,减少了数据丢失,提高了虚拟机的可靠性。
为方便理解,以下为本发明实施例的一种具体实现方式。该实施例包括以下步骤。
S402,API接收到用户的快照/回退请求后,对快照/回退请求的变量参数和用户权限进行校验;
S404,在校验通过的情况下,判断该快照/回退请求为快照请求还是回退请求;若为快照请求,触发S206;若为回退请求,触发S220。
S406,调用Glance接口创建对应于该快照请求的快照记录。
S408,通过RPC cast的方式调用Conductor更新数据库中虚拟机的任务状态为镜像快照准备状态’image_snap_pending’。
S410,通过RPC cast调用接口snapshot_instance将快照请求发送至相应的计算节点上的虚拟机。
S412,在计算节点上调用Libvirtd Driver模块,Driver创建快照元数据,通过Glance接口将快照元数据上传快照记录。
S414,通过RPC cast调用Conductor更新数据库中虚拟机的任务状态为镜像快照状态‘image_snapshot’;
S416,Driver调用Libvirtd指令执行前述S120-S130的快照操作,得到并保存快照链信息以及快照数据。
S418,更新数据库中虚拟机的任务状态为完成状态None。
S420,通过RPC cast调用接口snapshot_instance将回退请求发送至相应的计算节点上的虚拟机。
S422,在计算节点上调用Libvirtd Driver模块,Driver检查虚拟机的状态是否满足预设准备状态。
S424,在虚拟机的状态满足预设准备状态的情况下,Driver调用Libvirtd指令执行前述实施例中的虚拟机回退操作。
基于前述方法实施例,本发明实施例还提供了一种虚拟机快照生成装置,参见图4,图4示出了本发明一个实施例提供的虚拟机快照生成装置的结构示意图;该装置包括:
快照请求接收模块410,用于接收用户发送的快照请求;
快照模块430,用于响应于所述快照请求,对虚拟机的系统盘、数据盘以及内存进行快照操作,得到快照数据,所述快照数据包括系统盘快照数据、数据盘快照数据以及内存快照数据;
其中,针对所述系统盘和数据盘的快照操作是基于所述虚拟机的磁盘信息进行的,所述磁盘信息是通过解析所述虚拟机的配置文件获取的系统盘信息以及数据盘信息。
本发明实施例的装置中,在接收到用户发送的快照请求后,对虚拟机的系统盘、数据盘以及内存进行快照操作,得到快照数据。其中,可以通过虚拟机的配置文件的解析,从而获取到虚拟机的磁盘信息,后续会对磁盘信息进行快照,来得到系统盘信息和数据盘信息,其中,数据盘指的是挂在在虚拟机上的外部盘。因此,本发明实施例中所生成的快照能够同时包含系统盘的数据、数据盘的数据以及内存数据,使得后续在虚拟机需要依据快照进行恢复重构时,能够恢复系统盘、数据盘和内存盘中的数据,减少了数据丢失,提高了虚拟机的可靠性。
在一些实施例中,上述快照模块330可以用于:
通过虚拟机管理组件中的快照指令对系统盘、数据盘以及内存进行快照操作,得到快照链信息以及快照数据;快照链信息包括快照数据的生成时间的排序信息。
本发明实施例中,利用libvirtd中的virDomainSnapshot命令执行秒级快照操作,该指令在执行快照操作时,会保存快照数据对应的快照链信息,使得后续在需要进行虚拟机回滚时,能够根据快照链信息确定回滚点对应的快照数据,从而方便后续的回滚操作。此外,该指令还会自动对内存进行快照操作,使得快照数据中能够包含内存快照,后续在虚拟机故障需要重构时或虚拟机进行回滚时,也能够依据内存快照对虚拟机的内存进行恢复,提高了内存数据的可靠性。此外,上述指令采用的快照方式为内存储快照,即快照数据与原始的文件并没有分离,而是将快照数据写入了原始文件。
在另一些实施例中,该装置还可以包括:
记录创建模块,用于创建与快照请求对应的快照记录;
元数据创建模块,用于根据虚拟机的属性信息创建快照元数据;
元数据上传模块,用于将快照元数据上传至快照记录中;
快照上传模块,用于将快照数据上传至与快照记录对应的存储区域。
本实施例中,在接收到快照请求后,即会创建一个快照记录,即快照记录与快照请求是一一对应的,后续将虚拟机的属性信息上传至快照记录,并将快照记录与快照数据进行对应,使得快照请求-快照记录-快照数据构成一一对应的关系。这种情况下,在后续需要进行虚拟机回滚时,使得根据想要回到的回滚点能够确定快照记录,再根据快照记录查找对应的快照数据。从而方便了虚拟机的回滚以及快照数据的查询操作。
在再一些实施例中,上述装置还可以包括:
回退请求接收模块,用于接收用户发送的回退请求;
记录获取模块,用于获取回退请求对应的目标快照记录;
快照获取模块,用于基于快照链信息,在存储区域中查找与目标快照记录对应的目标快照数据;
回退模块,用于根据目标快照数据,控制虚拟机回退至目标快照记录对应的状态。
本实施例中,在接收到回退请求后,基于回退请求能够确定想要想要回退到的快照点对应的目标快照记录,由于快照记录与快照数据相对应设置,因此基于目标快照记录能够查找到对应的目标快照数据,而查找过程中,需要依赖快照链信息。举例来看,目标快照记录对应的是第三次的快照数据,因此,需要依赖快照链信息来找到存储的第三个快照数据。这种情况下,本实施例即能够实现后续的虚拟机的快照回滚操作,从而使得虚拟机能够恢复至之前生成过快照的任意时间点,减少了虚拟机的数据丢失,提高了虚拟机的可靠性和稳定性。
在另一些实施例中,上述装置还可以包括:
状态检查模块,用于检查虚拟机的状态是否满足预设准备状态;
上述记录获取模块可以用于:
在虚拟机的状态满足预设准备状态的情况下,获取回退请求对应的目标快照记录。
本实施例中,在接收到回退请求之后,首先检查了虚拟机的状态是否符合快照回退的需求,在虚拟机的状态符合回退需求的情况下,才能够执行后续的回退操作。从而避免了虚拟机在状态不合适的情况下,强行进行数据回退导致的数据丢失或者虚拟机故障等情况,提高了虚拟机回退的可靠性和安全性。
在另一些实施例中,上述装置还可以包括:
磁盘信息上传模块,用于将磁盘信息上传至快照记录中;
记录解析模块,用于解析目标快照记录;
数据盘回退模块,用于在目标快照记录中的磁盘信息包括数据盘信息的情况下,根据目标快照数据中的目标数据盘快照数据,将虚拟机的数据盘中的数据回退为目标数据盘快照数据。
在本实施例中,会将磁盘信息上传至快照记录中,使得在进行虚拟机回退时,首先解析目标快照记录中包含的磁盘信息,确定需要对数据盘进行回退,即若磁盘信息中包含数据盘信息,则需要对数据盘进行回退。这种方式,使得在虚拟机进行回退时,除了虚拟机的系统盘以及内存的状态进行回退之外,还能够将挂载至虚拟机上的数据盘回退至同一时间点,从而保证虚拟机状态的一致性。
在又一些实施例中,上述装置还可以包括:
第一用户信息获取模块,用于响应于快照请求,获取用户的用户信息;
第一权限查询模块,用于查询用户信息对应的操作权限,在操作权限包括快照请求对应的快照权限的情况下,触发上述文件解析模块320。
本实施例中,在接收到快照请求后,会从快照请求中获取用户信息,并查询该用户的操作权限,若该操作权限包括快照权限的情况下,才能够进行后续的快照操作。若用户的操作权限不包含快照权限,则直接返回错误响应给客户端。客户端接收到错误响应之后,用户即能够了解自身不具备快照权限。这种方式为不同的用户设置了不同的操作权限,只有拥有操作权限的用户才能对虚拟机进行快照操作,从而降低虚拟机的数据被非法用户获取的可能,提高了虚拟机数据的安全性。
在另一些实施例中,在操作权限包括快照请求对应的快照权限的情况下,上述装置还可以包括:
第一参数获取模块,用于获取快照请求中的变量参数;
第一参数比对模块,用于将变量参数与应用程序接口的接口规范进行比对;在变量参数符合接口规范的情况下,触发上述文件解析模块320。
本实施例中,在用户权限符合快照权限的情况下,会获取快照请求中的变量参数与API的接口规范进行对比,判断是否有异常的变量参数,如果有则直接返回错误给客户端,表示当前的快照请求不够规范。若不存在异常的变量参数,则表示可以进行后续的快照操作。从而提高了快照请求的规范性,避免非法的快照请求对虚拟机执行快照操作的情况,提高了虚拟机快照的安全性。
在又一些实施例中,上述装置还可以包括:
第二用户信息获取模块,用于响应于回退请求,获取用户的用户信息;
第二权限查询模块,用于查询用户信息对应的操作权限;在操作权限包括回退请求对应的回退权限的情况下,触发上述记录获取模块。
本实施例中,在接收到回退请求后,会从回退请求中获取用户信息,并查询该用户的操作权限,若该操作权限包括回退权限的情况下,才能够进行后续的回退操作。若用户的操作权限不包含回退权限,则直接返回错误响应给客户端。客户端接收到错误响应之后,用户即能够了解自身不具备回退权限。这种方式为不同的用户设置了不同的操作权限,只有拥有操作权限的用户才能对虚拟机进行回退操作,从而降低虚拟机的数据被非法用户获取的可能,提高了虚拟机数据的安全性。
在另一些实施例中,在操作权限包括回退请求对应的回退权限的情况下,上述装置还可以包括:
第二参数获取模块,用于获取回退请求中的变量参数;
第二参数比对模块,用于将变量参数与应用程序接口的接口规范进行比对;在变量参数符合接口规范的情况下,触发上述记录获取模块。
本实施例中,在用户权限符合快照权限的情况下,会获取快照请求中的变量参数与应用程序接口的接口规范进行对比,判断是否有异常的变量参数,如果有则直接返回错误给客户端,表示当前的快照请求不够规范。若不存在异常的变量参数,则表示可以进行后续的快照操作。从而提高了快照请求的规范性,避免非法的快照请求对虚拟机执行快照操作的情况,提高了虚拟机快照的安全性。
在又一些实施例中,上述装置还可以包括:
第一状态更新模块,用于将数据库中虚拟机的任务状态更新为图像快照准备状态;
第二状态更新模块,用于将数据库中虚拟机的任务状态更新为图像快照状态;
第三状态更新模块,用于将数据库中虚拟机的任务状态更新为完成状态。
本实施例中,在快照过程中,实时对虚拟机的任务状态进行更新,在将虚拟机的任务状态更新为图像快照状态后,即能给避免其他操作对虚拟机的后续快照操作造成干扰。后续在完成快照后,将任务状态更新为完成状态,使得后续能够对虚拟机执行其他操作。
图5示出了本发明实施例提供的电子设备的硬件结构示意图。
在电子设备可以包括处理器501以及存储有计算机程序指令的存储器502。处理器501通过读取并执行存储器502中存储的计算机程序指令,以实现上述实施例中的任意一种虚拟机快照生成方法。
具体地,上述处理器501可以包括中央处理器(CPU),或者特定集成电路(Application Specific Integrated Circuit,ASIC),或者可以被配置成实施本发明实施例的一个或多个集成电路。
存储器502可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器502可包括硬盘驱动器(Hard Disk Drive,HDD)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(Universal Serial Bus,USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器502可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器502可在综合网关容灾设备的内部或外部。在特定实施例中,存储器502是非易失性固态存储器。在特定实施例中,存储器502包括只读存储器(ROM)。在合适的情况下,该ROM可以是掩模编程的ROM、可编程ROM(PROM)、可擦除PROM(EPROM)、电可擦除PROM(EEPROM)、电可改写ROM(EAROM)或闪存或者两个或更多个以上这些的组合。
在一个示例中,电子设备还可包括通信接口503和总线510。其中,如图3所示,处理器501、存储器502、通信接口503通过总线510连接并完成相互间的通信。
通信接口503,主要用于实现本发明实施例中各模块、装置、单元和/或设备之间的通信。
总线510包括硬件、软件或两者,将在线数据流量计费设备的部件彼此耦接在一起。举例来说而非限制,总线可包括加速图形端口(AGP)或其他图形总线、增强工业标准架构(EISA)总线、前端总线(FSB)、超传输(HT)互连、工业标准架构(ISA)总线、无限带宽互连、低引脚数(LPC)总线、存储器总线、微信道架构(MCA)总线、外围组件互连(PCI)总线、PCI-Express(PCI-X)总线、串行高级技术附件(SATA)总线、视频电子标准协会局部(VLB)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线510可包括一个或多个总线。尽管本发明实施例描述和示出了特定的总线,但本发明考虑任何合适的总线或互连。
另外,结合上述实施例中的虚拟机快照生成方法,本发明实施例可提供一种计算机存储介质来实现。该计算机存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现上述实施例中的任意一种虚拟机快照生成方法。
以上所述的结构框图中所示的功能块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(ASIC)、适当的固件、插件、功能卡等等。当以软件方式实现时,本发明的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、ROM、闪存、可擦除ROM(EROM)、软盘、CD-ROM、光盘、硬盘、光纤介质、射频(RF)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。
还需要说明的是,本发明中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或系统。但是,本发明不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。
以上所述,仅为本发明的具体实施方式,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。应理解,本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。
Claims (12)
1.一种虚拟机快照生成方法,其特征在于,包括:
接收用户发送的快照请求;
响应于所述快照请求,对虚拟机的系统盘、数据盘以及内存进行快照操作,得到快照数据,所述快照数据包括系统盘快照数据、数据盘快照数据以及内存快照数据;
其中,针对所述系统盘和数据盘的快照操作是基于所述虚拟机的磁盘信息进行的,所述磁盘信息是通过解析所述虚拟机的配置文件获取的系统盘信息以及数据盘信息。
2.根据权利要求1所述的方法,其特征在于,所述对虚拟机的系统盘、数据盘以及内存进行快照操作,得到快照数据,包括:
通过虚拟机管理组件中的快照指令对所述系统盘、所述数据盘以及所述内存进行快照操作,得到快照链信息以及所述快照数据;所述快照链信息包括所述快照数据的生成时间的排序信息。
3.根据权利要求2所述的方法,其特征在于,所述接收用户发送的快照请求之后,还包括:
创建与所述快照请求对应的快照记录;
根据所述虚拟机的属性信息创建快照元数据;
将所述快照元数据上传至所述快照记录中;
所述得到快照数据之后,还包括:
将所述快照数据上传至与所述快照记录对应的存储区域。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
接收用户发送的回退请求;
获取所述回退请求对应的目标快照记录;
基于所述快照链信息,在所述存储区域中查找与所述目标快照记录对应的目标快照数据;
根据所述目标快照数据,控制所述虚拟机回退至所述目标快照记录对应的状态。
5.根据权利要求4所述的方法,其特征在于,所述获取所述虚拟机的磁盘信息之后,还包括:
将所述磁盘信息上传至所述快照记录中;
所述获取所述回退请求对应的目标快照记录之后,还包括:
解析所述目标快照记录;
在所述目标快照记录中的磁盘信息包括数据盘信息的情况下,根据所述目标快照数据中的目标数据盘快照数据,将所述虚拟机的数据盘中的数据回退为所述目标数据盘快照数据。
6.根据权利要求4或5所述的方法,其特征在于,所述接收用户发送的回退请求之后,获取所述回退请求对应的目标快照记录之前,还包括:
检查所述虚拟机的状态是否满足预设准备状态;
所述获取所述回退请求对应的目标快照记录,包括:
在所述虚拟机的状态满足所述预设准备状态的情况下,获取所述回退请求对应的目标快照记录。
7.根据权利要求1-5任一项所述的方法,其特征在于,所述接收用户发送的快照请求之后,还包括:
响应于所述快照请求,获取所述用户的用户信息;
查询所述用户信息对应的操作权限;
所述解析所述虚拟机的配置文件,包括:
在所述操作权限包括所述快照请求对应的快照权限的情况下,解析所述虚拟机的配置文件。
8.根据权利要求7所述的方法,其特征在于,在所述操作权限包括所述快照请求对应的快照权限的情况下,所述解析所述虚拟机的配置文件之前,还包括:
获取所述快照请求中的变量参数;
将所述变量参数与应用程序接口的接口规范进行比对;
所述解析所述虚拟机的配置文件,包括:
在所述变量参数符合所述接口规范的情况下,解析所述虚拟机的配置文件。
9.根据权利要求3所述的方法,其特征在于,所述创建与所述快照请求对应的快照记录之后,根据虚拟机的属性信息创建快照元数据之前,还包括:
将数据库中所述虚拟机的任务状态更新为图像快照准备状态;
所述根据虚拟机的属性信息创建快照元数据之后,还包括:
将所述数据库中所述虚拟机的任务状态更新为图像快照状态;
所述得到快照数据之后,还包括:
将所述数据库中所述虚拟机的任务状态更新为完成状态。
10.一种虚拟机快照生成装置,其特征在于,包括:
快照请求接收模块,用于接收用户发送的快照请求;
快照模块,用于响应于所述快照请求,对虚拟机的系统盘、数据盘以及内存进行快照操作,得到快照数据,所述快照数据包括系统盘快照数据、数据盘快照数据以及内存快照数据;
其中,针对所述系统盘和数据盘的快照操作是基于所述虚拟机的磁盘信息进行的,所述磁盘信息是通过解析所述虚拟机的配置文件获取的系统盘信息以及数据盘信息。
11.一种电子设备,其特征在于,所述设备包括:处理器以及存储有计算机程序指令的存储器;
所述处理器执行所述计算机程序指令时实现如权利要求1-9中任意一项所述的虚拟机快照生成方法。
12.一种计算机存储介质,其特征在于,所述计算机存储介质上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现如权利要求1-9中任意一项所述的虚拟机快照生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011602157.3A CN112698913A (zh) | 2020-12-29 | 2020-12-29 | 虚拟机快照生成方法、装置、电子设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011602157.3A CN112698913A (zh) | 2020-12-29 | 2020-12-29 | 虚拟机快照生成方法、装置、电子设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112698913A true CN112698913A (zh) | 2021-04-23 |
Family
ID=75512161
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011602157.3A Pending CN112698913A (zh) | 2020-12-29 | 2020-12-29 | 虚拟机快照生成方法、装置、电子设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112698913A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109558213A (zh) * | 2018-11-30 | 2019-04-02 | 郑州云海信息技术有限公司 | 管理OpenStack平台的虚拟机快照的方法和装置 |
CN110196755A (zh) * | 2019-05-07 | 2019-09-03 | 腾讯科技(深圳)有限公司 | 一种虚拟机快照管理方法、装置、服务器及存储介质 |
CN110737510A (zh) * | 2019-10-23 | 2020-01-31 | 北京百度网讯科技有限公司 | 块设备管理系统 |
CN110879742A (zh) * | 2019-10-15 | 2020-03-13 | 平安科技(深圳)有限公司 | 虚拟机异步创建内部快照方法、装置及存储介质 |
CN111158959A (zh) * | 2019-12-31 | 2020-05-15 | 广州鼎甲计算机科技有限公司 | 虚拟机备份方法和装置以及虚拟机恢复方法和装置 |
-
2020
- 2020-12-29 CN CN202011602157.3A patent/CN112698913A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109558213A (zh) * | 2018-11-30 | 2019-04-02 | 郑州云海信息技术有限公司 | 管理OpenStack平台的虚拟机快照的方法和装置 |
CN110196755A (zh) * | 2019-05-07 | 2019-09-03 | 腾讯科技(深圳)有限公司 | 一种虚拟机快照管理方法、装置、服务器及存储介质 |
CN110879742A (zh) * | 2019-10-15 | 2020-03-13 | 平安科技(深圳)有限公司 | 虚拟机异步创建内部快照方法、装置及存储介质 |
CN110737510A (zh) * | 2019-10-23 | 2020-01-31 | 北京百度网讯科技有限公司 | 块设备管理系统 |
CN111158959A (zh) * | 2019-12-31 | 2020-05-15 | 广州鼎甲计算机科技有限公司 | 虚拟机备份方法和装置以及虚拟机恢复方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10579453B2 (en) | Stream-processing data | |
EP3474143B1 (en) | Method and apparatus for incremental recovery of data | |
CN106055976B (zh) | 文件检测方法及沙箱控制器 | |
CN109815697B (zh) | 误报行为处理方法及装置 | |
CN105743732B (zh) | 一种记录局域网文件传输路径和分布情况的方法及系统 | |
CN111258850B (zh) | 一种基于Linux系统的更新软件信息的方法及装置 | |
CN112953753B (zh) | 一种数据采集方法、装置、终端设备及存储介质 | |
CN114237498B (zh) | 一种云原生存储数据卷的快照生成方法与系统 | |
CN111444043A (zh) | 数据备份方法、装置、节点、系统及介质 | |
CN113438292A (zh) | 一种基于自动化运维工具的代理部署方法及装置 | |
CN112286559A (zh) | 一种车载智能终端的升级方法及装置 | |
CN112698913A (zh) | 虚拟机快照生成方法、装置、电子设备及介质 | |
CN114679295B (zh) | 防火墙安全配置方法及装置 | |
CN112579330A (zh) | 操作系统异常数据的处理方法、装置及设备 | |
CN111324295A (zh) | 数据迁移的方法、装置、设备及介质 | |
CN111427736A (zh) | 日志监控方法、装置、设备及计算机可读存储介质 | |
CN112286733B (zh) | 备份数据恢复时间确定方法、装置、设备及存储介质 | |
CN114238990A (zh) | 一种分布式漏洞扫描方法及k8s分布式系统 | |
CN110647771B (zh) | 一种mysql数据库存储完整性校验保护方法及装置 | |
CN114186278A (zh) | 数据库异常操作识别方法、装置与电子设备 | |
CN105511848A (zh) | 一种动态链接库的检测方法和装置 | |
CN114817868B (zh) | 许可证校验方法、装置、设备及存储介质 | |
CN117742737A (zh) | Redis集群部署和运维方法、装置、系统、设备 | |
CN115460271B (zh) | 一种基于边缘计算的网络控制方法及装置、存储介质 | |
CN112165512B (zh) | 一种文件发布方法、装置、终端设备及存储介质 |
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 |