Linux集群故障自动恢复方法和Linux集群故障自动恢复系统转让专利

申请号 : CN201210031209.5

文献号 : CN102957563B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 单联瑜丛龙水董涛李战强孙世为邢占军孙友凯段淼刘玉梅徐香明赵军民付巧娟吴敏车晓萍刘芳卢晋平董倩尚新民侯树杰郭见乐

申请人 : 中国石油化工股份有限公司中国石油化工股份有限公司胜利油田分公司物探研究院

摘要 :

本发明提供一种Linux集群故障自动恢复方法,包括执行数据信息采集并判断是否出现故障;当判断出现故障时,重新启动节点;当重新启动该节点后,再次执行该数据信息采集并判断出现故障时,执行故障节点的维护集成;在执行该故障节点的维护集成后,再次执行该数据信息采集并判断出现故障时,执行故障节点的安装集成;以及在执行该故障节点的安装集成后,再次执行该数据信息采集并判断出现故障时,进行人工处理。该Linux集群故障自动恢复方法在很大程度上减少了人工的消耗,能够自动、快速、高效地完成集群节点系统的故障自动恢复,能够满足异构集群不同需求,支持多个版本操作系统,提高了集群资源利用效率。

权利要求 :

1.Linux集群故障自动恢复方法,其特征在于,该Linux集群故障自动恢复方法包括:执行数据信息采集并判断是否出现故障;

当判断出现故障时,重新启动节点;

当重新启动该节点后,再次执行该数据信息采集并判断出现故障时,执行故障节点的维护集成;

在执行该故障节点的维护集成后,再次执行该数据信息采集并判断出现故障时,执行故障节点的安装集成;以及在执行该故障节点的安装集成后,再次执行该数据信息采集并判断出现故障时,进行人工处理;

该数据信息采集包括动态数据采集、静态信息采集、系统服务状态数据采集和应用信息数据采集;

该动态数据采集和静态信息采集通过读取系统的/proc文件系统获取系统信息;

该执行故障节点的维护集成的步骤包括将该节点在服务器端设置成维护状态,重新启动该节点,该节点在启动过程中,从网络读取启动映像,进入该节点的维护状态,将该节点系统的配置还原到最初配置状态;

该执行故障节点的安装集成的步骤包括将该节点在服务器端设置成安装集成状态,重新启动该节点,该节点在启动过程中,从网络读取启动映像,进入节点的网络安装集成,从网络读取安装包,进行系统的安装配置,将该节点系统重新进行安装;

该Linux集群故障自动恢复方法根据该数据信息采集的更新时间,设定该更新间隔的最大时间间隔,当该数据信息采集的刷新时间超过了该最大时间间隔时,判断出现故障;

该Linux集群故障自动恢复方法还包括在重新启动节点的步骤后,标志节点已进行重新启动的标志位,并在再次执行该数据信息采集并判断未出现故障时,清除节点已进行重新启动的标志位;

该Linux集群故障自动恢复方法还包括在执行故障节点的维护集成的步骤后,标志节点维护集成的标志位,并在再次执行该数据信息采集并判断未出现故障时,清除节点维护集成的标志位;

该Linux集群故障自动恢复方法还包括在执行故障节点的安装集成的步骤后,标志节点安装集成的标志位,并在再次执行该数据信息采集并判断未出现故障时,清除节点安装集成的标志位。

2.根据权利要求1所述的Linux集群故障自动恢复方法,其特征在于,该系统服务状态数据采集是检测整个集群的DNS、NIS、NTP主从服务器的服务状态,并把其状态写到数据库中。

3.根据权利要求1所述的Linux集群故障自动恢复方法,其特征在于,该应用信息数据采集是根据生产应用的实际情况,先罗列出实际应用中的各种需要,然后根据需要手工录入各个应用服务器及应用服务的节点名,并保存到数据库中,然后根据各个应用服务器的节点名检测该服务器的应用服务状态,并把其状态写到该数据库中。

4.Linux集群故障自动恢复系统,其特征在于,该Linux集群故障自动恢复系统包括数据信息采集及判断模块、重新启动节点模块、维护集成模块和安装集成模块,该数据信息采集及判断模块用于执行数据信息采集并判断是否出现故障,该重新启动节点模块用于重新启动节点,该维护集成模块用于执行故障节点的维护集成,该安装集成模块用于执行故障节点的安装集成;

