掌桥专利:专业的专利平台
掌桥专利
首页

基于共享存储和虚拟化的智能故障自愈调度方法和装置

文献发布时间:2023-06-19 16:04:54



技术领域

本发明涉及信息控制技术领域,具体而言,涉及一种基于共享存储和虚拟化的智能故障自愈调度方法、装置、电子设备及计算机可读存储介质。

背景技术

现有技术中,业界对实现集群的可用性主要是通过部署和搭建多台物理控制节点服务器,从而构成控制集群,实现主从或者主主的架构模式完成高可用性,该种架构往往是繁重的、复杂的,耗费资源也多,不符合国家的节能减排、绿色低碳的环保要求。

随着业务的发展,传统的IaaS(基础设施即服务)私有云平台的控制服务部署模式和方法不够灵活,部署方法繁琐复杂,不具备灵活弹性和可移植性。

发明内容

为解决现有存在的技术问题,本发明实施例提供一种基于共享存储和虚拟化的智能故障自愈调度方法、装置、电子设备及计算机可读存储介质。

第一方面,本发明实施例提供了一种基于共享存储和虚拟化的智能故障自愈调度方法,包括:

故障自愈应用程序获取消息集群中的物理服务器的本机信息,根据所述本机信息选举仲裁服务器;

所述本机信息包括:CPU负载信息、内存使用信息、网络状态信息、虚拟主机分布信息;

所述仲裁服务器监听消失的虚拟主机由该虚拟主机所属的物理服务器引发,获取所述消息集群中可用物理服务器的本机信息,根据所述本机信息筛选最佳物理服务器;

所述最佳物理服务器执行所述消失的虚拟主机的拉起恢复。

第二方面,本发明实施例提供了一种基于共享存储和虚拟化的智能故障自愈调度装置,包括故障自愈应用程序、仲裁服务器和最佳物理服务器:

所述故障自愈应用程序,用于获取消息集群中的物理服务器的本机信息,根据所述本机信息选举仲裁服务器;

所述本机信息包括:CPU负载信息、内存使用信息、网络状态信息、虚拟主机信息;

所述仲裁服务器,用于监听消失的虚拟主机由该虚拟主机所属的物理服务器引发,获取所述消息集群中可用物理服务器的本机信息,根据所述本机信息筛选最佳物理服务器;

所述最佳物理服务器,用于执行所述消失的虚拟主机的拉起恢复。

第三方面,本发明实施例提供了一种电子设备,包括总线、收发器、存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述收发器、所述存储器和所述处理器通过所述总线相连,所述计算机程序被所述处理器执行时实现如上述基于共享存储和虚拟化的智能故障自愈调度方法中的步骤。

第四方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述基于共享存储和虚拟化的智能故障自愈调度方法中的步骤。

本发明实施例提供的方法、装置、电子设备及计算机可读存储介质,通过计算筛选服务器列表中各物理服务器的服务器权重值,根据服务器权重值对物理服务器进行排序,得到最佳物理服务器的序列,供故障自愈应用程序调度使用,实现故障物理服务器所属的虚拟主机的自动迁移,保持了平台的高可用性。

附图说明

为了更清楚地说明本发明实施例或背景技术中的技术方案,下面将对本发明实施例或背景技术中所需要使用的附图进行说明。

图1示出了本发明实施例所提供的基于共享存储和虚拟化的智能故障自愈调度方法的部署环境结构示意图;

图2示出了本发明实施例所提供的基于共享存储和虚拟化的智能故障自愈调度方法的过程示意图;

图3示出了本发明实施例所提供的一种基于共享存储和虚拟化的智能故障自愈调度方法方法的流程图;

图4示出了本发明实施例所提供的挑选出最佳物理服务器方法的流程图;

图5示出了本发明实施例所提供的一种基于共享存储和虚拟化的智能故障自愈调度装置的结构示意图;

图6示出了本发明实施例所提供的一种基于共享存储和虚拟化的智能故障自愈调度电子设备的结构示意图。

具体实施方式

为了本发明实施例的描述清楚简洁,首先给出相关概念或技术的简要介绍:

共享存储:指两个或多个处理机共用一个主存储器的并行体系结构。每个处理机都可将信息存入主存储器,或从中取出信息,处理机之间的通信通过访问共享存储器来实现。共享存储为物理存储器中一段可由两个以上的进程共享的存储空间(即共享存储段),共享存储段具有大小和物理存储地址。想要访问的共享存储段的进程可以连接该段存储区域到自身的地址空间中任何适合的地方,因此多个进程便可以访问相同的物理存储地址。

