组合多个sas扩展器应用时提供路径故障切换的方法

文档序号:6579609阅读:182来源:国知局
专利名称:组合多个sas扩展器应用时提供路径故障切换的方法
技术领域
本发明总体涉及串行连接SCSI领域,以及更具体地涉及用于提供多个SAS扩展器 作为单一、无阻塞SAS扩展器的路径故障切换的方法。
背景技术
串行连接SCSI (SAS)是表示各种被设计为实现计算机设备之间的数据传递的技 术的术语。SAS协议是至平行小计算机系统接口的串行后继站。在SAS协议中,所有SAS设 备是发起设备、目标设备、或扩展设备。发起设备是开始SAS数据传递的设备,而目标设备 是发起设备传递数据至其的设备。发起设备和目标设备一起被认为是终端设备。
SAS扩展器是帮助在多个发起设备和多个目标设置之间数据传递的设备。SAS协 议使用点对点总线拓扑。因此,如果发起设备需要连接到多个目标设备,则在发起设备和每 个独立的目标设备之间必须直接连接以有助于在发起设备和每个独立目标设备之间的每 个独立数据传递。SAS扩展器管理多个发起设备和多个目标设备之间的连接和数据传递。 SAS扩展器可以包括SAS设备。

发明内容
—种在组合多个串行连接小型计算机系统接口 (SAS)扩展器以用作单一的、结合 的SAS扩展器时提供路径故障切换的方法,可包括但不限于检测一第一 SAS扩展器和一设 备之间的故障链路;以及将通过所述故障链路连接到所述设备的所述第一 SAS扩展器的数 据传输重路由到通过一有效链路连接到所述设备的一第二 SAS扩展器,其中所述第一 SAS 扩展器通过用于扩展器间通信的所述第一 SAS扩展器的phy层(phys)和所述第二 SAS扩 展器的phy层(phys)连接到所述第二 SAS扩展器。 —种系统,包括但不限于用于组合多个SAS扩展器以用作单一的、结合的SAS扩 展器的装置;用于检测一第一 SAS扩展器和一设备之间的故障链路的装置;以及用于将通过该故障链路连接到所述设备的第一 SAS扩展器的数据传输重路由到通过有效链路连接 到所述设备的第二 SAS扩展器的装置,其中所述第一 SAS扩展器通过用于扩展器间通信的 第一 SAS扩展器的phy层(phys)和第二 SAS扩展器的phy层(phys)连接到所述第二 SAS 扩展器。 —种具有计算机可执行指令的计算机可读介质,其用于执行在组合多个串行连接 小型计算机系统接口 (SAS)扩展器以用作单一的、结合的SAS扩展器时提供路径故障切换 的方法,所述方法包括但不限于检测一第一 SAS扩展器和一设备之间的一故障链路;以及 将通过所述故障链路连接到所述设备的所述第一 SAS扩展器的一数据传输重路由到通过 一有效链路连接到所述设备的一第二 SAS扩展器,其中所述第一 SAS扩展器通过用于扩展 器间通信的所述第一 SAS扩展器的phy层(phys)和所述第二 SAS扩展器的phy层(phys) 连接到所述第二 SAS扩展器。 容易理解上述的一般描述和以下的具体描述都仅仅是示范性和解释性的,并不是 对本发明公开内容的强制限制。附图被结合并组成本说明书的一部分,解释了公开的主题。 上述描述和附图一起用来解释本发明所公开的原理。