该数据信息采集及判断模块执行数据信息采集并判断是否出现故障,当该数据信息采集及判断模块判断出现故障时,该重新启动节点模块重新启动节点,在该重新启动节点模块重新启动该节点后,该数据信息采集及判断模块再次执行该数据信息采集并判断出现故障时,该维护集成模块执行故障节点的维护集成,当该维护集成模块执行该故障节点的维护集成后,该数据信息采集及判断模块再次执行该数据信息采集并判断出现故障时,该安装集成模块执行故障节点的安装集成,在该安装集成模块执行该故障节点的安装集成后,该数据信息采集及判断模块再次执行该数据信息采集并判断出现故障时,该数据信息采集及判断模块发送消息以进行人工处理;

该数据信息采集包括动态数据采集、静态信息采集、系统服务状态数据采集和应用信息数据采集;

该数据信息采集及判断模块根据该数据信息采集的更新时间,设定该更新间隔的最大时间间隔,当该数据信息采集的刷新时间超过了该最大时间间隔时,该数据信息采集及判断模块判断出现故障;

该维护集成模块在执行故障节点的维护集成时,将该节点在服务器端设置成维护状态,重新启动该节点,该节点在启动过程中,从网络读取启动映像,进入该节点的维护状态,将该节点系统的配置还原到最初配置状态;

该安装集成模块在执行故障节点的安装集成时,将该节点在服务器端设置成安装集成状态,重新启动该节点,该节点在启动过程中,从网络读取启动映像,进入节点的网络安装集成,从网络读取安装包,进行系统的安装配置,将该节点系统重新进行安装;

该数据信息采集及判断模块通过读取系统的/proc文件系统获取系统信息以获得该动态数据采集和该静态信息采集;

该数据信息采集及判断模块检测整个集群的DNS、NIS、NTP主从服务器的服务状态以获得该系统服务状态数据采集,并把其状态写到数据库中。

5.根据权利要求4所述的Linux集群故障自动恢复系统,其特征在于,该数据信息采集及判断模块根据生产应用的实际情况,先罗列出实际应用中的各种需要,然后根据需要手工录入各个应用服务器及应用服务的节点名,并保存到数据库中,然后根据各个应用服务器的节点名检测该服务器的应用服务状态,并把其状态写到该数据库中,以进行该应用信息数据采集。

说明书 :

Linux集群故障自动恢复方法和Linux集群故障自动恢复系统

技术领域

[0001] 本发明涉及大规模集群资源管理系统的优化与应用,特别是涉及到Linux集群故障自动恢复方法。

背景技术

[0002] 随着计算需求的发展,微机集群的规模也在不断地扩大,如何高效地完成对大规模集群的管理,成为亟待解决的一个难题。国内外的计算机厂家均投入了大量研发力量开发集群相关产品,从免费软件到收费软件,功能各有不同,主要功能集中于系统管理和监视,但缺少智能的、自动化的工具,所以集群的可管理性和可用性均收到极大的影响。在现有的模式下,管理人员需要通过自身的经验进行故障点的查找和判断,往往耗时较长,且不容易迅速处理问题,将故障节点重新投入使用。为此我们发明了一种新的Linux集群故障自动恢复方法,解决了以上技术问题。

发明内容