计算机虚拟化:虚拟化是一个广义的术语,在计算机领域通常是指计算元件在虚拟而不是真实的基础上运行。虚拟化技术可以扩大硬件的容量,简化软件的重新配置过程。CPU的虚拟化技术可以单CPU模拟多CPU的形式并行,允许一个平台同时运行多个操作系统,并且故障自愈应用程序可在相互独立的空间内运行而互不影响,进而提高计算机的工作效率。

Zookeeper:zookeeper为一个开放源代码的分布式故障自愈应用程序协调服务,为google的chubby开源实现,为hadoop和hbase的重要组件。zookeeper为分布式应用提供一致性服务的软件,提供包括配置维护、域名服务、分布式同步、组服务等功能。zookeeper的目标是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。

为了提升云平台的可用性和稳定性,本申请发明人提供了一种基于共享存储和虚拟化的智能故障自愈调度方法,包括:

我们先构建一套分布式消息集群,在各个参与计算的物理服务器上部署自主开发的故障自愈应用程序,收集各个物理服务器的资源信息和分布状况信息,将上述相关信息上载到分布式消息集群,然后由故障自愈应用程序在所有参与服务的物理服务器中选出一个仲裁服务器,由该仲裁服务器监听消息集群中的各个物理服务器的相关信息。当某个物理服务器宕机或出现故障后,仲裁服务器会发现处于分布式消息集群中的该物理服务器的相关信息无法更新和获取,那么裁定该物理服务器处于故障。仲裁服务器调用故障自愈应用程序,利用实时收集的各物理服务器相关信息筛选出恢复该故障物理服务器的虚拟主机的最佳物理服务器,利用该最佳物理服务器对故障物理服务器上的虚拟主机进行重新恢复和拉起的操作,实现特定虚拟主机故障的自动切换和恢复。

首先,需要部署分布式消息服务zookeeper集群,构建分布式的消息集群,提供消息集群的消息收集和共享;其次,需要部署虚拟主机故障的调度故障自愈应用程序,该故障自愈应用程序主要负责虚拟主机在不同物理服务器上的自定义、加载、拉起和恢复等操作。

(1)部署环境

基于共享存储模式下虚拟主机故障的故障自愈应用程序运行在物理服务器上,物理服务器分布图如图1所示。所有参与计算的物理服务器需要连接到共同的后端共享存储,物理服务器上配置有虚拟主机,上述共享存储可以是分布式存储,也可以是集中式存储。

(2)故障调度

如图2所示,当某个物理服务器出现故障后,故障自愈应用程序会发现该台物理服务器处于离线故障状态,同时故障自愈应用程序在参与计算的物理服务器中选举一台最佳物理服务器,通过恢复操作,拉起管控的虚拟主机,实现虚拟主机的自动恢复。

所属技术领域的技术人员可以理解,除非另外定义,本发明实施例使用的所有术语(包括技术术语和科学术语),具有与本发明实施例所属领域中普通技术人员一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。

所属技术领域的技术人员可以理解,这里使用的“客户端”、“终端”、“终端设备”既包括无线信号接收器的设备,其仅具备无发射能力的无线信号接收器的设备,又包括接收和发射硬件的设备,其具有能够在双向通信链路上进行双向通信的接收和发射硬件的设备。这种设备可以包括:蜂窝或其他诸如个人计算机、平板电脑之类的通信设备,其具有单线路显示器或多线路显示器或没有多线路显示器的蜂窝或其他通信设备;PCS(PersonalCommunications Service,个人通信系统),其可以组合语音、数据处理、传真和/或数据通信能力;PDA(Personal Digital Assistant,个人数字处理),其可以包括射频接收器、寻呼机、互联网/内联网访问,网络浏览器、记事本、日历和/或GPS(Global PositioningSystem,全球定位系统)接收器;常规膝上型和/或掌上型计算机或其他设备,其具有和/或包括射频接收器的常规膝上型和/或掌上型计算机或其他设备。这里所使用的“客户端”、“终端”、“终端设备”可以是便携式、可运输、安装在交通工具(航空、海运和/或陆地)中的,或者适合于和/或配置为本地运行,和/或以分布形式,运行在地球和/或空间的任何其他位置运行。这里所使用的“客户端”、“终端”、“终端设备”还可以是通信终端、上网终端、音乐/视频播放终端,例如可以是PDA、MID(Mobile Internet Device,移动互联网设备)和/或具有音乐/视频播放功能的移动电话,也可以是智能电视、机顶盒、虚拟现实(virtualreality,VR)终端设备、增强现实(augmented reality,AR)终端设备、工业控制(industrial control)中的无线终端、无人驾驶(self-driving)中的无线终端、远程手术(remote medical surgery)中的无线终端、智能电网(smart grid)中的无线终端、运输安全(transportation safety)中的无线终端、智慧城市(smart city)中的无线终端、智慧家庭(smart home)中的无线终端等设备。

