一种超大规模机器自动化维修的方法和装置与流程

文档序号:12721632阅读:482来源:国知局
一种超大规模机器自动化维修的方法和装置与流程

本发明涉及计算机技术领域,尤其涉及一种超大规模机器自动化维修的技术。



背景技术:

现有的机器维修一般分为如下场景:

1)初具规模(几十台)时,一般由运维人员通过监控、手动监控进行维修和交付;

2)中型规模和大规模(百台规模、千台规模)时,一般会通过监控+脚本,或者小型自动化系统实现。

然而,对于超大规模(万台、几十万台)机器,则存在诸如人力成本、维修交付效率等问题。

现有的自动化维修实现方案一般有如下几种:

1)脚本式维修系统:一般是应对小规模集群的办法,这种集群可能连虚拟化都没有完全实现,一般通过监控、通过部署工具迁移服务、触发服务API命令操作机器,这种系统简单易开发,但是缺点是没有固定的收集和分析系统,维修和部署这些一般针对简单场景,功能简单,不能适用于大规模系统。

2)触发式维修系统:也可以称为一种半自动维修系统,一般有独立的收集器进行收集故障和对故障进行分级,然后有一套独立的故障池和维修推送系统,这种系统满足了大部分的维修系统的需求,但是缺点是没有独立的服务迁移对接服务、出现问题还需要使用方获取故障主动推送,缺少交互流程。

然而,现有的这些维修方案无法满足多样性,也无法满足超大规模机器,大部分维修系统对于机型、系统、环境都相对统一。而在实际运作中,需要考虑机型的多样性,业务的多样性,需要满足不同业务的需求和系统,如存储、计算等不同配置和环境。

因此,如何提供一种超大规模机器自动化维修的方法和装置,成为本领域技术人员亟需解决的技术问题之一。



技术实现要素:

本发明的目的是提供一种超大规模机器自动化维修的方法和装置。

根据本发明的一个方面,提供了一种超大规模机器自动化维修的方法,其中,该方法包括:

a收集超大规模机器中的软和/或硬件故障;

b对所述软和/或硬件故障进行故障分析,获得对应的故障数据;

c基于所述故障数据,采用维修状态机,对各个状态流转完成对所述超大规模机器的自动化维修,其中,对于需要迁移的数据所对应的机器进行迁移整机维修,对于存储型服务所对应的机器进行在线修盘。

优选地,所述步骤a包括:

基于对所述超大规模机器的软件检测和/或硬件检测,获得所述软和/或硬件故障,并将所述软和/或硬件故障上报至主服务端;

其中,所述步骤b包括:

对所述主服务端中存储的软和/或硬件故障进行故障分析,获得对应的故障数据。

优选地,该方法还包括:

将基于对所述软和/或硬件故障进行故障分析所获得的故障数据作为故障源,建立或更新对应的数据库;

其中,所述步骤c包括:

基于所述数据库中的故障源,采用维修状态机,对各个状态流转完成对所述超大规模机器的自动化维修。

优选地,所述步骤b还包括:

对经故障分析所获得的故障数据进行分类,获得分类后的故障数据;

其中,所述步骤c包括:

基于所述分类后的故障数据,采用维修状态机,对各个状态流转完成对所述超大规模机器的自动化维修。

优选地,所述步骤c包括:

基于所述故障数据,采用维修状态机,结合配置信息所对应的阈值,对各个状态流转完成对所述超大规模机器的自动化维修。

优选地,所述步骤c包括:

采用通用的迁移服务平台对于需要迁移的数据所对应的机器进行迁移整机维修;

对于迁移后剩余的机器,继续采用所述维修状态机,对各个状态流转进行自动化维修。

优选地,所述步骤c包括:

对于存储型服务所对应的机器,采用单盘中控决策是否下盘,以对所述机器进行在线修盘。

根据本发明的另一个方面,还提供了一种超大规模机器自动化维修的装置,其中,该装置包括:

故障收集装置,用于收集超大规模机器中的软和/或硬件故障;

故障分析装置,用于对所述软和/或硬件故障进行故障分析,获得对应的故障数据;

故障维修装置,用于基于所述故障数据,采用维修状态机,对各个状态流转完成对所述超大规模机器的自动化维修,其中,对于需要迁移的数据所对应的机器进行迁移整机维修,对于存储型服务所对应的机器进行在线修盘。

优选地,所述故障收集装置用于:

基于对所述超大规模机器的软件检测和/或硬件检测,获得所述软和/或硬件故障,并将所述软和/或硬件故障上报至主服务端;

其中,所述故障分析装置用于:

对所述主服务端中存储的软和/或硬件故障进行故障分析,获得对应的故障数据。

优选地,该装置还包括:

更新装置,用于将基于对所述软和/或硬件故障进行故障分析所获得的故障数据作为故障源,建立或更新对应的数据库;

其中,所述故障维修装置用于:

基于所述数据库中的故障源,采用维修状态机,对各个状态流转完成对所述超大规模机器的自动化维修。

优选地,所述故障分析装置还用于:

对经故障分析所获得的故障数据进行分类,获得分类后的故障数据;

其中,所述故障维修装置用于:

基于所述分类后的故障数据,采用维修状态机,对各个状态流转完成对所述超大规模机器的自动化维修。

