一种OpenStack虚拟机的故障监控方法及装置与流程

文档序号:11216150阅读:882来源:国知局
一种OpenStack虚拟机的故障监控方法及装置与流程

本发明涉及云计算数据中心技术领域,特别涉及一种openstack虚拟机的故障监控方法及装置。



背景技术:

openstack是一个由nasa和rackspace合作研发并发起的、以apache许可证授权的自由软件和开放源代码项目。该项目支持几乎所有类型的云环境,其目标是提供实施简单、可大规模扩展、丰富及标准统一的云计算管理平台。openstack通过各种互补的服务提供基础设施即服务(iaas)的解决方案,每个服务提供api以进行集成。

目前,openstack只提供一个api,用于疏散指定节点上的虚拟机,并没有自动检测故障、自动执行疏散的机制。在实际应用中,openstack虚拟机的故障仍需要人工检测、人工修复,进而导致openstack虚拟机故障监控效率低。



技术实现要素:

本发明的目的是提供一种openstack虚拟机的故障监控方法及装置,目的在于解决现有人工检测修复openstack虚拟机故障导致的故障监控效率低的问题。

为解决上述技术问题,本发明提供一种openstack虚拟机的故障监控方法,该方法包括:

运行预存储于pacemaker集群节点的ocf监控脚本,监控openstack的待监控虚拟机;

获取所述待监控虚拟机的状态信息,所述状态信息至少包括节点状态信息、进程状态信息及节点性能信息;

根据所述状态信息,判断所述待监控虚拟机是否出现故障;

若是,运行预存储于所述pacemaker集群节点的修复脚本,调用openstack提供的应用程序接口,对所述待监控虚拟机进行修复操作。

可选地,所述根据所述状态信息,判断所述待监控虚拟机是否出现故障包括:

根据所述节点状态信息、所述进程状态信息、所述节点性能信息,分别判断所述待监控虚拟机的节点状态是否正常、所述待监控虚拟机的进程状态是否正常、所述待监控虚拟机的性能是否正常;

当所述节点状态、所述进程状态及所述性能中至少一个异常时,判断所述待监控虚拟机出现故障;

当所述节点状态、所述进程状态及所述性能全部正常时,判断所述待监控虚拟机正常。

可选地,所述若是,运行预存储于所述pacemaker集群节点的修复脚本,调用openstack提供的应用程序接口,对所述待监控虚拟机进行修改操作包括:

若是,运行预存储于所述pacemaker集群节点的所述修复脚本;

执行所述应用程序接口中的隔离命令,隔离所述待监控虚拟机的节点;

执行所述应用程序接口中的疏散命令,疏散所述待监控虚拟机。

可选地,在所述执行所述应用程序接口中的疏散命令,疏散所述待监控虚拟机之后还包括:

更新所述节点的节点状态为已疏散,并发送告警信息给管理员。

可选地,所述获取所述待监控虚拟机的状态信息包括:

根据所述ocf脚本内预定义的监测手段,获取与所述监测手段对应的所述待监控虚拟机的所述状态信息。

此外,本发明还提供了一种openstack虚拟机的故障监控装置,该装置包括:

运行模块,用于运行预存储于pacemaker集群节点的ocf监控脚本,监控openstack的待监控虚拟机;

获取模块,用于获取所述待监控虚拟机的状态信息,所述状态信息至少包括节点状态信息、进程状态信息及节点性能信息;

判断模块,用于根据所述状态信息,判断所述待监控虚拟机是否出现故障;

修复模块,用于若是,运行预存储于所述pacemaker集群节点的修复脚本,调用openstack提供的应用程序接口,对所述待监控虚拟机进行修复操作。

可选地,所述判断模块包括:

指标判断单元,用于根据所述节点状态信息、所述进程状态信息、所述节点性能信息,分别判断所述待监控虚拟机的节点状态是否正常、所述待监控虚拟机的进程状态是否正常、所述待监控虚拟机的性能是否正常;