本发明实施例所称的“服务器”、“客户端”、“服务节点”等名称所指向的硬件,本质上是具备个人计算机等效能力的电子设备,为具有中央处理器(包括运算器和控制器)、存储器、输入设备以及输出设备等冯诺依曼原理所披露的必要构件的硬件设备,计算机程序存储于其存储器中,中央处理器将存储在外存中的程序调入内存中运行,执行程序中的指令,与输入输出设备交互,借此完成特定的功能。

所属技术领域的技术人员可以理解,本发明实施例所称的“服务器”这一概念,同理也可扩展到适用于服务器集群的情况。根据所属技术领域的技术人员所理解的网络部署原理,所述各服务器应是逻辑上的划分,在物理空间上,这些服务器既可以是互相独立但可通过接口调用的,也可以是集成到一台物理计算机或一套计算机集群的。

所属技术领域的技术人员应当知道,本发明实施例可以实现为方法、装置、电子设备及计算机可读存储介质。因此,本发明实施例可以具体实现为以下形式:完全的硬件、完全的软件(包括固件、驻留软件、微代码等)、硬件和软件结合的形式。此外,在一些实施例中,本发明实施例还可以实现为在一个或多个计算机可读存储介质中的计算机程序产品的形式,该计算机可读存储介质中包含计算机程序代码。

上述计算机可读存储介质可以采用一个或多个计算机可读存储介质的任意组合。计算机可读存储介质包括:电、磁、光、电磁、红外或半导体的系统、装置或器件,或者以上任意的组合。计算机可读存储介质更具体的例子包括:便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、闪存(Flash Memory)、光纤、光盘只读存储器(CD-ROM)、光存储器件、磁存储器件或以上任意组合。在本发明实施例中,计算机可读存储介质可以是任意包含或存储程序的有形介质,该程序可以被指令执行系统、装置、器件使用或与其结合使用。

上述计算机可读存储介质包含的计算机程序代码可以用任意适当的介质传输,包括:无线、电线、光缆、射频(Radio Frequency,RF)或者以上任意合适的组合。

可以以一种或多种程序设计语言或其组合来编写用于执行本发明实施例操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言,例如:Java、Smalltalk、C++,还包括常规的过程式程序设计语言,例如:C语言或类似的程序设计语言。计算机程序代码可以完全的在用户计算机上执行、部分的在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行以及完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括:局域网(LAN)或广域网(WAN),可以连接到用户计算机,也可以连接到外部计算机。

下面将参照本发明实施例的方法、装置、电子设备及计算机可读存储介质的流程图和/或方框图描述本发明实施例。

应当理解,流程图和/或方框图的每个方框以及流程图和/或方框图中各方框的组合,都可以由计算机可读程序指令实现。这些计算机可读程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而生产出一种机器,这些计算机可读程序指令通过计算机或其他可编程数据处理装置执行,产生了实现流程图和/或方框图中的方框规定的功能/操作的装置。

也可以将这些计算机可读程序指令存储在能使得计算机或其他可编程数据处理装置以特定方式工作的计算机可读存储介质中。这样,存储在计算机可读存储介质中的指令就产生出一个包括实现流程图和/或方框图中的方框规定的功能/操作的指令装置产品。

也可以将计算机可读程序指令加载到计算机、其他可编程数据处理装置或其他设备上,使得在计算机、其他可编程数据处理装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其他可编程数据处理装置上执行的指令能够提供实现流程图和/或方框图中的方框规定的功能/操作的过程。

下面结合本发明实施例中的附图对本发明实施例进行描述。

图3示出了本发明实施例所提供的一种基于共享存储和虚拟化的智能故障自愈调度方法的流程图。如图3所示,该方法包括:

步骤301:部署分布式消息集群和故障自愈应用程序,然后进行初始化操作,例如生成相应的路径变量、目录位置、定时任务等;

步骤302:故障自愈应用程序开始收集物理服务器的本机信息,包括CPU使用率和空闲率信息、内存使用和空闲信息、网络状态信息、系统负载信息、物理服务器的虚拟主机信息等;

步骤303:检查从步骤302中获取的本物理服务器上运行的虚拟主机是否包含在zk-domain文件中;

步骤304:如果虚拟主机包含在zk-domain文件中,则将本物理服务器上的虚拟主机进行关机卸载操作;如果虚拟主机未包含在zk-domain文件中,则直接将本物理服务器的本机信息保存在物理服务器信息文件zk-info中;

步骤305:关机卸载之后,将该物理服务器的本机信息保存到物理服务器信息文件zk-info中;

步骤306:将各物理服务器的本机信息保存完毕之后,故障自愈应用程序开始监听zk-info文件的变化信息;

