CN105027083B - 使用诊断结果的恢复程序 - Google Patents

使用诊断结果的恢复程序 Download PDF

Info

Publication number
CN105027083B
CN105027083B CN201380074008.6A CN201380074008A CN105027083B CN 105027083 B CN105027083 B CN 105027083B CN 201380074008 A CN201380074008 A CN 201380074008A CN 105027083 B CN105027083 B CN 105027083B
Authority
CN
China
Prior art keywords
recovery
diagnostic test
shell
repository
result
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201380074008.6A
Other languages
English (en)
Other versions
CN105027083A (zh
Inventor
格伦·A·福斯特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Enterprise Development LP
Original Assignee
Hewlett Packard Enterprise Development LP
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Enterprise Development LP filed Critical Hewlett Packard Enterprise Development LP
Publication of CN105027083A publication Critical patent/CN105027083A/zh
Application granted granted Critical
Publication of CN105027083B publication Critical patent/CN105027083B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2294Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing by remote test
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0748Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a remote unit communicating with a single-box computer node experiencing an error/fault
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0787Storage of error reports, e.g. persistent data storage, storage using memory protection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/366Software debugging using diagnostics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management

Abstract

提供用于恢复外壳的技术。从恢复程序储存库获取恢复程序。获取多个诊断测试的结果。利用恢复程序分析诊断测试结果。恢复程序确定外壳恢复动作。使用所确定的恢复动作恢复外壳。

Description

使用诊断结果的恢复程序
技术领域
提供一种使用获取的诊断测试的外壳恢复。
背景技术
现代计算系统已经从简单的框架形式的单机箱演变为更集成的形式。例如,典型的刀片系统包括容纳在外壳中的多个组件。刀片包含计算机的常规非共享组件,如一个或更多个处理器。刀片还可以包括存储器、存储装置和其他组件。外壳可以是多个刀片的主机。可以在刀片之间被共享的组件从各个刀片移动到外壳。
一些组件可以容纳在外壳中并被所有刀片共享。例如,外壳中可能存在电源单元,所有这些电源单元统一为刀片供电。其他支持组件可以包括用于冷却外壳中的组件的风扇。此外,外壳可以包括允许刀片相互通信的组件。例如,外壳中可能存在内联网,其允许刀片使用联网协议彼此通信。还可以存在其他互连件,例如,允许各个刀片上的处理器彼此通信的连接结构。
最后,外壳上可能存在接口,其允许外部系统与外壳通信。通常,这些外部接口用于配置和维护外壳和容纳在外壳中的刀片。例如,各种连接结构可以被配置为确定哪些刀片被允许彼此通信,电力如何被供应到刀片,地址(如刀片的IP地址)和所有大量的其他参数。
发明内容
一种用于恢复外壳的方法,包括:
从储存库获取恢复程序;
从外壳获取多个诊断测试的结果;
利用所述恢复程序分析所述结果,以确定恢复类型;
基于所确定的恢复类型,恢复所述外壳;
确定所述多个诊断测试中不具有结果的集合;
执行所确定的诊断测试的集合;
基于所述恢复程序,确定期望的诊断测试的集合;
确定所述期望的诊断测试的集合中未被安装的子集;以及
从储存库获取诊断测试的所述子集。
其中确定恢复类型进一步包括:
分析所述结果,以确定所述多个诊断测试中的哪些诊断测试具有失败结果;以及
选择将解决最大数量的诊断测试失败的恢复类型。
进一步包括:
重新运行所述多个诊断测试;以及
重新分析重新运行的诊断测试的结果,以确定外壳恢复是否成功。
进一步包括:
显示所确定的外壳恢复类型;以及
接收授权,以开始所确定类型的恢复。
进一步包括:
如果所述外壳恢复没有成功则重复所述方法。
一种永久性处理器可读介质,其上包含处理器可读指令集,当所述指令集被处理器执行时,使所述处理器:
连接到恢复程序储存库,以获取最新版本的恢复程序;
执行所述恢复程序,其中所述恢复程序包括用于以下操作的指令:
从外壳获取多个诊断测试的结果;
分析所述结果以确定第一恢复动作;
对所述外壳执行所述第一恢复动作;以及
确定所述第一恢复动作的成功状态;以及
当所述成功状态指示失败时,将所述成功状态、分析结果和诊断测试结果存储到恢复失败储存库,其中所述恢复程序基于所述恢复失败储存库被修改;
从固件储存库获取当前版本的外壳固件;以及
重新安装所述当前版本的固件;
其中所述恢复程序进一步包括用于以下操作的指令:
确定不可用的诊断测试的集合;
从诊断测试储存库获取所述不可用的诊断测试的集合;
确定其结果不可用的诊断测试;以及
运行其结果不可用的诊断测试。
进一步包括用于以下操作的指令:
当所述成功状态指示成功时,将所述成功状态、所述分析结果和所述诊断测试结果存储到恢复失败储存库。
其中所述恢复程序进一步包括用于以下操作的指令:
重新运行所述多个诊断测试;以及
分析重新运行的所述多个诊断测试的结果,以确定恢复是否成功。
其中所述恢复动作进一步包括用于以下操作的指令:
从固件储存库获取最新版本的外壳固件;以及
安装所述最新版本的固件。
一种用于恢复外壳的系统,包括:
恢复程序储存库,用于存储恢复程序;
诊断测试储存库,用于存储多个诊断测试;和
恢复失败储存库,用于存储所述恢复程序的执行结果;
其中恢复设备从所述恢复程序储存库获取所述恢复程序,从所述诊断测试储存库获取任何缺失诊断测试,分析结果以确定所述多个诊断测试中的哪些具有失败结果,选择将解决最大数量的诊断测试结果失败的恢复类型,对外壳执行所述恢复程序以及将所述恢复程序的结果存储到所述恢复失败储存库;
其中所述恢复设备基于所述恢复程序确定期望的诊断测试的集合、确定所述期望的诊断测试的集合中未被安装的子集、以及从所述诊断测试储存库获取诊断测试的所述子集。
进一步包括:
用于存储外壳固件版本的固件储存库,其中所述恢复程序从所述固件储存库获取外壳固件版本并将所获取的固件版本应用到所述外壳。
附图说明
图1是使用本文描述的恢复技术的一个示例性系统。
图2是使用本文描述的恢复技术的另一个示例性系统。
图3是用于恢复外壳的一个示例性流程图。
图4是用于使用获取的诊断测试恢复外壳的一个示例性流程图。
图5是用于恢复外壳(包括存储恢复结果)的一个示例性流程图。
图6是用于恢复外壳(包括获取诊断结果和存储恢复结构)的一个示例性流程图。
具体实施方式
随着计算系统变得越来越复杂,对于额外组件以及这些组件之间的互连,不合适配置或不兼容的软件/固件版本所引入错误的机会增加。例如,外壳内的每个组件(例如,电源、风扇、互连结构、到外部系统的接口等)可以使用固件(其以软件形式)能够实现组件的功能。除了组件本身的固件的错误问题之外,固件的非兼容性可也能引入额外错误。例如,需要彼此通信的两个组件,如果它们具有不兼容的固件版本,它们可能不能进行通信。随着组件数量增加,固件的非兼容性的可能也增加。
此外,可能存在会引起错误的配置问题。例如,尽管仅单个电源物理存在,外壳也可能被配置为利用冗余电源操作。这种不合适的配置可能阻止外壳正确上电。类似地,每个刀片可能被配置有互联网协议(IP)地址以在外壳内部IP网络上通信。如果IP地址被错误配置,刀片可能不能彼此通信。可能存在其他类型的配置问题,它们可能在外壳内引起操作问题。
为了帮助诊断一些不正确的配置问题,组件供应商常常提供诊断程序以确保组件被正确配置。例如,外壳内部IP网络的诊断程序可尝试使用期望IP地址ping每个刀片。如果从具体刀片接收不到响应,这可以被记录为失败结果以用于这个刀片的诊断。诊断通常被设计为详细测试单个组件或组件的小子集。每个诊断的结果通常被存储并可以被获取用于分析。
许多问题源自使用诊断测试的结果。如上文提到的,诊断测试通常详细地测试小量的组件。因为诊断测试是细化的,因此可能难于确保运行最新版本的诊断测试。此外,诊断测试可能不善于识别诊断测试范围之外的问题。例如,外壳可能被配置为利用冗余电源操作,并且如果非冗余电源被物理安装,将不允许刀片上电。电源诊断测试可以识别这种状况。外壳内部网络诊断可以ping每个刀片以确定是否接收到响应,从而保证刀片上的IP地址的正确配置。然而,如果刀片由于电源问题没有被上电,内部网络诊断将失败,这是因为没有电力的刀片不能响应ping。
诊断测试结果的正确分析可以包括查看各个测试的所有结果以确定该问题。例如,为了解决刀片不能响应ping的问题,首先可能需要检查电源配置的结果以确保刀片正在接收电力,接着移动到可能不正确的刀片IP地址配置问题。如果组件之间进行高级交互,有经验的人类工程师可能需要分析诊断结果,并且通过知识和经验,确定错误的最可能原因。使用人类工程师可能大幅增加维护成本,因为有经验的工程师常常很难聘请。
尝试自动化该过程还面临大量障碍。尽管恢复程序可以被开发为自动化恢复外壳的过程,但是这种恢复程序仍然具有缺点。首选,恢复程序可能是静态的,使得新发现的错误状况不能由该恢复程序处理。此外,如上文提到的,诊断程序时常被修改,并且新的诊断程序可能被加入。静态恢复程序将不能考虑新的诊断方法或当前存在的诊断方法的版本。此外,恢复工作的结果不能被传递回到恢复程序开发者。
本文描述的技术克服了这些问题。一种恢复设备(如,膝上型计算机或台式计算机)可以被连接到外壳。恢复设备上的小程序可以与恢复程序储存库通信以获取恢复程序。恢复程序储存库可以存储最新版本的恢复程序。最新版本的恢复程序意味着最近可用的恢复程序。因为恢复程序被获取,不存在可能使用旧的恢复程序的问题。而且,最新版本的恢复程序可以包含用于恢复外壳的最新方法。
例如,恢复程序可以知道需要哪些诊断测试以及那些诊断测试的每个的最新版本。当从外壳获取诊断结果时,能够比较结果以确定是否所有需要的结果都可用以及最新版本的诊断测试是否已经运行。如果结果不可用或者最近版本的诊断测试没有运行,则恢复程序可以从诊断测试储存库获取最新版本的诊断测试并在外壳上运行该测试。因此,能够保证所有需要的测试结果可用并且结果来自最近版本。
恢复程序接着可以巩固所有诊断测试的结果以确定最合适的恢复类型。例如,恢复能够包括改变配置,重新启动外壳等。在完成恢复动作之后,恢复程序可以再次测试外壳以确定正确的操作。如果恢复动作没有成功,则恢复程序可以再次运行以确定是否应当运行新的类型的恢复动作。如果恢复程序确定恢复不可能,则恢复尝试的结果可以存储在恢复失败储存库中。该结果可以包括诊断测试结果。根据该信息,恢复程序的开发者能够识别不能被恢复程序恢复的新发现的错误状况。开发者接着可以修改恢复程序并将新的版本设置在恢复程序储存库中。当新的错误状况被识别到,恢复程序被修改以处理这些新的错误状况。因为恢复程序从恢复程序储存库中获取,因此能够保证使用最新版本的恢复程序。
图1是使用本文描述的恢复技术的一种示例性系统。系统100可以包括外壳110、恢复设备130、恢复程序储存库140、诊断测试储存库150、恢复失败储存库160和网络170-a、170-b。外壳可以是计算系统,如刀片外壳。包括在外壳中的可以是一个或多个可诊断组件112-1、......、112-n。
出于本描述的目的,可诊断组件可以是对其诊断测试可用的元件或元件的集合。诊断测试通常将测试外壳中元件的集合的功能。例如,可诊断组件可以是电源和电源的配置。电源组件的诊断测试可以被限制到验证电源的配置匹配实际安装在外壳中的电源。外壳提供的其他功能不由电源诊断测试测试。其他可诊断组件可以包括多个元件。将针对图2进一步描述可诊断组件。
该系统还可以包括恢复设备130。恢复设备可以是能够连接到外壳的任意类型的设备。例如,恢复设备可以是膝上型计算机。恢复设备还可以是台式计算机、平板型电脑、智能电话或能够连接到外壳的任意其他类型的计算设备。恢复设备的具体形式不重要,只要下文描述的功能可用。
该系统还可以包括恢复程序储存库140。恢复程序储存库可以存储最新版本的恢复程序。在一些实施方式中,恢复程序储存库可以存储更旧版本的恢复程序。诊断测试储存库150可以存储外壳中的每个可诊断组件的最新版本的诊断测试。尽管诊断测试可以包括在恢复设备或外壳本身中,但不保证最新版本的诊断测试在恢复设备或外壳上可用。此外,如果创建新的诊断,那些新的诊断可能在恢复设备或外壳上不可用。
该系统还可以包括恢复失败储存库160。恢复失败储存库可以用于存储针对外壳采取的恢复动作的结果。如果恢复动作失败,这种信息可以存储在恢复动作失败储存库中。恢复程序开发者可以利用该信息开发新的恢复动作。这些新的恢复动作可以在稍后版本的恢复程序中实现。
该系统还可以包括网络170-a、170-b,其允许外壳、恢复设备和储存库彼此通信。尽管设备之间的通信通常通过网络进行,但本文描述的技术不需要网络。例如,恢复设备(例如,膝上型计算机)可以直接连接到外壳。此外,尽管示出两个单独的网络170-a、170-b,这两个网络实际上可以是相同的物理网络。类似地,尽管储存库被示为单独的元件,在一些实施方式中,所有储存库的功能可以合并到单个元件中。
操作时,外壳110可能经历一些类型的错误状况。这种状况可能主要在于位于外壳内的计算系统完全不可用。该状况在本质上更次要方面在于一些功能可以仍可用,但不完全起作用。不论错误状况类型如何,对于外壳的整个操作,这些状况将优选被解决。将外壳返回到完全操作功能的状态可以被称为恢复外壳。
恢复设备130可以耦合到外壳。恢复设备可以通过网络170-a耦合到外壳或可以直接连接到外壳。恢复设备可以包括小程序,其作用是通过网络170-b从恢复程序储存库获取恢复程序。如上文解释的,恢复程序储存库可以包含最新版本的恢复程序。因为从储存库中获取恢复程序,因此总是可以获取到最新版本的恢复程序。恢复程序接着可以在恢复设备上被执行。
恢复程序可以规定需要的诊断测试结果集合以便确定如何恢复外壳。恢复程序还可以规定应当运行的那些诊断测试的具体版本。恢复程序可以与外壳110通信以获取诊断测试结果(它们通过运行正确版本的诊断测试被创建)。恢复程序还可以确定是否某些诊断测试结果不可用。因为诊断测试不存在于恢复设备或外壳上或存在错误版本或者简单地,测试没有运行,因而该结果可能不可用。
恢复设备可以通过网络170-b与诊断测试储存库150通信,以获取不存在于恢复设备或外壳上、或者可能存在、但具有错误版本的任意诊断测试。恢复设备接着可以使获取的诊断测试在外壳上运行。此外,其正确版本已经可用但没有结果存在的诊断测试也能运行。
恢复程序可以接着获取在恢复程序中规定的所有诊断测试结果。这些结果可以被聚集并分析,以确定恢复外壳的正确动作。例如,恢复动作可以包括重新启动外壳、重新启动外壳的部分、或改变外壳的配置参数。换句话说,恢复程序查看诊断结果的错误模式,并基于这些错误,采取规定的恢复动作。恢复动作的确切形式不重要,然而,应当理解,恢复程序规定采取什么动作。
完成恢复动作之后,诊断可以被再次运行,并且被重新分析以确定错误状况是否被正确恢复。如果没有,可以重复该过程。例如,恢复动作可以具有固定的一些错误状况,但不是所有的错误状况。重新运行该过程可以指示不同类型的恢复以纠正剩余的错误状况。
此外,如果外壳没有被恢复,结果可以通过网络170-b被发送到恢复失败储存库160。该结果可以包括开始执行恢复之前和之后的诊断测试的结果。恢复程序的开发者可以接着修改恢复程序,以适应没有被正确恢复的具体状况。修改后的恢复程序版本可以被存储在恢复程序储存库中。因此,恢复程序的开发者可以被提供有关于当前版本的恢复程序不能恢复的错误状况的真实世界反馈。恢复程序可以被修改以适应先前失败的恢复动作。
图2是使用本文描述的恢复技术的另一个示例性系统。图2基本与图1类似,具有一些额外的细节和一些示例性可诊断组件。系统200可以包括外壳210、恢复设备230、恢复程序储存库240、诊断测试储存库250、恢复失败储存库260和固件储存库270。网络270-a、270-b可以用于实现组件之间的通信。各种储存库可以被实现为计算系统,其具有用于存储程序、测试、结果和固件的存储装置。可以使用数据库创建储存库。尽管被示为单独元件,应当理解,各种储存库的内容可以存储在单个系统或单个数据库内。
外壳210可以包括各种可诊断组件。出于解释简单的目的,示出可诊断组件的若干实例。然而,应当理解,这些仅是示例性的。可以存在更多或更少的组件。本文描述的技术不依赖于任意具体的可诊断组件集合。外壳可以包括外壳管理器214。外壳管理器可以提供到外部系统(例如,恢复设备230)的通信。外壳管理器还可以存储外壳的各种配置参数。
该外壳还可以包括冗余电源216-a、216-b。这些电源可以供应电力到包含在外壳内的元件。外壳还可以包括多个刀片218-1、......、218-n。这些刀片可以包括处理器、存储器、存储装置等(未示出)。连接外壳内的所有元件可以是网络220。网络可以是允许所有元件通信的IP网络。所有元件可以具有IP地址,其用于在网络220上寻址元件。
包含在外壳内的各种元件可以被合并以形成可诊断组件。如上文解释的,可诊断组件是针对其诊断测试可用的元件集合。例如,一个可诊断组件可以是电源。外壳管理器中的配置参数可以规定是否配备冗余电源。电源诊断可以确定配置是否匹配冗余电源的实际物理存在。应当注意,电源诊断测试可诊断组件内的问题,而不管可能存在的其他故障。这种故障的级联将在下文进一步详细描述。
可诊断组件的另一个实例可以是网络220。针对该组件的诊断测试可以确定是否外壳内的每个元件通过网络可到达。如果不能,这可以指示网络上的IP地址的配置存在问题,或者更大的问题。可诊断组件的另一个实例是固件,其安装在外壳内的所有元件上。该诊断测试能够确定是否正确版本的固件被安装在每个组件上。其还可以确定是否稍后版本的固件可用。
恢复设备230可以包括处理器232和永久性处理器可读介质234。包含在永久性处理器可读介质上的可以是恢复程序指令集236,当其被处理器执行时,使得处理器实现本文描述的技术。恢复程序指令可以从恢复程序储存库240中获取,如上所述。该系统还可以包括诊断测试存储库250和恢复失败储存库,它们基本与上文描述的一样。此外,该系统可以包括固件储存库280,它们的操作将在下文进一步详细描述。
操作时,外壳210可以经历错误状况。恢复设备可以用于尝试恢复外壳。应当注意,确定是否需要恢复外壳可以由用户确定或可以以自动方式发生,其中恢复设备周期性分析外壳以确定是否需要任何恢复。开始,恢复设备可以与恢复程序储存库通信,以获取最新版本的恢复程序。通过获取最新版本的恢复程序,可以保证利用最近版本的恢复程序执行恢复,这继而保证包括所有当前已知的恢复情况。
获取恢复程序之后,恢复设备可以运行恢复程序。恢复程序可以规定为正确确定如何恢复外壳而需要的诊断测试结果集合。恢复程序还可以规定应当用于产生结果的诊断测试的版本。恢复程序接着可以查询外壳,以获取匹配恢复程序所规定的那些结果的诊断测试结果。通过获取当前存在的诊断测试结果,恢复程序能够避免重复执行其结果已经可用的测试。
在一些情形下,结果可能不可用。例如,规定的诊断可能当前不存在于恢复设备或外壳上,或者可能存在,但还没有被运行,或者可能存在不正确的版本。恢复设备可以与诊断测试储存库250通信以获取诊断测试的正确版本。这些没有结果或者它们的结果来自不正确版本的诊断测试的测试可以被重新运行。
出于本描述的目的,将描述若干示例性诊断测试。然而,该列表并不旨在是穷尽性的或反映任何实际诊断测试。为了进一步理解本文描述的解释而提供这些实例。一个实例可以是网络诊断。这种诊断可以尝试ping连接到网络220的外壳内的所有元件。如果所有组件都没有响应,可以认为诊断失败,并且这种失败可以在结果中反映出来。诊断测试的另一个实例可以是电源的测试,其验证所安装的电源是否如配置的那样。如果不是,电源可能无法变得有效和提供电力到刀片。诊断测试的又一个实例是检查外壳中的每个元件上安装的固件版本。固件通常作为封装件被提供,其包括外壳内的每个元件的可兼容固件版本。如果各种元件的版本失配,这可以被认为诊断失败。
一旦恢复程序需要的所有诊断具有可用结果,该结果可以被恢复程序聚集。恢复程序接着可以基于失败的诊断确定合适的恢复类型。恢复程序可以利用所有诊断结果确定合适的恢复类型。例如,刀片可能不响应ping请求,如反映在网络诊断中一样。然而,如果电源诊断确定电源没有被正确配置,这可能阻止刀片上电。这样,它们将不响应ping请求。因此,一个诊断中的失败可以指示该解决可以来自不同诊断结果需要的纠正动作。
恢复程序可以包含诊断失败的长列表并且针对每个采取的恢复动作。例如,恢复程序可以指示电源诊断和网络诊断两者的失败应当通过正确配置电源以匹配物理存在的电源来恢复。刀片的网络诊断的失败(没有对应的电源诊断失败)可能需要通过重新启动故障刀片来恢复。应当清楚,所采取的恢复动作取决于所有失败诊断测试的组合。恢复程序被编码,以便针对所有已知错误的组合,采取通常能够成功恢复外壳的恢复动作。
在一些情况下,恢复程序可以尝试以尽可能破坏性最小的方式或修复最大数量的诊断测试结果错误的方式进行恢复。例如,固件诊断可以比较安装在外壳的每个元件上的固件版本以验证这些版本全部兼容。如果不兼容,在其他诊断测试中可能存在许多失败。恢复动作首先可以尝试通过重新启动外壳和其中的所有组件进行恢复。这是固件恢复的最不具有攻击性的方法,因为它不涉及固件的改变。如果这种恢复没有成功,恢复程序接下来可以尝试重新安装当前版本的固件的原始副本。恢复程序可以从固件储存库280获取原始副本。尽管这种恢复稍微具有更多的攻击性,因为对固件进行了改变,但是比下一个步骤具有较小的攻击性。接下来的恢复可以是安装最新版本的固件。再次,最新版本可以从固件储存库中获取。
如上文提到的,恢复程序收集诊断结果并分析失败的那些诊断,以确定合适的恢复类型。然而,可能的是,恢复程序会碰到针对其没有定义恢复动作的诊断结果集合。换句话说,失败结果的具体组合在之前没有被发现,因此恢复动作还未知。在恢复程序规定恢复动作类型时能够发生类似情形,但是那个动作不能导致正确恢复外壳。
在这些情况下,恢复程序可以将失败的恢复报告给恢复失败储存库。包括在报告中的可以是诊断测试的结果。恢复程序开发者接着可以人工分析诊断失败结果,以确定正确的恢复应当是什么。在保证所确定的恢复类型成功之后,恢复程序开发者可以开发新版本的恢复程序到恢复程序储存库。因此,下次发现诊断失败结果的具体组合时,已知正确的恢复。因此,恢复程序开发者能够接收关于恢复程序的结果的真实世界的反馈,并能够进一步精确恢复程序以考虑真实世界错误。
此外,在一些实施方式中,恢复程序还可以将成功的恢复报告给储存库。可以分析这些结果以确定需要被恢复的最常用类型的错误。根据该分析,可以开发进一步改进的、运行在外壳中的软件。例如,如果网络配置诊断通常失败,并且恢复动作是将元件的IP地址重置到默认地址,这可以指示存在问题:网络IP地址冲突或用户改变IP地址。接着可以进一步调查这些类型的问题,以确定软件中是否存在错误或者错误是否由维护人员进行的错误配置导致的。如果是前者,能够找到和修复软件缺陷。如果是后者,则可以向维护人员提供附加训练。在一些情况下,维护人员配置某些参数的能力可以完全无效。
图3是用于恢复外壳的一个示例性流程图。在方框310,可以从储存库获取恢复程序。如上文解释的,储存库可以存储最新版本的恢复程序以保证最近的恢复动作和诊断可用。在方框320,可以从外壳获取多个诊断测试的结果。在一些情况下,一些需要的诊断结果可能不可用。这种情形将在下文进一步详细描述。
在方框330,可以利用恢复程序分析结果以确定恢复类型。这种恢复可以包括,例如,重新启动外壳、重新启动外壳中的各个组件、重置配置参数或任意其他类型的恢复动作。可以由恢复程序确定恢复的具体形式。在方框340,可以基于所确定的恢复类型恢复外壳。换句话说,使用通过多个诊断结果的分析所确定的恢复类型恢复外壳。
图4是用于使用获取的诊断测试恢复外壳的一个示例性流程图。在方框405,可以从储存库获取恢复程序。在方框410,基于恢复程序,可以确定期望的诊断测试的集合。换句话说,恢复程序用于确定需要哪些诊断测试结果。在方框415,确定诊断测试的集合中未被安装的子集。如上文解释的,可以创建新的诊断测试或现存诊断测试的新版本可以可用。方框415确定其当前版本不可用的诊断。
在方框420,可以从储存库获取诊断测试的该子集。储存库可以存储最近版本的所有可用诊断测试。因此,在方框420之后,恢复程序需要的所有诊断测试先前已经被安装或者从储存库被获取。在方框425,可以确定没有结果的诊断测试的集合。如上文解释的,在一些情形下,安装的诊断测试可能已经运行,并且那些测试的结果可用。在这些情形下,可能没有必要重新运行诊断测试,因为可以使用现存结果。在方框430,可以执行所确定的诊断测试的集合。换句话说,运行其结果当前不可用的测试。
在方框435,从外壳获取多个诊断测试的结果。这些结果可以是先前存在的或者在方框430中创建的。然而,在方框435之后,获取恢复程序需要的所有诊断测试的结果。在方框440,分析这些结果,以确定多个诊断测试的哪些具有失败结果。如上文解释的,诊断测试本身的失败不能确定恢复动作,而是所有失败整体的分析确定恢复动作。
在方框445,选择将解决最大数量的诊断测试失败的恢复类型。换句话说,恢复程序分析诊断测试结果,以确定哪种类型的恢复最可能解决外壳故障的原因。在方框450,可以显示所确定的外壳恢复类型。在方框455,可以接收授权,以开始所确定类型的恢复。以这种方式,可以允许对外壳执行恢复的操作者确认恢复应当进行。
在方框460,可以基于所确定的恢复类型,恢复外壳。这可以包括重新启动外壳、重新启动各个组件、改变配置参数或者恢复程序确定的任意其他类型的恢复动作。在方框465,可以重新运行多个诊断测试。在一些实施方式中,仅重新运行那些具有失败结果的诊断测试,而在另一些实施方式中,重新运行所有诊断测试。在方框470,可以重新分析重新运行的诊断测试的结果,以确定外壳恢复是否成功。如果恢复没有成功,可以重复该过程。
图5是用于恢复外壳(包括存储恢复结果)的一种示例性流程图。在方框510,可以进行到恢复程序储存库的连接,以获取最新版本的恢复程序。如上文解释的,最新版本的恢复程序可以包含关于如何恢复外壳的当前可用的所有知识。在方框520,可以执行恢复程序。恢复程序可以规定需要哪些诊断测试结果集合。在方框530,可以从外壳获取多个诊断测试的结果。
在方框540,可以分析获取的结果,以确定第一恢复动作。换句话说,恢复程序可以使用这些结果,以确定哪种类型的恢复动作最可能解决外壳正经历的任何错误。在方框550,可以对外壳执行第一恢复动作。在方框560,可以确定第一恢复动作的成功状态。
在方框570,当成功状态指示失败时,可以将成功状态、分析结果和诊断测试结果存储到恢复失败储存库。可以基于恢复失败储存库修改恢复程序。换句话说,如果恢复程序不能恢复外壳,存储失败的具体情形,包括诊断测试结果。恢复程序的开发者可以分析未恢复的失败情形,以确定可能需要的额外步骤。接着可以更新恢复程序,使得如果再次发现这种具体失败情况,恢复程序将能够恢复外壳。到恢复程序开发者的这种迭代反馈允许鲁棒的恢复程序,其能够处理所有类型的失败。随着时间的流逝,恢复程序可以被精确调整以能够处理任意类型的外壳故障。此外,可以重复该过程并且可以确定第二恢复类型。
图6是用于恢复外壳(包括获取诊断测试并存储恢复结果)的一个示例性流程图。在方框605,可以进行到恢复程序储存库的连接并且可以获取最新版本的恢复程序。在方框610,可以执行恢复程序。在方框615,恢复程序可以确定不可用的诊断测试的集合。不可用的诊断测试可以是在外壳上不可用或者其稍后版本可用的诊断测试。在方框620,可以从诊断测试储存库获取不可用诊断测试的集合。诊断测试储存库可以包含最新版本的所有诊断测试。
在方框625,可以确定其结果不可用的诊断测试。结果的不可用可能由于诊断不可用导致的,并由后续版本取代,或因为诊断测试刚才没有运行。在方框630,可以运行其结果不可用的诊断测试。在方框635,可以从外壳获取多个诊断测试的结果。在方框640,可以分析结果以确定第一恢复动作。换句话说,恢复程序分析诊断测试结果,以确定应当如何恢复外壳。
在方框645,可以对外壳执行第一恢复动作。如上文解释的,恢复可以包括,例如,重新启动外壳、重新启动外壳内的组件、改变外壳内的配置或任意其他类型的恢复动作。在方框650,可以重新运行多个诊断测试。在方框655,可以分析重新运行的诊断测试的结果,以确定恢复是否成功。
在方框660,当成功状态指示失败的恢复时,可以将恢复状态、分析结果和诊断测试结果存储到恢复失败储存库。可以基于这些结果修改恢复程序,使得如果在未来发现这种具体错误状况,恢复程序可以知道如何恢复该错误。在方框655,当成功状态指示成功时,可以在恢复失败储存库中存储成功状态、分析结果和诊断测试结果。这些结果可以用于确定常用失败类型以及恢复程序如何成功恢复这些失败类型。

Claims (11)

1.一种用于恢复外壳的方法,包括:
从储存库获取恢复程序;
从外壳获取多个诊断测试的结果;
利用所述恢复程序分析所述结果,以确定恢复类型;
基于所确定的恢复类型,恢复所述外壳;
确定所述多个诊断测试中不具有结果的集合;
执行所确定的诊断测试的集合;
基于所述恢复程序,确定期望的诊断测试的集合;
确定所述期望的诊断测试的集合中未被安装的子集;以及
从储存库获取诊断测试的所述子集。
2.根据权利要求1所述的方法,其中确定恢复类型进一步包括:
分析所述结果,以确定所述多个诊断测试中的哪些诊断测试具有失败结果;以及选择将解决最大数量的诊断测试失败的恢复类型。
3.根据权利要求1所述的方法,进一步包括:
重新运行所述多个诊断测试;以及
重新分析重新运行的诊断测试的结果,以确定外壳恢复是否成功。
4.根据权利要求1所述的方法,进一步包括:
显示所确定的外壳恢复类型;以及
接收授权,以开始所确定类型的恢复。
5.根据权利要求3所述的方法,进一步包括:
如果所述外壳恢复没有成功则重复所述方法。
6.一种永久性处理器可读介质,其上包含处理器可读指令集,当所述指令集被处理器执行时,使所述处理器:
连接到恢复程序储存库,以获取最新版本的恢复程序;
执行所述恢复程序,其中所述恢复程序包括用于以下操作的指令:
从外壳获取多个诊断测试的结果;
分析所述结果以确定第一恢复动作;
对所述外壳执行所述第一恢复动作;以及
确定所述第一恢复动作的成功状态;以及
当所述成功状态指示失败时,将所述成功状态、分析结果和诊断测试结果存储到恢复失败储存库,其中所述恢复程序基于所述恢复失败储存库被修改;
从固件储存库获取当前版本的外壳固件;以及
重新安装所述当前版本的固件;
其中所述恢复程序进一步包括用于以下操作的指令:
确定不可用的诊断测试的集合;
从诊断测试储存库获取所述不可用的诊断测试的集合;
确定其结果不可用的诊断测试;以及
运行其结果不可用的诊断测试。
7.根据权利要求6所述的永久性处理器可读介质,进一步包括用于以下操作的指令:
当所述成功状态指示成功时,将所述成功状态、所述分析结果和所述诊断测试结果存储到恢复失败储存库。
8.根据权利要求6所述的永久性处理器可读介质,其中所述恢复程序进一步包括用于以下操作的指令:
重新运行所述多个诊断测试;以及
分析重新运行的所述多个诊断测试的结果,以确定恢复是否成功。
9.根据权利要求6所述的永久性处理器可读介质,其中所述恢复动作进一步包括用于以下操作的指令:
从固件储存库获取最新版本的外壳固件;以及
安装所述最新版本的固件。
10.一种用于恢复外壳的系统,包括:
恢复程序储存库,用于存储恢复程序;
诊断测试储存库,用于存储多个诊断测试;和
恢复失败储存库,用于存储所述恢复程序的执行结果;
其中恢复设备从所述恢复程序储存库获取所述恢复程序,从所述诊断测试储存库获取任何缺失诊断测试,分析结果以确定所述多个诊断测试中的哪些具有失败结果,选择将解决最大数量的诊断测试结果失败的恢复类型,对外壳执行所述恢复程序以及将所述恢复程序的结果存储到所述恢复失败储存库;
其中所述恢复设备基于所述恢复程序确定期望的诊断测试的集合、确定所述期望的诊断测试的集合中未被安装的子集、以及从所述诊断测试储存库获取诊断测试的所述子集。
11.根据权利要求10所述的系统,进一步包括:
用于存储外壳固件版本的固件储存库,其中所述恢复程序从所述固件储存库获取外壳固件版本并将所获取的固件版本应用到所述外壳。
CN201380074008.6A 2013-02-28 2013-02-28 使用诊断结果的恢复程序 Active CN105027083B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2013/028146 WO2014133510A1 (en) 2013-02-28 2013-02-28 Recovery program using diagnostic results

Publications (2)

Publication Number Publication Date
CN105027083A CN105027083A (zh) 2015-11-04
CN105027083B true CN105027083B (zh) 2018-10-26

Family

ID=51428632

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380074008.6A Active CN105027083B (zh) 2013-02-28 2013-02-28 使用诊断结果的恢复程序

Country Status (4)

Country Link
US (1) US9798608B2 (zh)
EP (1) EP2962202A4 (zh)
CN (1) CN105027083B (zh)
WO (1) WO2014133510A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9688243B2 (en) * 2013-03-12 2017-06-27 Robert Bosch Gmbh System and method for creating and distributing diagnostic tests in an adaptive diagnostic development platform
US10037066B2 (en) * 2016-04-07 2018-07-31 Dell Products L.P. Power supply unit mismatch detection system
US11422901B2 (en) * 2017-11-06 2022-08-23 Hewlett-Packard Development Company, L.P. Operating system repairs via recovery agents

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7231549B1 (en) * 2002-10-04 2007-06-12 American Megatrends, Inc. Method and apparatus for providing on-demand computer diagnostics

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6487677B1 (en) * 1999-09-30 2002-11-26 Lsi Logic Corporation Methods and systems for dynamic selection of error recovery procedures in a managed device
JP2003114811A (ja) * 2001-10-05 2003-04-18 Nec Corp 自動障害復旧方法及びシステム並びに装置とプログラム
TWI240881B (en) * 2002-05-09 2005-10-01 Taiwan Semiconductor Mfg Monitor and diagnostic system and its method for breakdown facilities
GB0308264D0 (en) 2003-04-10 2003-05-14 Ibm Recovery from failures within data processing systems
US7454657B2 (en) * 2004-09-02 2008-11-18 International Business Machines Corporation Method for self-diagnosing remote I/O enclosures with enhanced FRU callouts
CN100525206C (zh) * 2005-06-15 2009-08-05 华为技术有限公司 自动恢复设备故障的实现方法及系统
JP2007052509A (ja) * 2005-08-15 2007-03-01 Fujitsu Ltd ディスクアレイ装置における媒体エラーリカバリ装置、方法、及びプログラム
US7849454B2 (en) 2006-01-13 2010-12-07 Dell Products L.P. Automatic firmware corruption recovery and update
US8495415B2 (en) 2006-05-12 2013-07-23 International Business Machines Corporation Method and system for maintaining backup copies of firmware
US8214467B2 (en) 2007-12-14 2012-07-03 International Business Machines Corporation Migrating port-specific operating parameters during blade server failover
US8290915B2 (en) * 2008-09-15 2012-10-16 International Business Machines Corporation Retrieval and recovery of data chunks from alternate data stores in a deduplicating system
US8140837B2 (en) 2008-11-05 2012-03-20 International Business Machines Corporation Automatically making selective changes to firmware or configuration settings
US8694822B2 (en) * 2010-11-09 2014-04-08 International Business Machines Corporation Disaster recovery in a networked computing environment
US9424152B1 (en) * 2012-10-17 2016-08-23 Veritas Technologies Llc Techniques for managing a disaster recovery failover policy

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7231549B1 (en) * 2002-10-04 2007-06-12 American Megatrends, Inc. Method and apparatus for providing on-demand computer diagnostics

Also Published As

Publication number Publication date
WO2014133510A1 (en) 2014-09-04
US20160026518A1 (en) 2016-01-28
EP2962202A4 (en) 2016-10-12
EP2962202A1 (en) 2016-01-06
CN105027083A (zh) 2015-11-04
US9798608B2 (en) 2017-10-24

Similar Documents

Publication Publication Date Title
US10824521B2 (en) Generating predictive diagnostics via package update manager
CN105302716B (zh) 合流开发模式下的测试方法、装置
CN103635885B (zh) 通过提供预构建环境的即时可用性来部署用于测试的环境
US7694181B2 (en) Automated software testing framework
US8209564B2 (en) Systems and methods for initiating software repairs in conjunction with software package updates
CN107660289B (zh) 自动网络控制
Lou et al. Software analytics for incident management of online services: An experience report
KR20160044484A (ko) 클라우드 배치 기반구조 검증 엔진
US9116802B2 (en) Diagnostic notification via package update manager
KR101331935B1 (ko) 추적점 기반의 고장 진단/복구 시스템 및 그 방법
US10496495B2 (en) On demand remote diagnostics for hardware component failure and disk drive data recovery using embedded storage media
Casanova et al. Architecture-based run-time fault diagnosis
CN111949551A (zh) 应用程序测试方法、装置、设备及存储介质
CN105027083B (zh) 使用诊断结果的恢复程序
Wang et al. Automated test case generation for the Paxos single-decree protocol using a Coloured Petri Net model
CN110990289B (zh) 一种自动提交bug的方法、装置、电子设备及存储介质
US9253069B2 (en) Method and system for testing configuration of environments
US10929261B1 (en) Device diagnosis
US11194704B2 (en) System testing infrastructure using combinatorics
Huang et al. PDA: A Tool for Automated Problem Determination.
CN111124724B (zh) 一种分布式块存储系统的节点故障测试方法及装置
WO2016026510A1 (en) Hardware fault identification management in a network
US9354962B1 (en) Memory dump file collection and analysis using analysis server and cloud knowledge base
Chen et al. Spectrum-based fault diagnosis for service-oriented software systems
Avritzer et al. Using software aging monitoring and rejuvenation for the assessment of high-availability systems

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20161021

Address after: American Texas

Applicant after: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP

Address before: American Texas

Applicant before: Hewlett-Packard Development Company, Limited Liability Partnership

GR01 Patent grant
GR01 Patent grant