一种云平台的虚拟机故障恢复方法及服务器与流程

文档序号:21317565发布日期:2020-06-30 20:47阅读:593来源:国知局
一种云平台的虚拟机故障恢复方法及服务器与流程

本发明属于云计算平台领域,具体涉及一种云平台的虚拟机故障恢复方法及服务器。



背景技术:

云计算(cloudcomputing)是一种新兴的商业计算模型,它是由分布式计算(distributedcomputing)、并行处理(parallelcomputing)、网格计算(gridcomputing)逐步发展而来的,虚拟化技术越来越普及的应用于云计算、大数据等新兴学科中。随着网络和硬件技术的发展,各种虚拟化技术也都在快速的发展中,服务器虚拟化一直是虚拟化技术的主要领域。随着云计算的发展,基于云化网络的各种应用和云平台的发展,基于虚拟化的云环境已经处处可见,大量的专用硬件设备被虚拟机替代,应用app在虚拟机里运行,云化网络已经大量应用到我们日常生活当中。5g和ict融合技术的大力发展和推进,云化网络和云化应用即将得到更大的应用和实施,基于虚拟机的云计算和iass技术的云计算发展和应用,数据和应用承载的实体是成千上万的虚拟机。

starlingx是openstackfoundation最新的独立项目,它是一个为分布式边缘云提供用户服务的开源项目,starlingx能够构建在openstack等开源组件上,然后对其进行扩展和加固,以满足关键的基础设施需求,包括:高可用性、故障管理和性能管理,可用于nfv电信云、边缘云、工业物联网等场景,主要应用场景在电信云/边缘云。目前starlingx对异常虚拟机的处理,针对不同的异常,基本都是固定的恢复策略,然而,这个固定的恢复策略不够灵活,不足以支持用户多样化的设置需求。比如某些特定场景下,用户希望只允许在本地恢复,不希望从异地恢复。在这种场景下,目前starlingx是无法满足用户的需求。



技术实现要素:

针对现有技术的以上缺陷或改进需求,本发明提供了一种云平台的虚拟机故障恢复方法及服务器,通过创建云平台虚拟机节点时,依据故障恢复需求创建虚拟机恢复策略并存储于nfv-vim的数据库;nfv-vim获取上报的虚拟机故障消息后,进行数据库索引以获取所述虚拟机恢复策略,以实现云平台的虚拟机故障恢复,通过依据故障恢复需求创建虚拟机恢复策略,可满足多种故障恢复需求。

为实现上述目的,按照本发明的一个方面,提供了一种云平台的虚拟机故障恢复方法,包括如下步骤:

创建云平台虚拟机节点,依据故障恢复需求创建虚拟机恢复策略,将虚拟机恢复策略存储于nfv-vim的数据库;

nfv-vim获取上报的虚拟机故障消息以获取虚拟机节点属性和虚拟机故障类型,依据虚拟机节点属性和虚拟机故障类型进行数据库索引以获取虚拟机恢复策略,依据虚拟机恢复策略下发虚拟机恢复指令,以实现云平台的虚拟机故障恢复。

作为本发明的进一步改进,虚拟机恢复策略为本地恢复或异地恢复。

作为本发明的进一步改进,虚拟机节点属性包括虚拟机id、flavor属性和image属性,虚拟机元数据用于建立与虚拟机id对应的虚拟机恢复策略数据,flavor元数据用于建立与虚拟机flavor属性对应的虚拟机恢复策略数据,image元数据用于建立与虚拟机image属性对应的虚拟机恢复策略数据,通过虚拟机元数据实现单个虚拟机恢复策略的设置,通过flavor元数据和/或image元数据实现批量虚拟机恢复策略的设置。

作为本发明的进一步改进,对虚拟机恢复策略依据虚拟机节点属性优先级顺序进行数据库存储,同时依据虚拟机节点属性优选级顺序获取虚拟机恢复策略。

作为本发明的进一步改进,虚拟机故障类型包括虚拟机所在节点下电故障,利用mtce模块实现所述虚拟机所在节点下电故障的发现和上报。

作为本发明的进一步改进,虚拟机所在节点下电故障恢复失败时,利用mtce模块上报故障恢复失败消息给nfv-vim。