步骤307:监听完成后,故障自愈应用程序从所有参与计算的物理服务器中选举仲裁服务器,仲裁服务器用于实现物理服务器故障后的最佳物理服务器的选择;

步骤308:如果未被选为仲裁服务器,流程结束;如果被选为仲裁服务器,开始检索消息集群中发生故障的虚拟主机信息,并保存进zk-brokendomain文件;

步骤309:初始化zk-brokendomain文件,仲裁服务器开始监听消息集群中的zk-domain文件;

步骤310:仲裁服务器的监听结果包括:修改、增加和消失;

步骤311:如果监听结果为“修改”,说明只是部分物理服务器上的虚拟主机信息发生了变化,并未发生故障或损坏,记录下变化的内容,然后记录相关日志;

步骤312:如果监听结果为“增加”,说明存在物理服务器以及其上运行的虚拟主机信息增加的情形,并判断增加的原因;

步骤313:如果监听结果为“消失”,说明物理服务器发生故障或者存在手动操作触发的情形,导致原来记录的虚拟主机与物理服务器的对应信息发生变化,需要进一步判断;

步骤314:如果监听结果为“修改”,只需记录下变化的内容,然后记录相关日志;

步骤315:如果监听结果为“增加”,仲裁服务器需要判断新增的虚拟主机是否为被重新拉起的实例;

步骤316:如果判断出新增的虚拟主机是由之前的故障物理服务器所触发的重新拉起的虚拟主机,仲裁服务器调用故障自愈应用程序,更新zk-brokendomain文件信息,通知参与计算的其他物理服务器zk-brokendomain文件中的该虚拟主机为重新拉起恢复的虚拟主机;如果判断出新增的虚拟主机不是重新拉起的虚拟主机,记录日志信息;

步骤317:如果监听结果为“消失”,需要仲裁服务器判断消失的物理服务器以及虚拟主机是否为物理服务器故障或宕机所致;

步骤318:如果判断出不是由宕机或故障引发,记录日志信息;如果判断出消失的物理服务器及虚拟主机是由物理服务器故障或宕机所致,故障自愈应用程序将消失的物理服务器及虚拟主机信息更新进zk-brokendomain文件信息,等待后续的仲裁服务器进行监听和任务分配;

步骤319:当仲裁服务器监听zk-brokendomain文件信息,发现该文件中存在损坏或故障的虚拟主机信息后,开始触发故障虚拟主机的恢复操作,需要从参与计算的物理服务器中挑选出最佳物理服务器;

图4示出了本发明实施例所提供的挑选出最佳物理服务器方法的流程图,如图4所示,从参与计算的物理服务器中挑选出最佳物理服务器的步骤具体包括:

步骤3191:仲裁服务器遍历可用的物理服务器,查询物理服务器的虚拟化服务是否正常,虚拟化服务决定该物理服务器能否正常启动虚拟主机;如果虚拟化服务正常,将正常的物理服务器置入筛选服务器列表,将虚拟化服务异常的物理服务器从筛选服务器列表中剔除;

步骤3192:获取步骤3191中的筛选服务器列表,继续检查物理服务器的网络连通状态,需要检查的网络包括:管理网络、存储网络、虚拟主机业务网络;将网络连通正常的物理服务器置入筛选服务器列表,将网络连通异常的物理服务器从筛选服务器列表中剔除;

步骤3193:获取步骤3192中的筛选服务器列表,遍历查询每台物理服务器的内存使用信息,包括:当前总内存、空闲内存、内存空闲率;判断当前空闲内存是否能够满足拉起虚拟主机所需的内存资源,将满足条件的物理服务器置入筛选服务器列表,将不满足条件的物理服务器从筛选服务器列表中剔除;

步骤3194:获取步骤3193中的筛选服务器列表,遍历查询每台物理服务器的CPU负载信息,包括:当前CPU负载、平均5分钟CPU负载、平均15分钟CPU负载,将其记录保存;

步骤3195:获取步骤3193中的筛选服务器列表,遍历查询每台物理服务器上当前运行的虚拟主机数量,将其记录保存;

步骤3196:最佳服务器筛选规则:

最佳服务器权重值=40%*CPU负载得分+50%*内存使用得分+10%*虚拟主机分布得分;

所述CPU负载得分=20%*当前CPU负载+30%*平均5分钟CPU负载+50%*平均15分钟CPU负载;

所述内存使用得分=100%*总内存*内存空闲率;

所述虚拟主机分布得分=(100%*虚拟主机数量)*(-1)。

步骤320:仲裁服务器根据zk-brokendomain文件信息筛选出适合对故障进行拉起恢复的虚拟主机的最佳物理服务器之后,仲裁服务器会更新该最佳物理服务器所对应的zk-info文件信息;