优选地,所述故障维修装置用于:

基于所述故障数据,采用维修状态机,结合配置信息所对应的阈值,对各个状态流转完成对所述超大规模机器的自动化维修。

优选地,所述故障维修装置用于:

采用通用的迁移服务平台对于需要迁移的数据所对应的机器进行迁移整机维修;

对于迁移后剩余的机器,继续采用所述维修状态机,对各个状态流转进行自动化维修。

优选地,所述故障维修装置用于:

对于存储型服务所对应的机器,采用单盘中控决策是否下盘,以对所述机器进行在线修盘。

根据本发明的又一个方面,还提供了一种计算机设备,所述计算机设备包括:

一个或多个处理器;

存储器,用于存储一个或多个计算机程序;

当所述一个或多个计算机程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如前任一项所述的方法。

与现有技术相比,本发明收集超大规模机器中的软和/或硬件故障;对所述软和/或硬件故障进行故障分析,获得对应的故障数据;基于所述故障数据,采用维修状态机,对各个状态流转完成对所述超大规模机器的自动化维修,其中,对于需要迁移的数据所对应的机器进行迁移整机维修,对于存储型服务所对应的机器进行在线修盘。对于超大规模(万台、几十万台)机器,本发明提供了一个完整的自动化维修系统,可以满足诸如故障检测、服务迁移、环境部署、机器维修状态流转、快速交付等,在成本方面,节约了运维人力、通过提高流转效率节约机器;在全自动化方面,本发明检测、维修、服务迁移和部署实现全部自动化无需人工接入;在效率方面,本发明机器交付效率高,可以实现小时级和分钟级交付。

进一步地,本发明可以满足多种场景的系统、环境支持,还可以满足在离线混部场景的业务在线修机器和自动化维修机器的场景。本发明还可以在机器不断增加的场景下,依旧可以满足高效的机器流转、交付、满足业务使用,可以不断的横向扩展,可以进行快速的交付,例如,扩容可以在分钟级、重装或重启在小时级,维修在天级别,并且可以满足几十万台机器的高性能运转。

进一步地,本发明对于存储型服务进行热插拔维修硬盘,并且有一套可控的单盘中控服务用来保证下盘的数量,保证安全和快速交付维修及迁移。

此外,本发明通过加快机器维修和时效性,提高机器的在线利用率,从中可以进行节约机器的资源,如:之前如果故障率在2%,在线率98%,总机器是10W,那么将会有2000台机器持续不可用,所以需要有2000台做冗余备份;如果增加维修效率后机器故障率可以降低到1%,那么在线率可以达到99%,那么机器持续故障数就可以减少1000,那么就可以减少1000台机器,以此类推;还有故障可以体现发现可以减少机器服务有损,提前预知提前处理也可以避免机器死机、硬件故障造成机器不可用的流量有损。

本发明可以帮助集群操作系统支撑底层机器的稳定性,可以实时的发现故障、迁移服务、高效的交付机器,实现了真正的自动化机器管理机器人,实现了无人工介入,并且故障种类精确性提升很多,如增加:软故障、死机等,保证了服务更加稳定,可以提前预知问题送修,保证服务稳定性,高效交付可以实现分钟级上线机器、小时级扩容机器(包括重装)、小时级修复软故障交付机器,天级别交付硬件故障机的高效自动化系统。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:

图1示出根据本发明一个方面的一种用于超大规模机器自动化维修的装置的结构示意图;

图2示出根据本发明一个优选实施例的一种用于超大规模机器自动化维修的装置的结构示意图;

图3示出根据本发明另一个优选实施例的一种用于超大规模机器自动化维修的装置的结构示意图;

图4示出根据本发明另一个方面的一种用于超大规模机器自动化维修的方法的流程示意图。

附图中相同或相似的附图标记代表相同或相似的部件。

具体实施方式

在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。

在上下文中所称“计算机设备”,也称为“电脑”,是指可以通过运行预定程序或指令来执行数值计算和/或逻辑计算等预定处理过程的智能电子设备,其可以包括处理器与存储器,由处理器执行在存储器中预存的存续指令来执行预定处理过程,或是由ASIC、FPGA、DSP等硬件执行预定处理过程,或是由上述二者组合来实现。计算机设备包括但不限于服务器、个人电脑、笔记本电脑、平板电脑等。

所述计算机设备包括用户设备与网络设备。其中,所述用户设备包括但不限于个人电脑、笔记本电脑、平板电脑等;所述网络设备包括但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(Cloud Computing)的由大量计算机或网络服务器构成的云,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。其中,所述计算机设备可单独运行来实现本发明,也可接入网络并通过与网络中的其他计算机设备的交互操作来实现本发明。其中,所述计算机设备所处的网络包括但不限于互联网、广域网、城域网、局域网、VPN网络等。

需要说明的是,所述用户设备、网络设备和网络等仅为举例,其他现有的或今后可能出现的计算机设备或网络如可适用于本发明,也应包含在本发明保护范围以内,并以引用方式包含于此。

