一种计算节点单点高可用控制方法及装置与流程

文档序号:20916830发布日期:2020-05-29 13:38阅读:220来源:国知局
一种计算节点单点高可用控制方法及装置与流程

本发明涉及云计算技术领域。本发明进一步涉及一种计算节点单点高可用控制方法及装置。



背景技术:

目前,云计算管理平台发展迅速,对于分布式系统架构的云平台系统,保障系统的高可用是系统开发、构建的核心。对于现有的一些云平台系统openstack包含两个主要模块:nova和swift,前者是nasa(美国国家航空和宇宙航行局,nationalaeronauticsandspaceadministration)开发的虚拟服务器部署和业务计算模块;后者是rackspace(一家全球领先的托管服务器及云计算提供商)开发的分布式云存储模块,两者可以一起用,也可以分开单独用。nova是最核心的,一套虚拟化管理程序,可管理网络和存储。nova中包含了许多的小组件,其中nova-compute(nova计算)用于处理管理实例生命周期。通过消息队列接收请求,并承担操作工作。针对云平台系统的高可用方法,常采用nova模块提供的高可用方法。进一步地,通过nova-compute服务来确定计算节点的服务是否可靠。当发现不可靠时,会使用evacuate(疏散)命令将不可靠的计算节点上所有云主机进行重建,但是这样的措施在很多情况下并不合理,很可能造成极大的资源浪费。

因此,对云主机系统的高可用方法仍需要进行改进,尽可能避免所有云主机的重建,更进一步提高云平台系统的高可用性。



技术实现要素:

一方面,本发明基于上述目的提出了一种计算节点单点高可用控制方法,其中该方法包括以下步骤:

配置高可用监视器和高可用引擎;

利用高可用监视器监控云主机进程状态、节点进程状态和计算节点运行状态;

基于所述云主机进程状态、节点进程状态、计算节点运行状态将相应的故障信息发送至高可用消息队列;

通过高可用引擎读取高可用消息队列的故障信息以执行相应的故障处理。

根据本发明的计算节点单点高可用控制方法的实施例,其中基于云主机进程状态、节点进程状态、计算节点运行状态将相应的故障信息发送至高可用消息队列进一步包括:响应于云主机进程状态异常且节点进程状态以及计算节点运行状态正常,将云主机故障的信息发送至高可用消息队列。

根据本发明的计算节点单点高可用控制方法的实施例,其中基于云主机进程状态、节点进程状态、计算节点运行状态将相应的故障信息发送至高可用消息队列进一步包括:

响应于节点进程状态异常、计算节点运行状态正常并且云主机进程状态正常或异常,重启异常的节点进程;

响应于重启多次无法消除异常,将节点进程故障的信息发送至高可用消息队列。

根据本发明的计算节点单点高可用控制方法的实施例,其中基于云主机进程状态、节点进程状态、计算节点运行状态将相应的故障信息发送至高可用消息队列进一步包括:响应于计算节点运行状态异常且节点进程状态以及云主机进程状态正常,将计算节点故障的信息发送至高可用消息队列。

根据本发明的计算节点单点高可用控制方法的实施例,其中通过高可用引擎读取高可用消息队列的故障信息执行相应的故障处理进一步包括:基于高可用消息队列的云主机故障的信息通过高可用引擎调用管理组件重启相应的云主机。

根据本发明的计算节点单点高可用控制方法的实施例,其中通过高可用引擎读取高可用消息队列的故障信息执行相应的故障处理进一步包括:基于高可用消息队列的节点进程故障的信息通过高可用引擎调用管理组件强制结束相应的进程。

根据本发明的计算节点单点高可用控制方法的实施例,其中通过高可用引擎读取高可用消息队列的故障信息执行相应的故障处理进一步包括:基于高可用消息队列的计算节点故障的信息通过高可用引擎调用管理组件迁移相应计算节点上的所有云主机并强制关闭计算节点。

根据本发明的计算节点单点高可用控制方法的实施例,其中通过高可用引擎读取高可用消息队列的故障信息执行相应的故障处理进一步包括:

对迁移的云主机做标记;

排除关闭的计算节点的故障并重启;

将标记的云主机迁移回重启的计算节点。