步骤321:最佳物理服务器持续监听自身对应的zk-info文件,当发现自身的zk-info文件发生变化之后,立即执行相应的操作,监听的结果包括:NON、SALVAGE、DOWN、UPDATE;

步骤322:当监听结果为“NON”,说明是空操作,不做任何操作,只记录日志信息;

步骤323:当监听结果为“SALVAGE”,最佳物理服务器执行拉起恢复操作,先定义相应要拉起的虚拟主机,然后执行启动拉起恢复的操作;

步骤324:当最佳物理服务器执行完拉起恢复操作后,触发UPDATE更新操作;

步骤325:当监听结果为“DOWN”,最佳物理服务器执行相应的卸载操作,先对该物理服务器上运行的虚拟主机执行关机操作,然后执行卸载操作;

步骤326:当物理服务器执行完卸载操作后,触发UPDATE更新操作;

步骤327:当监听结果为“UPDATE”,最佳物理服务器触发更新操作;

步骤328:将拉起恢复或者卸载完成的虚拟主机信息更新到物理服务器自身的zk-info文件中;

步骤329:将拉起恢复或者卸载完成的虚拟主机信息更新到用于监听的消息集群的zk-domain文件中;

步骤330:执行完UPDATE更新操作后,需要将相关操作和结果写入日志信息中;

步骤331:完成日志信息记录后,全部流程结束。

本发明实施例的基于共享存储和虚拟化的智能故障自愈调度方法,通过计算筛选服务器列表中各物理服务器的服务器权重值,根据服务器权重值对物理服务器进行排序,得到最佳物理服务器的序列,供故障自愈应用程序调度使用,实现故障物理服务器所属的虚拟主机的自动迁移,保持了平台的高可用性。

本发明实施例的基于共享存储和虚拟化的智能故障自愈调度方法,部署灵活、对故障自动治愈,具备良好的稳定性和可用性;同时具备轻量化部署,满足低能耗的要求。

上文结合图1至图4,详细描述了根据本发明实施例的基于共享存储和虚拟化的智能故障自愈调度方法,下面将结合图5,详细描述根据本发明实施例的基于共享存储和虚拟化的智能故障自愈调度装置。

图5示出了本发明实施例所提供的一种基于共享存储和虚拟化的智能故障自愈调度装置的结构示意图。如图5所示,该虚拟主机故障的调度装置包括故障自愈应用程序10、仲裁服务器20和最佳物理服务器30:

所述故障自愈应用程序10,用于获取消息集群中的物理服务器的本机信息,根据所述本机信息选举仲裁服务器;

所述本机信息包括:CPU负载信息、内存使用信息、网络状态信息、虚拟主机信息;

所述仲裁服务器20,用于监听消失的虚拟主机由该虚拟主机所属的物理服务器引发,获取所述消息集群中可用物理服务器的本机信息,根据所述本机信息筛选最佳物理服务器;

所述最佳物理服务器30,用于执行所述消失的虚拟主机的拉起恢复。

在本发明实施例中,可选地,如图5所示,仲裁服务器具体包括:

遍历获取模块21,用于遍历可用的物理服务器,获取所述物理服务器的本机信息,将满足条件的所述物理服务器置入筛选服务器列表;

权重筛选模块22,用于根据最佳服务器筛选规则自所述筛选服务器列表中筛选出服务器权重值,根据所述服务器权重值得到最佳物理服务器;

所述服务器权重值=40%*CPU负载得分+50%*内存使用得分+10%*虚拟主机分布得分;

所述CPU负载得分=20%*当前CPU负载+30%*平均5分钟CPU负载+50%*平均15分钟CPU负载;

所述内存使用得分=100%*总内存*空闲率;

所述虚拟主机分布得分=(100%*虚拟主机数量)*(-1)。

在本发明实施例中,可选地,仲裁服务器包括判定触发模块23:

所述判定触发模块23,用于监听所述消息集群中的zk-domain文件,根据监听结果判定消失的虚拟主机是否由该虚拟主机所属的物理服务器发生故障或宕机引发;监听所述zk-brokendomain文件信息,触发所述消失的虚拟主机的拉起恢复;

所述故障自愈应用程序10,用于如果由所述物理服务器发生故障或宕机引发,将消失的虚拟主机信息更新进zk-brokendomain文件。

在本发明实施例中,可选地,仲裁服务器具体包括文件更新模块24:

文件更新模块24,用于根据所述zk-brokendomain文件信息,更新所述最佳物理服务器30对应的zk-info文件信息;

最佳物理服务器30具体包括监听拉起模块31:

监听拉起模块31,用于监听所述zk-info文件信息,根据监听结果执行所述消失的虚拟主机的拉起恢复。