后面所讨论的方法(其中一些通过流程图示出)可以通过硬件、软件、固件、中间件、微代码、硬件描述语言或者其任意组合来实施。当用软件、固件、中间件或微代码来实施时,用以实施必要任务的程序代码或代码段可以被存储在机器或计算机可读介质(比如存储介质)中。(一个或多个)处理器可以实施必要的任务。

这里所公开的具体结构和功能细节仅仅是代表性的,并且是用于描述本发明的示例性实施例的目的。但是本发明可以通过许多替换形式来具体实现,并且不应当被解释成仅仅受限于这里所阐述的实施例。

应当理解的是,虽然在这里可能使用了术语“第一”、“第二”等等来描述各个单元,但是这些单元不应当受这些术语限制。使用这些术语仅仅是为了将一个单元与另一个单元进行区分。举例来说,在不背离示例性实施例的范围的情况下,第一单元可以被称为第二单元,并且类似地第二单元可以被称为第一单元。这里所使用的术语“和/或”包括其中一个或更多所列出的相关联项目的任意和所有组合。

应当理解的是,当一个单元被称为“连接”或“耦合”到另一单元时,其可以直接连接或耦合到所述另一单元,或者可以存在中间单元。与此相对,当一个单元被称为“直接连接”或“直接耦合”到另一单元时,则不存在中间单元。应当按照类似的方式来解释被用于描述单元之间的关系的其他词语(例如“处于...之间”相比于“直接处于...之间”,“与...邻近”相比于“与...直接邻近”等等)。

这里所使用的术语仅仅是为了描述具体实施例而不意图限制示例性实施例。除非上下文明确地另有所指,否则这里所使用的单数形式“一个”、“一项”还意图包括复数。还应当理解的是,这里所使用的术语“包括”和/或“包含”规定所陈述的特征、整数、步骤、操作、单元和/或组件的存在,而不排除存在或添加一个或更多其他特征、整数、步骤、操作、单元、组件和/或其组合。

还应当提到的是,在一些替换实现方式中,所提到的功能/动作可以按照不同于附图中标示的顺序发生。举例来说,取决于所涉及的功能/动作,相继示出的两幅图实际上可以基本上同时执行或者有时可以按照相反的顺序来执行。

下面结合附图对本发明作进一步详细描述。

图1示出根据本发明一个方面的一种用于超大规模机器自动化维修的装置的结构示意图。

装置1包括故障收集装置101、故障分析装置102和故障维修装置103。

其中,故障收集装置101收集超大规模机器中的软和/或硬件故障。

具体地,故障收集装置101例如直接自预定位置,如故障数据库中或其他第三方设备中,获取该超大规模机器的软件故障和/或硬件故障;或者,故障收集装置101分别通过对组成该超大规模机器的各个机器的检测,如分别对各个机器进行软件检测、硬件检测,检测其中的CPU、磁盘、内存等是否完好,或检测磁盘是否已满、是否掉盘、文件系统是否故障等,从而收集该超大规模机器中的软件故障和/或硬件故障。

故障分析装置102对所述软和/或硬件故障进行故障分析,获得对应的故障数据。

具体地,故障分析装置102根据该故障收集装置101所收集的软件故障和/或硬件故障,对这些故障进行故障分析,如对各个机器是否死机进行分析,是否是无心跳、是否无回报信息等,从而获得对应的故障数据。

故障维修装置103基于所述故障数据,采用维修状态机,对各个状态流转完成对所述超大规模机器的自动化维修,其中,对于需要迁移的数据所对应的机器进行迁移整机维修,对于存储型服务所对应的机器进行在线修盘。

具体地,故障维修装置103根据故障分析装置102分析所获得的故障数据,采用维修状态机,对各个状态流转完成对所述超大规模机器的自动化维修,如对机器的死机状态、故障状态、正常服务状态等各个状态进行流转,从而对该超大规模机器进行各个流程处理的跳转,如进行故障、维修、交付等流程的跳转。其中,对于需要迁移的数据所对应的机器进行迁移整机维修,由于有些故障需要将该故障所在的机器迁移走才能对剩余的机器进行维修,因此,故障维修装置103将这些需要迁移的数据对应的机器进行迁移,并对该迁移走的机器进行整机维修。而对于存储型服务,由于其对于冗余度和时效性要求很高,如果将存储型服务对应的机器进行迁移整机维修,则会存在冗余度和时效性的问题,因此,故障维修装置103对于存储型服务所对应的机器进行在线修盘。

在此,维修状态机主要是将机器的周期进行流程处理的跳转,如故障、维修、交付等。其中,维修状态机维护了很多状态,如:ERROR、DEAD、DECOMMITTING、DECOMMITTED、OS_INSTALL(REBOOT)、BURNING、HANDOVER_CHECK、ABNORMAL、COMMITTING、ACTIVE等多种状态,上述各种状态用来表示机器各种时期的状态,具体如下:

ERROR|DEAD:当机器出现故障时,自故障分析装置102获取到故障则跳转为ERROR,死机则跳转为DEAD;

DECOMMITTING和DECOMMITTED:主要是服务迁移的过程,保证服务安全和故障发单,如重启、重装、维修等;

OS_INSTALL(REBOOT):是进行重装或者重启的流程状态;

BURNING:是重装或重启后恢复环境的过程,一般称为初始化环境;