根据本发明的计算节点单点高可用控制方法的实施例,其中基于云主机进程状态、节点进程状态、计算节点运行状态将相应的故障信息发送至高可用消息队列进一步包括:在高可用消息队列中对接收的故障信息按照故障信息的权重排序,故障信息的权重至少基于故障信息类型权重和故障时间权重确定。

另一方面,本发明还提出了一种计算节点单点高可用控制装置,其中该装置包括:

高可用配置模块,该高可用配置模块配置为配置高可用监视器和高可用引擎;

状态监控模块,该状态监控模块配置为利用高可用监视器监控云主机进程状态、节点进程状态和计算节点运行状态;

故障信息生成模块,该故障信息生成模块配置为基于云主机进程状态、节点进程状态、计算节点运行状态将相应的故障信息发送至高可用消息队列;和

故障处理模块,该故障处理模块配置为通过高可用引擎读取高可用消息队列的故障信息以执行相应的故障处理。

采用上述技术方案,本发明至少具有如下有益效果:通过对单计算节点上的云主机、节点进程和计算节点运行的监控进一步细化故障类型,将故障信息以消息队列的形式排列起来,逐一进行相应的处理,避免了只要出现异常就将异常计算节点上所有云主机进行重建的情况,极大地降低了资源的浪费,更进一步提高了云平台系统的高可用性。

本发明提供了实施例的各方面,不应当用于限制本发明的保护范围。根据在此描述的技术可设想到其它实施方式,这对于本领域普通技术人员来说在研究以下附图和具体实施方式后将是显而易见的,并且这些实施方式意图被包含在本申请的范围内。

下面参考附图更详细地解释和描述了本发明的实施例,但它们不应理解为对于本发明的限制。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对现有技术和实施例描述中所需要使用的附图作简单地介绍,附图中的部件不一定按比例绘制,并且可以省略相关的元件,或者在一些情况下比例可能已经被放大,以便强调和清楚地示出本文描述的新颖特征。另外,如本领域中已知的,结构顺序可以被不同地布置。

图1示出了根据本发明的计算节点单点高可用控制方法的实施例的示意性框图;

图2示出了根据本发明的计算节点单点高可用控制装置的示意性框图。

具体实施方式

虽然本发明可以以各种形式实施,但是在附图中示出并且在下文中将描述一些示例性和非限制性实施例,但应该理解的是,本公开将被认为是本发明的示例并不意图将本发明限制于所说明的具体实施例。

在下文就本发明的实施例的说明中需要注意的是,其中提到的步骤的编号在没有特殊说明的情况下,仅用于便捷明确地指示该步骤,并不限定所述步骤的顺序。

图1示出了根据本发明的计算节点单点高可用控制方法的实施例的示意性框图。在如图1所示的实施例中,该方法至少包括以下步骤:

s1:配置高可用监视器和高可用引擎;

s2:利用高可用监视器监控云主机进程状态、节点进程状态和计算节点运行状态;

s3:基于云主机进程状态、节点进程状态、计算节点运行状态将相应的故障信息发送至高可用消息队列;

s4:通过高可用引擎读取高可用消息队列的故障信息以执行相应的故障处理。

由于常用的nova模式对于云平台系统的高可用控制方法存在一定的缺陷,因此本发明的计算节点单点高可用控制方法中提出了新的控制策略,优化了对于异常的分类及不同分类的处理。这部分新的功能已经不能被nova所支持,因此需要挖掘新的云平台系统构架及模式。为了使用本发明的方法,可以开发新的系统框架,也可以利用目前已有的框架结合高可用方案进行改进。出于节约成本的考虑,优选但不限于可以不改变系统框架,并在现有的高可用方案的基础上进行进一步地改进,其中优选基于masakari高可用执行本发明的方法的优化。masakari是日本ntt公司提供的一套开源的虚拟ha方案。masakari支持虚拟机进程、虚拟化进程和计算节点进程的监控。通过shell脚本监控虚拟机进程、nova-compute服务和计算节点状态。原本的masakari高可用方案中的策略是虚拟机进程挂了则通过虚拟机的api(applicationprograminterface,应用程序接口)关闭和启动虚拟机;虚拟化进程挂了则通过nova-computeapi设置nova-compute服务为down(停机)状态;nova-compute进程挂了则疏散计算节点上的虚拟机。另外,masakari-instancemonitor(实例监视器)用于检测虚拟机进程是否挂掉了;masakari-processmonitor(过程监视器)用于检测nova-compute是否挂了;masakari-hostmonitor(主机监视器)用于检测计算节点是否挂了。在此基础上,本发明的方法中将上述masakari高可用方案进行了优化,不再是简单地利用上述三个monitor(监视器)检测虚拟机进程、虚拟化进程和计算节点进程,而是利用上述监视器相互配合进一步对单计算节点上的云主机进程状态、节点进程状态和计算节点运行状态进行监控,并基于监控到的状态进一步细化地分辨出故障的类型,进而执行相应的高可用故障处理。