本发明公开的多个优点可以参照下面的附图更容易被本领域技术人员所理解 图1是示出SAS拓扑结构说明单一的、结合的SAS扩展器的方框图; 图2A至图2E是示出单一的、结合的SAS扩展器的多个配置的方框图; 图3是示出单一的、结合的SAS扩展器的刀片中心交换机结构的方框图; 图4示出单一的、结合的SAS扩展器的扩展器间链接的方框图; 图5示出单一的、结合的SAS扩展器内的故障内部链接的方框图; 图6示出用于将多个扩展器组合以作为单一的、结合的SAS扩展器操作的方法的
流程图; 图7示出在单一的、结合的SAS扩展器内发生链接故障时提供路径故障切换方法 的流程图; 图8示出了使用单一的、结合的SAS扩展器选择用于数据连接的SAS宽端口的线 路的框图; 图9示出了使用单一的、结合的SAS扩展器指定用于数据连接的SAS宽端口的线 路的方法的流程图; 图IO示出了配置为执行成对的减法路由的级联SAS拓扑的框图;
图11A至图11D是示出了成对减法端口的经销商特有函数、命令和描述符的表,图 11A表示SMP报告修改的phy路由属性列表请求,图11B表示SMP报告修改的phy路由属性 列表响应,图IIC表示修改的路由描述符;以及 图12是示出了在级联SAS拓扑中执行成对减法路由的方法的流程图。 具体实施方案 下面具体参考公开的主题内容,其在附图中示出。 示出了根据本公开的示例性实施例的特征在于单一的、结合的SAS扩展器的SAS拓扑。该拓扑结构100可包括通过窄端口 115a. . . d连接到扩展器120的发起者110。扩展 器120可通过窄端口 125a. ..d连接到单一的、结合的SAS扩展器200。单一的、结合的SAS 扩展器200可包括多个物理分开的SAS扩展器202a. . . d。 SAS扩展器202a. . . d可以被配 置为共享相同的SAS地址来组合窄端口 125a. . . d以作为单一公用宽端口 150。如SAS拓扑 结构IOO所示,窄端口 125a. . . d可以组合以形成X4-宽端口 150。 SAS扩展器202a. . . d 可通过窄端口 135a. . . d连接到扩展器130。扩展器130可通过窄端口 145a. . . d连接到目 标140。 SAS规范要求所有连接是点对点的。然而,SAS拓扑100是符合SAS规范的,因为 宽端口 150是真正的SAS宽端口 。 参照图2A-2E,结合SAS扩展器200可包括多个物理分开的SAS扩展器202a. . . h, SAS扩展器202a. . . h可通过链路255a. . . h_294a. . . h连接到输出端口 205-244上。根据 SAS控制器202a. . . h的数量、SAS扩展器202a. . . h的端口的数量、输出端口 205-244的数 量、输出端口 205-244的宽度以及在链路255a. . . h_294a. . . h中所使用的SAS扩展器端口 的数量,广泛变化的单一的、结合的SAS扩展器200的构造通过本申请公开被考虑。
输出端口 205-244可以是宽端口。输出端口 205-244可以配置为共享相同的SAS 地址。在SAS规范下,这就将输出端口 205-244定义为相同扩展器的单一宽端口。每个输 出端口 205-244可以连接到每个SAS扩展器202a. ..h(未示出)。输出端口 205-244的宽 度可以取决于连接每个输出端口 205-244的链路255a. . . h_294a. . . h中使用多少SAS扩展 器端口 。每个SAS扩展器202a. . . h可以具有多个连接到每个输出端口 205-244的SAS扩 展器端口 。例如,如果单一的、结合的SAS扩展器200包括两个使用一个SAS扩展器端口通 过链路255a. . . h-294a. . . h连接到每个输出端口 205-244的SAS扩展器202a_h,则输出端 口 205-244将是X2宽端口 ;此外,如果单一的、结合的SAS扩展器200包括两个使用两个 SAS扩展器端口通过链路255a. . . h_294a. . . h连接到每个输出端口 205-244的SAS扩展器 202a-h,则输出端口 205-244将是X4宽端口 。这些结构允许以全端口带宽来同时访问单 一的、结合的SAS扩展器200的任何端口和任何其他端。 提供了单一的、结合的SAS扩展器300的刀片中心交换机结构301。参考图3,多个 CPU刀片302可以连接到输入端口 305-320。输入端口 305-320可以是宽端口 。输入端口 305-320可以配置为共享相同的SAS地址。在SAS规范下,这就将输入端口 305-320定义为 相同扩展器的单一宽端口。每个输入端口 305-320可以通过链路355a. ..b-375a.,.b(未 示出)连接到每个SAS扩展器202a... b。如刀片中心交换机结构301中所示,输入端口 305-320是通过链路355a. . . b_375a. . . b使用一个SAS扩展器端口连接到两个SAS扩展 器202&..丄的X2宽端口,但是其他结构是完全被这些公开所考虑的。每个SAS扩展器 202a. ..b可以通过链路255a. ..13-268&...13(未示出)连接到每个输出端口 205-218。如 在刀片中心交换机结构301中所示,输出端口 205-218是使用两个SAS扩展器端口通过链 路255a. . . b-268a. . . b连接到两个SAS扩展器202a. . . b的X 4宽端口 ,但是其他结构是完 全被当前公开所考虑的。输出端口 205-218可以连接到多数据存储装置303。
SAS扩展器202a. . . h可以被配置为共享相同的SAS地址。在SAS规范下,这就 将SAS扩展器202a. . . h定义为单一扩展器。固件可以在每个SAS扩展器202a. . . h上运 行,因此SAS扩展器202a. . . h作为单一扩展器动作和响应。如图4所示,每个SAS扩展器 202a. h可以通过扩展器间链路(IEL)430-435连接到202a. . h中的每一个。IEL 430—435可以允许SAS扩展器202a. . . h通信并互相配合以作为单一扩展器动作和响应。IEL430-435 可以通过SAS管理协议(SMP)或其他通信方法,例如内部集成电路总线协议(12C)、增强并 行端口 (EPP)、以太网、共享存储器等,来进行通信。IEL 430-435可以允许IEL域420从主 交换域410被分区。在IEL430-435中,广播可以被无效以消除任何SAS规范不适应的循环 问题。可以在主交互域中完全隐藏IEL 430-435中使用的phy层(phys)。在SAS扩展器 202&..丄的主交换域中所使用的。1^层(phys)的编号可以被重新映射到单一的、逻辑编 号。IEL 430-435可以允许SAS扩展器的任何组合的失败,而保持任何操作的SAS扩展器 202a. . . h之间的连接。此外,所有输入端口 305-320和输出端口 205-244可以在小于每个 SAS扩展器202a... h故障的情况下,以减少的带宽维持连接。SMP目标处理可以由单一的、 结合的SAS扩展器200的单一主SAS扩展器执行。对单一的、结合的SAS扩展器200连接 请求可以通过IEL 430-435路由至该单一主SAS扩展器。SAS扩展器202a. . . h可以共享 SMP目标处理。 大体上参考图6,示出了组合多SAS扩展器的方法。例如,该方法可以实现如下所 述(以及在图1, 2A至2E, 3和4中所示)的连接和组合SAS扩展器的技术。该方法600可 以包括将第一 SAS扩展器的至少一个第一编号的phy和与第一 SAS扩展器物理独立的第 二SAS扩展器的至少一个第二编号的phy分组成至少一个共用SAS宽端口 602的步骤。例 如,分组成至少一个共用SAS宽端口 (205-244)可以包括分配相同的SAS地址给至少一个 共用宽端口 (205-244)。 该方法600可以进一步包括分配相同SAS地址给第一 SAS扩展器和第二 SAS扩展 器604的步骤。分配相同SAS地址给第一 SAS扩展器和第二 SAS扩展器可以允许第一 SAS 扩展器和第二 SAS扩展器作为单一的、结合的SAS扩展器200来动作和响应。所述分配可 以通过在第一 SAS扩展器和第二 SAS扩展器上执行的固件来执行。此外,第一 SAS扩展器 和第二 SAS扩展器的phy编号可以被重新映射以显示为单一的、结合的SAS扩展器的单一 的、逻辑排列的Phy编号。例如,第一 SAS扩展器的第一编号的phy可以重新映射为在单一 的、逻辑排列的编号的第一范围内,以及第二 SAS扩展器的第二编号的phy可以重新映射为 在单一的、逻辑排列编号的第二范围内。 该方法600还可以包括将第一 SAS扩展器直接连接到第二 SAS扩展器用于扩展 器间通信606的步骤。扩展器间通信可以使用SMP通信或其他通信方法,例如,内部集成电 路总线协议(12C)、增强并行端口 (EPP)、以太网、共享存储器等。在其他实施例中,用于扩 展器间通信(430-435)的第一SAS扩展器和第二SAS扩展器之间的连接可以通过第一SAS 扩展器的phy和第二 SAS扩展器的phy来执行。此外,用于扩展器间通信的第一 SAS扩展 器的phy和用于扩展器间通信的第二 SAS扩展器的phys可以在单一的、结合的SAS扩展器 的主交换域(410)中被隐藏。第一SAS扩展器的至少两个phy层(phys)和第二 SAS扩展 器的至少两个phy层(phys)可以用于第一SAS扩展器和第二SAS扩展器之间的扩展器间 通信。此外,如果单一的、结合的SAS扩展器中的至少一个SAS扩展器保持操作(例如诸 如在SAS扩展器故障期间),则所有共用SAS宽端口保持操作,所有共用SAS宽端口以减少 的带宽操作。 单一的、结合的SAS扩展器500可以配置为在单一的、结合的SAS扩展器内发生 内部链路故障时提供路径切换。参考图5以及如上所述,输入端口 502-508可以通过链路552a. . . d-558a. . . d连接到每个SAS扩展器202a. . . d。此外,输入端口 502-508可以是 SAS宽端口 。输出端口 510-516可以通过链路560a. . . d_566a. . . d连接到每个SAS扩展器 202a. ..d。此夕卜,输出端口 510-516可以是SAS宽端口。每个SAS扩展器202a. . . d可以通
过用于扩展器间通信的SAS扩展器端口彼此连接。如在单一的、结合的SAS扩展器500中 所示,SAS扩展器202c和输出端口 516之间的链路566b可能故障。例如,物理缺陷可能导 致链路566b故障。作为另一示例,链路566b可以由于逻辑问题而导致故障。
想要通过故障的链路566b发送的数据传输可以被重路由至连接到输出端口 516 的另一 SAS扩展器。该数据传输可以通过用于在SAS扩展器之间的扩展器间的通信的phy 层(phys)被重路由至另一SAS扩展器。如在单一的、结合的SAS扩展器500中所示的,SAS 扩展器202c和输出端口 516之间通过故障链路566b的数据传输可以通过扩展器间通信链 路434重路由通过SAS扩展器202d。从SAS扩展器202d,数据传输可以通过链路566c被 重路由到输出端口 516。因此,输出端口 516可以如原始期望的一样接收该数据传输,但是 可能在不同的Phy上接收该数据传输。此外,如果SAS扩展器202d已经具有至输出端口 516的已启用链路,则SAS扩展器202c可以使用调定进行中的判优(AIP)响应于该SAS发 起者,如同通过SMP提供的。SAS发起者可以在接收到来自SAS扩展器202c的AIP或开启 拒绝(OPEN REJECT)(重试)SMP响应之后一段时间尝试数据传输。 在本公开的另一方面,在SAS扩展器上执行固件可以重新编写SAS扩展器路由表 以重路由通过扩展器间链接(430-435)而不通过故障链路的连接。此外,连接到单一的、结 合的SAS扩展器的SAS发起者可以通过接收CHANGE图元来知道链路566b已经故障。SAS 发起者然后可以执行SAS发现,例如,如同通过SMP提供的。此外,SAS发起者可以注意到 与目标保持活跃连接的数量,以及可以仅启动和与目标保持活跃连接的数量相等数量的同 时数据传输。 大体上参考图7,示出了用于组合多个SAS扩展器以作为单一的、结合的SAS扩展 器时提供路径切换的方法。例如,该方法可以实现图5中所示的技术。在当前发明的当前 实施例中,方法700包括检测第一 SAS扩展器和装置702之间的故障链路的步骤。例如,检 测到的故障链路可能由于物理问题而故障。检测到的故障链路可能由于逻辑问题而故障。
方法700可以进一步包括步骤将通过故障链路连接到装置的第一 SAS扩展器的 数据传输重路由至通过起作用的链路连接到装置的第二 SAS扩展器704。例如,单一的、结 合的SAS扩展器的故障链路可能由于故障链路中的物理问题而故障。在另一示例中,故障 链路可能由于逻辑问题而故障。第一 SAS扩展器可以通过用于扩展器间通信的第一 SAS扩 展器的phy和第二SAS扩展器的phy层(phys)连接到第二SAS扩展器。在其他实施例中, 将通过故障链路连接到装置的第一 SAS扩展器的数据传输重路由至通过起作用的链路连 接到装置的第二SAS扩展器可以通过用于扩展器间通信的第一扩展器的phy层(phys)和 用于扩展器间通信的第二phy层(phys)扩展器的phy发生。在示例性实施例中,重路由数 据传输可以包括重新编写第一 SAS扩展器的路由表,以将来自故障内部链路的数据传输通 过用于扩展器间通信的第一 SAS扩展器的phy和用于扩展器间通信的第二 SAS扩展器的 phy重路由至之间的链路。例如,重新编写第一SAS扩展器的路由表可以通过在第一SAS扩 展器上执行的固件来执行。 将来自单一的、结合的SAS扩展器中的故障链路的数据传输通过扩展器间通信的链路重路由至第二SAS扩展器的步骤可以不通知连接到该单一的、结合的SAS扩展器的SAS 发起者和SAS目标发生这样的重路由。然而,如果第二SAS扩展器当前具有至装置的已启 用链路并且数据从故障链路重路由至第二 SAS扩展器,则通过故障链路连接到装置的第一 SAS扩展器可以用AIP响应来响应。在这样的情况下,接收到该AIP响应的SAS发起者可以 稍后重发数据传输。连接到单一的、结合的SAS扩展器的SAS发起者可以通过接收到CHANGE 图元而被告知故障。 一旦接收到CHANGE图元,SAS发起者可以执行SAS发现。例如,SMP提 供SAS发现,其包括SAS发现和SAS发现响应。 提供了SAS发起者指定数据连接结构800。参考图8, SAS发起者810可以通过SAS 宽端口 880连接到SAS扩展器820。 SAS扩展器830的至少一个phy层(phys)和SAS扩展 器840的至少一个phy层(phys)可以组合在共用SAS宽端口 890中。为了使SAS扩展器 830和SAS扩展器840作为单一的、结合的SAS扩展器操作,SAS扩展器830可以与SAS扩 展器840共享相同的SAS地址。SAS扩展器820可以通过共用SAS宽端口 890连接到SAS 扩展器830和SAS扩展器840。扩展器830也可以由通过SAS扩展器830的phy层(phys) 和SAS扩展器840的phy层(phys)的扩展器间通信直接连接到SAS扩展器840。 SAS扩展 器830和SAS扩展器840可以不作为单一的、结合的SAS扩展器操作,但是可以为级联结构。 多个SAS目标850-875可以通过SAS窄端口连接到SAS扩展器830和SAS扩展器840。 SAS 目标850-875的数量可以大于SAS扩展器830或SAS扩展器840上的phy层(phys)的数 量。例如,SAS目标850-875可以是硬盘阵列,例如简单磁盘捆绑(JBOD)SAS阵列。
SAS发起者810可以指定将被用来创建从SAS发起者810至SAS目标850-875之 一的数据连接的宽端口 880、890的线路。指定宽端口 880、890的线路可以用来公平控制, 其中宽端口 880、890的一些线路可以用来访问SAS目标850-875,以及宽端口 880、890的其 他线路可以用来经过至SAS结构的其他部分。SAS发起者810可以进一步指定连接请求的 OPEN帧内的线路。这样的OPEN帧可以通过SMP连接请求来提供。SAS发起者810可以通 过执行标准SAS发现处理而知道用于从SAS发起者810至SAS目标850-875之一的数据连 接的最优化线路。SAS扩展器830和SAS扩展器840,连同SAS目标850-875可以配置为使 用用于从SAS发起者810至SAS目标850-875之一的数据连接的最优化线路,通过SMP发 现响应来进行响应。在发起者810和SAS目标850-875之一之间的数据连接中的每个SAS 扩展器可以检测来自SAS发起者810的对允许的用于数据连接的线路的连接请求的OPEN 帧,并仅在这些指定的线路上进行数据连接。 大体上参考图9,示出了根据本公开的示例性实施例的用于指定用于在SAS域中 的在SAS发起者和SAS目标之间的数据连接的SAS宽端口的允许线路的方法。在本公开的 当前实施例中,方法900包括发现用于数据连接的至少一个SAS宽端口的最优线路的步骤 902。例如,SAS发起者810可以通过执行标准SAS发现处理来发现用于数据连接的最优线 路。此外,SMP发现响应可以被用来将用于数据连接的最优线路传递给SAS发起者810。
方法900还可以包括指定在SAS域的每个级别的SAS宽端口内的用于数据连接的 允许的线路的步骤904。例如,用于数据连接的允许线路可以通过SAS发起者连接请求来被 指定。用于数据连接的允许线路可以在SAS发起者连接请求的OPEN帧中被进一步指定。
方法900还可以包括检测为数据连接指定的允许线路的步骤906。例如,当SAS扩 展器(820-840)接收到SAS发起者连接请求的 帧时,SAS扩展器可以检测用于指定的用于数据连接的允许线路的OPEN帧。 方法900还可以包括创建指定的允许线路的数据连接的步骤908。例如,SAS扩展 器可以在指定的允许线路上创建数据连接。此外,SAS扩展器可以在检测对指定的允许线 路的SAS发起者连接请求的OPEN帧之后,创建数据连接。 提供了使用成对减法路由的SAS级联拓扑结构。为了使用成对减法路由,在SAS 拓扑结构1000中的SAS设备可参照经销商特有SMP函数。SAS发起者1002-1004可检查 SMP报告制作商信息的响应,如通过SMP提供的一样,来确定是否支持所述经销商特有SMP 函数。如果支持,则SAS发起者1002-1004可以使用经销商特有SMP函数来请求SAS扩展器 1010-1024的phy层的列表,其具有用于使用成对减法路由的修改的路由属性。例如,SAS 发起者1002-1004可发出SMP报告修改phy路由属性列表(REPORT MODIFIED PHY ROUTING ATTRIBUTELIST) i青求1100给SAS拓扑结构1000中SAS扩展器1010-1024中每一个。基 于接收的SMPSMP报告修改phy路由属性列表(REPORT MODIFIED PHY ROUTINGATTRIBUTE LIST)请求1100, SAS扩展器1010-1024中每一个可通过SMP报告修改phy路由属性列表 (REPORT MODIFIED PHY ROUTING ATTRIBUTE LIST)请求1120用带有已修改路由属性的phy 列表进行响应。在操作中,SMP报告修改phy路由属性列表(REPORT MODIFIED PHY ROUTING ATTRIBUTE LIST)请求1120可包括数个已修改路由描述符1140。已修改路由描述符1140 中的每一个可指定SAS扩展器1010-1024的单个phy和提供给单个phy的已修改路由属性 1160。例如,已修改路由属性1160可识别一 phy为自配置(SC)、表发起者仅输入(TIOI)或 表发起者仅输出(TIOO)中的一个。TIOI可识别仅带有所述phy路由表中列出的SAS发起 者的输入phy。 TIOO可识别仅带有所述phy路由表中列出的SAS发起者的输出phy。
如果SMP报告修改的phy路由属性列表响应1120识别用于该phy的已修改路由 属性1160,则SAS发起者1002-1004可以忽略用于由SMP发现响应提供的phy的路由属性。 在本公开的实施例中,经销商特有SMP函数可以仅报告修改的路由属性TIOI、 TIOO和SC。 SAS扩展器1010-1024可以具有多个端口,一些端口具有标准路由属性(D、S、T)以及一些 端口具有修改的路由属性(TIOI、TIOO、SC)。 SAS扩展器1010-1024可以被配置为具有被定义为输入(IN)和输出(OUT)对的主 减法端口 。减法端口的输入端口和输出端口都可以要求用于该端口的路由表中的SAS发起 者1002-1004的地址。此外,SAS扩展器可以添加用于直接连接装置的次级减法端口。例 如,如果OPEN的DEST如通过SMP所提供的不是直接连接装置(例如连接到具有D路由属 性的端口的装置),或者如果OPEN的DEST不在用于该输入端口的路由列表中,则在输入端 口接收到的OPEN可以被发送出用于该减法端口的输出端口 。例如,如果OPEN的DEST不是 直接连接装置(例如连接到具有D路由属性的端口的装置)或者如果OPEN的DEST不是在 用于该输出端口的列表中,则该输出端口上接收到的OPEN可以发送出用于该减法端口的 输入端口。修改的路由属性TIOI可以表示减法端口的输入端口。修改的路由属性TIOO可 以表示减法端口的输出端口 。 OPEN可以总是默认为主减法端口 。 SAS发起者1002-1004可以定位在级联SAS拓扑1000的顶部或底部。SAS发 起者1002-1004可以仅将他们自己的SAS地址编写入级联SAS拓扑1000的SAS扩展器 1010-1024的TIOI端口 1060和TIOO端口 1050的路由表。此夕卜,根据级联SAS拓扑1000 中的SAS发起者1002-1004的位置,SAS发起者1002-1004可以仅将他们自己的SAS地址编写入级联SAS拓扑1000的SAS扩展器1010-1024的TIOI端口 1060的路由表或TIOO端 口 1050的路由表。SAS扩展器1010-1024可以执行防止SAS发起者1002-1004在将地址编 写入SAS扩展器路由表(例如位置无关的路由表编写)时彼此伤害的固件。
SAS目标1070可以发布0PEN给SAS扩展器1010-1024之一。SAS扩展器1010-1024 之一可以在用于SAS扩展器1010-1024之一的路由表中定位OPEN的DEST地址。OPEN可以 被发送给由DEST地址指定的SAS发起者。在另一实施例中,SAS发起者1002-1004之一可 以发布OPEN至SAS扩展器1002-1004之一。SAS扩展器1002-1004之一可以首先在任何直 接连接的装置中搜索OPEN的DEST地址。如果找到,则OPEN被发送给适当的直接连接的装 置。如果OPEN的DEST地址没有在任何直接连接的装置中找到,则SAS扩展器1010-1024 之一然后可以在SAS扩展器路由表中搜索OPEN的DEST地址。如果找到,则OPEN被路由至 适当SAS发起者。如果OPEN的DEST地址不能在SAS扩展器路由表中找到,则SAS扩展器 1010-1024之一然后可以发送OPEN至其成对的减法端口 。 此外,为了在SAS级联拓扑1000中执行SAS分区,仅拓扑中的末端扩展器可能需 要检测。末端扩展器可以将用于直接连接的装置的phy的DEST和OPEN命令中的源区组进 行比较。该比较作为减法进行直到到达该区的末端装置扩展器。 大体上参考图12,示出了在SAS级联拓扑中执行成对减法路由的方法。方法1200 包括将输入端口分配给SAS扩展器装置的步骤1210。该方法1200可以进一步包括将输出 端口分配给SAS扩展器装置的步骤1220。在示例性实施例中,方法1200可以进一步包括将 输出端口和输入端口定义为彼此成对以作为成对的减法端口来操作的步骤1230。此外,方 法1200还可以包括将第二输入端口和第二输出端口添加到SAS扩展器装置的步骤。第二 输入端和第二输出端口可以彼此成对作为次级减法端口。 在示例性实施例中,方法1200可以进一步包括以下步骤如果OPEN命令的DEST 不是SAS扩展器装置的直接连接装置,并且DEST不在SAS扩展器装置的路由表中,则一旦 接收到进入输入端口的OPEN命令,就将OPEN命令发送出输出端口 1250。方法1200可以进 一步包括以下步骤如果OPEN命令的DEST不是SAS扩展器装置的直接连接装置,并且DEST 不在SAS扩展器装置的路由表中,则一旦接收到进入输出端口的OPEN命令,就将OPEN命令 发送出输入端口 1260。此外,如果OPEN命令的DEST不是SAS扩展器装置的直接连接装置, 并且DEST不在SAS扩展器装置的路由表中,则一旦接收到进入输入端口的OPEN命令,就将 OPEN命令发送出输出端口 1250。方法1200可以进一步包括以下步骤如果OPEN命令的 DEST不是SAS扩展器装置的直接连接装置,并且DEST不是在SAS扩展器装置的路由表中, 则一旦接收到进入第二输出端口的OPEN命令,就将OPEN命令发送出第二输入端口 。方法 1200可以进一步包括以下步骤如果OPEN命令的DEST不是SAS扩展器装置的直接连接装 置,并且DEST不是在SAS扩展器装置的路由表中,则一旦接收到进入第二输入端口的OPEN 命令,就将OPEN命令发送出第二输出端口 。进一步地,次级减法端口可用于与SAS扩展器 装置的直接连接装置的通信进行操作。此外,OPEN命令可以默认为主减法端口。
在示例性实施例中,方法1200可以进一步包括通过经销商特有SMP函数的修改 的路由属性指定SAS扩展器的减法端口的步骤。进一步,SAS发起者可以忽略减法端口的 SMP发现响应属性,并可以在存在用于减法端口的修改的路由属性的情况下,使用经销商特 有SMP的修改路由属性。
在示例性实施例中,方法1200可以进一步包括仅编写SAS扩展器的路由表中的 SAS发起者地址的步骤1240。例如,仅编写SAS扩展器的路由表中的SAS发起者地址的步 骤1240可以由SAS扩展器执行。此外,由SAS扩展器编写的SAS扩展器的路由表可以是用 于自配置指定端口的路由表。仅编写SAS扩展器的路由表中的SAS发起者地址的步骤1240 可以通过SAS路由拓扑中的每个SAS发起者执行,每个SAS发起者仅编写在该SAS扩展器 的路由表中的SAS发起者的SAS地址。此外,每个SAS发起者可以仅编写一种类型的SAS 扩展器的修改路由属性端口的路由表中的SAS发起者的SAS地址。该种类型的SAS扩展器 的修改路由属性端口可以通过SAS路由拓扑中的SAS发起者的位置指定。SAS发起者可以 定位在SAS路由拓扑的顶部或底部。 在本公开中,所公开的方法可以实现为装置可读的指令集或软件。这样的软件可
以是计算机程序产品,其采用计算机可读存储介质,包括用来为计算机编程以执行本发明
所公开的功能和过程的所存储的计算机代码。计算机可读介质包括但不限于如何类型的传
统软盘、光盘、CD-ROM、磁盘、硬盘驱动器、磁光盘、ROM、 RAM、 EPROM、 EEPROM、磁或光卡、或任
何用于存储电子指令的适当介质。此外,应该理解,所公开的方法中的步骤的特定顺序或层
次是示例性方法的示例。基于设计优选,应该理解在该方法中的步骤的特定顺序或层次可
以被重新布置,而仍保持在所公开的主题内容的范围内。所附的方法权利要求以示例顺序
呈现了各种步骤的要素,并且不必然意味着限制于所呈现的特定顺序或层次。 确信本公开和其伴随的优点将通过上述描述而能够被理解,并且在不背离本公开
的主题内容或不牺牲其所有材料优点的情况下,显然可以对部件的形式、结构和布置进行
各种修改。所描述的形式仅是示例性的,并且下面的权利要求旨在包括和包含这些改变。
权利要求
一种在组合多个串行连接小型计算机系统接口(SAS)扩展器以作为单一的、结合的SAS扩展器时提供路径故障切换的方法,包括检测一第一SAS扩展器和一设备之间的一故障链路;和将通过所述故障链路连接到所述设备的所述第一SAS扩展器的一数据传输重路由到通过一有效链路连接到所述设备的一第二SAS扩展器,其中所述第一SAS扩展器通过用于扩展器间通信的所述第一SAS扩展器的phy层(phys)和所述第二SAS扩展器的phy层(phys)连接到所述第二SAS扩展器。
2. 根据权利要求1所述的方法,其中,所述检测一第一SAS扩展器和一设备之间的一故 障链路进一步包括检测由于至少一个物理或逻辑问题导致的一第一 SAS扩展器和一设备之间的一故障 链路。
3. 根据权利要求1所述的方法,其中,所述将通过所述故障链路连接到所述设备的所 述第一 SAS扩展器的一数据传输重路由到通过一有效链路连接到所述设备的一第二 SAS 扩展器,其中所述第一 SAS扩展器通过用于扩展器间通信的所述第一 SAS扩展器的phy层 (phys)和所述第二 SAS扩展器的phy层(phys)连接到所述第二 SAS扩展器进一步包括将连接到所述设备的所述第一 SAS扩展器的一数据传输重路由到通过一有效链路连 接到所述设备的第二 SAS扩展器,所述有效链路经过用于扩展器间通信的所述第一 SAS扩 展器的phy层(phys)和用于扩展器间通信的所述第二 SAS扩展器的phy层(phys)。
4. 根据权利要求1所述的方法,其中,所述将通过所述故障链路连接到所述设备的所 述第一 SAS扩展器的一数据传输重路由到通过一有效链路连接到所述设备的一第二 SAS 扩展器,其中所述第一 SAS扩展器通过用于扩展器间通信的所述第一 SAS扩展器的phy层 (phys)和所述第二 SAS扩展器的phy层(phys)连接到所述第二 SAS扩展器进一步包括重新编写所述第一SAS扩展器的一路由表以将来自所述故障内部链路的所述数据传 输重路由到用于扩展器间通信的所述第一SAS扩展器的phy层(phys)和用于扩展器间通 信的所述第二 SAS扩展器的phy层(phys)之间的所述链路。
5. 根据权利要求4所述的方法,其中,所述重新编写所述第一SAS扩展器的一路由表以 将来自所述故障内部链路的所述数据传输重路由到用于扩展器间通信的所述第一SAS扩 展器的phy层(phys)和用于扩展器间通信的所述第二SAS扩展器的phy层(phys)之间的 所述链路进一步包括重新编写所述第一SAS扩展器的一路由表以将来自所述故障内部链路的所述数据传 输重路由到用于扩展器间通信的所述第一SAS扩展器的所述phy层(phys)和用于扩展器 间通信的所述第二 SAS扩展器的所述phy层(phys)之间的所述链路,其中所述重新编写通过所述第一 SAS扩展器上的固件执行。
6. 根据权利要求1所述的方法,其中,所述将通过所述故障链路连接到所述设备的所 述第一SAS扩展器的一数据传输重路由到通过一有效链路连接到所述设备的一第二SAS 扩展器,其中所述第一 SAS扩展器通过用于扩展器间通信的所述第一 SAS扩展器的phy层 (phys)和所述第二 SAS扩展器的phy层(phys)连接到所述第二 SAS扩展器不指示给连接 至所述单一的、结合的SAS扩展器的SAS发起者和SAS目标这样的重路由正在发生。
7. 根据权利要求1所述的方法,其中,所述将通过所述故障链路连接到所述设备的所述第一 SAS扩展器的一数据传输重路由到通过一有效链路连接到所述设备的一第二 SAS 扩展器,其中所述第一 SAS扩展器通过用于扩展器间通信的所述第一 SAS扩展器的phy层 (phys)和所述第二 SAS扩展器的phy层(phys)连接到所述第二 SAS扩展器进一步包括 如果通过一有效内部链路连接到所述设备的所述第二 SAS扩展器已具有到所述设备 的一已启用链路,所述通过故障内部链路连接到所述设备的所述第一SAS扩展器则回复一 判优调定正在进行的应答。
8. 根据权利要求7所述的方法,其中,所述如果通过一有效内部链路连接到所述设备 的所述第二 SAS扩展器已具有到所述设备的一已启用链路,所述通过故障内部链路连接到 所述设备的所述第一 SAS扩展器则回复一判优调定正在进行的应答进一步包括在一稍后时间通过请求所述重路由的数据传输的一SAS发起者重试重路由的数据传 输并接收所述判优调定正在进行的应答。
9. 根据权利要求1所述的方法,进一步包括其中连接到所述单一的、结合的SAS扩展器的一 SAS发起者通过接收一 CHANGE图元接 收一所述故障链路存在的通知。
10. 根据权利要求9所述的方法,其中,连接到所述单一的、结合的SAS扩展器的一 SAS 发起者一旦接收到所述CHANGE图元,则执行一 SAS发现。
11. 一种系统,包括装置,其用于组合多个SAS扩展器以用作一单一的、结合的SAS扩展器; 装置,其用于检测一第一 SAS扩展器和一设备之间的一故障链路;禾口 装置,其用于将通过所述故障链路连接到所述设备的所述第一 SAS扩展器的一数据传 输重路由到通过一有效链路连接到所述设备的一第二 SAS扩展器,其中所述第一 SAS扩展 器通过用于扩展器间通信的所述第一 SAS扩展器的phy层(phys)和所述第二 SAS扩展器 的Phy层(phys)连接到所述第二 SAS扩展器。
12. 根据权利要求ll所述的系统,其中,用于检测一第一SAS扩展器和一设备之间的一 故障链路的所述装置进一步包括装置,其用于检测由于至少一个物理或逻辑问题导致的一第一SAS扩展器和一设备之 间的一故障链路。
13. 根据权利要求11所述的系统,其中,用于将通过所述故障链路连接到所述设备的 所述第一 SAS扩展器的一数据传输重路由到通过一有效链路连接到所述设备的一第二 SAS 扩展器,其中所述第一 SAS扩展器通过用于扩展器间通信的所述第一 SAS扩展器的phy层 (phys)和所述第二 SAS扩展器的phy层(phys)连接到所述第二 SAS扩展器的装置进一步 包括装置,其用于将连接到所述设备的所述第一SAS扩展器的一数据传输重路由到通过 一有效链路连接到所述设备的第二 SAS扩展器,所述有效链路经过用于扩展器间通信的所 述第一 SAS扩展器的phy层(phys)和用于扩展器间通信的所述第二 SAS扩展器的phy层 (phys)。
14. 根据权利要求11所述的系统,其中,用于将通过所述故障链路连接到所述设备的 所述第一 SAS扩展器的一数据传输重路由到通过一有效链路连接到所述设备的一第二 SAS 扩展器,其中所述第一 SAS扩展器通过用于扩展器间通信的所述第一 SAS扩展器的phy层(phys)和所述第二 SAS扩展器的phy层(phys)连接到所述第二 SAS扩展器的装置进一步 包括装置,其用于重新编写所述第一SAS扩展器的一路由表以将来自所述故障内部链路的 所述数据传输重路由到用于扩展器间通信的所述第一SAS扩展器的phy层(phys)和用于 扩展器间通信的所述第二SAS扩展器的phy层(phys)之间的所述链路。
15. 根据权利要求11所述的系统,其中,所述用于将通过所述故障链路连接到所述设 备的所述第一 SAS扩展器的一数据传输重路由到通过一有效链路连接到所述设备的一第 二 SAS扩展器,其中所述第一 SAS扩展器通过用于扩展器间通信的所述第一 SAS扩展器的 phy层(phys)和所述第二 SAS扩展器的phy层(phys)连接到所述第二 SAS扩展器的装置 不指示给连接至所述单一的、结合的SAS扩展器的SAS发起者和SAS目标这样的重路由正 在发生。
16. 根据权利要求11所述的系统,其中,所述用于将通过所述故障链路连接到所述设 备的所述第一 SAS扩展器的一数据传输重路由到通过一有效链路连接到所述设备的一第 二 SAS扩展器,其中所述第一 SAS扩展器通过用于扩展器间通信的所述第一 SAS扩展器的 phy层(phys)和所述第二 SAS扩展器的phy层(phys)连接到所述第二 SAS扩展器的装置 进一步包括装置,其用于如果通过一有效内部链路连接到所述设备的所述第二 SAS扩展器已具有 到所述设备的一已启用链路,所述通过所述故障内部链路连接到所述设备的所述第一SAS 扩展器则回复一判优调定正在进行的应答。
17. 根据权利要求16所述的系统,其中,用于如果通过一有效内部链路连接到所述设 备的所述第二 SAS扩展器已具有到所述设备的一已启用链路,所述通过所述故障内部链路 连接到所述设备的所述第一 SAS扩展器则回复一判优调定正在进行的应答进一步包括装置,其用于在一稍后时间通过请求所述重路由的数据传输的一 SAS发起者重试重路 由的数据传输并接收所述判优调定正在进行的应答。
18. 根据权利要求ll所述的系统,进一步包括装置,其用于连接到所述单一的、结合的SAS扩展器的一SAS发起者通过接收一CHANGE 图元接收一所述故障链路存在的通知。
19. 根据权利要求18所述的系统,进一步包括装置,其用于连接到所述单一的、结合的SAS扩展器的一 SAS发起者一旦接收到所述 CHANGE图元,则执行一 SAS发现。
20. —种具有计算机可执行指令的计算机可读介质,其用于执行在组合多个串行连接 小型计算机系统接口 (SAS)扩展器以用作单一的、结合的SAS扩展器时提供路径故障切换 的方法,所述方法包括检测一第一 SAS扩展器和一设备之间的一故障链路;禾口将通过所述故障链路连接到所述设备的所述第一 SAS扩展器的一数据传输重路由到 通过一有效链路连接到所述设备的一第二 SAS扩展器,其中所述第一 SAS扩展器通过用于 扩展器间通信的所述第一 SAS扩展器的phy层(phys)和所述第二 SAS扩展器的phy层 (phys)连接到所述第二 SAS扩展器。
全文摘要
组合多个SAS扩展器应用时提供路径故障切换的方法,包括检测一第一SAS扩展器和一设备之间的一故障链路;和将通过所述故障链路连接到所述设备的所述第一SAS扩展器的一数据传输重路由到通过一有效链路连接到所述设备的一第二SAS扩展器,其中所述第一SAS扩展器通过用于扩展器间通信的所述第一SAS扩展器的phys和所述第二SAS扩展器的phys连接到所述第二SAS扩展器。
文档编号G06F3/06GK101719049SQ20091016223
公开日2010年6月2日 申请日期2009年7月30日 优先权日2008年9月5日
发明者克里斯托弗·麦卡迪, 史蒂芬·B·约翰逊 申请人:Lsi公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1