HANDOVER_CHECK和ABNORMAL:HANDOVER_CHECK主要是检测维修好的机器是否还存在故障的一种二次检测行为,如果没有修好则继续重装或重启,ABNORMAL则是指如果超过预定次数后仍没有修好进入人工处理环节;

COMMITTING和ACTIVE:COMMITTING是交付检测没问题后迁移服务上线并且把机器置为正常ACTIVE。

在此,故障维修装置103通过维修状态机控制各个流程的状态进行不同阶段处理,并且通过状态描述来控制各种状态的切换、安全保护阈值、重试次数等内容,状态描述主要是通用化处理,可以适用各种业务的场景,是一套状态机适配器,以下示出一个状态描述的例子:

其中,state描述的就是该维修状态机的状态,如ACTIVE是正常服务状态,其中-action是该状态处理流程的操作,如check_active就是检测机器是否是正常的;

dst_state是根据action中的不同返回值状态跳转不同的目标state来控制该维修状态机的流转,如死机则跳转到DEAD,故障则跳转到ERROR。

优选地,所述故障维修装置103基于所述故障数据,采用维修状态机,结合配置信息所对应的阈值,对各个状态流转完成对所述超大规模机器的自动化维修。

例如,在上述状态描述的例子中,thresholds用来控制阈值,其中,对于decommitted发单维修进行控制,throughput:100表示发单值控制不超过100台机器,如果超过100则不再进行状态跳转,以此来保证服务的安全性。相类似地,故障维修装置103基于故障数据,采用维修状态机,还可以结合其他配置信息所对应的阈值,对各个状态流转完成对所述超大规模机器的自动化维修。

本领域技术人员应能理解,上述阈值及其取值仅为举例,其他现有或今后可能出现的阈值及其取值,如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用的方式包含于此。

优选地,所述故障维修装置103采用通用的迁移服务平台对于需要迁移的数据所对应的机器进行迁移整机维修;对于迁移后剩余的机器,继续采用所述维修状态机,对各个状态流转进行自动化维修。

具体地,由于有些故障需要将该故障所在的机器迁移走才能对剩余的机器进行维修,因此,故障维修装置103采用通用的迁移服务平台,将这些需要迁移的数据对应的机器进行迁移,并对该迁移走的机器进行整机维修。在此,采用通用的迁移服务平台,避免了不同业务中每个业务都需要维护独立一套迁移服务,通用化的迁移服务平台可以指定统一规则、统一策略便于接入和维护,这对于超大规模集群系统是极其需要的。随后,故障维修装置103再对于迁移后剩余的机器,继续采用上述维修状态机,对各个状态流转,完成该超大规模机器的自动化维修。

在此,故障维修装置103在迁移服务后才进行维修流程,从而保证服务的稳定性。

优选地,所述故障维修装置103对于存储型服务所对应的机器,采用单盘中控决策是否下盘,以对所述机器进行在线修盘。

具体地,对于存储型服务,由于其对于冗余度和时效性要求很高,如果将存储型服务对应的机器进行迁移整机维修,则会存在冗余度和时效性的问题,因此,故障维修装置103对于存储型服务所对应的机器进行在线修盘,其中,故障维修装置103进行在线下盘,并通过单盘中控控制下盘阈值,避免大量下盘造成数据丢失,从而保证服务稳定性。随后,然后故障维修装置103再通过前述维修状态机进行在线物理维修。

在此,故障维修装置103通过在线检测故障盘和上下盘修盘服务,大大提高了存储型服务的在线率和冗余度,并且通过单盘中控控制磁盘下盘,避免大量下盘造成数据丢失,从而保证服务稳定性。

在此,装置1收集超大规模机器中的软和/或硬件故障;对所述软和/或硬件故障进行故障分析,获得对应的故障数据;基于所述故障数据,采用维修状态机,对各个状态流转完成对所述超大规模机器的自动化维修,其中,对于需要迁移的数据所对应的机器进行迁移整机维修,对于存储型服务所对应的机器进行在线修盘。对于超大规模(万台、几十万台)机器,提供了一个完整的自动化维修系统,可以满足诸如故障检测、服务迁移、环境部署、机器维修状态流转、快速交付等,在成本方面,节约了运维人力、通过提高流转效率节约机器;在全自动化方面,检测、维修、服务迁移和部署实现全部自动化无需人工接入;在效率方面,机器交付效率高,可以实现小时级和分钟级交付。

进一步地,装置1可以满足多种场景的系统、环境支持,还可以满足在离线混部场景的业务在线修机器和自动化维修机器的场景。还可以在机器不断增加的场景下,依旧可以满足高效的机器流转、交付、满足业务使用,可以不断的横向扩展,可以进行快速的交付,例如,扩容可以在分钟级、重装或重启在小时级,维修在天级别,并且可以满足几十万台机器的高性能运转。

优选地,所述故障收集装置101基于对所述超大规模机器的软件检测和/或硬件检测,获得所述软和/或硬件故障,并将所述软和/或硬件故障上报至主服务端(master端);其中,所述故障分析装置102对所述主服务端中存储的软和/或硬件故障进行故障分析,获得对应的故障数据。