作为本发明的进一步改进,虚拟机故障类型包括虚拟机进程终止故障,利用nova模块实现虚拟机进程终止故障的发现和上报。

作为本发明的进一步改进,虚拟机故障类型包括虚拟机宕机故障,利用guest-agent模块实现虚拟机宕机故障的发现和上报。

为实现上述目的,按照本发明的另一个方面,提供了一种服务器,包括至少一个处理单元、以及至少一个存储单元,其中,存储单元存储有计算机程序,当程序被处理单元执行时,使得处理单元执行上述方法的步骤。

为实现上述目的,按照本发明的另一个方面,提供了一种计算机可读介质,其存储有可由终端设备执行的计算机程序,当程序在终端设备上运行时,使得终端设备执行上述方法的步骤。

总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有以下有益效果:

本发明的一种云平台的虚拟机故障恢复方法及服务器,通过创建云平台虚拟机节点时,依据故障恢复需求创建虚拟机恢复策略并存储于nfv-vim的数据库;nfv-vim获取上报的虚拟机故障消息后,进行数据库索引以获取所述虚拟机恢复策略,以实现云平台的虚拟机故障恢复,通过依据故障恢复需求创建虚拟机恢复策略,可满足多种故障恢复需求,其中,用户可以自己设定恢复策略,保证虚拟机恢复时按照自己设定的恢复策略来执行。

本发明的一种云平台的虚拟机故障恢复方法及服务器,其通过提供虚拟机的多个节点属性,支持虚拟机恢复策略的单个设置和批量设置方式,对虚拟机恢复策略依据虚拟机节点属性优先级顺序进行数据库存储,同时依据虚拟机节点属性优选级顺序获取虚拟机恢复策略,使得多种设置方式存在时,可以通过恢复策略设置优先级确保虚拟机恢复策略的获取。

本发明的一种云平台的虚拟机故障恢复方法及服务器,其依据云平台的监控模块特性,利用不同的云平台模块(mtce模块、nova模块和guest-agent模块)实现不同类型的虚拟机故障监测及处理,从而实现多种类型虚拟机故障恢复。

附图说明

图1是本发明实施例的一种云平台的虚拟机故障恢复方法的流程示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。下面结合具体实施方式对本发明进一步详细说明。

虚拟机:云计算基础术语,通过虚拟化软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。

flavor,是一种表示虚拟机规格的集合,包括cpu大小,内存大小,磁盘大小等

image,是已有系统磁盘的保留,创建虚拟机时指定image,表示虚拟机的系统盘的数据是从该image复制过来的。

mtce:专门负责检查物理节点状态的模块,比如节点上下电,常驻进程异常等;

nova:主要负责云平台虚拟机的管理,其中包括对虚拟机状态的周期检测;

guest-agent:主要负责虚拟机内部异常检查组件;

nfv-vim:网络功能虚拟化-虚拟化基础设施管理器。

图1是本发明实施例的一种云平台的虚拟机故障恢复方法的流程示意图。如图1所示,一种云平台的虚拟机故障恢复方法,其包括如下步骤:

创建云平台虚拟机节点,依据故障恢复需求创建虚拟机恢复策略,将虚拟机恢复策略存储于nfv-vim的数据库中;

nfv-vim获取上报的虚拟机故障消息以获取虚拟机节点属性和虚拟机故障类型,依据虚拟机节点属性和虚拟机故障类型进行数据库索引以获取所述虚拟机恢复策略,依据所述虚拟机恢复策略下发虚拟机恢复指令,以实现云平台的虚拟机故障恢复。

作为一个优选的实施例,虚拟机恢复策略为本地恢复或异地恢复。

作为一个优选的实施例,虚拟机节点属性包括虚拟机id、flavor属性和image属性,虚拟机元数据用于建立与虚拟机id对应的虚拟机恢复策略数据,flavor元数据用于建立与虚拟机flavor属性对应的虚拟机恢复策略数据,image元数据用于建立与虚拟机image属性对应的虚拟机恢复策略数据,通过虚拟机元数据实现单个虚拟机恢复策略的设置,通过flavor元数据和/或image元数据实现批量虚拟机恢复策略的设置;具体地,用户可以自己定义虚拟机的恢复策略,设置方式可以使gui,也可以是命令行,如果是针对单台虚拟机进行策略设定,则通过虚拟机的元数据来实现,如果想实现对某一批虚拟机的设置,可以通过flavor和image的元数据来实现;

