首页> 中国专利> 用于在存储区域网络中处置事件的方法和系统

用于在存储区域网络中处置事件的方法和系统

摘要

存储区域网络(SAN)组件包含处理器,该处理器被配置为提供第一事件处置模块,该第一事件处置模块能够在该存储区域网络的第一硬件组件处接收错误事件。包含错误事件数据与错误的潜在来源之间的关联的数据库被访问。使用该数据库和错误事件数据来识别多个硬件组件。这些硬件组件被排名并且基于该排名来选择一个硬件组件。错误通知被发送给该硬件组件的第二事件处置模块。基于该第二事件处置模块的响应,来执行错误处置过程。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-11-24

    授权

    授权

  • 2015-07-01

    实质审查的生效 IPC(主分类):G06F11/07 申请日:20141113

    实质审查的生效

  • 2015-06-03

    公开

    公开

说明书

技术领域

本公开内容涉及事件处置。特别地,其涉及存储区域网络环境内 的智能事件处置。

背景技术

存储区域网络(SAN)能够包括连接到主机系统和存储设备的高 速光纤通道网络。在SAN中,主机系统能够跨越网络而连接到存储 设备。这些连接能够通过诸如路由器和交换机的单元来实现并且能够 由一个或多个存储控制器来控制。包含这些路由器和交换机的该网络 的区域能够是该网络的结构的一部分。

发明内容

在本公开内容的某些实施例中,一种存储区域网络(SAN)被配 置为通过对遍及该SAN的不同组件而分布的模块的使用来提供事件 处置。

各种实施例针对一种用于处置与存储区域网络有关的错误事件 的计算机实施的方法。该方法包括:在该存储区域网络的第一硬件组 件处接收错误事件。响应于该错误事件,在该第一硬件组件上操作的 第一事件处置模块被用来:访问包含错误事件数据与错误的潜在来源 之间的关联的数据库;基于该数据库中的这些关联与该错误事件中所 包含的错误事件数据之间的相似性,来识别多个硬件组件;生成针对 该多个硬件组件的排名;基于该排名,从该多个硬件组件中选择特定 的硬件组件;将错误通知传输给该多个硬件组件中的该特定硬件组件 的第二事件处置模块;监测该第二事件处置模块对该错误通知的响 应;以及基于该响应来执行错误处置过程。

各种实施例针对一种具有至少一个存储区域网络(SAN)组件的 系统,该至少一个存储区域网络组件具有被配置为提供第一事件处置 模块的处理器,该第一事件处置模块被配置为:在该存储区域网络的 第一硬件组件处接收错误事件;访问包含错误事件数据与错误的潜在 来源之间的关联的数据库;基于该数据库中的这些关联与该错误事件 中所包含的错误事件数据之间的相似性,来识别多个硬件组件;生成 针对该多个硬件组件的排名;基于该排名,从该多个硬件组件中选择 特定的硬件组件;将错误通知传输给该多个硬件组件中的该特定硬件 组件的第二事件处置模块;监测该第二事件处置模块对该错误通知的 响应;以及基于该响应来执行错误处置过程。

各实施例针对一种用于处置与存储区域网络有关的错误事件的 计算机程序产品,该计算机程序产品包括计算机可读存储介质,该计 算机可读存储介质具有利用其而被具体化的程序代码,该程序代码由 计算机可读取/可执行为:在该存储区域网络的第一硬件组件处接收错 误事件;响应于该错误事件,使用在该第一硬件组件上操作的第一事 件处置模块来:访问包含错误事件数据与错误的潜在来源之间的关联 的数据库;基于该数据库中的这些关联与该错误事件中所包含的错误 事件数据之间的相似性,来识别多个硬件组件;生成针对该多个硬件 组件的排名;基于该排名,从该多个硬件组件中选择特定的硬件组件; 将错误通知传输给该多个硬件组件中的该特定硬件组件的第二事件 处置模块;监测该第二事件处置模块对该错误通知的响应;以及基于 该响应来执行错误处置过程。

上面的概述不意图为描述本公开内容的每个举例说明的实施例 或者每种实施方式。

附图说明

包括在本申请中的附图被并入本说明书中并且形成本说明书的 一部分。它们图示了本公开内容的实施例,并且与本描述一起,用来 解释本公开内容的原理。这些附图仅图示了本发明的某些实施例并且 不限制本公开内容。

图1描绘了符合于本公开内容的实施例的用于在SAN环境内提 供事件处置的系统的框图;

图2描绘了符合于本公开内容的实施例的用于SAN组件的层级 布置的框图;

图3描绘了符合于本公开内容的实施例的用于处置SAN事件和 错误的流程图;

图4示出了符合于本公开内容的实施例的用于提供模块的同步和 更新的特定错误事件处置解决方案的部分流程图;

