首页> 中国专利> ALUA首选项和状态转换的主机发现和处理

ALUA首选项和状态转换的主机发现和处理

摘要

不同系统和方法可以发现非对称逻辑单元(LUN)访问(ALUA)首选项和/或状态转换并使用这些首选项和/或状态转换来控制一个主机如何访问一个ALUA阵列中的一个LUN。一种这类方法包括检测LUN的一个首选控制器,然后检测到该LUN的一个当前所有者控制器不是该首选控制器。作为响应,该方法可以从该当前所有者控制器向该首选控制器发起所有权变化。另一种方法包括检测与一个LUN有关的一个第一控制器的一种初始状态。然后该方法在检测该初始状态之后检测与该LUN有关的第一控制器的一种后续状态。接着响应于该后续状态不是有效优化状态,该方法可以使一个计算装置通过一个第二控制器访问该LUN。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-12-21

    授权

    授权

  • 2013-12-11

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

    实质审查的生效

  • 2013-09-25

    公开

    公开

说明书

哈里·克利须那·维姆瑞

楚萨·瑞文德奈斯·高瑟威

奈哈·拉伽德拉普拉萨德·甘地

技术领域

本发明涉及非对称逻辑单元(LUN)访问(ALUA)阵列。

背景技术

一些类型的存储阵列提供了通向存储单元阵列的冗余路径,这些存储 单元称为逻辑单元或LUN。非对称逻辑单元(LUN)访问(ALUA)是定 义存储阵列的行为的一种标准机制。在ALUN阵列中,主计算装置可以通 过若干阵列控制器内的任意一个访问该阵列中的每个LUN。然而,在任意 给定时刻,针对一个给定的LUN,这些控制器中只有一个处于优化状态(并 因此提供更优性能)。因此,如果主机试图通过未处于优化状态的控制器 访问LUN时,性能可能会受到不利影响(例如,当访问LUN和/或完全不 能访问LUN时,提供的I/O吞吐量下降)。

发明的披露

在此披露了发现并处理ALUA阵列控制器状态转换的不同系统和方 法。一种这类方法包括:检测非对称逻辑单元(LUN)访问(ALUA)阵 列内的LUN的首选控制器,然后检测该LUN的当前所有者控制器不是该 首选控制器。作为响应,该方法可以发起从当前所有者控制器到首选控制 器的所有权变化。这种方法可以通过实施多路径代理的计算装置来执行。

检测首选控制器可以包括:访问该ALUA阵列提供的静态首选项指示 器,检测与该LUN的当前所有者控制器相关联的状态信息,和/或从集群 中的一个其他节点接收首选控制器,在该集群中该其他节点选择多个控制 器之一作为首选控制器(例如,根据预先设定的算法)。

另一种方法包括检测与LUN有关的一个ALUA阵列中的第一控制器 的一种初始状态。这种初始状态是有效优化状态。然后该方法在检测初始 状态之后检测与该LUN有关的第一控制器的一种后续状态。该方法不响 应于从该ALUA阵列接收到表示一种状态转换的消息而检测后续状态(例 如,该方法因此可以操作在一些系统中,在这些系统中不通过执行该方法 的多路径代理来接收这类消息)。接着响应于后续状态不是有效优化状态, 该方法使一个计算装置通过第二控制器来访问LUN。当执行上述动作时第 二控制处于有效优化状态。

检测后续状态可以包括:在该计算装置通过第一控制器访问LUN时 检测输入/输出性能下降,从ALUA阵列请求信息(该信息识别与LUN有 关的第一控制器的状态),和/或当计算装置通过第一控制器访问LUN时检 测输入/输出错误。检测后续状态的动作可以响应于计算装置从管理员接收 请求而执行。

一种系统的示例可以包括一个或多个处理器以及连接至这些处理器 的存储器。该存储器存储程序指令,这些程序指令可执行用于实施像上述 方法的一种方法。同样,这些程序指令可以存储在计算机可读存储介质中。

前述内容是概述,因此必然包含简单化、一般化和细节省略;因此, 本领域的那些普通技术人员将认识到概述仅是说明性的并且不用于任何 限制。仅由权利要求所定义的本发明的其他方面、发明性特点和优点将在 以下给出的非限制性详细描述中变得明显。

附图简要说明

通过参考附图,本发明可以得到更好的理解,并且其众多目标、特征 以及优点对本领域的普通技术人员是明显的。

图1是根据本发明的一个实施例的一种包括ALUA阵列的系统的方框 图。

图2是根据本发明的实施例的一种用于发现并处理ALUA阵列中的首 选项的方法的流程图。