[0003] 本发明的目的是提供一种能够自动、快速、高效地完成集群节点系统的故障自动恢复的Linux集群故障自动恢复方法。
[0004] 本发明的目的可通过如下技术措施来实现:Linux集群故障自动恢复方法,该Linux集群故障自动恢复方法包执行数据信息采集并判断是否出现故障;当判断出现故障时,重新启动节点;当重新启动该节点后,再次执行该数据信息采集并判断出现故障时,执行故障节点的维护集成;在执行该故障节点的维护集成后,再次执行该数据信息采集并判断出现故障时,执行故障节点的安装集成;以及在执行该故障节点的安装集成后,再次执行该数据信息采集并判断出现故障时,进行人工处理。
[0005] 本发明的目的还可通过如下技术措施来实现:
[0006] 该数据信息采集包括动态数据采集、静态信息采集、系统服务状态数据采集和应用信息数据采集。
[0007] 该动态数据采集和静态信息采集通过读取系统的/proc文件系统获取系统信息。
[0008] 该系统服务状态数据采集是检测整个集群的DNS、NIS、NTP等主从服务器的服务状态,并把其状态写到数据库中。
[0009] 该应用信息数据采集是根据生产应用的实际情况,先罗列出实际应用中的各种需要,然后根据需要手工录入各个应用服务器及应用服务的节点名,并保存到数据库中,然后根据各个应用服务器的节点名检测该服务器的应用服务状态,并把其状态写到该数据库中。
[0010] 该Linux集群故障自动恢复方法根据该数据信息采集的更新时间,设定该更新间隔的最大时间间隔,当该数据信息采集的刷新时间超过了该最大时间间隔时,判断出现故障。
[0011] 该Linux集群故障自动恢复方法还包括在重新启动节点的步骤后,标志节点已进行重新启动的标志位,并在再次执行该数据信息采集并判断未出现故障时,清除节点已进行重新启动的标志位。
[0012] 该Linux集群故障自动恢复方法还包括在执行故障节点的维护集成的步骤后,标志节点维护集成的标志位,并在再次执行该数据信息采集并判断未出现故障时,清除节点维护集成的标志位。
[0013] 该Linux集群故障自动恢复方法还包括在执行故障节点的安装集成的步骤后,标志节点安装集成的标志位,并在再次执行该数据信息采集并判断未出现故障时,清除节点安装集成的标志位。
[0014] 该执行故障节点的维护集成的步骤包括将该节点在服务器端设置成维护状态,重新启动该节点,该节点在启动过程中,从网络读取启动映像,进入该节点的维护状态,将该节点系统的配置还原到最初配置状态。
[0015] 该执行故障节点的安装集成的步骤包括将该节点在服务器端设置成安装集成状态,重新启动该节点,该节点在启动过程中,从网络读取启动映像,进入节点的网络安装集成,从网络读取安装包,进行系统的安装配置,将该节点系统重新进行安装。
[0016] 本发明的目的也可通过如下技术措施来实现:Linux集群故障自动恢复系统,其特征在于,该Linux集群故障自动恢复系统包括数据信息采集及判断模块、重新启动节点模块、维护集成模块和安装集成模块,该数据信息采集及判断模块用于执行数据信息采集并判断是否出现故障,该重新启动节点模块用于重新启动节点,该维护集成模块用于执行故障节点的维护集成,该安装集成模块用于执行故障节点的安装集成。
[0017] 本发明的目的还可通过如下技术措施来实现:
[0018] 该数据信息采集及判断模块执行数据信息采集并判断是否出现故障,当该数据信息采集及判断模块判断出现故障时,该重新启动节点模块重新启动节点,在该重新启动节点模块重新启动该节点后,该数据信息采集及判断模块再次执行该数据信息采集并判断出现故障时,该维护集成模块执行故障节点的维护集成,当该维护集成模块执行该故障节点的维护集成后,该数据信息采集及判断模块再次执行该数据信息采集并判断出现故障时,该安装集成模块执行故障节点的安装集成,在该安装集成模块执行该故障节点的安装集成后,该数据信息采集及判断模块再次执行该数据信息采集并判断出现故障时,该数据信息采集及判断模块发送消息以进行人工处理。
[0019] 该数据信息采集包括动态数据采集、静态信息采集、系统服务状态数据采集和应用信息数据采集。
[0020] 该数据信息采集及判断模块通过读取系统的/proc文件系统获取系统信息以获得该动态数据采集和该静态信息采集。
[0021] 该数据信息采集及判断模块检测整个集群的DNS、NIS、NTP等主从服务器的服务状态以获得该系统服务状态数据采集,并把其状态写到数据库中。
[0022] 该数据信息采集及判断模块根据生产应用的实际情况,先罗列出实际应用中的各种需要,然后根据需要手工录入各个应用服务器及应用服务的节点名,并保存到数据库中,然后根据各个应用服务器的节点名检测该服务器的应用服务状态,并把其状态写到该数据库中,以进行该应用信息数据采集。
[0023] 该数据信息采集及判断模块根据该数据信息采集的更新时间,设定该更新间隔的最大时间间隔,当该数据信息采集的刷新时间超过了该最大时间间隔时,该数据信息采集及判断模块判断出现故障。
[0024] 该维护集成模块在执行故障节点的维护集成时,将该节点在服务器端设置成维护状态,重新启动该节点,该节点在启动过程中,从网络读取启动映像,进入该节点的维护状态,将该节点系统的配置还原到最初配置状态。
[0025] 该安装集成模块在执行故障节点的安装集成时,将该节点在服务器端设置成安装集成状态,重新启动该节点,该节点在启动过程中,从网络读取启动映像,进入节点的网络安装集成,从网络读取安装包,进行系统的安装配置,将该节点系统重新进行安装。
[0026] 本发明中的Linux集群故障自动恢复方法,能够采集集群系统运行的各种关键信息并集中存储,建立预警机制,从多个级别自动处理集群的故障,并能够提供详细的参考数据供管理人员决策,在很大程度上减少了人工的消耗,将故障节点以最快地速度恢复并投入生产使用。本发明中的Linux集群故障自动恢复方法,能够自动、快速、高效地完成集群节点系统的故障自动恢复,能够满足异构集群不同需求,支持多个版本操作系统,加快了集群节点的再次投产,方便了用户的使用,提高了集群资源利用效率。