图5示出了符合于本公开内容的实施例的用于选择附加的SAN 组件和目标事件处置模块的流程图;

图6描绘了符合于本公开内容的实施例的用于使用一个或多个配 置具有事件处置数据库模块的计算机处理器的流程图,该事件处置数 据库模块能够生成并且维持错误代码与SAN组件之间的关联的数据 库;以及

图7描绘了用于实施各种实施例的计算机系统的高层级框图。

尽管本发明可修正为各种修改和替换形式,但是它的细节已经通 过示例的方式在附图中示出并且将被详细描述。然而,应该理解,意 图是不将本发明限制于所描述的特定实施例。相反地,意图是覆盖落 入本发明的精神和范围之内的所有修改、等价物和替换物。

具体实施方式

本公开内容的各方面涉及存储区域网络中的事件处置,更特别的 方面涉及自动识别存储区域网络内的问题的来源。尽管本发明不必然 限制于这样的应用,但是可以通过讨论使用这种上下文的各种示例来 理解本发明的各种方面。

本公开内容的各实施例针对一种系统,该系统被配置为在存储区 域网络(SAN)环境中执行智能问题分析和问题处置。当系统组件检 测到事件或问题时,它能够请求来自事件处置模块(分析性问题确定 (APD)模块)的动作,该事件处置模块能够被配置为:识别该问题 的潜在来源并且执行对这些潜在来源中的一个或多个潜在来源的分 析。对于SAN环境内的自动问题分析和问题来源检测,这能够是有 用的。

本公开内容的某些方面针对一种对问题分析和事件处置的分布 式解决方案。例如,APD模块能够在该SAN环境的不同物理/硬件组 件内被调用。以这种方式,能够基于该特定问题来选择APD模块。 这能够包括:例如,选择与该SAN的表现出该问题的特定部分相关 联的硬件上运行的APD模块。

各种实施例针对一种APD模块选择算法,该APD模块选择算法 基于APD模块的关联SAN硬件组件来对不同的APD模块确定优先 级并且排名。能够以在不同类型的组件之间所建立的层级结构的形式 来实施这种排名。该层级结构能够被设计而使得具有良好特征的SAN 硬件组件能够在其他SAN硬件组件之前被选择。例如,被设计为控 制、监测和/或配置其他SAN硬件组件的SAN硬件组件(诸如,存储 控制器)可以更容易地能够实施对这样的硬件组件的分析。某些硬件 组件还可以具有更多可用的处理资源、存储器资源和/或存储资源,这 对于执行APD模块能够是有用的。因此,能够给予这样的硬件组件 相对高的优先级。能够给予其他硬件组件,诸如网络结构交换机,更 低的优先级。

本公开内容的各实施例考虑到了对错误解决方案数据库的使用, 错误解决方案数据库将问题或错误与不同的硬件组件或问题的其他 潜在来源相关联。该数据库还能够存储关于该SAN的有关信息,包 括但不必然限于:不同SAN组件的配置、硬件制造商和版本标识、 SAN组件(硬件或软件)和固件/软件版本的变化历史。这个数据库 能够由源APD(例如,由APD模块选择算法所选择的APD)用来将 一个或多个目标APD识别为对于确认该问题的潜在来源是有用的。

在某些实施例中,该错误解决方案数据库的版本能够被存储在具 有关联的APD的每个SAN组件处。以这种方式,每个APD都能够 使用本地数据库,当对其他SAN组件(或者对外部设备)的访问被 折衷掉时,本地数据库能够是有用的。错误解决方案数据库的版本还 能够远程地被存储。例如,多个SAN可访问的集中式错误解决方案 数据库能够被维持。该集中式数据库能够包含从跨越许多不同的SAN 和它们各自的配置和组件而收集的错误解决方案信息。然后能够利用 来自该集中式数据库的信息来定期地更新特定的本地数据库,或者该 APD能够针对特定的错误或事件而从该集中式数据库请求信息。

根据一些实施例,基于SAN的存储能够由控制器硬件节点的一 个或多个“对”(被称为群集系统或系统)中的SAN存储控制器来 管理。这些节点能够连同RAID控制器和主系统一起而附接至SAN 结构。SAN结构的几个示例能够包括:光纤通道(FC)、以太网上 的互联网小型计算机系统接口(iSCSI)、或者以太网上的FC。

符合于各实施例,一个或多个SAN存储控制器能够将软件和硬 件组合到如下的模块化器具中,该模块化器具为该存储系统中的多个 被管理的磁盘提供功能。例如,SAN存储控制器能够提供对称虚拟化, 对称虚拟化包括:来自所附存储系统的被管理磁盘的池的创建。然后 这些存储系统能够被映射至用于由所附主系统使用的一组卷 (volume)。该系统能够被配置为允许访问该SAN上的公共存储池。 这个功能能够由APD用来提供公共基础,能够根据该公共基础来诊 断和处置错误事件。