图3是根据本发明的一个实施例的一种用于发现并处理ALUA阵列中 的所有权转换的方法的流程图。

图4是根据本发明的一个实施例的一种计算装置的方框图,该方框图 展示了ALUA阵列的主机接口可以如何在软件中实施。

图5是根据本发明的一个实施例的一种网络系统的框图,该框图展示 了各种计算装置如何通过网络进行通信。

尽管本发明易于进行各种修改和替换,但在附图和详细描述中本发明 的具体实施例作为示例来提供。应当理解,附图和详细描述不用于将本发 明限制于所披露的具体形式。相反,本发明应涵盖落在所附权利要求定义 的精神和范围之内的所有修改形式、等同形式和替代形式。

实施本发明的一种或多种模式

图1是一种计算系统的方框图,该系统包括一个非对称逻辑单元 (LUN)访问(ALUA)阵列。在这种系统中,每个主装置实现一个多路 径代理(例如,像被配置用于执行动态多路径(DMP)的代理),该代理 被配置用于检测ALUA阵列中的控制器之间的LUN所有权上的变化和/或 检测ALUA阵列中的首选LUN所有权。然后该多路径代理可以使用两组 信息之一或全部来控制包括该多路径代理的主机如何访问ALUA内的 LUN。

如图所示,图1的计算机系统包括ALUA阵列10,该阵列通过网络 30连接至3个主机算装置20(1)、20(2)、和20(3)(统称为主机20)。每个 主计算装置包括一个多路径代理。因此主机20(1)包括多路径代理25(1), 主机20(2)包括多路径代理25(2),而主机20(3)包括多路径代理25(3)。

ALUA阵列10包括2个控制器15(1)和15(2)(统称为控制器15)和 若干LUN18(1)、18(2)、…、18(n)(统称为LUN18)。尽管主机、控制器 和LUN的具体数量已经示于图1的示例中,但应当注意的是每种类型组 件的数量可以在实施例之间变化。因此,一些实施例可以包括远多于3个 的主机。类似地,一些实施例可以包括多于2个的控制器。

LUN18各自都是逻辑存储装置。每个LUA可以包括各种不同存储装 置中的一个或多个存储装置中的每一个的至少一部分,这些装置包括硬 盘、光盘、数字通用光盘、固态驱动器(SSD)存储器(例如闪存)等。

主机20各自可以包括各种不同类型计算装置中的任意一种,这些装 置包括服务器、个人计算装置、膝上计算机、上网本、个人数字助理、蜂 窝电话等。每个主机20被配置用于访问(例如,创建、读取、写入或删 除)ALUA阵列10内的LUN18的一个或多个中存储的信息。每个主机 20通过与控制器15之一进行通信来访问LUN18。

最初,当图1的系统启动时,ALUA阵列10的管理员或默认算法可 用于将每个LUN18的所有权分配给控制器15之一。这种初始配置也称为 ALUA阵列10的首选项。LUN的初始所有者可以称为该LUN的首选所有 者。

拥有LUN18的控制器15将保留所拥有的LUN的缓存信息(例如, 最近存取的数据的信息,这些数据读取自和/或写入到该LUN)。因此,如 果主机20试图通过非所有控制器访问该LUN,那么该非所有控制器将需 要与拥有控制器进行通信以获得该LUN的当前缓存。这在通过非所有控 制器访问LUN时通常会降低输入/输出(I/O)性能。

对控制器进行LUN所有权的初始分配所采用的方式可以是对ALUA 阵列的操作进行负载平衡。例如,LUN可以在控制器之间等分。可替代地, 可以考虑所期望的访问模式,这样分配了更多受欢迎LUN(例如,期望具 有更频繁的访问的LUN、期望提供更高服务质量的LUN、或其他类似特 征)的所有权的控制器比分配了不太受欢迎LUN的所有权的控制器分配 了相对较少的LUN。

每个控制器可以针对于一个给定LUN在若干状态之一中操作。如果 控制器正确操作并且可以提供对该LUN的访问,该控制器就处于有效状 态。如果有效的控制器当前是该LUN的所有者,该控制器就操作在有效 优化状态中(例如,因为通过该所有控制器访问该LUN提供更优的性能)。 相反如果该有效控制器不是该LUN的当前所有者,控制器就操作在有效 非优化状态中(例如,因为通过该非所有控制器访问LUN提供了较差的 性能)。控制器还可以操作在等待状态中(例如,如果当前不提供对LUN 的访问,但可用作故障转移控制器)或不可用状态中(例如,如果无法或 不能访问该LUN)。