因此,本发明实施例的基于共享存储和虚拟化的智能故障自愈调度装置,通过计算筛选服务器列表中各物理服务器的服务器权重值,根据服务器权重值对物理服务器进行排序,得到最佳物理服务器的序列,供故障自愈应用程序调度使用,实现故障物理服务器所属的虚拟主机的自动迁移,保持了平台的高可用性。

本发明实施例的基于共享存储和虚拟化的智能故障自愈调度装置,部署灵活、对故障自动治愈,具备良好的稳定性和可用性;同时具备轻量化部署,满足低能耗的要求。

此外,本发明实施例还提供了一种电子设备,包括总线、收发器、存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,该收发器、该存储器和处理器分别通过总线相连,计算机程序被处理器执行时实现上述基于共享存储和虚拟化的智能故障自愈方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。

具体的,参见图6所示,本发明实施例还提供了一种电子设备,该电子设备包括总线61、处理器62、收发器63、总线接口64、存储器65和用户接口66。

在本发明实施例中,该电子设备还包括:存储在存储器65上并可在处理器62上运行的计算机程序,计算机程序被处理器62执行时实现以下步骤:

故障自愈应用程序获取消息集群中的物理服务器的本机信息,根据所述本机信息选举仲裁服务器;

所述本机信息包括:CPU负载信息、内存使用信息、网络状态信息、虚拟主机信息;

所述仲裁服务器监听消失的虚拟主机由该虚拟主机所属的物理服务器引发,获取所述消息集群中可用物理服务器的本机信息,根据所述本机信息筛选最佳物理服务器;

所述最佳物理服务器执行所述消失的虚拟主机的拉起恢复。

可选地,计算机程序被处理器62执行时还可实现以下步骤:

所述根据本机信息筛选最佳物理服务器的步骤包括:

所述仲裁服务器遍历可用的物理服务器,获取所述物理服务器的本机信息,将满足条件的所述物理服务器置入筛选服务器列表;

所述仲裁服务器根据最佳服务器筛选规则自所述筛选服务器列表中筛选出服务器权重值,根据所述服务器权重值得到最佳物理服务器;

所述服务器权重值=40%*CPU负载得分+50%*内存使用得分+10%*虚拟主机分布得分;

所述CPU负载得分=20%*当前CPU负载+30%*平均5分钟CPU负载+50%*平均15分钟CPU负载;

所述内存使用得分=100%*总内存*空闲率;

所述虚拟主机分布得分=(100%*虚拟主机数量)*(-1)。

可选地,计算机程序被处理器62执行时还可实现以下步骤:

所述仲裁服务器监听消失的虚拟主机由该虚拟主机所属的物理服务器引发的步骤包括:

所述仲裁服务器监听所述消息集群中的zk-domain文件,根据监听结果判定消失的虚拟主机是否由该虚拟主机所属的物理服务器发生故障或宕机引发;

如果由所述物理服务器发生故障或宕机引发,所述故障自愈应用程序将消失的虚拟主机信息更新进zk-brokendomain文件;

所述仲裁服务器监听所述zk-brokendomain文件信息,触发所述消失的虚拟主机的拉起恢复。

可选地,计算机程序被处理器62执行时还可实现以下步骤:

所述最佳物理服务器执行所述消失的虚拟主机的拉起恢复的步骤包括:

所述仲裁服务器根据所述zk-brokendomain文件信息,更新所述最佳物理服务器对应的zk-info文件信息;

所述最佳物理服务器监听所述zk-info文件信息,根据监听结果执行所述消失的虚拟主机的拉起恢复。

在本发明实施例中,所述监听结果包括NON、SALVAGE、DOWN、UPDATE:

当监听结果为NON,不进行任何操作,记录日志信息;

当监听结果为SALVAGE,执行拉起恢复操作;

当监听结果为DOWN,执行相应的卸载操作;

当监听结果为UPDATE,触发zk-info文件和zk-domain文件的更新操作。

收发器63,用于在处理器62的控制下接收和发送数据。

在图6中,总线架构(用总线61来代表),总线61可以包括任意数量互联的总线和桥,总线61将包括由处理器62代表的一个或多个处理器与存储器65代表的存储器的各种电路连接在一起。

总线61表示若干类型的总线结构中的任何一种总线结构中的一个或多个,包括存储器总线以及存储器控制器、外围总线、加速图形端口(Accelerate Graphical Port,AGP)、处理器或使用各种总线体系结构中的任意总线结构的局域总线。作为示例而非限制,这样的体系结构包括:工业标准体系结构(Industry Standard Architecture,ISA)总线、微通道体系结构(Micro Channel Architecture,MCA)总线、扩展ISA(Enhanced ISA,EISA)总线、视频电子标准协会(Video Electronics Standards Association,VESA)、外围部件互连(Peripheral Component Interconnect,PCI)总线。