现在转向附图,图1描绘了符合于本公开内容的实施例的用于在 SAN环境内提供事件处置的系统的框图。该系统能够包括多个主机 102、104、106和108。这些主机能够使用SAN结构120来访问存储 在该SAN上的数据。一个或多个主机102还能够通过网络118来访 问该SAN,网络118在一些实例中可以是局域网(局域网)。SAN 结构120能够包括一个或多个交换机122和124,它们能够是用于对 适当位置的数据访问的经配置的路由请求。在某些实例中,这些交换 机能够是光纤通道(FC)交换机。在其他实例中,这些交换机能够被 配置为使用其他的通信解决方案,诸如以太网上的iSCSI或者以太网 上的FC。一个或多个SAN存储控制器130能够控制对存储设备138 和140的访问并且提供附加的功能,诸如用于存储解决方案的虚拟化、 负载平衡和组件故障恢复。

存储设备138和140能够包括一个或多个物理盘146和148,一 个或多个物理盘146和148能够存储用于由主机使用的数据。这些存 储设备能够包括盘控制器,这些盘控制器提供附加的功能,诸如数据 镜像和独立盘的冗余阵列(RAID)功能。

各实施例针对一个或多个APD模块126、128、134、142和144, 它们能够响应于各种SAN相关事件而被调用。例如,一个设备(诸 如主机中的一个主机)可以检测事件的发生。作为响应,该设备能够 向各SAN组件中的一个SAN组件发送请求,该SAN组件促使(源) APD模块作用于该请求。能够由APD接口模块110、112、114或116 来执行该请求的发送,APD接口模块110、112、114或116能够选择 适当的源APD模块并且相应地制定该请求。该事件能够代表多个问 题或事情,包括但不必然限于:SAN组件的故障、数据访问的间歇性 问题、来自各种来源的错误代码、以及操作者发起的对于分析问题的 请求。源APD模块然后能够执行各种动作来响应特定的请求。

符合于某些实施例,能够使用已有的诊断命令(诸如z/OS注意 中断/消息机制、z/OS状态改变中断机制、或者SCSI发送诊断命令) 在SAN组件之间传输该数据。

在某些实施例中,源APD模块能够监测与触发了该请求的事件 相关联的事件。例如,如果该事件涉及访问存储设备的定期性带宽或 时延问题,则源APD可以监测可能与带宽或时延相关联的重传请求 或其他事件。各种实施例允许源APD模块取回和分析来自该请求的 数据,以便确定应当监测什么方面。例如,该请求能够包括一个或多 个错误代码。源APD模块能够从这些错误代码中提取信息并且使用 这个信息来查明如何处置该请求。

符合于各种实施例,这些APD模块能够访问数据库136,数据库 136能够包含将各种事件(例如,错误代码)与这些错误代码的潜在 来源和/或与潜在解决方案相关联的信息。虽然没有明确地示出,但是 某些实施例考虑到了每个都包含这样的数据库的APD模块。各实施 例也允许集中式数据库。各种实施例还能够具有与一个或多个数据库 一起使用的集中式数据库的不同组合,该一个或多个数据库与SAN 组件和对应的APD模块共址。

作为事件的示例,主机可能具有与存储控制器的间歇性连接问 题。该问题可能源自主机自己的适配器、光纤通道交换机、该存储控 制器、或者其间的基础设施组件(诸如光纤通道电缆的问题)之内。 主机能够使用APD接口来向与该问题被看到的地方相对应的存储控 制器发送通知。该通知能够包括错误代码,该错误代码识别该问题以 及其他有关信息,诸如错误的时间,同时发生的错误、以及由主机所 执行的导致该错误代码的动作。该存储控制器的APD(“源APD”) 能够使用所接收的信息在数据库内搜索以找到作为该问题的可能来 源的SAN组件。该存储控制器的APD然后能够与SAN组件的APD (“目标APD”)通信,以便获得附加信息和/或采取纠正动作。例 如,目标APD(其可以运行在光纤通道交换机或其他组件上)能够发 起自诊断来评估该SAN中的组件之间(例如,该存储控制器与该主 机之间)的连接性。目标APD能够发送该测试的结果作为去往源APD 的确认通知的一部分。源APD然后能够使用事件通知来提供有关信 息(例如,该问题的潜在来源的标识)。这个事件通知能够由存储管 理员看到,该存储管理员然后能够采取适当的动作(例如,更换坏的 电缆)。在某些实例中,该存储控制器的APD还能够直接发起纠正 动作,诸如请求SAN组件的复位或重新配置。

