使用诊断结果的恢复程序的制作方法_3

文档序号:9308566阅读:来源:国知局
程序接着可以查询外壳,以获取匹配恢复程序所规定的那些结果的诊断测试结果。通过获取当前存在的诊断测试结果,恢复程序能够避免重复执行其结果已经可用的测试。
[0040]在一些情形下,结果可能不可用。例如,规定的诊断可能当前不存在于恢复设备或外壳上,或者可能存在,但还没有被运行,或者可能存在不正确的版本。恢复设备可以与诊断测试储存库250通信以获取诊断测试的正确版本。这些没有结果或者它们的结果来自不正确版本的诊断测试的测试可以被重新运行。
[0041]出于本描述的目的,将描述若干示例性诊断测试。然而,该列表并不旨在是穷尽性的或反映任何实际诊断测试。为了进一步理解本文描述的解释而提供这些实例。一个实例可以是网络诊断。这种诊断可以尝试Ping连接到网络220的外壳内的所有元件。如果所有组件都没有响应,可以认为诊断失败,并且这种失败可以在结果中反映出来。诊断测试的另一个实例可以是电源的测试,其验证所安装的电源是否如配置的那样。如果不是,电源可能无法变得有效和提供电力到刀片。诊断测试的又一个实例是检查外壳中的每个元件上安装的固件版本。固件通常作为封装件被提供,其包括外壳内的每个元件的可兼容固件版本。如果各种元件的版本失配,这可以被认为诊断失败。
[0042]—旦恢复程序需要的所有诊断具有可用结果,该结果可以被恢复程序聚集。恢复程序接着可以基于失败的诊断确定合适的恢复类型。恢复程序可以利用所有诊断结果确定合适的恢复类型。例如,刀片可能不响应ping请求,如反映在网络诊断中一样。然而,如果电源诊断确定电源没有被正确配置,这可能阻止刀片上电。这样,它们将不响应Ping请求。因此,一个诊断中的失败可以指示该解决可以来自不同诊断结果需要的纠正动作。
[0043]恢复程序可以包含诊断失败的长列表并且针对每个采取的恢复动作。例如,恢复程序可以指示电源诊断和网络诊断两者的失败应当通过正确配置电源以匹配物理存在的电源来恢复。刀片的网络诊断的失败(没有对应的电源诊断失败)可能需要通过重新启动故障刀片来恢复。应当清楚,所采取的恢复动作取决于所有失败诊断测试的组合。恢复程序被编码,以便针对所有已知错误的组合,采取通常能够成功恢复外壳的恢复动作。
[0044]在一些情况下,恢复程序可以尝试以尽可能破坏性最小的方式或修复最大数量的诊断测试结果错误的方式进行恢复。例如,固件诊断可以比较安装在外壳的每个元件上的固件版本以验证这些版本全部兼容。如果不兼容,在其他诊断测试中可能存在许多失败。恢复动作首先可以尝试通过重新启动外壳和其中的所有组件进行恢复。这是固件恢复的最不具有攻击性的方法,因为它不涉及固件的改变。如果这种恢复没有成功,恢复程序接下来可以尝试重新安装当前版本的固件的原始副本。恢复程序可以从固件储存库280获取原始副本。尽管这种恢复稍微具有更多的攻击性,因为对固件进行了改变,但是比下一个步骤具有较小的攻击性。接下来的恢复可以是安装最新版本的固件。再次,最新版本可以从固件储存库中获取。
[0045]如上文提到的,恢复程序收集诊断结果并分析失败的那些诊断,以确定合适的恢复类型。然而,可能的是,恢复程序会碰到针对其没有定义恢复动作的诊断结果集合。换句话说,失败结果的具体组合在之前没有被发现,因此恢复动作还未知。在恢复程序规定恢复动作类型时能够发生类似情形,但是那个动作不能导致正确恢复外壳。
[0046]在这些情况下,恢复程序可以将失败的恢复报告给恢复失败储存库。包括在报告中的可以是诊断测试的结果。恢复程序开发者接着可以人工分析诊断失败结果,以确定正确的恢复应当是什么。在保证所确定的恢复类型成功之后,恢复程序开发者可以开发新版本的恢复程序到恢复程序储存库。因此,下次发现诊断失败结果的具体组合时,已知正确的恢复。因此,恢复程序开发者能够接收关于恢复程序的结果的真实世界的反馈,并能够进一步精确恢复程序以考虑真实世界错误。
[0047]此外,在一些实施方式中,恢复程序还可以将成功的恢复报告给储存库。可以分析这些结果以确定需要被恢复的最常用类型的错误。根据该分析,可以开发进一步改进的、运行在外壳中的软件。例如,如果网络配置诊断通常失败,并且恢复动作是将元件的IP地址重置到默认地址,这可以指示存在问题:网络IP地址冲突或用户改变IP地址。接着可以进一步调查这些类型的问题,以确定软件中是否存在错误或者错误是否由维护人员进行的错误配置导致的。如果是前者,能够找到和修复软件缺陷。如果是后者,则可以向维护人员提供附加训练。在一些情况下,维护人员配置某些参数的能力可以完全无效。
[0048]图3是用于恢复外壳的一个示例性流程图。在方框310,可以从储存库获取恢复程序。如上文解释的,储存库可以存储最新版本的恢复程序以保证最近的恢复动作和诊断可用。在方框320,可以从外壳获取多个诊断测试的结果。在一些情况下,一些需要的诊断结果可能不可用。这种情形将在下文进一步详细描述。
[0049]在方框330,可以利用恢复程序分析结果以确定恢复类型。这种恢复可以包括,例如,重新启动外壳、重新启动外壳中的各个组件、重置配置参数或任意其他类型的恢复动作。可以由恢复程序确定恢复的具体形式。在方框340,可以基于所确定的恢复类型恢复外壳。换句话说,使用通过多个诊断结果的分析所确定的恢复类型恢复外壳。
[0050]图4是用于使用获取的诊断测试恢复外壳的一个示例性流程图。在方框405,可以从储存库获取恢复程序。在方框410,基于恢复程序,可以确定期望的诊断测试的集合。换句话说,恢复程序用于确定需要哪些诊断测试结果。在方框415,确定诊断测试的集合中未被安装的子集。如上文解释的,可以创建新的诊断测试或现存诊断测试的新版本可以可用。方框415确定其当前版本不可用的诊断。
[0051]在方框420,可以从储存库获取诊断测试的该子集。储存库可以存储最近版本的所有可用诊断测试。因此,在方框420之后,恢复程序需要的所有诊断测试先前已经被安装或者从储存库被获取。在方框425,可以确定没有结果的诊断测试的集合。如上文解释的,在一些情形下,安装的诊断测试可能已经运行,并且那些测试的结果可用。在这些情形下,可能没有必要重新运行诊断测试,因为可以使用现存结果。在方框430,可以执行所确定的诊断测试的集合。换句话说,运行其结果当前不可用的测试。
[0052]在方框435,从外壳获取多个诊断测试的结果。这些结果可以是先前存在的或者在方框430中创建的。然而,在方框435之后,获取恢复程序需要的所有诊断测试的结果。在方框440,分析这些结果,以确定多个诊断测试的哪些具有失败结果。如上文解释的,诊断测试本身的失败不能确定恢复动作,而是所有失败整体的分析确定恢复动作。
[0053]在方框445,选择将解决最大数量的诊断测试失败的恢复类型。换句话说,恢复程序分析诊断测试结果,以确定哪种类型的恢复最可能解决外壳故障的原因。在方框450,可以显示所确定的外壳恢复类型。在方框455,可以接收授权,以开始所确定类型的恢复。以这种方式,可以允许对外壳执行恢复的操作者确认恢复应当进行。
[0054]在方框460,可以基于所确定的恢复类型,恢复外壳。这可以包括重新启动外壳、重新启动各个组件、改变配置参数或者恢复程序确定的任意其他类型的恢复动作。在方框465,可以重新运行多个诊断测试。在一些实施方式中,仅重新运行那些具有失败结果的诊断测试,而在另一些实施方式中,重新运行
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1