处理器62可以是一种集成电路芯片,具有信号处理能力。在实现过程中,上述方法实施例的各步骤可以通过处理器中硬件的集成逻辑电路或软件形式的指令完成。上述的处理器包括:通用处理器、中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(FieldProgrammable Gate Array,FPGA)、复杂可编程逻辑器件(Complex Programmable LogicDevice,CPLD)、可编程逻辑阵列(Programmable Logic Array,PLA)、微控制单元(Microcontroller Unit,MCU)或其他可编程逻辑器件、分立门、晶体管逻辑器件、分立硬件组件。可以实现或执行本发明实施例中公开的各方法、步骤及逻辑框图。例如,处理器可以是单核处理器或多核处理器,处理器可以集成于单颗芯片或位于多颗不同的芯片。

处理器62可以是微处理器或任何常规的处理器。结合本发明实施例所公开的方法步骤可以直接由硬件译码处理器执行完成,或者由译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存取存储器(Random Access Memory,RAM)、闪存(FlashMemory)、只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、寄存器等本领域公知的可读存储介质中。所述可读存储介质位于存储器中,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。

总线61还可以将,例如外围设备、稳压器或功率管理电路等各种其他电路连接在一起,总线接口64在总线61和收发器63之间提供接口,这些都是本领域所公知的。因此,本发明实施例不再对其进行进一步描述。

收发器63可以是一个元件,也可以是多个元件,例如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。例如:收发器63从其他设备接收外部数据,收发器63用于将处理器62处理后的数据发送给其他设备。取决于计算机系统的性质,还可以提供用户接口66,例如:触摸屏、物理键盘、显示器、鼠标、扬声器、麦克风、轨迹球、操纵杆、触控笔。

应理解,在本发明实施例中,存储器65可进一步包括相对于处理器62远程设置的存储器,这些远程设置的存储器可以通过网络连接至服务器。上述网络的一个或多个部分可以是自组织网络(ad hoc network)、内联网(intranet)、外联网(extranet)、虚拟专用网(VPN)、局域网(LAN)、无线局域网(WLAN)、广域网(WAN)、无线广域网(WWAN)、城域网(MAN)、互联网(Internet)、公共交换电话网(PSTN)、普通老式电话业务网(POTS)、蜂窝电话网、无线网络、无线保真(Wi-Fi)网络以及两个或更多个上述网络的组合。例如,蜂窝电话网和无线网络可以是全球移动通信(GSM)系统、码分多址(CDMA)系统、全球微波互联接入(WiMAX)系统、通用分组无线业务(GPRS)系统、宽带码分多址(WCDMA)系统、长期演进(LTE)系统、LTE频分双工(FDD)系统、LTE时分双工(TDD)系统、先进长期演进(LTE-A)系统、通用移动通信(UMTS)系统、增强移动宽带(Enhance Mobile Broadband,eMBB)系统、海量机器类通信(massive Machine Type of Communication,mMTC)系统、超可靠低时延通信(UltraReliable Low Latency Communications,uRLLC)系统等。