各实施例针对一个或多个同步模块132的使用。同步模块132能 够被配置为维持和更新各种APD模块的数据库。例如,该系统能够 被配置使得,当与错误代码和这些错误代码的来源有关的更多信息被 聚集时,该数据库能够被更新。以这种方式,该系统能够适配于新的 问题以及增加用于已有问题的知识基础。此外,同步模块132能够提 供或管理用于不同APD模块的软件更新。

本公开内容的各方面针对用于选择向其发送请求的特定SAN组 件(以及相关联的源APD模块)的不同机制。特定的实施例使用SAN 组件的层级结构作为选择过程的一部分。

图2描绘了符合于本公开内容的实施例的用于SAN组件的层级 布置的框图。当在该SAN环境内检测到错误或其他事件时,SAN组 件选择过程202能够被发起。能够通过遍历该SAN环境内的可用SAN 组件的层级结构来执行这个过程。例如,一个或多个SAN存储控制 器204能够被定位为最高的/优选的SAN组件。在某些实施例中,SAN 存储控制器能够被选择,除非它当前不是可用的或者可访问的。当经 历问题或停机时,当通向该SAN存储控制器的通信路径不起作用时, 当该SAN存储控制器或它的APD模块繁忙或者因为各种其他原因 时,该SAN存储控制器可能不可访问。该SAN组件选择过程然后能 够遍历该层级结构来选择其他的SAN组件,诸如结构交换机206、主 机208和盘控制器210。能够根据系统参数和配置来修改图2中所示 出的该特定层级结构。

例如,主机可能具有通过问题路径与存储控制器通信的困难。该 主机能够被配置为选择另一个良好的路径来将该信息发送到该存储 控制器那边,并且该信息还能够识别通向该存储控制器的APD模块 的问题路径。在另一个例子中,如果该主机完全不能与该存储控制器 通信但是能够与该交换机通信,则该主机能够将它正看到的错误的细 节直接发送给该交换机,允许该交换机发起源APD模块。在某些实 施例中,如果该主机不能与任何外部实体通信,则它能够被配置为发 起本地的APD模块。在主机集群环境的情况中,如果该集群中的一 个节点不能与光纤通道交换机通信,并且进行了向该集群中的另一个 节点的资源故障切换,则该活动节点然后能够发起分析问题确定模块 调用来定位对于该失效节点的问题。

在某些实施例中,该SAN部件选择过程能够尝试使用替换的数 据路径来联系SAN组件。例如,如果SAN组件无响应,则它可以指 示中间节点没有恰当地运转。因此,该SAN组件可以通过不同的数 据路径而可访问。在一个示例中,盘控制器可以由多于一个SAN控 制器可访问。该SAN组件选择过程能够访问SAN配置信息来识别这 样的替换路径,并且尝试通过该替换路径来联系该SAN组件。

如果所联系的SAN组件不表现为该问题的来源或者能够识别另 一个来源(例如,连接电缆),则该组件能够通知该存储控制器的 APD:它不表现为该问题的来源。该存储控制器的APD然后能够再 次搜索该内部数据库来找到该错误事件的另一个可能来源,并且该过 程将如先前所描述的而继续。该迭代过程能够继续直到没有更多的 SAN组件(充分地)可能是该问题的来源。例如,能够针对每个SAN 来确定各种SAN组件是问题的来源的可能性或概率。这些SAN组件 能够根据该概率而被排名并且根据该排名而被选择。该过程能够继续 直到没有SAN组件具有高于阈值水平的概率。该存储控制器的APD 然后能够生成通知,该通知描述该问题并且指示该SAN中的元件已 经不能定位该错误事件的来源。还能够提供附加信息来辅助系统操作 员。例如,该通知能够识别哪些SAN组件被联系以及什么测试被每 个组件执行。还可以提供测试结果。

某些实施例允许与特定事件有关的附加信息,该特定事件将与层 级结构一起被使用或者取代该层级结构。例如,某个错误代码可以使 用在该层级结构中较低的组件上运行的APD,来指示该问题的可能来 源被容易地测试。该系统能够被配置为允许对这样组件的选择而不管 它的相对优先级,并且由此允许通过直接联系能够直接确认该问题的 可能来源的APD来实现潜在的效率。

图3描绘了符合于本公开内容的实施例的用于处置SAN事件和 错误的流程图。当事件或错误发生时,该系统能够确定源APD开始 如由框304所示出的找到与该事件或错误的来源有关的信息的过程。 这个确定能够源自各种不同的来源,包括但不限于:具有对该SAN 的访问的主机设备。能够基于诸如错误代码和关联信息302以及层级 结构信息或数据306的信息来做出该确定,层级结构信息或数据306 能够指示在确定/选择源APD中所使用的优先级。请求然后能够被生 成并且发送给所确定的源APD。