具体地说,为了使监视器可以用于监控云主机进程状态、节点进程状态和计算节点运行状态,步骤s1配置高可用监视器和高可用引擎,例如配置masakari-instancemonitor(实例监视器)、masakari-introspectiveinstancemonitor(内省实例监视器)、masakari-processmonitor(过程监视器)、masakari-hostmonitor(主机监视器)等,其中优选但不限于将masakari-instancemonitor(实例监视器)、masakari-introspectiveinstancemonitor(内省实例监视器)配置为用于通过监控云主机的服务进程(优选libvirt进程)来对云主机进程状态进行监控;masakari-processmonitor(过程监视器)配置为用于对节点进程状态进行监控;masakari-hostmonitor(主机监视器)配置为用于结合其它监控组件(例如corosync/pacemaker)对计算节点运行状态进行监控。其中,所述的对节点进程状态进行监控配置为更偏向于对节点进行软件尤其是系统方面的监控,而所述的对计算节点运行状态进行监控配置为更偏向于对计算节点进行硬件运行参数尤其是硬件资源等方面的监控。此外,配置高可用引擎(masakari-engine),使其可以执行后续方法中的功能,至少包括读取故障信息、解析高可用配置文件、执行故障处理机制等功能。随后,步骤s2利用步骤s1中配置的高可用监视器监控云主机进程状态、节点进程状态和计算节点运行状态。

当监控到云主机进程状态、节点进程状态和计算节点运行状态出现异常时,步骤s3基于云主机进程状态、节点进程状态、计算节点运行状态将相应的故障信息发送至高可用消息队列。进一步地说,根据云主机进程、节点进程、计算节点运行处于的不同状态,细分出故障的不同类型,并将相应的故障信息发送至高可用消息队列(intance-ha)。最后,步骤s4通过步骤s1中配置的高可用引擎读取高可用消息队列的故障信息执行相应的故障处理,即高可用引擎读取高可用消息队列的故障信息,基于配置文件(masakari-custom-recovery-methods.conf)内对应于相应的故障信息的配置执行相应的故障处理,以维护云平台系统的高可用性。

在本发明的计算节点单点高可用控制方法的一些实施例中,步骤s3基于云主机进程状态、节点进程状态、计算节点运行状态将相应的故障信息发送至高可用消息队列进一步包括:响应于云主机进程状态异常且节点进程状态以及计算节点运行状态正常,将云主机故障的信息发送至高可用消息队列。也就是说,根据云主机进程、节点进程、计算节点运行处于的不同状态,细分出故障的不同类型,进一步地包括当监控到云主机进程状态异常且节点进程状态以及计算节点运行状态均正常时,判定是云主机自身的运行过程中出现了故障,进而将云主机故障的信息发送至高可用消息队列(intance-ha)。

在本发明的计算节点单点高可用控制方法的一些实施例中,步骤s3基于云主机进程状态、节点进程状态、计算节点运行状态将相应的故障信息发送至高可用消息队列进一步包括:

响应于节点进程状态异常、计算节点运行状态正常并且云主机进程状态正常或异常,重启异常的节点进程;

响应于重启多次无法消除异常,将节点进程故障的信息发送至高可用消息队列。