应当注意的是,LUN的所有权可以从一个控制器向另一个转换。因此, LUN的当前所有者可以不是首选所有者。尽管大部分ALUA阵列允许多 路径代理来访问识别LUN的当前所有者的信息,很多ALUA阵列不向多 路径代理提供直接识别LUN的首选所有者的任意信息。(如以下描述的, 一些ALUA阵列的确以首选项指示器的形式提供这种信息;然而,此特点 不包括在很多ALUA阵列中。而且,尽管一些ALUA阵列提供首选项指 示符,但并不是所有都静态地保留该指示器,因此与首选所有者相反的是, 指示器最终只识别当前的所有者。)

主机20内的多路径代理25可以(通过不同的控制器)发现可用于访 问每个主机的每个LUN的多个路径并控制各个主机使用哪条路径来访问 每个LUN。如果在该路径(当前正用于访问一个LUN)上观察到性能失 效或下降,多路径代理可以使主机开始使用另一条路径来访问该LUN。因 此,多路径代理允许主机受益于ALUA阵列所提供的冗余路径。

另外,多路径代理可以发现LUN的首选控制器所有权。当ALUA阵 列中出现变化时,这允许多路径代理紧密地跟踪首选分配。例如,假设最 初将LUN18(1)的所有权分配给控制器15(1),从而使得控制器15(1)是LUN 18(1)的首选所有者。接着,控制器15(1)发生故障,所有权转移至控制器 15(2)。后来,控制器15(1)得到维修并转向有效操作。此时,多路径代理 可以检测到正用于访问LUN的当前控制器不是该LUN的首选控制器并且 首选控制器是可用的。作为响应,多路径代理可以使该LUN的所有权转 移回修复的控制器15(1)(例如,通过发起从控制器15(2)到控制器15(1) 的故障恢复)。

通过检测首选配置并在可能时将操作恢复到首选配置,多路径代理可 以帮助保留专用于ALUA阵列的初始配置。例如,这可以帮助保留最初为 ALUA阵列建立的负载平衡配置。

在一些实施例中,多路径代理可以通过简单访问每个LUN的ALUA 阵列提供的静态首选项信息来发现该LUN的首选配置。这种首选项信息 识别该LUN的首选所有者。应当注意,每个多路径代理将看到相同的首 选项信息并以相同的方式使用该信息,因此可以配置所有的主机通过相同 的控制器访问给定的LUN。

在很多实施例中,ALUA阵列不为每个LUN提供首选项信息。在一 些这类实施例中,可以配置多路径代理跟踪每个LUN/控制器对上出现的 状态转换。然后跟踪的状态转换可以用于识别该LUN的首选配置。例如, 如果多路径代理已经检测到针对一个给定LUN的单一状态转换(例如, 从一个控制器向另一个的故障转移将有效优化状态转移到其他控制器), 多路径代理可以识别控制器(LUN从该控制器进行故障转移)是该LUN 的首选所有者。多次转换同样可以进行跟踪并用于识别首选拥有者。每个 多路径代理可以采用相同方式跟踪并使用这些状态转换,这样可以配置所 有主机使用相同的控制器来访问给定的LUN。

在一些实施例中,可以通过从LUN的控制器请求状态信息(例如, 对称访问状态(AAS)值和/或ALUA“状态码”值)可以检测状态转换。状 态信息可以集中表示是否控制器已经针对该LUN改变了状态以及转换的 原因。例如,如果AAS指示控制器是有效未优化的并且状态码指示该LUN 已经发生了转换,多路径代理可以检测到控制器是首选控制器。相反,如 果控制器是有效优化的并且状态码指示已经进行了转换,多路径代理可以 检测控制器不是首选控制器。如果状态码指示没有检测到状态变化,多路 径代理可以基于控制器的当前状态来确定它是否是首选控制器(例如,如 果当前是有效优化控制器,就是首选的,如AAS所指示)。

一些ALUA阵列实现方式可以不保留状态信息,例如状态码值,其方 式是允许状态信息用于识别首选控制器。具体而言,ALUA标准不规定故 障恢复(例如,如果控制器15(1)是首选控制器,从控制器15(1)到15(2) 进行故障转移,然后返回到控制器15(1))后的状态码值。因此,在故障 恢复后ALUA阵列的一些实现方式不重置状态码值。在故障恢复后无法重 置状态码值可能会阻止多路径代理不能以上述方式识别首选控制器。

在一些实施例中,代替跟踪状态转换的是(例如,如果ALUA阵列不 提供状态信息(例如状态码值)或如果ALUA阵列在故障恢复后不重置状 态码值),多路径代理可以仅使用一种一致性算法来识别首选配置。该一 致性算法由相同系统中的所有多路径代理使用,这样可以配置所有主机来 使用相同的控制器访问一个给定LUN。