如308中所示出的,源APD能够接收该请求并且执行对该请求 中的数据和错误来源数据库310中的数据的分析。该分析的结果能够 被用于,通过识别作为该事件或问题的可能来源的SAN组件或者能 够测试该事件或问题的特定来源的SAN组件,来识别目标APD。例 如,问题的可能来源可能是不具有APD模块SAN组件;然而,另一 个SAN组件的APD模块可以能够容易地测试该问题SAN组件。这 个APD模块然后能够被识别为目标APD模块,并且消息能够被发送 给该目标APD模块。

如框314中所描绘的,响应于接收到该消息,该APD模块能够 模拟它对应的SAN组件的自分析或测试。各实施例还考虑到了可访 问该SAN组件的其他组件的测试。在某些实施例中,能够针对可能 原因312来定制该测试,可能原因312如能够从源APD提供。例如, 如果源APD确定可能的原因是特定设备驱动器的不适当版本,则目 标APD能够向该驱动器查询它的版本信息。目标APD还能够按要求 执行其他测试。

目标APD测试/分析的结果316然后能够被提供给源APD。如框 318中所示出的,源APD能够接收并且分析这些结果。如果没有找到 来源或解决方案,则如由框308所示出的,源APD能够继续搜索该 问题的另外可能来源。

如果找到了该事件或错误的来源,或者没有找到该问题的另外可 能来源,则如由框320所示出的,源APD能够处置该错误或事件。 这能够包括:例如,识别该问题的来源的通知、该问题的来源没有找 到的通知、和/或纠正动作,诸如该问题的来源的重新配置。

图4示出了符合于本公开内容的实施例的用于提供模块的同步和 更新的特定错误事件处置解决方案的部分流程图。当SAN事件(例 如,以及错误事件)被接收时,按照框402,该接收设备(例如,主 机)能够调用或者发起源APD。当调用源APD时,还能够咨询同步 模块。在框404处,该同步模块能够检查该源APD是否具有当前的 数据库信息。在某些实施例中,这个检查能够(单独地或者除了数据 库检查之外地)检查APD模块代码是否与代码的最新版本相一致。 例如,为了与新SAN组件和系统的兼容性并且为了其他原因,APD 模块软件能够偶而被更新和改变,以提供附加的功能、修正错误。能 够使得与这些更新有关的信息由该同步模块可访问,该同步模块然后 能够将源APD模块的(多个)版本标识符与能够识别经更新的版本 的(多个)APD版本标识符相比较。如果该比较指示了不匹配,则能 够利用更新的版本来更新该APD模块。

如果源APD模块是当前的版本,则该同步模块能够发起更新过 程406来提供最新版本。如果源APD模块是最新的,则按照框408, 同步模块能够检查该SAN内的其他APD模块中的一个或多个APD 模块与经更新的源APD模块的一致性。如果其他APD模块的版本不 一致,则针对每个这样的APD模块能够发起更新过程410。

按照框412,源APD模块然后能够访问错误/事件代码与作为这 些代码的可能原因的SAN组件之间的关联的数据库。这个信息能够 用于识别目标APD模块。如框414中所示出的,源APD模块然后能 够向该目标APD模块发送通信。这个通信能够包括:与该错误代码 有关的信息、对于实施什么测试的指令、以及其他信息。按照框416, 目标APD模块能够通过执行如下的行动来响应,这些行动被设计为 找到或确认特定的SAN组件是否为该错误代码的原因。按照框418, 如果目标APD模块没有确认或找到针对该错误代码的原因,则它能 够向源APD模块通知这个信息。源APD模块然后能够前进至结转到 图5的节点“A”。

按照框420,如果目标APD模块找到该问题的来源,则它能够向 源APD模块通知这个信息。如框422中所示出的,源APD模块然后 能够相应地处置该问题。

图5示出了符合于本公开内容的实施例的用于选择附加的SAN 组件和目标APD模块的流程图。按照决定框502,当目标APD模块 没有确认或识别该错误代码的原因时,源APD模块能够确定是否存 在作为该错误代码的很可能的或者可能的来源的附加SAN组件(以 及相关联的潜在目标APD模块)。按照框504,如果没有更多的SAN 组件要检查,则源APD模块能够发送该问题的来源没有找到的通知。

按照框506,如果附加的SAN组件存在,则源APD模块还能够 检查阈值条件是否已经被满足。在某些实施例中,这个阈值条件能够 限制选择新SAN组件和目标APD模块的迭代数量。在各种实施例中, 该阈值条件能够是特定的SAN组件是该错误代码的原因的可能性。 例如,源APD模块能够确定某些SAN组件是错误代码的原因的可能 性。该阈值可以确保该系统不花费时间和资源检查低于某一可能性 (例如,10%)的SAN组件。各实施例允许多个阈值水平(每个用 于不同的因素)组合地被使用。在各种实施例中,能够根据参数(诸 如该错误代码的严重性)来调整该阈值水平。对于限制处理、存储器 和通信带宽对特定错误或事件成比例的使用,这能够是特别有用的。 按照框608,如果该阈值没有被满足,则源APD模块能够识别目标 APD,并且继续到节点B,节点B于图4在框414处继续。