也就是说,根据云主机进程、节点进程、计算节点运行处于的不同状态,细分出故障的不同类型,进一步地包括当节点进程状态异常且计算节点运行状态正常时,无论云主机进程状态是否正常,预判为计算节点自身的节点进程执行过程中出现了故障,进而首先会按照配置文件的设置重启节点进程。如果重启多次无法消除异常,例如到达最大重启次数(默认3)仍失败,则由计算节点将节点进程故障的信息发送至高可用消息队列(intance-ha)。在一些情况下,云主机进程状态与节点进程状态可能同时出现异常,一方面是云主机进程自身和节点进程自身都出现了故障,另一方面是节点进程的故障在引起节点进程状态异常的同时也引起了云主机进程的异常。基于上述情况,本实施例中的当节点进程状态异常且计算节点运行状态正常时,无论云主机进程状态是否正常,都先针对节点进程生成故障信息,即优先对节点进程进行故障处理,有利于尽快收敛故障甄别的范围以及处理效率。

在本发明的计算节点单点高可用控制方法的一些实施例中,步骤s3基于云主机进程状态、节点进程状态、计算节点运行状态将相应的故障信息发送至高可用消息队列进一步包括:响应于计算节点运行状态异常且节点进程状态以及云主机进程状态正常,将计算节点故障的信息发送至高可用消息队列。也就是说,根据云主机进程、节点进程、计算节点运行处于的不同状态,细分出故障的不同类型,进一步地包括当监控到云主机进程状态异常且节点进程状态以及计算节点运行状态均正常时,判定是计算节点自身的运行过程中出现了故障,尤其是物理机故障,整机处于不可靠状态,继续作为云主机的宿主机可能会对云平台系统的高可用产生极大危害,因而将计算节点故障的信息发送至高可用消息队列(intance-ha)。

在本发明的计算节点单点高可用控制方法的一些实施例中,步骤s4通过高可用引擎读取高可用消息队列的故障信息执行相应的故障处理进一步包括:基于高可用消息队列的云主机故障的信息通过高可用引擎调用管理组件重启相应的云主机。具体地说,高可用引擎读取到高可用消息队列(intance-ha)中的云主机故障的信息后,根据配置文件的配置进行处理,默认是调用管理组件(例如novaclient)去重启(例如reboot)相应的云主机,从而实现相应的高可用(highavailibility)。

在本发明的计算节点单点高可用控制方法的一些实施例中,步骤s4通过高可用引擎读取高可用消息队列的故障信息执行相应的故障处理进一步包括:基于高可用消息队列的节点进程故障的信息通过高可用引擎调用管理组件强制结束相应的进程。具体地说,高可用引擎读取到高可用消息队列(intance-ha)中的节点进程故障的信息后,根据配置文件的配置进行处理,默认是调用管理组件(例如novaclient)去强制结束(例如disable)相应的进程,从而实现相应的高可用(highavailibility)。

在本发明的计算节点单点高可用控制方法的一些实施例中,步骤s4通过高可用引擎读取高可用消息队列的故障信息执行相应的故障处理进一步包括:基于高可用消息队列的计算节点故障的信息通过高可用引擎调用管理组件迁移相应计算节点上的所有云主机并强制关闭计算节点。具体地说,高可用引擎读取到高可用消息队列(intance-ha)中的节点进程故障的信息后,根据配置文件的配置进行处理,默认是调用管理组件(例如novaclient)去迁移相应计算节点上的所有云主机并强制关闭(例如disable)相应的计算节点,从而实现相应的高可用(highavailibility)。

在本发明的计算节点单点高可用控制方法的一些实施例中,步骤s4通过高可用引擎读取高可用消息队列的故障信息执行相应的故障处理进一步包括:

s401:对迁移的云主机做标记;

s402:排除关闭的计算节点的故障并重启;

s403:将标记的云主机迁移回重启的计算节点。

为了进一步地避免了对异常计算节点上所有云主机进行重建,在一些实施例中对从故障中恢复的计算节点采取了热迁移操作将原有云主机迁移回该计算节点。具体地,首先子步骤s401对发生故障时进行了迁移的云主机做标记,随后子步骤s402排除该关闭的计算节点的故障并重启该计算节点,最后子步骤s403将子步骤s401中标记的云主机重新迁移回子步骤s402中重启的计算节点,避免了对所有云主机的重建,从而提高云平台系统的高可用维护的效率、减少资源浪费。