一致性算法的一个示例是被配置用于仅使用控制器的特征(例如,控 制器的标识符)来选择LUN的所有者。例如,可以配置所有多路径代理 来选择具有最低(或最高)标识符的有效控制器作为LUN的首选所有者。 类似地,可以配置多路径代理使用当前有效优化控制器作为LUN的首选 所有者。

一致性算法的另一个示例是配置一个主机(例如,集群中的主节点) 用于选择一个给定LUN的首选控制器。然后该主机将它的选择传输给系 统中的所有其他主机,其他主机将使用所提供的选择。例如,该主机可以 使用集群通讯协议来传输它的选择。

一旦检测到首选配置,多路径代理可以确定LUN的当前所有者是否 是该LUN的首选所有者(例如,通过比较当前所有者控制器和首选所有 者控制器的标识符)。如果当前所有者不是首选所有者并且首选所有者是 可用的(例如,处于有效或等待状态),多路径代理可以开始从当前所有 者向首选所有者进行所有权转换并使包括多路径代理的主机开始通过首 选所有者访问LUN。多路径代理可以例如通过对首选所有者发起故障恢复 操作或通过执行自动非法入侵操作(在支持自动非法入侵的实施例中)来 发起这些动作以便通过首选所有者访问LUN。

除了(或替代)能够检测ALUA阵列的首选配置并使用首选项配置来 控制主机使用哪个路径来访问LUN外,多路径代理可以检测何时进行状 态转换并使用该信息控制各个主机如何访问ALUA阵列中的LUN。

如上所述,控制器状态转换可以使ALUA阵列配置不同于它的初始配 置。可以出于各种原因进行这些状态转换。例如,可以因为控制器故障、 管理员配置LUN的所有权、另一个主机使LUN的所有权发生转换、ALUA 阵列执行负载均衡、出现有效入侵等而进行状态转换。

在ALUA实现方式中可能出现一个问题,其中控制器状态转换的 ALUA阵列通知不会到达主机的多路径代理上。例如,当一些ALUA阵列 向主机发送一条单元注意通知警告时,该警告常常由一个较低软件层(例 如,微型计算机系统接口(SCSI驱动器)层)来使用,该层比多路径代理 所实施的层更低,这样单元注意通知警告永远不会到达多路径代理。

在某些情况下,多路径代理仍然会发现状态转换。例如,如果由于控 制器故障而出现状态转换,多路径代理将在下一次主机试图通过故障控制 器访问LUN时检测错误。因此,多路径代理可以接着开始使用新的有效 优化控制器来访问LUN。

然而在其他情况中,多路径代理可以不发现状态转换。例如,如果出 现状态转换,但先前的有效优化控制器仍是有效的并且是可用的,多路径 代理可用通过该控制器继续访问LUN并且不会看到任何错误消息。结果, 当访问LUN时主机开业开始体验次佳性能。

为了防止主机通过未优化控制器访问LUN的情况,可以配置多路径 代理来检测ALUA阵列内的控制器状态转换。最初,当开始操作时,多路 径代理可以识别每个LUN的初始有效优化控制器。例如,多路径代理可 以访问识别每个LUN的当前所有者的状态信息(例如,如上文所述的给 定LUN的控制器的AAS码)并使用该信息来识别给定LUN的有效优化 控制器。然后多路径代理可以存储该信息以备后用。

在启动后的后续时间中,多路径代理可以重新检查LUN的初始有效 优化控制器的状态。因此,如果该控制器的状态已经转换,多路径代理将 能够检测到这种转换,尽管并未从ALUA阵列接收到转换的任何通知。需 要注意的是,多路径代理以此方式检测状态转换,不必首先从ALUA阵列 接收到通知(例如,采用单元注意警报消息的形式)。

在一些实施例中,可以配置多路径代理以通过常规性地(例如,周期 性地或响应于预定激励)对状态进行重新检查。例如,如果最初发现控制 器15(1)是LUN18(1)的有效优化控制器,多路径代理可以周期性地请求与 LUN18(1)相关的控制器15(1)的AAS值(例如,如上文所述的)。如果AAS 值已经发生变化,这表明已经进行了转换,那么多路径代理可以识别LUN 18(1)的新的有效优化控制器。

在其他实施例中,代替常规性地请求控制器的状态的是,当主机通过 当前控制器访问LUN时多路径代理可以监控输入/输出(I/O)性能(例如, 根据执行I/O时的吞吐量和/或错误消息)。如果检测到I/O性能下降(例如, 通过检测吞吐量和/或错误消息的下降),那么多路径代理可以如上所述请 求控制器的状态。

