管理OpenStack平台的虚拟机快照的方法和装置与流程

文档序号:17287448发布日期:2019-04-03 03:40阅读:499来源:国知局
管理OpenStack平台的虚拟机快照的方法和装置与流程

本申请涉及云计算领域,尤指一种管理openstack平台的虚拟机快照的方法和装置。



背景技术:

openstack作为开源的云计算管理平台,在很多实际项目中都有了实际应用,openstack平台对虚拟机快照由用于实现镜像服务的glance服务项目来管理,glance服务项目创建和恢复快照,由于glance服务项目无法保存快照链,且无法创建多个快照分支,在对云主机快照功能上并不完善,无法实现对云主机快照的更完善的管理。同时,将为虚拟机创建的快照保存至glance服务项目的存储后端创建耗时较长;此外,当快照数量较多时,会额外占用glance服务项目的存储后端较大的存储空间。



技术实现要素:

为了解决上述技术问题,本申请提供了一种管理openstack平台的虚拟机快照的方法和装置,能够保存快照链和多个快照分支,创建快照耗时短且占用glance服务项目的存储后端的存储空间少。

为了达到本申请的目的,本发明实施例提供了一种管理openstack平台的虚拟机快照的方法,该方法包括:

在接收到为openstack平台虚拟机的系统盘和数据盘创建快照的请求的时候,在虚拟机的系统盘所在的存储后端中创建虚拟机的系统盘的快照,并且在云硬盘中创建虚拟机的数据盘的快照;

在数据库中记录虚拟机的系统盘的快照以及数据盘的快照的属性信息。

进一步地,在一个可选的实施例中,在虚拟机的系统盘所在的存储后端中创建虚拟机的系统盘的快照的步骤包括:

判断虚拟机的系统盘所在的存储后端是openstack平台的云硬盘还是虚拟机的宿主机的本地硬盘:

如果虚拟机的系统盘所在的存储后端是openstack平台的云硬盘,则在云硬盘中创建系统盘的快照;

如果虚拟机的系统盘所在的存储后端是虚拟机的宿主机的本地硬盘,则在宿主机的本地硬盘中创建系统盘的快照。

进一步地,在一个可选的实施例中,该方法还包括:

如果虚拟机的系统盘所在的存储后端是openstack平台的云硬盘,则在openstack平台的云硬盘中创建虚拟机的内存数据的快照;

如果虚拟机的系统盘所在的存储后端是虚拟机的宿主机的本地硬盘,则在虚拟机的宿主机的本地硬盘中创建虚拟机的内存数据的快照;

在数据库中记录虚拟机的内存数据的快照的属性信息。

进一步地,在一个可选的实施例中,该方法还包括:

在接收到采用虚拟机的快照恢复虚拟机的操作请求的时候,判断恢复虚拟机的操作请求之中的为虚拟机创建的快照的属性信息与在数据库中记录的为虚拟机创建的快照的属性信息是否匹配:

如果恢复虚拟机的操作请求之中的为虚拟机创建的快照的属性信息与在数据库中记录的为虚拟机创建的快照的属性信息匹配,则采用根据数据库中的为虚拟机创建的快照的属性信息查找到的为虚拟机创建的快照来恢复虚拟机。

进一步地,在一个可选的实施例中,在采用根据数据库中的为虚拟机创建的快照的属性信息查找到的为虚拟机创建的快照来恢复虚拟机的步骤之前,方法还包括:

判断是否为虚拟机创建当前状态下的快照:

如果接收到为虚拟机创建当前状态下的快照的指令的时候,则为虚拟机创建当前状态下的快照。

为了达到本申请的目的,本发明实施例提供了一种管理openstack平台的虚拟机快照的装置,该装置包括存储器和处理器,

存储器,用于存储计算机可读指令;

处理器,用于执行计算机可读指令,以执行如下操作:

在接收到为openstack平台虚拟机的系统盘和数据盘创建快照的请求的时候,在虚拟机的系统盘所在的存储后端中创建虚拟机的系统盘的快照,并且在云硬盘中创建虚拟机的数据盘的快照;