具体地,故障收集装置101基于对超大规模机器的软件检测和/或硬件检测,获得对应的软件故障和/或硬件故障,例如,故障收集装置101依赖于自研的故障检测器(HAS),对该超大规模机器进行硬件检测,检测如CPU、磁盘、内存等硬件故障;或者,故障收集装置101对该超大规模机器进行软件检测,检测出包括磁盘满、inode(文件索引错误)、掉盘、文件系统故障等严重影响服务的系统故障,在此,故障收集装置101可以对该超大规模机器既进行软件检测,又进行硬件检测,硬件+软件检测更加准确地保证了系统的稳定性。随后,该故障收集装置101将检测所获得软件故障和/或硬件故障,上报至master端,例如,对该超大规模机器中各个机器所分别检测得到的软件故障和/或硬件故障,进行统一汇总,再上报至master端,在该master端进行存储。

接着,故障分析装置102自该master端获取其中所存储的软和/或硬件故障,对这些故障进行故障分析,如对各个机器是否死机进行分析,是否是无心跳、是否无回报信息等,从而获得对应的故障数据。

本领域技术人员应能理解,上述收集超大规模机器中的软和/或硬件故障的方式仅为举例,其他现有或今后可能出现的收集超大规模机器中的软和/或硬件故障的方式,如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用的方式包含于此。

优选地,该装置1还包括更新装置(未示出)。该更新装置将基于对所述软和/或硬件故障进行故障分析所获得的故障数据作为故障源,建立或更新对应的数据库;其中,所述故障维修装置103基于所述数据库中的故障源,采用维修状态机,对各个状态流转完成对所述超大规模机器的自动化维修。

具体地,更新装置将故障分析装置102基于对所述软和/或硬件故障进行故障分析所获得的故障数据作为故障源,例如,故障分析装置102对各个机器是否死机进行分析,是否是无心跳、是否无回报信息等进行故障分析,获得对应的故障数据,随后,更新装置将这些故障数据作为故障源,并将该故障源存入对应的数据库中,以对该数据库进行建立或更新;接着,故障维修装置103自该数据库中获取故障源,例如,通过一次或多次调用对应的应用程序接口(API),获取该数据库中的故障源,并基于该数据库中的故障源,采用维修状态机,对各个状态流转完成对所述超大规模机器的自动化维修。

在此,该数据库中存储有各种故障源,该数据库可以位于该装置1中,也可以位于与该装置1通过网络相连接的第三方设备中,更新装置通过网络与该数据库相联系,以将故障源存入该数据库中,故障维修装置103通过网络与该数据库相联系,以从该数据库中获取故障源。

优选地,所述故障分析装置102还对经故障分析所获得的故障数据进行分类,获得分类后的故障数据;其中,所述故障维修装置103基于所述分类后的故障数据,采用维修状态机,对各个状态流转完成对所述超大规模机器的自动化维修。

具体地,故障分析装置102针对故障收集装置101所收集的软件故障和/或硬件故障进行故障分析,并对经故障分析后获得的故障数据进行分类,例如可以分为hw(硬件故障)、sw(软件故障)、ssh.lost(死机)、agent.lost(无心跳)、report-no-exists(无回报信息)等,获得分类后的故障数据;或进一步地,故障分析装置102针对各个故障数据,确定其对应的维修方式,并基于此进行分类,例如,若故障数据为死机,则其对应的维修方式为重启;若故障数据为无心跳,则其对应的维修方式为重启或重装;若故障数据为软件故障,如磁盘满,则其对应的维修方式为重装;若故障数据为磁盘即将损坏或已损坏,则其对应的维修方式为在线修盘等;故障分析装置102随后再基于各个故障数据所对应的维修方式对其进行分类,进一步地,故障分析装置102例如还可以对各个故障数据以标签的形式标注其对应的维修方式。在此,故障数据及其对应的维修方式仅为举例,本领域技术人员可以根据实际操作确定故障数据对应的维修方式,且其他现有或今后可能出现的故障数据及其对应的维修方式,如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用的方式包含于此。

随后,故障维修装置103基于该分类后的故障数据,采用维修状态机,针对不同分类的故障数据,对各个状态流转完成对所述超大规模机器的自动化维修,例如,对于需要重启类的故障数据所对应的机器进行重启;对于需要重装类的故障数据所对应的机器进行重装,如先进行服务迁移再进行重装;对于硬件故障所对应的机器进行迁移整机维修;对于磁盘类的故障,如磁盘即将损坏或已损坏,则进行在线修盘等。

本领域技术人员应能理解,上述对故障进行分析及分类的方式仅为举例,其他现有或今后可能出现的对故障进行分析或分类的方式,如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用的方式包含于此。

一个优选的实施例如下所述:

该自动化维修系统主要由几个系统服务组成:故障分析系统、维修状态机、通用迁移服务、在线修盘服务等重要服务组成。

其中,故障分析系统由两部分组成:collect(故障收集器,error-report)和parse service(故障分析器,parse-report),具体架构图见图2所示。

Error-report是一个故障收集器,如前所述的故障收集装置101,主要分为硬件故障收集和软件故障收集,然后统一汇总将原始信息上报到bios-master端(机器环境管理服务),其中,硬件故障收集器依赖于自研的故障检测器(HAS),可以检测如CPU、磁盘、内存等硬件故障;软故障收集器例如是系统自研的,其检测如磁盘满、inode(文件索引错误)、掉盘、文件系统故障等严重影响服务的系统故障;硬件+软件检测更加准确的保证了系统的稳定性。