在又一些其他实施例中,多路径代理可以提供接口(例如,图形用户 接口、命令行接口、应用程序编程接口等),该接口允许管理员和/或其他 用户(例如,人类用户或应用程序)来请求多路径代理重新检查当前用于 访问LUN的控制器的状态。可以代替和/或除了上述那些方式以外而实施 这种触发方式。

如果多路径代理检测到已经发生转换并且当前正用于访问LUN的控 制器不再是该LUN的有效优化控制器,多路径代理可以使主机开始使用 新的有效优化控制器来访问该LUN。

每个多路径代理可以被配置用于实施相同的功能以检测并处理状态 转换(例如,利用上述技术中的一个或多个)。因此,如果发生状态转换, 每个主机上的多路径代理将以相同方式检测并处理状态转换。这样,如果 LUN的所有者发生变化,主机中的每一个将以相同方式响应并通过相同的 控制器(LUN的新所有者)开始访问LUN,即使那些主机不在它们自己 之间传送与这种转换有关的任何信息。另外,如果一个主机触发了所有权 变化,其他主机可以检测该转换并适当地作出响应,甚至在触发该变化的 主机未通知变化的情况下。

图2是一种发现ALUA阵列内的LUN的首选控制器并且然后使用该 信息使主机使用首选控制器(如果可用)访问LUN的方法的流程图。这 种方法可由多路径代理来执行,像图1的多路径代理25。

该方法开始于200,此时多路径代理检测是否ALUA阵列为LUN指 定了首选控制器。该操作可以通过从ALUA阵列请求LUN的首选指示器 来执行。与首选指示器是否是静态的相关信息可以从ALUA阵列技术参数 来确定(例如,在系统配置过程中由管理员完成)。

如果ALUA阵列不指定首选控制器(例如,如果ALUA阵列不支持 首选指示器和/或不静态地保留首选指示器),多路径代理可以确定是否可 以检测LUN的状态转换,如205所示。例如,多路径代理可以从ALUN 阵列请求状态信息(例如上述的AAS和状态码值),该信息与LUN和控 制器相关联。这种状态信息可以集中表示与该LUN相关的控制器的状态 是否转换。基于状态信息(并且可能基于与该LUN有关的其他控制器相 关的信息)所指示的一个或多个状态转换(如果有的话),多路径控制器 可以确定该LUN的首选控制器,如210所示。以上针对图1描述了基于这 些状态信息检测首选控制器的各种技术。

如果指示状态转换的信息不可用和/或如果状态码值在故障恢复后未 重置(例如,如阵列技术参数中所指明的),多路径代理可以使用一致性 算法来选择LUN的首选控制器,如215所示。这种算法是一致的,因为 在系统中每个多路径代理使用相同的算法,这样所有多路径代理所获得的 结果与整个系统中每个其他代理将是一致的。以上针对图1描述了各种一 致性算法。

一旦检测到LUN的首选控制器,那么多路径代理可以检测该首选控 制器在ALUA阵列内当前是否是有效的,如220所示。例如,多路径代理 可以从ALUA阵列请求首选控制器的状态。然后如果首选控制器是可用 的,多路径代理可以使包括该多经代理的主机通过该首选控制器访问 LUN,如225所示。如果首选控制器不是主机当前所用的控制器,多路径 代理可以通过例如发起从当前控制器向首选控制器的故障恢复来执行操 作225。如果首选控制器当前不可用,多路径代理可以允许主机通过非首 选控制器来访问LUN,如230所示。

图2中所示的操作可以由若干不同多路径代理的每一个来执行并用于 若干不同LUN的每一个。在某些实施例中可以忽略一些操作,而其他实 施例可以代替和/或除图2中所描述的那些实施例外而包括其他操作。例 如,在一些实施例中,可以仅配置多路径代理来执行操作200、205和215 中的一些(与配置用于执行全部操作相反)。例如,可以配置一些多路径 代理仅通过访问识别状态转换的信息来检测首选控制器(与此相反的是, 还能够基于首选指示器和/或一致性算法来检测首选控制器)。

图3是一种发现并控制ALUA阵列内的状态转换的方法的流程图。这 种方法可以通过多路径代理(像图1的多路径代理25)来执行。

该方法开始于300,此时多路径代理检测ALUA阵列内的LUN的当 前有效优化控制器。多路径代理可以通过从ALUA阵列请求该LUN的有 效优化控制器的身份来执行这种操作。在一些实施例中,操作300响应于 启动多路径代理而执行,或响应于多路径代理检测到ALUA阵列已经启动 和/或可用于多路径代理而执行。