第一故障判断单元,用于当所述节点状态、所述进程状态及所述性能中至少一个异常时,判断所述待监控虚拟机出现故障;

第二故障判断单元,用于当所述节点状态、所述进程状态及所述性能全部正常时,判断所述待监控虚拟机正常。

可选地,所述修复模块包括:

修复脚本运行单元,用于若是,运行预存储于所述pacemaker集群节点的所述修复脚本;

节点隔离单元,用于执行所述应用程序接口中的隔离命令,隔离所述待监控虚拟机的节点;

疏散单元,用于执行所述应用程序接口中的疏散命令,疏散所述待监控虚拟机。

可选地,所述修复模块还包括:

更新告警单元,用于更新所述节点的节点状态为已疏散,并发送告警信息给管理员。

可选地,所述获取模块包括:

监测手段获取单元,用于根据所述ocf脚本内预定义的监测手段,获取与所述监测手段对应的所述待监控虚拟机的所述状态信息。

本发明实施例所提供的一种openstack虚拟机的故障监控方法及装置,通过运行预存储于pacemaker集群节点的ocf监控脚本,监控openstack的待监控虚拟机;获取待监控虚拟机的状态信息,状态信息至少包括节点状态信息、进程状态信息及节点性能信息;根据状态信息,判断待监控虚拟机是否出现故障;若是,运行预存储于pacemaker集群节点的修复脚本,调用openstack提供的应用程序接口,对待监控虚拟机进行修复操作。本申请将pacemaker集群作为故障监控中心,ocf脚本作为监控手段,实现自动监控openstack虚拟机的故障;且调用openstack自身提供的应用程序接口,自动修复故障,以提高了openstack虚拟机的故障监控效率。可见,本申请有利于提高openstack虚拟机故障监控效率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明实施例提供的openstack虚拟机的故障监控方法的一种具体实施方式的流程示意图;

图2为本发明实施例提供的监控流程示意图;

图3为本发明实施例提供的基于pacemaker的openstack虚拟机高可用方案架构示意框图;

图4为本发明实施例提供的openstack虚拟机的故障监控装置的结构框图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参考图1,图1为本发明实施例提供的openstack虚拟机的故障监控方法的一种具体实施方式的流程示意图,该方法包括以下步骤:

步骤101:运行预存储于pacemaker集群节点的ocf监控脚本,监控openstack的待监控虚拟机。

需要说明的是,上述pacemaker集群节点可以是预先创建的,该集群至少可以包括3个节点,以保证pacemaker资源选举主节点时的投票能产生多数。该pacemaker集群的建立过程可以为:选择至少3个节点,在各个节点上安装pacemaker集群软件,接着将安装了pacemaker集群软件的节点互相认证,配置成一个整体。

上述ocf脚本可以是指根据ocf脚本规范格式编写的openstack节点状态监控脚本。可以在该ocf脚本内自定义监控条件,即自主选择所需的监测手段,例如,cpu利用率、内存利用率等性能数据、nova-compute进程信息等。

该ocf脚本可以预先上传至pacemaker集群节点上,具体可以存储于每个pacemaker节点上的/usr/lib/ocf/resource.d/openstack/目录下。pacemaker节点运行ocf脚本,可以创建一个pacemaker资源,该pacemaker资源相当于一个由pacemaker集群保证执行和监控状态的服务实例。每个资源本身可能在pacemaker集群的各个节点上选举而启动,按照资源内部定义的逻辑,控制pacemaker框架执行相应动作,例如,在ocf脚本的meta标签中定义action时指定interval和timeout,即可定义action的执行间隔和超时时间。

步骤102:获取所述待监控虚拟机的状态信息,所述状态信息至少包括节点状态信息、进程状态信息及节点性能信息。

可以理解,上述状态信息可以包括但不限于待监控虚拟机对应节点的节点状态信息、nova-compute进程状态信息、节点性能信息、nova-compute节点虚拟机数量及其它预设监控信息。