应理解,本发明实施例中的存储器65可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器包括:只读存储器(Read-OnlyMemory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存(Flash Memory)。

易失性存储器包括:随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如:静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data RateSDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(DirectRambus RAM,DRRAM)。本发明实施例描述的电子设备的存储器65包括但不限于上述和任意其他适合类型的存储器。

在本发明实施例中,存储器65存储了操作系统651和故障自愈应用程序652的如下元素:可执行模块、数据结构,或者其子集,或者其扩展集。

具体而言,操作系统651包含各种系统程序,例如:框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。故障自愈应用程序652包含各种故障自愈应用程序,例如:媒体播放器(Media Player)、浏览器(Browser),用于实现各种应用业务。实现本发明实施例方法的程序可以包含在故障自愈应用程序652中。故障自愈应用程序652包括:小程序、对象、组件、逻辑、数据结构以及其他执行特定任务或实现特定抽象数据类型的计算机系统可执行指令。

此外,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述基于共享存储和虚拟化的智能故障自愈调度方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。

具体而言,计算机程序被处理器执行时可实现以下步骤:

故障自愈应用程序获取消息集群中的物理服务器的本机信息,根据所述本机信息选举仲裁服务器;

所述本机信息包括:CPU负载信息、内存使用信息、网络状态信息、虚拟主机信息;

所述仲裁服务器监听消失的虚拟主机由该虚拟主机所属的物理服务器引发,获取所述消息集群中可用物理服务器的本机信息,根据所述本机信息筛选最佳物理服务器;

所述最佳物理服务器执行所述消失的虚拟主机的拉起恢复。

可选地,计算机程序被处理器执行时还可实现以下步骤:

所述根据本机信息筛选最佳物理服务器的步骤包括:

所述仲裁服务器遍历可用的物理服务器,获取所述物理服务器的本机信息,将满足条件的所述物理服务器置入筛选服务器列表;

所述仲裁服务器根据最佳服务器筛选规则自所述筛选服务器列表中筛选出服务器权重值,根据所述服务器权重值得到最佳物理服务器;

所述服务器权重值=40%*CPU负载得分+50%*内存使用得分+10%*虚拟主机分布得分;

所述CPU负载得分=20%*当前CPU负载+30%*平均5分钟CPU负载+50%*平均15分钟CPU负载;

所述内存使用得分=100%*总内存*空闲率;

所述虚拟主机分布得分=(100%*虚拟主机数量)*(-1)。

可选地,计算机程序被处理器执行时还可实现以下步骤:

所述仲裁服务器监听消失的虚拟主机由该虚拟主机所属的物理服务器引发的步骤包括:

所述仲裁服务器监听所述消息集群中的zk-domain文件,根据监听结果判定消失的虚拟主机是否由该虚拟主机所属的物理服务器发生故障或宕机引发;

如果由所述物理服务器发生故障或宕机引发,所述故障自愈应用程序将消失的虚拟主机信息更新进zk-brokendomain文件;

所述仲裁服务器监听所述zk-brokendomain文件信息,触发所述消失的虚拟主机的拉起恢复。

可选地,计算机程序被处理器执行时还可实现以下步骤:

所述最佳物理服务器执行所述消失的虚拟主机的拉起恢复的步骤包括:

所述仲裁服务器根据所述zk-brokendomain文件信息,更新所述最佳物理服务器对应的zk-info文件信息;

所述最佳物理服务器监听所述zk-info文件信息,根据监听结果执行所述消失的虚拟主机的拉起恢复。

在本发明实施例中,所述监听结果包括NON、SALVAGE、DOWN、UPDATE:

当监听结果为NON,不进行任何操作,记录日志信息;

当监听结果为SALVAGE,执行拉起恢复操作;

当监听结果为DOWN,执行相应的卸载操作;

当监听结果为UPDATE,触发zk-info文件和zk-domain文件的更新操作。

计算机可读存储介质包括:永久性和非永久性、可移动和非可移动媒体,是可以保留和存储供指令执行设备所使用指令的有形设备。计算机可读存储介质包括:电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备以及上述任意合适的组合。计算机可读存储介质包括:相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带存储、磁带磁盘存储或其他磁性存储设备、记忆棒、机械编码装置(例如在其上记录有指令的凹槽中的穿孔卡或凸起结构)或任何其他非传输介质、可用于存储可以被计算设备访问的信息。按照本发明实施例中的界定,计算机可读存储介质不包括暂时信号本身,例如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如穿过光纤电缆的光脉冲)或通过导线传输的电信号。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

本领域普通技术人员可以意识到,结合本发明实施例中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或二者的结合来实现,为了清楚说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机程序指令。所述计算机程序指令包括:汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路配置数据或以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言,例如:Smalltalk、C++以及过程式编程语言,例如:C语言或类似的编程语言。

在计算机上加载和执行所述计算机程序指令时,全部或部分的产生按照本发明实施例所述的流程或功能,所述计算机可以是通过计算机、专用计算机、计算机网络或其他可编辑装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如:所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如:同轴电缆、双绞线、光纤、数字用户线路(digitalsubscriber line,DSL))或无线(例如:红外、无线、微波)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或包括一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如:软盘、磁盘、磁带)、光介质(例如:光盘)或半导体介质(例如:固态硬盘(Solid State Drive,SSD))等。这些功能究竟以硬件还是软件来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明实施例的范围。

所属技术领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述本发明方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所披露的装置、电子设备和方法,可以通过其他的方式实现。例如,以上描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的、机械的或其他的形式连接。

所述作为分离部件说明的单元可以是或也可以不是物理上分开的,作为单元显示的部件可以是或也可以不是物理单元,既可以位于一个位置,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或全部单元来解决本发明实施例方案要解决的问题。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术作出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(包括:个人计算机、服务器、数据中心或其他网络设备)执行本发明各个实施例所述方法的全部或部分步骤。而上述存储介质包括如前述所列举的各种可以存储程序代码的介质。

以上所述,仅为本发明实施例的具体实施方式,但本发明实施例的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明实施例披露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明实施例的保护范围之内。因此,本发明实施例的保护范围应以权利要求的保护范围为准。

相关技术
  • 基于共享存储和虚拟化的智能故障自愈调度方法和装置
  • 虚拟化网元故障自愈方法及装置
技术分类

06120114698650