随后,多路径代理可以监控300中识别的控制器的状态转换,如305 所示。多路径代理可以采用各种方式执行操作305。例如,可以配置多路 径代理常规地(例如,周期地)从ALUA阵列请求控制器的状态(例如, 采用AAS状态码的形式)。可替代地,多路径代理可以被配置用于监控通 过控制器访问LUN的I/O性能。如果观察到性能下降,那么多路径代理可 以从ALUA阵列请求控制器的状态。还可以配置多路径代理响应于接收到 这样做的请求(例如,从用户、应用程序或管理员)而从ALUA阵列请求 控制器的状态。如果出现状态转换,多路径代理可以使它的主机开始通过 LUN的新的有效优化(即,所有者)控制器来访问LUN,如310所示。

如同图2的操作,图3的操作由若干不同多路径代理的每一个来执行 并用于若干不同LUN的每一个。在某些实施例中可以忽略一些操作,而 其他实施例可以替代和/或除了图3描述的那些操作外而包括其他操作。

图4是一种能够实施具有上述备份接口的档案模块的计算系统410的 方框图。计算系统410广义上代表能够执行计算机可读指令的任意单一或 多个处理器计算装置或系统。计算系统410的示例包括但不限限于多种装 置的任意一个或多个,这些装置包括工作站、个人计算机、膝上计算机、 客户侧终端、服务器、分布式计算系统、手持装置(例如,个人数字助理 和移动电话)、网络家电、存储控制器(例如,阵列控制器、磁带驱动控 制器、或硬盘驱动控制器)等。在其大部分基本配置中,计算系统410可 以包括至少一个处理器414和系统存储器416。通过执行实施多路径代理 25的软件,计算系统410成为专用的计算装置,该装置被配置用于检测 ALUA阵列内的首选项和/或状态转换并使用检测到的信息来控制计算系 统410如何访问ALUA阵列内的LUN。

处理器414总体上代表能够处理数据或解释并执行指令的任意类型或 形式的处理单元。在某些实施例中,处理器414可以从软件应用程序或模 块接收指令。这些指令可以使处理器414执行本文描述和/或展示的实施例 的一个或多个的功能。例如,处理器414可以执行和/或作为一种手段执行 本文描述的操作中的所有或一些。处理器414还可以执行和/或作为一种手 段执行本文描述和/或展示的任意其他操作、方法或进程。

系统存储器416总体上代表能够存储数据和/或其他计算机可读指令 的任何类型或形式的易失性或非易失性存储装置或介质。系统内存416的 多个示例包括但不限于随机存取存储器(RAM)、只读存储器(ROM)、 闪存、或任何其他适当的存储装置。在一个示例中,实施具有多路径代理 25的档案模块50的程序指令可以载入到系统存储器416中。

在某些实施例中,除了处理器414和系统存储器416外,计算系统410 还可以包括一个或多个组件或元件。例如,如图4中所示,计算系统410 可以包括存储控制器418、输入/输出(I/O)控制器420以及通信接口422, 这些装置中的每一个可以通过通信架构412相互连接。通信架构412总体 上代表能够在计算装置的一个或多个组件之间协助通信的任意类型或形 式的架构。通信架构412的示例包括但不限于通信总线(例如,工业标准 架构(ISA)、外围组件互联(PCI)、串行总线(PCIe)或类似总线)以及 网络。

存储控制器418总体上代表在计算系统410的一个或多个组件之间操 作存储器或数据或者控制通信的任意类型或形式的装置。例如,在某些实 施例中,存储控制器418可以通过通信架构412控制处理器414、系统存 储器416以及I/O控制器420之间的通信。在某些实施例中,存储控制器 418可以独立地或与其他元件相结合地执行和/或作为一种手段执行本文描 述和/或展示的多个步骤或特征中的一个或多个。

I/O控制器420总体上代表能够协调和/或控制计算装置的输入和输出 功能的任意类型或形式的模块。例如,在某些实施例中,I/O控制器420 可以控制或协助计算系统410的一个或多个元件之间的数据传输,这些元 件例如是处理器414、系统存储器416、通信接口422、显示适配器426、 输入接口430和存储接口434。

通信接口422广义上代表能够协助计算系统410和一个或多个附加装 置之间的通信的任意类型或形式的通信装置。例如,在某些实施例中通信 接口422可以协助计算系统410和包括附加计算系统的私有或公共网络之 间的通信。通信接口422的示例包括但不限于有线网络接口(例如,网络 接口卡)、无线网络接口(例如,无线网络接口卡)、调制解调器以及任意 其他适合的接口。在至少一个实施例中,通信接口422可以通过连接至网 络(例如互联网)的直接链路向远程服务器提供直接连接。通信接口422 还可以通过例如局域网(如,以太网)、个人区域网络、电话或电缆网络、 蜂窝电话连接、卫星数据连接或任意其他适合的连接而间接地提供这类连 接。