作为进一步地优先,对虚拟机恢复策略依据虚拟机节点属性优先级顺序进行数据库存储,同时依据虚拟机节点属性优选级顺序获取,作为一个示例,该虚拟机节点属性优选级顺序从最高至最低分别为虚拟机id、flavor属性和image属性,具体的:

1.当与虚拟机id对应的虚拟机元数据中有恢复策略的值,则将其作为最终结果;

2.当与虚拟机id对应的虚拟机元数据中没有设置恢复策略,而与虚拟机id对应的flavor元数据中设置有恢复策略,则将与虚拟机id对应的flavor元数据中的恢复策略值作为最终结果;

3.与虚拟机id对应的虚拟机元数据和flavor元数据中都没有设置恢复策略的值,而与虚拟机id对应的image元数据中有设置恢复策略的值,则将image元数据中的恢复策略值作为最终结果。

当虚拟机发生异常时,不同的异常会被不同的监控程序捕获。所以需要实现针对各种不同异常的处理函数进行修改,保证各种异常的处理函数,都能够支持对不同恢复策略的不同处理。

作为一个优选的实施例,虚拟机故障类型包括虚拟机所在节点下电故障,利用mtce模块实现虚拟机所在节点下电故障的发现和上报,具体为,mtce模块通过监测实现虚拟机所在节点下电故障的发现,并上报给nfv-vim,nfv-vim收到相应的上报信息后,依据虚拟机节点属性和虚拟机故障类型进行数据库索引以获取所述虚拟机恢复策略,依据所述虚拟机恢复策略下发虚拟机恢复指令,以实现云平台的虚拟机故障恢复。设置恢复策略之后,会更容易出现恢复失败的场景。比如主机下电,但是用户的策略设置为本地恢复,这种场景下,应该产生告警,作为进一步的优选,虚拟机所在节点下电故障恢复失败时,利用mtce模块上报故障恢复失败消息给nfv-vim,可对虚拟机恢复失败增加单独的告警,确保告警及时上报并显示。

作为一个优选的实施例,虚拟机故障类型包括虚拟机进程终止故障,利用nova模块实现虚拟机进程终止故障的发现和上报,具体为,nova模块通过监测实现虚拟机进程终止故障的发现,并上报给nfv-vim,nfv-vim收到相应的上报信息后,依据虚拟机节点属性和虚拟机故障类型进行数据库索引以获取所述虚拟机恢复策略,依据所述虚拟机恢复策略下发虚拟机恢复指令,以实现云平台的虚拟机故障恢复。在云台执行过程中,libvirt会检测到虚拟进程被kill掉,由虚拟化层具体实现,libvirt上报给nova-compute进程;nova-compute上报给nova进程,nova进程会记录虚拟机状态为异常,并保存到数据库中,同时nova会发送一个事件通知,由事件的订阅者自行订阅,至此,nfv-vim就可以通过事件订阅机制,获取到“虚拟机被kill”掉的事件;nfv-vim将具体恢复策略对应的虚拟机恢复指令,比如是重启还是迁移,通过api发送到nova,nova会根据收到的api消息,修改数据库状态,下发具体命令到nova-compute去执行,nova-compute通过调用libvirt命令执行具体操作。

作为一个优选的实施例,虚拟机故障类型包括虚拟机宕机故障,利用guest-agent模块实现虚拟机宕机故障的发现和上报,具体为,guest-agent模块通过虚拟机内置guest_client程序,并配置相应的配置文件,保证当虚拟机crush的时候,starlingx能够通过guest-agent感知,然后触发异常处理流程,从而实现虚拟机宕机故障的发现,并上报给nfv-vim,nfv-vim收到相应的上报信息后,依据虚拟机节点属性和虚拟机故障类型进行数据库索引以获取所述虚拟机恢复策略,依据所述虚拟机恢复策略下发虚拟机恢复指令,以实现云平台的虚拟机故障恢复。

本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

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