在本发明的计算节点单点高可用控制方法的一些实施例中,步骤s3基于云主机进程状态、节点进程状态、计算节点运行状态将相应的故障信息发送至高可用消息队列进一步包括:在高可用消息队列中对接收的故障信息按照故障信息的权重排序,故障信息的权重至少基于故障信息类型权重和故障时间权重确定。由于不同故障对云平台高可用性的危害性有高有低,因而在一些情况下,需要对危害性较高的故障进行及时地处理才能更好地保障云平台系统的高可用性。因此,在一些实施例中,在高可用消息队列中对接收的故障信息按照故障信息的权重排序,高可用引擎按照队列的前后顺序处理故障。而故障信息的权重至少基于故障信息类型权重和故障时间权重确定,其中故障信息类型权重与不同故障对云平台高可用性的危害性有关,危害越大的故障权重越高;故障时间权重则与故障发生的时间或故障持续时间有关,时间越早权重越大。另外,针对不同的云平台系统,故障信息类型权重和故障时间权重的分配比例也不尽相同,可以进行相应的调整。例如,对于处理效率较高的系统,可以提高故障信息类型权重的分配比例,而对于处理效率较低的系统,可以适当地降低故障时间权重的分配比例,从而实现相应的高可用(highavailibility)。

另一方面,本发明还提出了一种计算节点单点高可用控制装置100,其中在如图2所示的实施例中,该装置包括:

高可用配置模块m10,该高可用配置模块m10配置为配置高可用监视器和高可用引擎;

状态监控模块m20,该状态监控模块m20配置为利用高可用监视器监控云主机进程状态、节点进程状态和计算节点运行状态;

故障信息生成模块m30,该故障信息生成模块m30配置为基于云主机进程状态、节点进程状态、计算节点运行状态将相应的故障信息发送至高可用消息队列;和

故障处理模块m40,该故障处理模块m40配置为通过高可用引擎读取高可用消息队列的故障信息以执行相应的故障处理。

本发明实施例公开所述的装置、设备等可为各种电子终端设备,例如手机、个人数字助理(pda)、平板电脑(pad)、智能电视等,也可以是大型终端设备,如服务器等,因此本发明实施例公开的保护范围不应限定为某种特定类型的装置、设备。本发明实施例公开所述的客户端可以是以电子硬件、计算机软件或两者的组合形式应用于上述任意一种电子终端设备中。

本文所述的计算机可读存储介质(例如存储器)可以是易失性存储器或非易失性存储器,或者可以包括易失性存储器和非易失性存储器两者。作为例子而非限制性的,非易失性存储器可以包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦写可编程rom(eeprom)或快闪存储器。易失性存储器可以包括随机存取存储器(ram),该ram可以充当外部高速缓存存储器。作为例子而非限制性的,ram可以以多种形式获得,比如同步ram(dram)、动态ram(dram)、同步dram(sdram)、双数据速率sdram(ddrsdram)、增强sdram(esdram)、同步链路dram(sldram)、以及直接rambusram(drram)。所公开的方面的存储设备意在包括但不限于这些和其它合适类型的存储器。

采用上述技术方案,本发明至少具有如下有益效果:通过对单计算节点上的云主机、节点进程和计算节点运行的监控进一步细化故障类型,将故障信息以消息队列的形式排列起来,逐一进行相应的处理,避免了只要出现异常就将异常计算节点上所有云主机进行重建的情况,极大地降低了资源的浪费,更进一步提高了云平台系统的高可用性。

应当理解的是,在技术上可行的情况下,以上针对不同实施例所列举的技术特征可以相互组合,从而形成本发明范围内的另外实施例。此外,本文所述的特定示例和实施例是非限制性的,并且可以对以上所阐述的结构、步骤及顺序做出相应修改而不脱离本发明的保护范围。

在本申请中,反意连接词的使用旨在包括连接词。定或不定冠词的使用并不旨在指示基数。具体而言,对“该”对象或“一”和“一个”对象的引用旨在表示多个这样对象中可能的一个。然而,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。此外,可以使用连接词“或”来传达同时存在的特征,而不是互斥方案。换句话说,连接词“或”应理解为包括“、”。术语“包括”是包容性的并且具有与“包含”相同的范围。

上述实施例,特别是任何“优选”实施例是实施方式的可能示例,并且仅仅为了清楚理解本发明的原理而提出。在基本上不脱离本文描述的技术的精神和原理的情况下,可以对上述实施例做出许多变化和修改。所有修改旨在被包括在本公开的范围内。

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