在某些实施例中,通信接口422还可以代表主机适配器,该主机适配 器被配置用于协助计算系统410和一个或多个附加网络或存储装置之间的 经由外部总线或通信信道的通信。主机适配器的示例包括但不限于小型计 算机系统接口(SCSI)、通用串行总线(USB)主机适配器、电气与电子 工程师协会(IEEE)1394主机适配器、串行高级技术附件(SATA)、串行 连接SCSI(SAS)和外部SATA(eSATA)主机适配器、先进技术附件(ATA) 和并行ATA(PATA)主机适配器、光纤通道接口适配器、以太网适配器 等。

通信接口422还可以允许计算系统410参与分布式或远程计算。例如, 通信接口422可以从远程装置接收指令或向远程装置发送指令以便执行。

如图4所示,计算系统410还可以包括通过显示适配器424连接至通 信基础设施412的至少一个显示装置426。显示装置424总体上代表能够 可视地呈现显示适配器426所转发的显示信息的任意类型或形式的装置。 相似地,显示适配器426总体上代表任意类型或形式的装置,这些装置被 配置用于从通信基础设施412(或从本领域已知的帧缓冲器)转发图形、 文本以及其他数据以便显示在显示装置424上。

如图4所示,计算系统410还可以包括通过输入接口428连接至通信 基础设施412的至少一个输入装置430。输入装置428总体上代表能够向 示例性计算系统410提供由计算机或人员生成的输入的任意类型或形式的 输入装置。输入装置428的示例包括但不限于键盘、定位装置、语音识别 装置或任意其他输入装置。

如图4所示,计算系统410还可以包括通过存储接口434连接至通信 基础设施412的一个主存储装置432和一个备份存储装置433。存储装置 432和433总体上代表能够存储数据和/或其他计算机可读指令的任意类型 或形式的存储装置或介质。例如,存储装置432与433各自可以包括磁盘 驱动器(例如,所谓的硬盘驱动器)、软盘驱动器、磁带驱动器、光盘驱 动器、闪存驱动器、或者类似装置。存储接口434总体上代表用于在存储 装置432和433以及计算系统410的其他组件之间传输数据的任意类型或 形式的接口或装置。类似主存储装置432的存储装置可用于实施如上所述 的档案数据存储库和/或备份存储器。

在某些实施例中,存储装置432和433可以被配置为用于读取自和/ 或写入到可移动存储单元,该可移动存储单元被配置用于存储计算机软 件、数据、或其他计算机可读信息。适合的可移动存储单元的示例包括但 不限于软盘、磁带、光盘、闪存装置等。存储装置432和433还可以包括 其他类似的结构或装置,以允许计算机软件、数据或其他计算机可读指令 载入到计算系统410中。例如,存储装置432和433可以被配置用于读或 写软件、数据或其他计算机可读信息。存储装置432和433还可以作为计 算系统410的一部分或可以是通过其他接口系统访问的一个分离的装置。

很多其他装置或子系统可以连接至计算系统410上。相反,为了实施 在此描述和/或展示的实施例,不需要图4中所示的所有组件和装置。以上 引用的这些装置和子系统还可以采用不同于图4中所示的方式相互连接。

计算系统410还可以使用任何数量的软件、固件、和/或硬件的配置。 例如,可以将在此披露的示例性实施例中的一个或多个编码为一种计算机 可读介质上的计算机程序(还称为计算机软件、软件应用程序、计算机可 读指令、或计算机控制逻辑)。计算机可读介质的示例包括磁性存储介质 (例如,硬盘驱动器和软盘驱动器)、光存储介质(例如,CD-ROM或 DVD-ROM)、电子存储介质(例如,固态驱动器和闪存介质)等。这种计 算机程序还可以通过网络(例如互联网)或在载体介质上传输到计算系统 410以存储在存储器中。

包含计算机程序的计算机可读介质可以载入到计算系统410中。然后 存储在计算机可读介质上的所有或部分计算机程序可以存储在系统内存 416和/或存储装置432和433的不同部分上。当由处理器414执行时,载 入到计算系统410中的计算机程序可以使处理器414执行和/或作为一种手 段执行在此描述和/或展示的示例性实施例中的一个或多个的功能。另外或 可替代地,在此所说明和/或展示的示例性实施例中的一个或多个可以在固 件和/或硬件中实施。例如计算系统410可被配置用作一种专用集成电路 (ASIC),它被适配为用于实施在此所披露的这些示例性实施例中的一个 或多个。