具体地,监测服务实例可以根据循环节点列表,对各个节点进行状态监测。循环节点列表上有各个待监控虚拟机对应的节点id信息,根据节点id信息,循环对各个节点上的虚拟机进行监控。

监控虚拟机的哪些故障信息可以由ocf脚本内自定义的监测条件决定,故作为一种具体实施方式,上述获取所述待监控虚拟机的状态信息的过程可以具体为:根据所述ocf脚本内预定义的监测手段,获取与所述监测手段对应的所述待监控虚拟机的所述状态信息。

上述监测手段可以是指故障监测的各个指标的监控方法,其可以在编写ocf脚本时设定。例如,可以将该监测手段设为:检查nova-compute节点状态信息、检查nova-compute进程状态信息、检查节点性能信息(例如cpu利用率)、检查nova-compute节点虚拟机数量。所需监测指标可以人为根据实际需求进行设定,在此不作限定。

步骤103:根据所述状态信息,判断所述待监控虚拟机是否出现故障。

具体地,可以根据各个监测指标的信息,分别确定其对应的监测指标的正常与否。

作为一种具体实施方式,上述根据所述状态信息,判断所述待监控虚拟机是否出现故障的过程可以具体为:根据所述节点状态信息、所述进程状态信息、所述节点性能信息,分别判断所述待监控虚拟机的节点状态是否正常、所述待监控虚拟机的进程状态是否正常、所述待监控虚拟机的性能是否正常;当所述节点状态、所述进程状态及所述性能中至少一个异常时,判断所述待监控虚拟机出现故障;当所述节点状态、所述进程状态及所述性能全部正常时,判断所述待监控虚拟机正常。

步骤104:若是,运行预存储于所述pacemaker集群节点的修复脚本,调用openstack提供的应用程序接口,对所述待监控虚拟机进行修复操作。

需要说明,上述修复脚本可以是指用于执行虚拟机高可用操作的fencecompute脚本,其是预先上传至各个pacemaker集群节点的相应目录下。

上述修复操作可以具体包括节点隔离、虚拟机重建和重启、疏散等;上述应用程序接口为openstack自身提供的novaapi。

调用应用程序接口,执行该接口内的命令,可以进行相应修复操作。故作为一种具体实施方式,上述若是,运行预存储于所述pacemaker集群节点的修复脚本,调用openstack提供的应用程序接口,对所述待监控虚拟机进行修改操作的过程可以具体为:若是,运行预存储于所述pacemaker集群节点的所述修复脚本;执行所述应用程序接口中的隔离命令,隔离所述待监控虚拟机的节点;执行所述应用程序接口中的疏散命令,疏散所述待监控虚拟机。

可以理解,上述隔离命令可以具体为novaservice-force-down命令,该命令可以将故障节点强制下线,防止产生脑裂现象。上述疏散命令可以具体为novaevacuate命令,该命令可以疏散故障节点上的虚拟机,具体地,该命令自动收集故障节点上的虚拟机信息,并在其它健康节点上进行重建和重启,且重建后的虚拟机名字、id及ip等信息均不变化。

在疏散节点后,可以及时告知相关管理人员,故作为一种具体实施方式,在上述执行所述应用程序接口中的疏散命令,疏散所述待监控虚拟机之后还可以包括:更新所述节点的节点状态为已疏散,并发送告警信息给管理员。

上述节点为故障虚拟机对应的故障节点。而告警信息的发送方式可以具体为邮件、短信等。当然,不发送告警信息也不影响本发明实施例的实现。

在判断出当前节点没有出现故障时,可以判断下一节点的相关信息,依次循环。具体流程可以参见图2,图2为本发明实施例提供的监控流程示意图。如图2所示,在更新节点状态并发送告警通知管理员后,开始判断下一个节点。显然,也可以在疏散故障节点上的虚拟机后就进行下一次判断,即修复成功后开始下一次判断。而图2中的各个步骤可以参见文中相应内容,在此不再赘述。