Parse-report是一个故障分析器,主要是处理error-report收集的源数据,如前所述的故障分析装置102,然后在服务端进行分析,包括对于故障的分类、分级等处理,并且还对机器是否死机进行分析,最终将分析好的故障数据作为故障源持久化到数据库便于查询和维修状态机的使用。

维修状态机主要起到两个重要作用,一个是保证状态的流转保证各种不同状态做相应的处理,另一个是通过通用配置描述进行阈值控制,跳转等内容。其中,状态机状态流转主要是将机器的周期进行流程处理的跳转,如故障、维修、交付等,详细可见图3。例如,获取故障(ERROR)->迁移服务(DECOMMITTING,DECOMMITTED)->维修(机器维修+重启+在线修盘)->交付->交付检测;通过故障源,如自前述故障分析器或对应数据库中获取故障,然后根据上面状态机个各种状态流转最终完成机器自动化维修。该维修状态机具体维护的过程与状态与前述在故障维修装置103中记载的相类似,故此处不再赘述,并通过引用的方式包含于此。

其中,服务迁移器(callback)采用通用的迁移服务平台,在发现故障后,通知业务系统迁移服务进行决策,迁移服务后才可以进行维修流程保证服务的稳定性,避免了不同业务每个业务都需要维护独立一套迁移服务,通用化平台可以指定统一规则、统一策略便于接入和维护。

在线修盘服务通过前述故障分析器或对应数据库收集故障,然后触发在线下盘,通过单盘中控控制下盘阈值保证服务稳定性,然后通过状态机进行在线物理维修,大大提高了存储服务的在线率和冗余度,并且采用中控服务控制磁盘下盘,避免造成大量下盘造成数据丢失。

图4示出根据本发明另一个方面的一种用于超大规模机器自动化维修的方法的流程示意图。

在步骤S401中,装置1收集超大规模机器中的软和/或硬件故障。

具体地,在步骤S401中,装置1例如直接自预定位置,如故障数据库中或其他第三方设备中,获取该超大规模机器的软件故障和/或硬件故障;或者,在步骤S401中,装置1分别通过对组成该超大规模机器的各个机器的检测,如分别对各个机器进行软件检测、硬件检测,检测其中的CPU、磁盘、内存等是否完好,或检测磁盘是否已满、是否掉盘、文件系统是否故障等,从而收集该超大规模机器中的软件故障和/或硬件故障。

在步骤S402中,装置1对所述软和/或硬件故障进行故障分析,获得对应的故障数据。

具体地,在步骤S402中,装置1根据在步骤S401中所收集的软件故障和/或硬件故障,对这些故障进行故障分析,如对各个机器是否死机进行分析,是否是无心跳、是否无回报信息等,从而获得对应的故障数据。

在步骤S403中,装置1基于所述故障数据,采用维修状态机,对各个状态流转完成对所述超大规模机器的自动化维修,其中,对于需要迁移的数据所对应的机器进行迁移整机维修,对于存储型服务所对应的机器进行在线修盘。

具体地,在步骤S403中,装置1根据在步骤S402中分析所获得的故障数据,采用维修状态机,对各个状态流转完成对所述超大规模机器的自动化维修,如对机器的死机状态、故障状态、正常服务状态等各个状态进行流转,从而对该超大规模机器进行各个流程处理的跳转,如进行故障、维修、交付等流程的跳转。其中,对于需要迁移的数据所对应的机器进行迁移整机维修,由于有些故障需要将该故障所在的机器迁移走才能对剩余的机器进行维修,因此,在步骤S403中,装置1将这些需要迁移的数据对应的机器进行迁移,并对该迁移走的机器进行整机维修。而对于存储型服务,由于其对于冗余度和时效性要求很高,如果将存储型服务对应的机器进行迁移整机维修,则会存在冗余度和时效性的问题,因此,在步骤S403中,装置1对于存储型服务所对应的机器进行在线修盘。

在此,维修状态机主要是将机器的周期进行流程处理的跳转,如故障、维修、交付等。其中,维修状态机维护了很多状态,如:ERROR、DEAD、DECOMMITTING、DECOMMITTED、OS_INSTALL(REBOOT)、BURNING、HANDOVER_CHECK、ABNORMAL、COMMITTING、ACTIVE等多种状态,上述各种状态用来表示机器各种时期的状态,具体如下:

ERROR|DEAD:当机器出现故障时,自步骤S402获取到故障则跳转为ERROR,死机则跳转为DEAD;

DECOMMITTING和DECOMMITTED:主要是服务迁移的过程,保证服务安全和故障发单,如重启、重装、维修等;

OS_INSTALL(REBOOT):是进行重装或者重启的流程状态;

BURNING:是重装或重启后恢复环境的过程,一般称为初始化环境;

HANDOVER_CHECK和ABNORMAL:HANDOVER_CHECK主要是检测维修好的机器是否还存在故障的一种二次检测行为,如果没有修好则继续重装或重启,ABNORMAL则是指如果超过预定次数后仍没有修好进入人工处理环节;