图6描绘了符合于本公开内容的实施例的用于使用一个或多个配 置具有APD数据库模块的计算机处理器的流程图,该APD数据库模 块能够生成并且维持错误代码与SAN组件之间的关联的数据库。该 流程图开始于:在框602处,数据库(DB)被初始化。如本文所讨 论的,该数据库能够是一个或多个集中式数据库、用于每个APD模 块的个别数据库、以及它们的组合。按照框604,该过程能够通过从 该SAN环境中的SAN组件列表中选择第一SAN组件而前进。在某 些实施例中,该列表能够由系统操作员来提供和/或通过轮询/搜索设 备来生成。

按照框606,针对所选择的SAN组件的第一错误/事件代码然后 能够被选择。在各种实施例中,每个SAN组件能够具有可能的错误 代码的列表,该列表能够由该SAN组件生成或者由该SAN组件引起。 在某些实施例中,该系统能够被配置为允许这个列表被手动编辑,并 且由此允许系统操作员基于它们的个人知识和经验来添加错误代码。 该系统还能够被配置为,使用从该SAN系统并且可能从其他类似的 SAN系统收集的数据来自动地生成该错误事件(代码)列表。

按照框608,所选择的错误事件(以及SAN组件)能够被添加至 该数据库。另外,按照框610,该错误事件与该SAN组件之间的已知 关联也能够被存储。例如,对错误事件的统计以及它们的最终解决方 案和原因能够被收集并且用来定义这些联系。作为一个示例,特定的 错误事件可能具有其中第一SAN组件是原因的十个所记录的实例, 以及其他SAN组件是原因的十个所记录的实例。该错误代码与该第 一SAN组件之间的关联由此能够包括如下的指示:该SAN组件有大 约50%的可能是该问题。更复杂的关联也是可能的(例如,考虑存在 多个错误事件的情形、这些SAN组件的配置、和/或什么操作导致了 这些错误事件)。

按照框612,该流程能够通过确定附加错误事件是否具有与所选 择的SAN组件的关联而继续。按照框614,如果存在更多的错误事件, 则下一个错误事件能够被选择,并且该流程能够通过框608而继续。 按照框616,如果没有更多的错误事件,则计算机处理器能够被配置 为确定是否存在附加的SAN组件。按照框618,如果存在附加的SAN 组件,则下一个SAN组件能够被选择。按照框620,如果没有,则该 流程能够结束。

在某些实施例中,该APD数据库模块能够被配置为,响应于进 行中的错误事件记录而动态地更新该数据库。例如,按照框622,当 针对特定的组件检测到新的错误事件时,该组件和错误事件能够被选 择。如由框608所示出的,这些所选择的项目然后能够被添加至该数 据库。

图7描绘了用于实施各种实施例的计算机系统的高层级框图。本 文所公开的各种实施例的机构和装置等同地应用到任何适当的计算 系统。计算机系统700的主要组件包括:一个或多个处理器702、存 储器704、终端接口712、存储接口714、I/O(输入/输出)设备接口 716、以及网络接口718,它们全部都经由存储器总线706、I/O总线 708、总线接口单元709、以及I/O总线接口单元710而直接地或间接 地通信耦合以用于组件间通信。

计算机系统700可以包含一个或多个通用可编程中央处理单元 (CPU)702A和702B,本文一般性地称为处理器702。在各实施例 中,计算机系统700可以包含多个处理器;然而,在某些实施例中, 计算机系统700可以替换地是单个CPU系统。每个处理器702执行 存储在该存储器704中的指令,并且可以包括一个或多个级别的板上 缓存。

在各实施例中,存储器704可以包括:随机访问半导体存储器、 存储设备、和/或用于存储和/或编码数据和程序的存储介质(易失性 的或非易失性的)。在某些实施例中,存储器704表示计算机系统700 的全部虚拟存储器,并且还可以包括耦合到计算机系统700或者经由 网络而连接的其他计算机系统的虚拟存储器。存储器704能够在概念 上视为单个的单一体,但是在其他实施例中,存储器704是更复杂的 布置,诸如缓存和其他存储器设备的层级结构。例如,存储器可以存 在于多级别的缓存中,并且这些缓存可以进一步按功能划分,从而一 个缓存保存指令而另一个缓存保存由该处理器或多个处理器使用的 非指令数据。如在各种所谓的非均匀存储器访问(NUMA)计算机体 系结构中的任何一种中是已知的,存储器可以进一步被分发并且与不 同的CPU或CPU组相关联。