基于pacemaker集群节点,对openstack集群上的虚拟机节点进行故障监控,即将pacemaker节点作为故障检测中心,运行ocf脚本和fencecompute脚本,实现自动监控节点状态,自动执行隔离、疏散、重启等修复操作。具体实现方案可以参见图3,图3为本发明实施例提供的基于pacemaker的openstack虚拟机高可用方案架构示意框图。

如图3所示,该方案包括pacemaker集群和openstack集群,pacemaker集群包括node1、node2、node3这3个节点,node1上运行novamonitor脚本,通过openstack集群提供的nova-api定时监控节点状态,如果发现故障,则运行fencecompute脚本,通过openstack集群提供的nova-api,执行隔离、疏散、重启操作来修复故障节点。

本实施例所提供的openstack虚拟机的故障监控方法,通过运行预存储于pacemaker集群节点的ocf监控脚本,监控openstack的待监控虚拟机;获取待监控虚拟机的状态信息,状态信息至少包括节点状态信息、进程状态信息及节点性能信息;根据状态信息,判断待监控虚拟机是否出现故障;若是,运行预存储于pacemaker集群节点的修复脚本,调用openstack提供的应用程序接口,对待监控虚拟机进行修复操作。该方法将pacemaker集群作为故障监控中心,ocf脚本作为监控手段,实现自动监控openstack虚拟机的故障;且调用openstack自身提供的应用程序接口,自动修复故障,以提高了openstack虚拟机的故障监控效率。

下面对本发明实施例提供的一种openstack虚拟机的故障监控装置进行介绍,下文描述的一种openstack虚拟机的故障监控装置与上文描述的一种openstack虚拟机的故障监控方法可相互对应参照。

请参考图4,图4为本发明实施例提供的openstack虚拟机的故障监控装置的结构框图,该装置包括:

运行模块41,用于运行预存储于pacemaker集群节点的ocf监控脚本,监控openstack的待监控虚拟机;

获取模块42,用于获取待监控虚拟机的状态信息,上述状态信息至少包括节点状态信息、进程状态信息及节点性能信息;

判断模块43,用于根据状态信息,判断待监控虚拟机是否出现故障;

修复模块44,用于若是,运行预存储于pacemaker集群节点的修复脚本,调用openstack提供的应用程序接口,对待监控虚拟机进行修复操作。

作为一种具体实施方式,上述判断模块可以包括:

指标判断单元,用于根据节点状态信息、进程状态信息、节点性能信息,分别判断待监控虚拟机的节点状态是否正常、待监控虚拟机的进程状态是否正常、待监控虚拟机的性能是否正常;

第一故障判断单元,用于当节点状态、进程状态及性能中至少一个异常时,判断待监控虚拟机出现故障;

第二故障判断单元,用于当节点状态、进程状态及性能全部正常时,判断待监控虚拟机正常。

作为一种具体实施方式,上述修复模块可以包括:

修复脚本运行单元,用于若是,运行预存储于pacemaker集群节点的修复脚本;

节点隔离单元,用于执行应用程序接口中的隔离命令,隔离待监控虚拟机的节点;

疏散单元,用于执行应用程序接口中的疏散命令,疏散待监控虚拟机。

作为一种具体实施方式,上述修复模块还可以包括:

更新告警单元,用于更新节点的节点状态为已疏散,并发送告警信息给管理员。

作为一种具体实施方式,上述获取模块可以包括:

监测手段获取单元,用于根据ocf脚本内预定义的监测手段,获取与监测手段对应的待监控虚拟机的状态信息。

本实施例所提供的openstack虚拟机的故障监控装置,将pacemaker集群作为故障监控中心,ocf脚本作为监控手段,实现自动监控openstack虚拟机的故障;且调用openstack自身提供的应用程序接口,自动修复故障,以提高了openstack虚拟机的故障监控效率。

说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

以上对本发明所提供的openstack虚拟机的故障监控方法及装置进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

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