在数据库中记录虚拟机的系统盘的快照以及数据盘的快照的属性信息。

进一步地,在一个可选的实施例中,在虚拟机的系统盘所在的存储后端中创建虚拟机的系统盘的快照的操作包括:

判断虚拟机的系统盘所在的存储后端是openstack平台的云硬盘还是虚拟机的宿主机的本地硬盘:

如果虚拟机的系统盘所在的存储后端是openstack平台的云硬盘,则在云硬盘中创建系统盘的快照;

如果虚拟机的系统盘所在的存储后端是虚拟机的宿主机的本地硬盘,则在宿主机的本地硬盘中创建系统盘的快照。

进一步地,在一个可选的实施例中,处理器还用于执行下列操作:

如果虚拟机的系统盘所在的存储后端是openstack平台的云硬盘,则在openstack平台的云硬盘中创建虚拟机的内存数据的快照;

如果虚拟机的系统盘所在的存储后端是虚拟机的宿主机的本地硬盘,则在虚拟机的宿主机的本地硬盘中创建虚拟机的内存数据的快照;

在数据库中记录虚拟机的内存数据的快照的属性信息。

进一步地,在一个可选的实施例中,处理器还用于执行下列操作:

在接收到采用虚拟机的快照恢复虚拟机的操作请求的时候,判断恢复虚拟机的操作请求之中的为虚拟机创建的快照的属性信息与在数据库中记录的为虚拟机创建的快照的属性信息是否匹配:

如果恢复虚拟机的操作请求之中的为虚拟机创建的快照的属性信息与在数据库中记录的为虚拟机创建的快照的属性信息匹配,则采用根据数据库中的为虚拟机创建的快照的属性信息查找到的为虚拟机创建的快照来恢复虚拟机。

进一步地,在一个可选的实施例中,在采用根据数据库中的为虚拟机创建的快照的属性信息查找到的为虚拟机创建的快照来恢复虚拟机的操作之前,处理器还用于执行下列操作:

判断是否为虚拟机创建当前状态下的快照:

如果接收到为虚拟机创建当前状态下的快照的指令的时候,则为虚拟机创建当前状态下的快照。

本发明实施例的有益效果在于,在虚拟机的系统盘所在的存储后端中创建系统盘的快照,并且在云硬盘中创建数据盘的快照,可以减少glance服务项目的数据压力,占用glance服务项目的存储后端更少的存储空间;由于在数据库中记录快照的属性信息,因此方便根据快照链而采用快照恢复虚拟机。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

附图说明

附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。

图1为本发明实施例提供的管理openstack平台的虚拟机快照的方法的流程图;

图2为本发明实施例提供的管理openstack平台的虚拟机快照的装置的框图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。

在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

为了解决上述问题,一方面,本发明实施例提供了一种管理openstack平台的虚拟机快照的方法,如图1所示,该方法包括步骤s101-步骤s103。

虚拟机指的是通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。因此,虚拟机有其自身使用的系统盘和数据盘。

在步骤s101中,在接收到为openstack平台虚拟机的系统盘和数据盘创建快照的请求的时候,在虚拟机的系统盘所在的存储后端中创建虚拟机的系统盘的快照,并且在云硬盘中创建虚拟机的数据盘的快照。

本发明实施例中,虚拟机的系统盘和数据盘并非是采用glance服务项目以镜像的方式创建的,而是在虚拟机的系统盘所在的存储后端中创建虚拟机的系统盘的快照,并且在openstack平台的远端云硬盘中创建虚拟机的数据盘的快照。在一个可选的实施例中,为虚拟机的系统盘创建快照是由openstack环境中的nova服务项目实现的。nova服务项目根据虚拟机的系统盘所在的位置,为其创建快照。

在为虚拟机的系统盘创建快照的时候,首先判断虚拟机的系统盘所在的存储后端是openstack平台的云硬盘还是虚拟机的宿主机的本地硬盘:

如果虚拟机的系统盘所在的存储后端是openstack平台的云硬盘,则在云硬盘中创建系统盘的快照;

如果虚拟机的系统盘所在的存储后端是虚拟机的宿主机的本地硬盘,则在宿主机的本地硬盘中创建系统盘的快照。

这里所说的虚拟机的宿主机指的是用于运行虚拟机的本地的计算机主机,云硬盘是openstack平台中的一块单独的存储空间,其可以由openstack平台中的各个计算机主机(也就是用于运行虚拟机的本地的宿主机)共享使用。

此外,在为虚拟机的数据盘创建快照时,是使用cinder服务项目在云硬盘中创建虚拟机的数据盘的快照。用于运行cinder服务项目的云硬盘均具有高性能,能够有大的ipos和吞吐量。

由上可知,在本发明实施例提出的上述方案中,并非是在glance服务项目的存储后端中创建虚拟机的快照,而是根据虚拟机的系统盘所在的位置去创建系统盘的快照,并且在远端的云硬盘中创建数据盘的快照,因此,可以减轻glance服务项目的数据压力,在一定程度上将数据压力转移到高性能的云硬盘中,因此可以以较短的时间创建快照,并且能够减少创建的快照所占用的glance服务项目的存储后端的存储空间。

步骤s103,在数据库中记录虚拟机的系统盘的快照以及数据盘的快照的属性信息。

将系统盘的快照的属性信息以及数据盘的快照的属性信息(包括磁盘中的索引地址、创建快照的时间以及快照文件的特征码等)记录到数据库中,可以使得在创建了多个时间点的快照的时候,能够将每个时间点的快照作为一个快照分支,按照在数据库中的多个快照形成的快照链,可以将虚拟机快速恢复到快照链中的一个点的虚拟机状态。

本发明实施例的有益效果在于,在虚拟机的系统盘所在的存储后端中创建系统盘的快照,并且在云硬盘中创建数据盘的快照,可以减少glance服务项目的数据压力,占用glance服务项目的存储后端更少的存储空间;由于在数据库中记录快照的属性信息,因此方便根据快照链而采用快照恢复虚拟机。

此外,为了更全面地备份虚拟机的状态数据,在一个可选的实施例中,本发明实施例还包括:

判断虚拟机的系统盘所在的存储后端是openstack平台的云硬盘还是虚拟机的宿主机的本地硬盘:

如果虚拟机的系统盘所在的存储后端是openstack平台的云硬盘,则在云硬盘中创建系统盘的快照;

如果虚拟机的系统盘所在的存储后端是虚拟机的宿主机的本地硬盘,则在宿主机的本地硬盘中创建系统盘的快照。

在一个可选的实施例中,在本发明实施例的上述步骤之后,该方法还包括:

在接收到采用虚拟机的快照恢复虚拟机的操作请求的时候,判断恢复虚拟机的操作请求之中的为虚拟机创建的快照的属性信息与在数据库中记录的为虚拟机创建的快照的属性信息是否匹配:

如果恢复虚拟机的操作请求之中的为虚拟机创建的快照的属性信息与在数据库中记录的为虚拟机创建的快照的属性信息匹配,则采用根据数据库中的为虚拟机创建的快照的属性信息查找到的为虚拟机创建的快照来恢复虚拟机。

在此,如果仅为虚拟机的系统盘和数据盘创建了快照,则“为虚拟机创建的快照”指的是虚拟机的系统盘的快照以及虚拟机的数据盘的快照;如果除了为虚拟机的系统盘和数据盘创建了快照之外,还为虚拟机的内存数据创建了快照,则“为虚拟机创建的快照”指的是虚拟机的系统盘的快照、虚拟机的数据盘的快照以及虚拟机的内存数据的快照。

更进一步地,在一个可选的实施例中,在采用根据数据库中的为虚拟机创建的快照的属性信息查找到的为虚拟机创建的快照来恢复虚拟机的步骤之前,该方法还包括:

判断是否为虚拟机创建当前状态下的快照:

如果接收到为虚拟机创建当前状态下的快照的指令的时候,则为虚拟机创建当前状态下的快照。

上述方案可以在快照覆盖当前的虚拟机的数据之前,为当前的虚拟机的数据创建快照,因此,以后可以采用为当前的虚拟机的数据创建的快照将虚拟机恢复到当前的状态。

上述方式可以为虚拟机的内存数据创建快照,内存数据的快照与系统盘的快照是以相同的方式存储的(均存储在宿主机的本地硬盘中,或者均存储于云硬盘中),因此,当创建快照时,可以一同创建内存数据的快照和系统盘的快照,当采用快照恢复虚拟机时,可以一同恢复虚拟机的内存数据和系统盘,并且在恢复虚拟机时,能够准确地将虚拟机恢复到创建快照时的状态。

为了解决上述技术问题,本发明实施例提供了一种管理openstack平台的虚拟机快照的装置,如图2所示,该装置包括存储器10和处理器20。

存储器10,用于存储计算机可读指令;

处理器20,用于执行计算机可读指令,以执行如下操作:

在接收到为openstack平台虚拟机的系统盘和数据盘创建快照的请求的时候,在虚拟机的系统盘所在的存储后端中创建虚拟机的系统盘的快照,并且在云硬盘中创建虚拟机的数据盘的快照;

在数据库中记录虚拟机的系统盘的快照以及数据盘的快照的属性信息。

本发明实施例的有益效果在于,在虚拟机的系统盘所在的存储后端中创建系统盘的快照,并且在云硬盘中创建数据盘的快照,可以减少glance服务项目的数据压力,占用glance服务项目的存储后端更少的存储空间;由于在数据库中记录快照的属性信息,因此方便根据快照链而采用快照恢复虚拟机。

进一步地,在一个可选的实施例中,在虚拟机的系统盘所在的存储后端中创建虚拟机的系统盘的快照的操作包括:

判断虚拟机的系统盘所在的存储后端是openstack平台的云硬盘还是虚拟机的宿主机的本地硬盘:

如果虚拟机的系统盘所在的存储后端是openstack平台的云硬盘,则在云硬盘中创建系统盘的快照;

如果虚拟机的系统盘所在的存储后端是虚拟机的宿主机的本地硬盘,则在宿主机的本地硬盘中创建系统盘的快照。

进一步地,在一个可选的实施例中,处理器20还用于执行下列操作:

如果虚拟机的系统盘所在的存储后端是openstack平台的云硬盘,则在openstack平台的云硬盘中创建虚拟机的内存数据的快照;

如果虚拟机的系统盘所在的存储后端是虚拟机的宿主机的本地硬盘,则在虚拟机的宿主机的本地硬盘中创建虚拟机的内存数据的快照;

在数据库中记录虚拟机的内存数据的快照的属性信息。

进一步地,在一个可选的实施例中,处理器20还用于执行下列操作:

在接收到采用虚拟机的快照恢复虚拟机的操作请求的时候,判断恢复虚拟机的操作请求之中的为虚拟机创建的快照的属性信息与在数据库中记录的为虚拟机创建的快照的属性信息是否匹配:

如果恢复虚拟机的操作请求之中的为虚拟机创建的快照的属性信息与在数据库中记录的为虚拟机创建的快照的属性信息匹配,则采用根据数据库中的为虚拟机创建的快照的属性信息查找到的为虚拟机创建的快照来恢复虚拟机。

进一步地,在一个可选的实施例中,在采用根据数据库中的为虚拟机创建的快照的属性信息查找到的为虚拟机创建的快照来恢复虚拟机的操作之前,处理器20还用于执行下列操作:

判断是否为虚拟机创建当前状态下的快照:

如果接收到为虚拟机创建当前状态下的快照的指令的时候,则为虚拟机创建当前状态下的快照。

虽然本发明所揭露的实施方式如上,但上述的内容仅为便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。

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