存储器704可以存储各种程序、模块和数据结构中的全部或一部 分,用于处理如本文所讨论的数据传送。例如,存储器704能够存储 APD或模块750和/或APD数据库工具或模块760。符合于某些实施 例,这些工具能够作为一个或多个数据库系统的一部分而被实施。这 些程序和数据结构被图示为包括在计算机系统700中的存储器704 内,然而,在其他实施例中,它们中的一些或者全部可以在不同的计 算机系统上并且可以例如经由网络而远程地被访问。计算机系统700 可以使用虚拟寻址机制,这些虚拟寻址机制允许计算机系统700的程 序表现得就像它们仅具有对大的、单个的存储实体的访问而不是对多 个、较小的存储实体的访问。因此,尽管APD工具750和APD数据 库工具760被图示为包括在存储器704内,但是这些组件不必然全部 完全地同时被包含在相同的存储设备中。进一步地,虽然APD工具 750和APD数据库工具760被图示为是分离的实体,但是在其他实施 例中,它们中的一些、它们中的一些的部分、或者它们中的全部可以 被一起打包(例如,作为相同监视器线程的一部分)。

在各实施例中,APD工具750和APD数据库工具760可以包括: 在处理器702上执行的指令或语句,或者由在处理器720上执行的指 令或语句来解译的指令或语句,以执行本文所描述的功能。在某些实 施例中,能够经由半导体设备、芯片、逻辑门、电路、电路卡、和/ 或代替或者附加于基于处理器的系统的其他物理硬件设备而以硬件 来实施APD工具750和APD数据库工具760。在各实施例中,APD 工具750和APD数据库工具760可以包括除了指令或者语句之外的 数据。

计算机系统700可以包括总线接口单元709来处置处理器702、 存储器704、显示系统724、以及I/O总线接口单元710之间的通信。 I/O总线接口单元710可以与I/O总线708相耦合以用于传送去往和 来自各种I/O单元的数据。I/O总线接口单元710与多个I/O总线单元 712、714、716以及718(它们也称为I/O处理器(IOP)或者I/O适 配器(IOA))通过I/O总线708而通信。显示系统724可以包括: 显示控制器、显示存储器、或者两者。显示控制器可以向显示设备726 提供视频、音频、或者这两种类型的数据。显示存储器可以是用于缓 冲视频数据的专用存储器。显示系统724可以与显示设备726(诸如 独立显示屏幕、计算机监视器、电视、或者平板或手持设备显示器) 相耦合。在一个实施例中,显示设备726可以包括用于渲染音频的一 个或多个扬声器。可替换地,用于渲染音频的一个或多个扬声器可以 与I/O接口单元相耦合。在替换实施例中,由显示系统724提供的功 能中的一个或多个功能可以搭载在还包括处理器702的集成电路上。 另外,由总线接口单元709提供的功能中的一个或多个功能可以搭载 在还包括处理器702的集成电路上。

I/O接口单元支持与各种存贮器和I/O设备的通信。例如,终端 接口单元712支持一个或多个用户I/O设备720的附接,一个或多个 用户I/O设备720可以包括用户输出设备(诸如视频显示设备、扬声 器、和/或电视机)以及用户输入设备(诸如键盘、鼠标、小键盘、触 摸垫、轨迹球、按钮、光笔、或者其他的指示设备)。用户可以使用 用户接口来操控这些用户输入设备,以便向用户I/O设备720和计算 机系统700提供输入数据和命令,并且可以经由这些用户输出设备来 接收输出数据。例如,用户接口可以经由用户I/O设备720而被呈现 (诸如显示在显示设备上),经由扬声器而被播放,或者经由打印机 而被打印。

存储接口714支持一个或多个盘驱动器或者直接访问存储设备 722(它们典型地是旋转磁盘驱动器存储设备,但是它们可以替换地 是其他存储设备,包括被配置为对主机表现为单个大存储设备的盘驱 动器阵列,或者固态驱动器,诸如闪存)的附接。在一些实施例中, 可以经由任何类型的次级存储设备来实施存储设备722。存储器704 的内容,或者它的任何部分,可以存储至存储设备722并且按需要从 存储设备722取回。I/O设备接口716提供通向各种其他I/O设备中 的任何I/O设备或者其他类型的设备(诸如打印机或传真机器)的接 口。网络接口718提供从计算机系统700到其他数字设备和计算机系 统的一个或多个通信路径;这些通信路径可以包括:例如,一个或多 个网络730。