COMMITTING和ACTIVE:COMMITTING是交付检测没问题后迁移服务上线并且把机器置为正常ACTIVE。

在此,在步骤S403中,装置1通过维修状态机控制各个流程的状态进行不同阶段处理,并且通过状态描述来控制各种状态的切换、安全保护阈值、重试次数等内容,状态描述主要是通用化处理,可以适用各种业务的场景,是一套状态机适配器,以下示出一个状态描述的例子:

其中,state描述的就是该维修状态机的状态,如ACTIVE是正常服务状态,其中-action是该状态处理流程的操作,如check_active就是检测机器是否是正常的;

dst_state是根据action中的不同返回值状态跳转不同的目标state来控制该维修状态机的流转,如死机则跳转到DEAD,故障则跳转到ERROR。

优选地,在步骤S403中,装置1基于所述故障数据,采用维修状态机,结合配置信息所对应的阈值,对各个状态流转完成对所述超大规模机器的自动化维修。

例如,在上述状态描述的例子中,thresholds用来控制阈值,其中,对于decommitted发单维修进行控制,throughput:100表示发单值控制不超过100台机器,如果超过100则不再进行状态跳转,以此来保证服务的安全性。相类似地,在步骤S403中,装置1基于故障数据,采用维修状态机,还可以结合其他配置信息所对应的阈值,对各个状态流转完成对所述超大规模机器的自动化维修。

本领域技术人员应能理解,上述阈值及其取值仅为举例,其他现有或今后可能出现的阈值及其取值,如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用的方式包含于此。

优选地,在步骤S403中,装置1采用通用的迁移服务平台对于需要迁移的数据所对应的机器进行迁移整机维修;对于迁移后剩余的机器,继续采用所述维修状态机,对各个状态流转进行自动化维修。

具体地,由于有些故障需要将该故障所在的机器迁移走才能对剩余的机器进行维修,因此,在步骤S403中,装置1采用通用的迁移服务平台,将这些需要迁移的数据对应的机器进行迁移,并对该迁移走的机器进行整机维修。在此,采用通用的迁移服务平台,避免了不同业务中每个业务都需要维护独立一套迁移服务,通用化的迁移服务平台可以指定统一规则、统一策略便于接入和维护,这对于超大规模集群系统是极其需要的。随后,在步骤S403中,装置1再对于迁移后剩余的机器,继续采用上述维修状态机,对各个状态流转,完成该超大规模机器的自动化维修。

在此,在步骤S403中,装置1在迁移服务后才进行维修流程,从而保证服务的稳定性。

优选地,在步骤S403中,装置1对于存储型服务所对应的机器,采用单盘中控决策是否下盘,以对所述机器进行在线修盘。

具体地,对于存储型服务,由于其对于冗余度和时效性要求很高,如果将存储型服务对应的机器进行迁移整机维修,则会存在冗余度和时效性的问题,因此,在步骤S403中,装置1对于存储型服务所对应的机器进行在线修盘,其中,在步骤S403中,装置1进行在线下盘,并通过单盘中控控制下盘阈值,避免大量下盘造成数据丢失,从而保证服务稳定性。随后,在步骤S403中,装置1再通过前述维修状态机进行在线物理维修。

在此,在步骤S403中,装置1通过在线检测故障盘和上下盘修盘服务,大大提高了存储型服务的在线率和冗余度,并且通过单盘中控控制磁盘下盘,避免大量下盘造成数据丢失,从而保证服务稳定性。

在此,装置1收集超大规模机器中的软和/或硬件故障;对所述软和/或硬件故障进行故障分析,获得对应的故障数据;基于所述故障数据,采用维修状态机,对各个状态流转完成对所述超大规模机器的自动化维修,其中,对于需要迁移的数据所对应的机器进行迁移整机维修,对于存储型服务所对应的机器进行在线修盘。对于超大规模(万台、几十万台)机器,提供了一个完整的自动化维修系统,可以满足诸如故障检测、服务迁移、环境部署、机器维修状态流转、快速交付等,在成本方面,节约了运维人力、通过提高流转效率节约机器;在全自动化方面,检测、维修、服务迁移和部署实现全部自动化无需人工接入;在效率方面,机器交付效率高,可以实现小时级和分钟级交付。

进一步地,装置1可以满足多种场景的系统、环境支持,还可以满足在离线混部场景的业务在线修机器和自动化维修机器的场景。还可以在机器不断增加的场景下,依旧可以满足高效的机器流转、交付、满足业务使用,可以不断的横向扩展,可以进行快速的交付,例如,扩容可以在分钟级、重装或重启在小时级,维修在天级别,并且可以满足几十万台机器的高性能运转。

优选地,在步骤S401中,装置1基于对所述超大规模机器的软件检测和/或硬件检测,获得所述软和/或硬件故障,并将所述软和/或硬件故障上报至主服务端(master端);其中,在步骤S402中,装置1对所述主服务端中存储的软和/或硬件故障进行故障分析,获得对应的故障数据。