附图说明

[0027] 图1为本发明的Linux集群故障自动恢复方法的流程图;
[0028] 图2为图1中的应用信息数据采集步骤的流程图;
[0029] 图3为本发明的Linux集群故障自动恢复系统的模块图。

具体实施方式

[0030] 为使本发明的上述和其他目的、特征和优点能更明显易懂,下文特举出较佳实施例,并配合所附图式,作详细说明如下。
[0031] 如图1所示,图1为本发明的Linux集群故障自动恢复方法的流程图。在步骤101,执行数据信息采集,信息采集可分为动态数据采集、静态信息采集、系统服务状态数据采集和应用信息数据采集。动态数据采集主要采集的信息包括包含总内存、使用内存、空闲内存、共享内存、总交换区、使用交换区、空闲交换区、磁盘每秒IO次数、磁盘读速度、磁盘读字节数、磁盘写速度、磁盘写字节数等信息。动态数据采集通过读取/proc文件系统中meminfo、stat、loadavg、snmp等文件并分析后获得。采集的动态数据信息为集中保存,服务运行在收集信息的节点上,负责将采集的信息存储到数据库中。
[0032] 静态信息采集主要采集的信息包括节点的名称、CPU的标志符、CPU的型号、CPU的频率、CPU的频率的单位、CPU个数、单个CPU核数、内存大小、磁盘大小、本地文件系统名、对应FSNames字段的文件系统大小等。静态信息采集读取/proc文件系统中cpuinfo、partitions、mounts等文件并分析后获得信息。采集的静态数据信息也是集中保存,在集群中每个节点上运行提供静态信息的服务,监听用户的请求。当需要采集某节点的静态信息时,再远程执行命令,通过网络返回采集的数据,集中存放到数据库中。动态数据采集和静态信息采集通过读取系统的/proc文件系统获取系统信息,此方法速度快效率高,适合并行获取大量节点信息,文件系统内容在不同内核版本下变化相对较小,有利于编程兼容。
[0033] 系统服务状态数据采集是检测整个集群的DNS、NIS、NTP等主从服务器的服务状态,并把其状态写到数据库中,以便用户方便的查询到这些服务器的服务状态。
[0034] 应用信息数据采集是根据生产应用的实际情况,先罗列出实际应用中的各种需要,然后根据需要手工录入各个应用服务器及应用服务的节点名,并保存到数据库中,然后根据各个应用服务器的节点名检测该服务器的应用服务状态,并把其状态写到数据库中,以便用户方便的查询到这些服务器的应用服务状态。
[0035] 采集的信息数据还可以通过图像界面显示。图形界面通过统一的数据接口,访问集中存放数据库中的信息采集的数据,并根据需求进行显示方式的定制,可以提供给系统管理员非常方便直观的监视方式。
[0036] 在执行完动态数据采集、静态信息采集、系统服务状态数据采集和应用信息数据采集后,流程进入到步骤102。
[0037] 在步骤102,判断是否出现故障。在一实施例中,根据数据信息采集(节点、服务、应用等信息)的更新时间,设定更新间隔的最大门槛值,当采集信息的刷新时间超过了最大的时间间隔,认定节点、服务、或者应用出现故障,流程进入到步骤103;当采集信息的刷新时间未超过最大的时间间隔时,说明没有故障产生,流程返回到步骤101。
[0038] 在步骤103,重新启动节点。也就是说,使用远程控制方法重新启动节点,并标志节点已进行重新启动,流程进入到步骤104。
[0039] 在步骤104,执行与步骤101相同的数据信息采集,流程进入到步骤105。
[0040] 在步骤105,与步骤102相同,判断是否出现故障,当判断没有故障产生时,流程进入到步骤106;当判断有故障产生时,流程进入到步骤107。
[0041] 在步骤106,清除节点已进行重新启动的标志位,流程返回到步骤101。
[0042] 在步骤107,执行故障节点的维护集成。即对于已经重新启动的节点,如果故障无法排除,将节点在服务器端设置成维护状态,重新启动节点。节点在启动过程中,从网络读取启动映像,进入节点的维护状态,将节点系统的配置还原到最初配置状态。维护集成完成后,系统再次启动使维护集成的内容生效,并将节点标志成维护集成,流程进入到步骤108。
[0043] 在步骤108,执行与步骤101相同的数据信息采集,流程进入到步骤109。
[0044] 在步骤109,与步骤102相同,判断是否出现故障,当判断没有故障产生时,流程进入到步骤110;当判断有故障产生时,流程进入到步骤111。
[0045] 在步骤110,清除节点维护集成的标志位,流程返回到步骤101。
[0046] 在步骤111,执行故障节点的安装集成。对于维护集成后,检测仍不能够正常运行的节点,将节点在服务器端设置成安装集成状态,重新启动节点。节点在启动过程中,从网络读取启动映像,进入节点的网络安装集成,即从网络读取安装包,进行系统的安装配置,将节点系统重新进行安装。安装集成完成后,系统再次启动使新系统生效,并将节点标志成安装集成,流程进入到步骤112。
[0047] 在步骤112,执行与步骤101相同的数据信息采集,流程进入到步骤113。
[0048] 在步骤113,与步骤102相同,判断是否出现故障,当判断没有故障产生时,流程进入到步骤114;当判断有故障产生时,流程进入到步骤115。
[0049] 在步骤114,清除节点安装集成的标志位,流程返回到步骤101。
[0050] 在步骤115,由于检测节点仍不能正常运行,此时发送消息给系统管理员,由管理员进行人工处理。
[0051] 参照图2,图2为图1中的执行数据信息采集的步骤中应用信息数据采集的流程图。应用信息数据采集是根据生产应用的实际情况,先罗列出实际应用中的各种需要,然后根据需要手工录入各个应用服务器及应用服务的节点名,并保存到数据库中,然后根据各个应用服务器的节点名查询该服务器的应用服务状态,并把其状态写到数据库中,以便用户方便的查询到这些服务器的应用服务状态。其主要包括一下步骤:
[0052] 在步骤201,为服务和进程在数据库中命名,即通过研究生产中各种应用,确定其中的关键服务、进程,并为其定义了在数据库中的名字,流程进入到步骤202。
[0053] 在步骤202,为每个服务和进程的不同状况定义了相应的状态:UP、DOWN、DEGRADE。UP表示状态正常,在界面上用绿色表示,DOWN表示该服务不可用,在界面上用红色表示,DEGRADE表示服务可用,但存在问题,在界面上用黄色表示。流程进入到步骤203。
[0054] 在步骤203,取主机名,流程进入到步骤204。
[0055] 在步骤204,读取应用各服务或进程对应的记录及个数,流程进入到步骤205。
[0056] 在步骤205,取出其中一个记录中的节点名,流程进入到步骤206。
[0057] 在步骤206,判断节点名与主机名是否相符,当节点名与主机名相符时,流程进入到步骤207;当节点名与主机名不相符时,流程返回到步骤205。
[0058] 在步骤207,采集对应的服务或进程状态并写入数据库,流程进入到步骤208。
[0059] 在步骤208,根据读取的记录的个数判断是否已经循环完毕,即是否已经取出过所有记录中的节点名,当循环完毕时,流程进入到步骤209;当还未进行完循环时,等待固定的时间间隔后,流程返回到步骤205。
[0060] 在步骤209,将状态查询的结果发送到远程的数据库服务器进行集中的存储。流程进入到步骤210。
[0061] 在步骤210,在界面的应用服务器状态栏上,当点击到本栏时,更新并显示每个应用服务器状态。此流程结束。
[0062] 在图2中,步骤205至步骤208为应用信息采集模块在集群中各个应用服务器上以守护进程方式运行,以固定时间间隔进行状态查询。
[0063] 在图1中的步骤115中,当管理员进行人工控制时,可包括以下步骤:首先,安装服务器端将节点标志为安装;再通过远程控制的方法,重新启动节点或者将节点复位;节点通过PXE网络引导,判断需要进行网络的安装;当需要网络安装时,通过网络文件系统读取需要安装的软件包,进行系统的安装以及安装后的各项网络、系统配置;再次进行故障的检测判断,并进行相应的处理。
[0064] 图3为本发明的Linux集群故障自动恢复系统的模块图。该系统包括数据信息采集及判断模块301、重新启动节点模块302、维护集成模块302和安装集成模块304。数据信息采集及判断模块301用于执行数据信息采集并判断是否出现故障。信息采集可分为动态数据采集、静态信息采集、系统服务状态数据采集和应用信息数据采集。在一实施例中,该数据信息采集及判断模块301通过读取系统的/proc文件系统获取系统信息以获得该动态数据采集和该静态信息采集。该数据信息采集及判断模块301检测整个集群的DNS、NIS、NTP等主从服务器的服务状态以获得该系统服务状态数据采集,并把其状态写到数据库中。该数据信息采集及判断模块301根据生产应用的实际情况,先罗列出实际应用中的各种需要,然后根据需要手工录入各个应用服务器及应用服务的节点名,并保存到数据库中,然后根据各个应用服务器的节点名检测该服务器的应用服务状态,并把其状态写到该数据库中,以进行该应用信息数据采集。数据信息采集及判断模块301根据数据信息采集(节点、服务、应用等信息)的更新时间,设定更新间隔的最大门槛值,当采集信息的刷新时间超过了最大的时间间隔,认定节点、服务、或者应用出现故障。
[0065] 当数据信息采集及判断模块301判断出现故障时,重新启动节点模块302使用远程控制方法重新启动节点,并标志节点已进行重新启动。此时,数据信息采集及判断模块301再次执行数据信息采集并判断是否出现故障,当判断没有故障产生时,数据信息采集及判断模块301清除节点已进行重新启动的标志位;当判断有故障产生时,维护集成模块303执行故障节点的维护集成。
[0066] 对于已经重新启动的节点,如果故障无法排除,维护集成模块303将节点在服务器端设置成维护状态,重新启动节点。节点在启动过程中,维护集成模块303从网络读取启动映像,进入节点的维护状态,将节点系统的配置还原到最初配置状态。维护集成完成后,系统再次启动使维护集成的内容生效,并且维护集成模块303将节点标志成维护集成。此时,数据信息采集及判断模块301再次执行数据信息采集并判断是否出现故障,当判断没有故障产生时,数据信息采集及判断模块301清除节点维护集成的标志位;当判断有故障产生时,安装集成模块304执行故障节点的安装集成。
[0067] 对于维护集成后,检测仍不能够正常运行的节点,安装集成模块304将节点在服务器端设置成安装集成状态,重新启动节点。节点在启动过程中,安装集成模块304从网络读取启动映像,进入节点的网络安装集成,即从网络读取安装包,进行系统的安装配置,将节点系统重新进行安装。安装集成完成后,系统再次启动使新系统生效,并且安装集成模块304将节点标志成安装集成。此时,数据信息采集及判断模块301再次执行数据信息采集并判断是否出现故障,当判断没有故障产生时,安装集成模块304清除节点安装集成的标志位;当判断有故障产生时,数据信息采集及判断模块301此时发送消息给系统管理员,由管理员进行人工处理。
[0068] 以上实施例仅为本发明的示例性实施例,不用于限制本发明,本发明的保护范围由附加的权利要求书限定。本领域技术人员可以在本发明的实质和保护范围内,对本发明做出各种修改或等同替换,这种修改或等同替换也应视为落在本发明的保护范围内。