虽然图7中所示出的计算机系统700图示了提供处理器702、存 储器704、总线接口709、显示系统724,以及I/O总线接口单元710 之间的直接通信路径的特定总线结构,但是在可替换的实施例中,计 算机系统700可以包括不同的总线或通信路径,它们可以按照各种形 式中的任何形式来布置,诸如层级结构中的点到点链路、星形或网状 配置、多个分层级总线、平行和冗余路径、或者任何其他适当类型的 配置。此外,尽管I/O总线接口单元710和I/O总线708被示出为单 个相应的单元,但是计算机系统700事实上可以包含多个I/O总线接 口单元710和/或多个I/O总线708。尽管多个I/O接口单元被示出, 它们使I/O总线708从延伸到各种I/O设备的各种通信路径分离,但 是在其他实施例中,这些I/O设备中的一些或所有I/O设备直接连接 至一个或多个系统I/O总线。

在各种实施例中,计算机系统700是多用户大型计算机系统、单 用户系统、或者服务器计算机或类似设备,该服务器计算机或类似设 备具有很少或者不具有直接的用户接口,而是从其他计算机系统(客 户端)接收请求。在其他实施例中,计算机系统700可以实施为台式 计算机、便携式计算机、膝上型计算机或笔记本计算机、平板计算机、 口袋计算机、电话、智能电话,或者任何其他合适类型的电子设备。

图7描绘了计算机系统700的某些主要组件的代表。然而,个别 组件可以具有比图7中所表现的更大的复杂性,可以出现不同于或附 加于图7中所示出的那些组件的组件,并且这些组件的数量、类型和 配置可以变化。本文公开了附加的复杂性或附加的变体的若干特定示 例;这些仅作为示例的方式并且不必然是仅有的这样的变体。在各种 实施例中,图7中所图示的各种程序组件可以按照多种不同的方式来 实施,包括使用各种计算机应用、例程、组件、程序、对象、模块、 数据结构等,它们在本文可以被称为“软件”、“计算机程序”、或 者简单地称为“程序”。

所属技术领域的技术人员知道,本发明的各种方面可以实现为系 统、方法或计算机程序产品。因此,本发明的各种方面可以具体实现 为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括 固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式, 这里可以统称为“电路”、“模块”或“系统”。此外,在一些实施 例中,本发明的各种方面还可以实现为在一个或多个计算机可读介质 中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的 程序代码。

可以采用一个或多个计算机可读介质的任意组合。计算机可读介 质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读 存储介质例如可以是—但不限于—电、磁、光、电磁、红外线、或半 导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介 质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电 连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储 器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、 便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、 或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以 是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装 置或者器件使用或者与其结合使用。

计算机可读的信号介质可以包括在基带中或者作为载波一部分 传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数 据信号可以采用多种形式,包括—但不限于—电磁信号、光信号或上 述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存 储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传 播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使 用的程序。

计算机可读介质上包含的程序代码可以用任何适当的介质传输, 包括—但不限于—无线、有线、光缆、RF等等,或者上述的任意合 适的组合。计算机可读介质上包含的程序代码可以用任何适当的介质 传输,包括—但不限于—无线、有线、光缆、RF等等,或者上述的 任意合适的组合。

可以以一种或多种程序设计语言的任意组合来编写用于执行本 发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序 设计语言—诸如Java、Smalltalk、C++等,还包括常规的过程式程序 设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完 全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独 立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或 者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中, 远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网 (WAN)—连接到用户计算机,或者,可以连接到外部计算机(例 如利用因特网服务提供商来通过因特网连接)。

下面将参照根据本发明实施例的方法、装置(系统)和计算机程 序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图 的每个框以及流程图和/或框图中各框的组合,都可以由计算机程序指 令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或 其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些 计算机程序指令在通过计算机或其它可编程数据处理装置的处理器 执行时,产生了实现流程图和/或框图中的一个或多个框中规定的功能 /动作的装置。

也可以把这些计算机程序指令存储在计算机可读介质中,这些指 令使得计算机、其它可编程数据处理装置、或其他设备以特定方式工 作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图 和/或框图中的一个或多个框中规定的功能/动作的指令的制造品 (article of manufacture)。

也可以把这些计算机程序指令加载在计算机、其他的可编程数据 处理设备或其他的设备上来使得计算机、其他的可编程数据处理设备 执行一系列的操作步骤以形成计算机实施的处理,从而使得在计算 机、其他的可编程数据处理设备或其他的设备上执行的指令提供用于 实现在流程图和/或框图的框或多个框中规定的功能/动作。

附图中的流程图和框图显示了根据本发明的多个实施例的系统、 方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点 上,流程图或框图中的每个框可以代表一个模块、程序段或代码的一 部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规 定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中, 框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如, 两个连续的框实际上可以基本并行地执行,它们有时也可以按相反的 顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图 中的每个框、以及框图和/或流程图中的框的组合,可以用执行规定的 功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与 计算机指令的组合来实现。

虽然已经按照具体实施例描述了本公开内容,但是可以预期到, 它的变更和修改对本领域的技术人员来说将变得明显。因此,所意图 的是,下列权利要求被解释为覆盖所有这样的变更和修改,它们落入 本公开内容的真实精神和范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号