具体地,在步骤S401中,装置1基于对超大规模机器的软件检测和/或硬件检测,获得对应的软件故障和/或硬件故障,例如,在步骤S401中,装置1依赖于自研的故障检测器(HAS),对该超大规模机器进行硬件检测,检测如CPU、磁盘、内存等硬件故障;或者,在步骤S401中,装置1对该超大规模机器进行软件检测,检测出包括磁盘满、inode(文件索引错误)、掉盘、文件系统故障等严重影响服务的系统故障,在此,在步骤S401中,装置1可以对该超大规模机器既进行软件检测,又进行硬件检测,硬件+软件检测更加准确地保证了系统的稳定性。随后,在步骤S401中,装置1将检测所获得软件故障和/或硬件故障,上报至master端,例如,对该超大规模机器中各个机器所分别检测得到的软件故障和/或硬件故障,进行统一汇总,再上报至master端,在该master端进行存储。

接着,在步骤S402中,装置1自该master端获取其中所存储的软和/或硬件故障,对这些故障进行故障分析,如对各个机器是否死机进行分析,是否是无心跳、是否无回报信息等,从而获得对应的故障数据。

本领域技术人员应能理解,上述收集超大规模机器中的软和/或硬件故障的方式仅为举例,其他现有或今后可能出现的收集超大规模机器中的软和/或硬件故障的方式,如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用的方式包含于此。

优选地,该方法还包括步骤S404(未示出)。在步骤S404中,装置1将基于对所述软和/或硬件故障进行故障分析所获得的故障数据作为故障源,建立或更新对应的数据库;其中,在步骤S403中,装置1基于所述数据库中的故障源,采用维修状态机,对各个状态流转完成对所述超大规模机器的自动化维修。

具体地,在步骤S404中,装置1将在步骤S402中基于对所述软和/或硬件故障进行故障分析所获得的故障数据作为故障源,例如,在步骤S402中,装置1对各个机器是否死机进行分析,是否是无心跳、是否无回报信息等进行故障分析,获得对应的故障数据,随后,在步骤S404中,装置1将这些故障数据作为故障源,并将该故障源存入对应的数据库中,以对该数据库进行建立或更新;接着,在步骤S403中,装置1自该数据库中获取故障源,例如,通过一次或多次调用对应的应用程序接口(API),获取该数据库中的故障源,并基于该数据库中的故障源,采用维修状态机,对各个状态流转完成对所述超大规模机器的自动化维修。

在此,该数据库中存储有各种故障源,该数据库可以位于该装置1中,也可以位于与该装置1通过网络相连接的第三方设备中,在步骤S404中,装置1通过网络与该数据库相联系,以将故障源存入该数据库中,在步骤S403中,装置1通过网络与该数据库相联系,以从该数据库中获取故障源。

优选地,在步骤S402中,装置1还对经故障分析所获得的故障数据进行分类,获得分类后的故障数据;其中,在步骤S403中,装置1基于所述分类后的故障数据,采用维修状态机,对各个状态流转完成对所述超大规模机器的自动化维修。

具体地,在步骤S402中,装置1针对在步骤S401中所收集的软件故障和/或硬件故障进行故障分析,并对经故障分析后获得的故障数据进行分类,例如可以分为hw(硬件故障)、sw(软件故障)、ssh.lost(死机)、agent.lost(无心跳)、report-no-exists(无回报信息)等,获得分类后的故障数据;或进一步地,在步骤S402中,装置1针对各个故障数据,确定其对应的维修方式,并基于此进行分类,例如,若故障数据为死机,则其对应的维修方式为重启;若故障数据为无心跳,则其对应的维修方式为重启或重装;若故障数据为软件故障,如磁盘满,则其对应的维修方式为重装;若故障数据为磁盘即将损坏或已损坏,则其对应的维修方式为在线修盘等;装置1随后再基于各个故障数据所对应的维修方式对其进行分类,进一步地,在步骤S402中,装置1例如还可以对各个故障数据以标签的形式标注其对应的维修方式。在此,故障数据及其对应的维修方式仅为举例,本领域技术人员可以根据实际操作确定故障数据对应的维修方式,且其他现有或今后可能出现的故障数据及其对应的维修方式,如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用的方式包含于此。

随后,在步骤S403中,装置1基于该分类后的故障数据,采用维修状态机,针对不同分类的故障数据,对各个状态流转完成对所述超大规模机器的自动化维修,例如,对于需要重启类的故障数据所对应的机器进行重启;对于需要重装类的故障数据所对应的机器进行重装,如先进行服务迁移再进行重装;对于硬件故障所对应的机器进行迁移整机维修;对于磁盘类的故障,如磁盘即将损坏或已损坏,则进行在线修盘等。

本领域技术人员应能理解,上述对故障进行分析及分类的方式仅为举例,其他现有或今后可能出现的对故障进行分析或分类的方式,如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用的方式包含于此。

优选地,本发明还提供了一种计算机设备,该计算机设备包括一个或多个处理器和存储器,该存储器用于存储一个或多个计算机程序;当所述一个或多个计算机程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如步骤S401至S404中任一项所述的操作。

需要注意的是,本发明可在软件和/或软件与硬件的组合体中被实施,例如,本发明的各个装置可采用专用集成电路(ASIC)或任何其他类似硬件设备来实现。在一个实施例中,本发明的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本发明的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本发明的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。

对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

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