使用诊断结果的恢复程序的制作方法
【专利说明】
【背景技术】
[0001]现代计算系统已经从简单的框架形式的单机箱演变为更集成的形式。例如,典型的刀片系统包括容纳在外壳中的多个组件。刀片包含计算机的常规非共享组件,如一个或更多个处理器。刀片还可以包括存储器、存储装置和其他组件。外壳可以是多个刀片的主机。可以在刀片之间被共享的组件从各个刀片移动到外壳。
[0002]—些组件可以容纳在外壳中并被所有刀片共享。例如,外壳中可能存在电源单元,所有这些电源单元统一为刀片供电。其他支持组件可以包括用于冷却外壳中的组件的风扇。此外,外壳可以包括允许刀片相互通信的组件。例如,外壳中可能存在内联网,其允许刀片使用联网协议彼此通信。还可以存在其他互连件,例如,允许各个刀片上的处理器彼此通信的连接结构。
[0003]最后,外壳上可能存在接口,其允许外部系统与外壳通信。通常,这些外部接口用于配置和维护外壳和容纳在外壳中的刀片。例如,各种连接结构可以被配置为确定哪些刀片被允许彼此通信,电力如何被供应到刀片,地址(如刀片的IP地址)和所有大量的其他参数。
【附图说明】
[0004]图1是使用本文描述的恢复技术的一个示例性系统。
[0005]图2是使用本文描述的恢复技术的另一个示例性系统。
[0006]图3是用于恢复外壳的一个不例性流程图。
[0007]图4是用于使用获取的诊断测试恢复外壳的一个示例性流程图。
[0008]图5是用于恢复外壳(包括存储恢复结果)的一个示例性流程图。
[0009]图6是用于恢复外壳(包括获取诊断结果和存储恢复结构)的一个示例性流程图。
【具体实施方式】
[0010]随着计算系统变得越来越复杂,对于额外组件以及这些组件之间的互连,不合适配置或不兼容的软件/固件版本所引入错误的机会增加。例如,外壳内的每个组件(例如,电源、风扇、互连结构、到外部系统的接口等)可以使用固件(其以软件形式)能够实现组件的功能。除了组件本身的固件的错误问题之外,固件的非兼容性可也能引入额外错误。例如,需要彼此通信的两个组件,如果它们具有不兼容的固件版本,它们可能不能进行通信。随着组件数量增加,固件的非兼容性的可能也增加。
[0011]此外,可能存在会引起错误的配置问题。例如,尽管仅单个电源物理存在,外壳也可能被配置为利用冗余电源操作。这种不合适的配置可能阻止外壳正确上电。类似地,每个刀片可能被配置有互联网协议(IP)地址以在外壳内部IP网络上通信。如果IP地址被错误配置,刀片可能不能彼此通信。可能存在其他类型的配置问题,它们可能在外壳内引起操作问题。
[0012]为了帮助诊断一些不正确的配置问题,组件供应商常常提供诊断程序以确保组件被正确配置。例如,外壳内部IP网络的诊断程序可尝试使用期望IP地址Ping每个刀片。如果从具体刀片接收不到响应,这可以被记录为失败结果以用于这个刀片的诊断。诊断通常被设计为详细测试单个组件或组件的小子集。每个诊断的结果通常被存储并可以被获取用于分析。
[0013]许多问题源自使用诊断测试的结果。如上文提到的,诊断测试通常详细地测试小量的组件。因为诊断测试是细化的,因此可能难于确保运行最新版本的诊断测试。此外,诊断测试可能不善于识别诊断测试范围之外的问题。例如,外壳可能被配置为利用冗余电源操作,并且如果非冗余电源被物理安装,将不允许刀片上电。电源诊断测试可以识别这种状况。外壳内部网络诊断可以Ping每个刀片以确定是否接收到响应,从而保证刀片上的IP地址的正确配置。然而,如果刀片由于电源问题没有被上电,内部网络诊断将失败,这是因为没有电力的刀片不能响应ping。
[0014]诊断测试结果的正确分析可以包括查看各个测试的所有结果以确定该问题。例如,为了解决刀片不能响应Ping的问题,首先可能需要检查电源配置的结果以确保刀片正在接收电力,接着移动到可能不正确的刀片IP地址配置问题。如果组件之间进行高级交互,有经验的人类工程师可能需要分析诊断结果,并且通过知识和经验,确定错误的最可能原因。使用人类工程师可能大幅增加维护成本,因为有经验的工程师常常很难聘请。
[0015]尝试自动化该过程还面临大量障碍。尽管恢复程序可以被开发为自动化恢复外壳的过程,但是这种恢复程序仍然具有缺点。首选,恢复程序可能是静态的,使得新发现的错误状况不能由该恢复程序处理。此外,如上文提到的,诊断程序时常被修改,并且新的诊断程序可能被加入。静态恢复程序将不能考虑新的诊断方法或当前存在的诊断方法的版本。此外,恢复工作的结果不能被传递回到恢复程序开发者。
[0016]本文描述的技术克服了这些问题。一种恢复设备(如,膝上型计算机或台式计算机)可以被连接到外壳。恢复设备上的小程序可以与恢复程序储存库通信以获取恢复程序。恢复程序储存库可以存储最新版本的恢复程序。最新版本的恢复程序意味着最近可用的恢复程序。因为恢复程序被获取,不存在可能使用旧的恢复程序的问题。而且,最新版本的恢复程序可以包含用于恢复外壳的最新方法。
[0017]例如,恢复程序可以知道需要哪些诊断测试以及那些诊断测试的每个的最新版本。当从外壳获取诊断结果时,能够比较结果以确定是否所有需要的结果都可用以及最新版本的诊断测试是否已经运行。如果结果不可用或者最近版本的诊断测试没有运行,则恢复程序可以从诊断测试储存库获取最新版本的诊断测试并在外壳上运行该测试。因此,能够保证所有需要的测试结果可用并且结果来自最近版本。
[0018]恢复程序接着可以巩固所有诊断测试的结果以确定最合适的恢复类型。例如,恢复能够包括改变配置,重新启动外壳等。在完成恢复动作之后,恢复程序可以再次测试外壳以确定正确的操作。如果恢复动作没有成功,则恢复程序可以再次运行以确定是否应当运行新的类型的恢复动作。如果恢复程序确定恢复不可能,则恢复尝试的结果可以存储在恢复失败储存库中。该结果可以包括诊断测试结果。根据该信息,恢复程序的开发者能够识别不能被恢复程序恢复的新发现的错误状况。开发者接着可以修改恢复程序并将新的版本设置在恢复程序储存库中。当新的错误状况被识别到,恢复程序被修改以处理这些新的错误状况。因为恢复程序从恢复程序储存库中获取,因此能够保证使用最新版本的恢复程序。
[0019]图1是使用本文描述的恢复技术的一种不例性系统。系统100可以包括外壳110、恢复设备130、恢复程序储存库140、诊断测试储存库150、恢复失败储存库160和网络170-a、170-b。外壳可以是计算系统,如刀片外壳。包括在外壳中的可以是一个或多个可诊断组件 112-1........112-n。
[0020]出于本描述的目的,可诊断组件可以是对其诊断测试可用的元件或元件的集合。诊断测试通常将测试外壳中元件的集合的功能。例如,可诊断组件可以是电源和电源的配置。电源组件的诊断测试可以被限制到验证电源的配置匹配实际安装在外壳中的电源。外壳提供的其他功能不由电源诊断测试测试。其他可诊断组件可以包括多个元件。将针对图2进一步描述可诊断组件。
[0021]该系统还可以包括恢复设备130。恢复设备可以是能够连接到外壳的任意类型的设备。例如,恢复设备可以是膝上型计算机。恢复设备还可以是台式计算机、平板型电脑、智能电话或能够连接到外壳的任意其他类型的计算设备。恢复设备的具体形式不重要,只要下