图5是示例性网络架构500的方框图,在该网络架构中客户端系统 510、520和530以及服务器540和545可以连接至网络550。客户端系统 510、520和530通常代表任意类型或形式的计算装置或系统。

类似地,服务器540和545总体上代表被配置用于提供不同的数据库 服务和/或运行某种软件应用程序的计算装置或系统,例如在计算装置(例 如图4中的计算系统410)上实施的应用程序服务器或数据库服务器。网 络550总体上代表任意电信或计算机网络,例如它包括内部网、广域网 (WAN)、局域网(LAN)、个人区域网(PAN)、或互联网。在一个示例 中,客户端系统510、520和/或530和/或服务器540和/或545可以包括如 图1和4中所示的多路径代理25。

如图5所示,一个或多个存储装置560(1)-(N)可以直接附接至服务器 540。类似地,一个或多个存储装置570(1)-(N)可以直接附接至服务器545。 存储装置560(1)-(N)和存储装置570(1)-(N)总体上代表能够存储数据和/或 其他计算机可读指令的任意类型或形式的存储装置或介质并且可以组织 到如上所述的一个ALUA阵列中。在某些实施例中,存储装置560(1)-(N) 和存储装置570(1)-(N)可代表被配置为用于使用不同协议(例如网络文件 系统(NFS)、服务器消息块(SMB)、或公共互联网文件系统(CIFS)来 与服务器540和545进行通信的网络附联存储(NAS)装置。

服务器540和545还可以连接至存储区域网络(SAN)结构580。SAN 结构580总体上代表能够协助多个存储装置之间通信的任意类型或形式的 计算机网络或体系结构。SAN结构580可以协助服务器540和545与多个 存储装置590(1)-(N)和/或一个智能存储器阵列595(例如,ALUA阵列) 之间的通信。SAN结构580还可以通过网络550以及服务器540和545协 助客户端系统510、520和530与存储装置590(1)-(N)和/或智能存储器阵列 595之间的通信,其方式为装置590(1)-(N)和阵列595对客户端系统510、 520和530呈现为本地附接的装置。与存储装置560(1)-(N)和存储装置 570(1)-(N)一样,存储装置590(1)-(N)和存储阵列595总体上代表能够存储 数据和/或其他计算机可读指令的任意类型或形式的存储装置或介质。

在某些实施例中,参考图4的示例性计算系统410,通信接口(例如, 图4中的通信接口422)可用于在每一个客户端系统510、520和530以及 网络550之间提供连接性。客户端系统510、520和530能够利用例如网络 浏览器或其他客户端软件来访问服务器540和545上的信息。这种软件可 以允许客户端系统510、520和530访问由服务器540、服务器545、存储 装置560(1)-(N)、存储装置570(1)-(N)、存储装置590(1)-(N)或智能存储器 阵列595管理的数据。尽管图5描绘了使用网络(例如互联网)进行数据 交换,但在此描述和/或展示的实施例不限于互联网或任意具体的基于网络 的环境。

在至少一个实施例中,本文披露的示例性实施例中的一个或多个的全 部或一部分可被编码为一种计算机程序并且由服务器540、服务器545、 存储装置560(1)-(N)、存储装置570(1)-(N)、存储装置590(1)-(N)、智能存 储阵列595、或它们中的任意组合加载并执行。在此披露的多个示例性实 施例的一个或多个的全部或一部分还可以被编码为计算机程序,存储在服 务器540中,由服务器545运行,并在网络550上分发给客户端系统510、 520和530。

在一些示例中,图1、4和5中的计算装置的所有或一部分可以代表 云计算或基于网络的环境的多个部分。云计算环境可以通过互联网提供各 种服务和应用程序。这些基于云的服务(例如,软件即服务、平台即服务、 基础设施即服务等)可以通过网络浏览器或其他的远程接口进行访问。在 此所述的不同功能可以通过远程桌面环境或任何其他的基于云的计算环 境来提供。

另外,本文描述的这些组件中的一个或多个可以将数据、物理装置、 和/或物理装置的表示从一种形式转换到另一种形式。例如,图1中的多路 径代理可以改变计算装置的行为以使得计算装置基于检测到的信息(与 ALUA阵列内的首选项和/或状态转换有关)来调整对ALUA阵列的访问。

尽管已经结合若干实施例描述了本发明,但本发明不用于限制到本文 提出的具体形式。相反,意在涵盖这些替代形式、修改形式以及等同形式, 它们可以适当地包括在所附权利要求定义的本发明范围内。

工业实用性

本发明应用于计算和数据存储领域。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号