Sas区域组权限表版本标识符的制作方法

文档序号:6453849阅读:235来源:国知局
专利名称:Sas区域组权限表版本标识符的制作方法
技术领域
本发明一般涉及串行连接SCST ("SAS")域,具体来说,涉及 使用区域組权限表版本标识符来管理SAS域的区域组权限表的设备 和方法。
背景技术
小型计算机系统接口 ( "SCSI")是美国国家标准协会("ANSI") 标准电子接口规范,允许,例如,计算机与外围硬件进行通信。常见 的SCSI兼容外围设备可以包括存储设备,如磁盘驱动器、磁带驱动 器、CD驱动器("CD-ROM"、 "CD-RW,,等等),DVD驱动器、存 储子系统、打印机和扫描仪。最初创建的SCSI包括了命令/响应数
据结构规范和针对设备的连接的并行总线结构的接口和协议标准。
SCSI是从仅仅用于并行接口发展而来的,包括了并行和串行接口两 种。"SCSI"现在一般被理解为是指通信传输介质(并行总线结构和各
种串行传输)或者对大多数设备通用的命令子集和满足特定设备类型 的需要的命令集,以及各种接口标准和协议。
SCSI接口传输和命令也用于将存储设备的网络与处理设备互 连起来。例如,在这样的网络中可以使用诸如SAS以及串行高级技 术附件("SATA,,)协议交换之类的串行SCSI传输介质和协议。这 些应用经常简称为存储网络。所属领域的技术人员熟悉SAS和 SATA标准以及其他SCSI相关的规范和标准。有关这样的接口和 命令的信息一般可从网站www.tl0.org和www.U3.org获得。
这样的SCSI存储网络经常用于大容量存储系统中,这些系统 具有存储了机构和/或企业的数据的多个磁盘驱动器。网络体系结构允 许存储设备在一个企业内在物理上是分散的,而继续直接支持SCSI
命令。此体系结构允许将存储器組件分布在一个企业内,无需在将来
自SCSI命令的存储请求转换为其他网络命令然后转换回较低级别 的SCSI存储相关的命令时的额外开销。
SAS网络通常包括常常通过一个或多个SAS扩展器连接到一 个或多个SAS目标的一个或多个SAS启动器。 一般而言,如在所 有SCSI通信中常见的,SAS启动器启动与SAS目标的通信。扩 展器扩展SAS网络域的用于将SAS启动器和SAS目标(统称为 SAS设备或SAS设备控制器)进行互连的端口的数量。
一般而言,SAS启动器通过SAS域中的一个或多个SAS扩展 器的端口将信息定向到SAS目标设备。术语"端口"在SAS中是一 个逻辑概念。端口可以包括SAS域中的一个或多个物理链路。在 SAS域的术语中,这样的物理链路常常被称为PHY。端口可以使用 单一 PHY,或者,如果端口被配置为宽端口,可以使用在逻辑上分 组的多个PHY,以提供较高的带宽。
在SAS标准中定义了各种协议,每一个协议都对与特定类型的 设备和/或特定的应用进行通信有用。串行SCSI协议("SSP")提供 支持多个启动器和目标的SCSI交换的映射。SATA隧道协议 ("STP")提供了扩展的SATA的映射,以支持多个启动器和目标。 串行管理协议("SMP")提供管理协议。每一个协议都定义了交换的 层,包括,例如,应用程序层处理、传输层处理,以及链路层处理。 例如, 一般而言,STP用于与连接到SAS域的SATA设备进行通 信。STP启动器(例如,主机系统或SAS扩展器)使用STP链路 层与STP目标(例如,SATA存储设备)交换信息。STP链路层一 般将SATA相关的交换和流控制封装为SAS域交换。例如,SSP用 于与连接到SAS域的SCSI设备进行通信。SSP启动器使用SSP 链路层、传输层等等与SSP目标交换信息。
SAS规范目前支持SAS域内的分区功能。SAS分区扩展器(例 如,具有分区功能的SAS扩展器)可以控制特定的PHY是否被允 许参与到与另一个特定PHY的连接中。这会控制通过PHY连接到
SAS分区扩展器的两个SAS设备是否能够进行通信。这对于共享多 个服务器之中的存储资源很重要,并确保了每一个服务器都被阻止连 接到其他服务器和其他服务器的关联的存储设备。给SAS分区扩展 器和PHY分配了区域组。如此,当SAS交换被通过SAS分区扩 展器路由时,SAS分区扩展器可以验证PHY(例如,连接到PHY的 SAS设备)是否被允许参与连接。此外,如果PHY不被允许参与 连接,则SAS分区扩展器可以拒绝连接。
SAS域可以另外包括区域管理器,该管理器向能够参与SAS 域内的连接的PHY分配区域组。区域管理器可以是一个应用程序, 与SAS域的组件进行交互,以管理SAS域的权限设置。SAS域中 的每个PHY,以及连接到该PHY的关联的SAS设备,可以分配 给一个区域组。根据目前实施的SAS规范,最多可有128个可能的 区域組。
为有助于分区,每一个SAS分区扩展器都存储了一个区域组权 限表,该表基于它们的区域组,控制在多个PHY之间是否允许连接。 区域组权限表的用途是供每一个SAS分区扩展器查询与源和目的地 SAS地址关联的区域组,以查看它们是否具有彼此进行连接的权限。 如果区域组权限表表明允许在源端口的区域组和目标端口的区域组 之间允许进行访问,则允许两个PHY之间的请求的连接。否则,拒 绝连接,并生成错误。
为使分区正确地进行,SAS域内的所有SAS分区扩展器都应 该具有相同的区域組权限表。否则, 一个SAS分区扩展器可能允许 基于SAS域的分区权限应该被拒绝的连接。如此,在SAS域内提 供了分区监控程序,该监控程序能够生成SMP命令,用于SAS分 区配置和管理。分区监控程序可以是其中一个SAS分区扩展器,也 可以是连接到SAS域的设备。其中一个SAS分区扩展器可以基于 在拓朴中具有最大的SAS地址被选为SAS分区扩展器监控程序。 SAS分区扩展器监控程序负责将区域权限表变化传播到SAS域中 的所有SAS分区扩展器。监控程序的用途是确保所有其他SAS分
区扩展器使用相同的区域组权限表,并协调SAS域内的区域组权限 表的更新。
为确保所有SAS分区扩展器使用相同的区域组权限表,监控程 序必须检索每一个SAS分区扩展器的区域组权限表(例如,使用 SMP报告区域权限请求),并将检索到的区域组权限表与监控程序 内的当前版本进行比较,以判断每一个SAS分区扩展器是否使用相 同的当前区域组权限表。区域表在逻辑上的结构为128个区域xl28 个区域的矩阵,其中,每一个元素都标识行的对应的区域组是否可以 与列的对应的区域组进行连接。如此,监控程序从每一个其他SAS分 区扩展器读取区域权限表的过程需要从每一个SAS分区扩展器向监 控程序传输(至少)128 x 128位区域组权限表。另外,监控程序必
进行比较,以判断所有SAS分区扩展器是否使用相同的区^组权限 表。如果有任何不同的区域组权限表的话,那么,监控程序需要更新 SAS分区扩展器上的那个不同的区域组权限表(例如,使用SMP配 置区域权限请求)。
问题是,必须至少在每次新的SAS分区扩展器被选为监控程序 时,或者,当SAS分区扩展器在测试情况下被复位时,执行此过程。 也可以在发现时以及当对SAS域的区域组权限表进行更改时,执行 该过程。该过程速度慢,并消耗许多资源。在当前SAS区域管理中 还没有用来判断哪一个区域组权限表是最新的机制。在SAS域内有 多个相互冲突的区域组权限表的情况下,没有信息可用来选择哪 一 个 区域组权限表以用来解决沖突。这会导致不正确分区,以及服务器安 全性问题。SAS分区扩展器不能确保区域组权限表是当前的。最后, 分区配置和同步过程会使整个SAS域发现和表路由配置过程减慢, 因为I/O目前不被允许流过SAS域,直到区域組权限表在每一个 SAS分区扩展器上都相同。
从上文的讨论可以看出,需要改善用于管理SAS域的区域组权 限表的结构和方法。

发明内容
本发明通过提供使用版本标识符来管理区域组权限表的设备和 方法,解决了上面的及其他问题,从而提高了工艺。根据这里的特征
和方面,SAS域的区域组权限表与版本标识符关联,指出了区域组权 限表的版本。SAS分区扩展器监控程序不再需要从另一个SAS分区 扩展器检索区域组权限表,也不再需要执行比较操作来判断SAS分 区扩展器的区域组权限表是否是当前的。相反,可以使用版本标识符 来判断区域组权限表是否是当前的。
版本标识符比整个区域组权限表更小,因此,从计算角度来看消 耗的资源不太多。紧凑的版本标识符可以以现有的通信的参数(即, SMP响应帧的字段)在两个SAS分区扩展器之间交换。此外,版 本标识符还提供了校验和之类的手段,用于判断特定的区域组权限表 是否已经损坏。未来,如果由SAS规范支持的区域组的数量发生变 化(例如,增大到256或512),那么,当前的传输和比较过程将 变得更加消耗资源,需要更多的带宽和处理时间。万一未来由SAS规 范支持的区域組的数量增大,版本标识符在带宽和计算资源方面更加 有利。此外,在SAS域内存储的区域组权限表相互冲突的情况下, 版本标识符通过指出多个区域组权限表中的哪一个是最新的,提供了 解决冲突的机制。
这里的一个方面提供了用于管理串行连接SCSI (SAS)域的区 域组权限表的方法。该方法包括将版本标识符与SAS域的区域组权 限表关联。该方法进一步包括基于与区域组权限表关联的版本标识 符,判断区域組权限表是否是当前的。
这里的另一个方面提供了用于管理SAS域的区域組权限表的 方法。该方法包括将SAS域的区域组权限表的版本标识符存储在第 一 SAS分区扩展器上。该方法进一步包括与第二 SAS分区扩展器 交换版本标识符,以判断第一 SAS分区扩展器和第二 SAS分区扩 展器是否存储了相同的区域组权限表。
这里的另一个方面提供了增强的SAS分区扩展器,用于改善区 域权限表管理。SAS分区扩展器包括SAS域的区域组权限表。SAS 分区扩展器进一步包括与区域组权限表关联的版本标识符。版本标识 符标识区域组权限表的版本。SAS分区扩展器进一步包括用于基于与 区域组权限表关联的版本标识符判断区域组权限表是否是当前的控 制器。


在所有附图上,相同的附图标记代表相同的或类似的元件。
图1是实现了这里的特征和方面的用于使用版本标识符提供对 区域组权限表的管理的示范性SAS域的方框图。
图2是描述了根据这里的特征和方面的用于提供SAS域的区 域组权限表的管理的示范性方法的流程图。
图3是描述了图2的方法的各个方面的示范性其他细节的流程图。
图4是描述了根据这里的特征和方面的用于提供SAS域的区 域组权限表的管理的另 一个示范性方法的流程图。
图5是描述了根据这里的特征和方面的用于提供SAS域的区 域組权限表的管理的另一个示范性方法的流程图。
图6-8是描述了图2的方法的各个方面的示范性其他细节的 流程图。
图9是描述了根据这里的特征和方面的用于提供SAS域的区 域組权限表的管理的另 一个示范性方法的流程图。
图10是描述了图9的方法的各个方面的示范性其他细节的流程图。
具体实施例方式
图1是显示了实现了这里的特征和方面的示范性SAS域100 的方框图。SAS域100包括多个SAS分区扩展器105、 140和
"0。每一个SAS分区扩展器105、 140和150都连接到其他SAS 分区扩展器中的一个或多个,以在SAS启动器设备和SAS目标设 备之间路由SAS交换。每一个SAS分区扩展器105、 140和150 都另外连接到一个或多个SAS设备132、 134、 136、 142、 144、 152 和154。 SAS设备可以包括SAS启动器、SAS目标和SAS启动器 /目标。SAS域的每个SAS设备和SAS分区扩展器都具有一个或多 个物理链路层,被称为PHY。通过SAS设备的关联的PHY,在两 个或更多SAS设备之间建立连接。可以通过一个或多个SAS分区 扩展器在SAS设备之间路由连接。
SAS分区扩展器105、 140和150可以包括SAS扩展器,SAS 扩展器根据SAS规范启用了分区功能,利用这里的特征和方面进行 了增强。可以给SAS分区扩展器的PHY分配对应的区域组,可以 给连接到SAS分区扩展器的PHY的任何SAS设备分配相同的 SAS区域组。
显示的SAS分区扩展器105包括具有关联的版本标识符115 的区域組权限表110。区域组权限表110存储了有关SAS域100 的一个区域组与另一个区域组进行通信的权限的信息。给分区扩展器 (例如,分区扩展器105)的一个或多个PHY分配一个区域组。如 此,连接到SAS设备132的SAS分区扩展器105的PHY可以 包括一个区域组,而连接到SAS设备134的PHY可以包括另一 个区域组。同样,连接到SAS设备132和134的SAS分区扩展 器105的两个PHY可以只包括一个区域组。
SAS分区扩展器105使用区域组权限表110来判断一个区域 组的特定PHY是否具有与另一个区域組的PHY进行通信的权限。 版本标识符115标识区域组权限表110的版本。版本标识符115 可以包括,例如,时间戳、具有顺序特性的标识符(例如,数字、字 母或其他序数值)、校验和、始发区域组权限表110的区域管理器 的地址、可以用来区别区域组权限表110的两个不同的版本的全局 唯一标识号码或任何其他类型的标识符。SAS分区扩展器105另外
包括根据这里的特征和方面增强的控制器120,以便使用版本标识符 115对区域组权限表110进行管理。SAS分区扩展器140和150 可以配置以类似于SAS分区扩展器105,每一个SAS分区扩展器 都包括控制器、SAS区域组权限表和版本标识符。SAS分区扩展器 105、 140和150可以包括对所属领域的技术人员已知的其他元件, 为了本讨论简洁起见,未显示。
SAS规范要求,为使分区正确地进行,SAS域内的所有SAS分 区扩展器都需要利用相同的区域组权限表。如此,如果至少一个SAS 分区扩展器与另一个SAS分区扩展器使用不同的区域组权限表,那 么,在SAS交换可以在每一个SAS分区扩展器的PHY之间继续 进行之前,所有SAS分区扩展器都需要使它们的区域组权限表同步。 当使所有SAS分区扩展器的区域组权限表同步时,所有SAS分区 扩展器都应该存储SAS域的区域组权限表的当前版本。如此,SAS 分区扩展器应该始终能够判断其存储的区域组权限表是否是SAS域 的当前的区域组权限表。
图2是显示了根据这里的特征和方面的用于管理SAS域的区 域组权限表的示范性方法的流程图。元件202将版本标识符与SAS 域的区域组权限表关联。例如,SAS域的区域组权限表可以存储在 SAS分区扩展器上。当区域组权限表首次存储到SAS域的SAS分 区扩展器上时,版本标识符可以与区域組权限表关联。区域组权限表 可以作为SMP配置区域权限请求的一部分,存储在SAS分区扩展 器上。该请求可以包括在SAS分区扩展器上配置的区域組权限表的 关联的版本标识符。 一旦SAS分区扩展器接收到了该请求,SAS分 区扩展器可以存储区域组权限表(例如,区域组权限表110)和关联 的版本标识符(例如,版本标识符115)两者,以备将来在SAS域 内的操作过程中使用。
元件204用于基于与区域组权限表关联的版本标识符判断区域 组权限表是否是当前的。例如,可以由第一 SAS分区扩展器从第二 SAS分区扩展器接收SAS域的区域组权限表的当前版本的当前版
本标识符。可以将第二 SAS分区扩展器的当前版本标识符与第一 SAS分区扩展器的版本标识符进行比较,以判断第一 SAS分区扩展 器的区域组权限表是否是当前的。
如果元件204判断SAS域的区域组权限表是当前的,那么, 元件206恢复正常的处理。
否则,如果元件204判断区域组权限表不是当前的,那么,元 件208将区域组权限表更新为当前版本。例如,存储了 SAS域的不 是当前的区域组权限表的SAS分区扩展器可以查询另一个设备(例 如,SAS分区扩展器监控程序),以存储SAS域的区域组权限表的 当前版本。然后,SAS分区扩展器可以更新区域组权限表,以对应于 从SAS分区扩展器监控程序接收的当前版本。
通过使用这里的特征和方面,SAS设备(例如,SAS分区扩展 器)可以使用两个版本标识符的单一比较,判断区域组权限表是否是 当前的,而不是通过比较两个区域组权限表的内容来判断两个区域组 权限表的每一个值是否相同。这会消除将整个区域组权限表从SAS 分区扩展器传输到SAS分区扩展器监控程序的过程,而该过程会消 耗SAS域的带宽。另外,这还会消除SAS分区扩展器监控程序需 要执行的集中的比较来判断SAS分区扩展器是否使用当前的区域組 权限表的过程。相反地,根据这里的特征和方面,SAS分区扩展器或 任何其他SAS设备或组件(例如,SAS区域管理器)可以无需SAS 分区扩展器监控程序的帮助即可判断其区域组权限表是否是当前的。
图3提供了这里的特征和方面的示范性实施例的允许SAS分 区扩展器判断其区域組权限表是否与另一个SAS设备(例如,另一 个SAS分区扩展器)的区域组权限表相同的补充细节。图3提供了 图2元件204的处理过程的额外的示范性细节。正如上文所指出的 那样,元件204 —般用于判断区域组权限表是否是当前的。如果两 个SAS分区扩展器使用不同的区域组权限表,那么,至少一个区域 组权限表不是SAS域的当前的。通过使用两个SAS分区扩展器的 版本标识符的特性, 一个或两者SAS分区扩展器可以判断两个不同
的区域组权限表中的哪一个是区域组权限表的最近的版本或当前版 本。
元件302在存储了区域组权限表的SAS分区扩展器内操作, 从第二 SAS分区扩展器接收被接收的版本标识符。第二 SAS分区 扩展器可以存储已存储的区域组权限表,接收的版本标识符可以标识 第二 SAS分区扩展器的已存储的区域组权限表的版本。接收的版本 标识符被SAS分区扩展器用来判断其自己的区域组权限表是否相 同。
元件304用于将来自第二 SAS分区扩展器的接收的版本标识 符同与SAS分区扩展器的区域组权限表关联的版本标识符进行比 较。通过将该版本标识符与接收的版本标识符进行比较,SAS分区扩 展器可以判断其区域组权限表的版本标识符是否与SAS设备的接收 的版本标识符相同。如果两种版本标识符不同,那么,SAS设备和 SAS分区扩展器使用的是不同的区域组权限表,至少 一个区域组权限 表不是当前的。
版本标识符和接收的版本标识符可以另外包括在SAS域的两 个设备(例如,SAS分区扩展器)之间交换的校验和。校验和可以在 两个SAS分区扩展器之间进行交换,以判断两个SAS分区扩展器 的区域组权限表是否相同。也可以通过校验和的比较来判断区域组权
限表中的一个或两个判断损坏或不完整。
图3中所描述的方法可以利用SAS域的现有资源和通信。例 如,SAS分区扩展器可以在一般性SMP报告和SMP发现请求和 响应中交换版本标识符。 一般性SMP报告和SMP发现请求和响应 由SAS规范进行定义,并由一个SAS组件(例如,SAS分区扩展 器)用来确定有关另一个SAS组件(例如,另一个SAS分区扩展 器)的信息。例如,可以在SAS设备或SAS分区扩展器之间的任 何请求和响应通信的供应商唯一字段中交换版本标识符。如此,SAS 分区扩展器可以在发现过程中,以及在普通管理操作过程中,判断其 区域组权限表是否与其他SAS分区扩展器的区域组权限表相同。此 比较过程确保了所有SAS分区扩展器的区域组权限表都是当前的, 因为,如果有任何两个SAS分区扩展器具有不同的区域组权限表的 话,那么,至少一个不会是当前的,可以使用校正操作来更新那个不 是当前的区域组权限表。
图4是允许SAS分区扩展器判断其区域组权限表与另一个 SAS设备(例如,SAS分区扩展器)的区域组权限表相比是否是当 前的另一个示范性方法的流程图。
元件402用于从正在传输的SAS分区扩展器接收被接收的版 本标识符。正在传输的SAS分区扩展器可以存储已存储的区域组权 限表,接收的版本标识符可以标识正在传输的SAS分区扩展器的已 存储的区域组权限表的版本。接收的版本标识符被正在接收的SAS 分区扩展器用来判断其自己的区域组权限表是否相同。
元件404被正在接收的SAS分区扩展器用来判断正在传输的 SAS分区扩展器的已存储的区域组权限表是否是当前的。元件404 用于将来自正在传输的SAS分区扩展器的接收的版本标识符与正在 接收的SAS分区扩展器的版本标识符进行比较,以判断哪一个是最 近的给定版本标识符和接收的版本标识符的特征。
如果版本标识符和接收的版本标识符具有顺序特征,如时间戳或 版本号,那么,正在接收的SAS分区扩展器可以判断哪一个区域组 权限表是当前的,例如,对应于正在接收的扩展器的版本标识符的表, 或对应于来自正在传输的扩展器的接收的版本标识符的表。
例如,如果来自正在传输的SAS分区扩展器的接收的版本标识 符的时间戳比正在接收的SAS分区扩展器的版本标识符的时间戳稍 晚,那么,正在接收的SAS分区扩展器可以判断其区域组权限表不 是当前的。同样,如果接收的版本标识符的时间戳比版本标识符的时 间戳较早,那么,正在接收的SAS分区扩展器可以判断其区域组权 限表是当前的,因为它具有与它关联的稍晚的版本标识符。然后,正 在传输的SAS分区扩展器和正在接收的SAS分区扩展器可以使它 们的相应的区域组权限表同步,以便两者相同,如此,两者都是当前
的。
如果正在传输的SAS分区扩展器的已存储的区域组权限表是 当前的,那么,元件406更新正在接收的SAS分区扩展器的区域组 权限表。例如,正在接收的SAS分区扩展器可以将区域组权限表不 一致的信息通知给正在传输的SAS分区扩展器,并可以进一步从正 在传输的SAS分区扩展器请求已存储的区域组权限表的副本。然后, 正在接收的SAS分区扩展器可以使用已存储的区域组权限表的副本 来更新其区域组权限表。 一旦完成了元件406的操作,那么,两个 SAS分区扩展器都将具有已同步的区域组权限表和版本标识符。
如果已存储的区域组权限表不是当前的,那么,元件408更新正 在传输的SAS分区扩展器的已存储的区域组权限表。例如,正在接 收的SAS分区扩展器可以将区域组权限表之间的不一致的信息通知 给正在传输的SAS分区扩展器,并可以进一步将区域组权限表的副 本传输到正在传输的SAS分区扩展器。在另一个实施例中,在接收 到区域组权限表不一致的通知时,正在传输的SAS分区扩展器可以 从正在接收的SAS分区扩展器请求区域組权限表的副本。然后,正 在传输的SAS分区扩展器可以使用区域組权限表的副本来更新其已 经存储的区域组权限表。 一旦完成了元件408的操作,SAS分区扩 展器就可以具有已同步的区域组权限表和版本标识符。
如果版本标识符不包含可使两个SAS分区扩展器判断区域组
权限表的两个不同的版本中的哪一个是当前的顺序特征或其他特征, 那么,两个SAS分区扩展器可能不能使它们的不同的区域组权限表 同步。此时,可能不希望在一个SAS分区扩展器的PHY与另一个 SAS分区扩展器的PHY之间进行通信。由于安全原因,可能最好 是暂停两个SAS分区扩展器之间的SAS交换(例如,诸如那些使 用SSP或STP协议的非管理通信),直到区域组权限表被同步和 当前的。否则,可能会发生PHY(例如,SAS设备)之间的不被允 i午的访问。
图5是另一个示范性方法的流程图,该方法允许SAS分区扩
展器(例如,正在阻止的SAS分区扩展器)阻止SAS与另一个其 区域组权限表与正在阻止的SAS分区扩展器的区域组权限表不同的 SAS分区扩展器(例如,被阻止的SAS分区扩展器)进行交换。
如果判断被阻止的SAS分区扩展器和正在阻止的SAS分区 扩展器正在使用SAS域的区域组权限表的不同版本,作为响应,元 件502用于阻止从被阻止的SAS分区扩展器到正在阻止的SAS 分区扩展器的SAS交换。SAS交换可以被阻止,直到正在阻止的 SAS分区扩展器的区域组权限表对应于被阻止的SAS分区扩展器 的已存储的区域组权限表。可以允许SAS分区扩展器之间的管理交 换(例如,使用SMP协议),例如,以判断两个SAS分区扩展器 何时使用相同的区域组权限表。然而,出于安全考虑,可以阻止连接 到SAS分区扩展器的SAS设备之间的SAS交换,直到解决了区 域组权限表不匹配的情形。正在阻止的SAS分区扩展器可以另外将 区域组权限表之间的不一致的情形通知给被阻止的SAS分区扩展 器。同样,被阻止的SAS分区扩展器可以阻止两个SAS分区扩展 器之间的SAS交换,直到区域组权限表同步。
元件504用于判断正在阻止的SAS分区扩展器和被阻止的 SAS分区扩展器是否正在使用相同的区域组权限表。这可以例如通过 包括被阻止的SAS分区扩展器的接收的版本标识符的SMP报告 一般请求和响应来判断的。通过将被阻止的SAS分区扩展器的接收 的版本标识符和正在阻止的SAS分区扩展器的版本标识符进行比 较,正在阻止的SAS分区扩展器可以判断两个SAS分区扩展器是 否正在使用相同的区域组权限表。同样,SMP报告一般交换允许被 阻止的SAS分区扩展器通过比较相同两个值(即,版本标识符和接 收的版本标识符)来进行相同的判断。
在一个示范性实施例中,正在阻止的SAS分区扩展器可以将 SMP报告一般请求传输到SAS分区扩展器监控程序,以判断SAS 域的区域組权限表的当前版本。SAS分区扩展器监控程序是由其他 SAS分区扩展器"选择"的SAS分区扩展器,以执行分区管理功能(例如,确保SAS域内的所有区域组权限表都同步)。SAS分区扩 展器监控程序可以利用SMP报告一般响应对SMP报告一般请求 作出响应,该响应标识了 SAS域的区域组权限表的当前版本的当前 版本标识符。如果正在阻止的SAS分区扩展器判断其区域组权限表 不是当前的,那么,正在阻止的SAS分区扩展器可以使其区域组权 限表与SAS分区扩展器监控程序同步,然后,重复元件504的处理, 以判断被阻止的SAS分区扩展器和正在阻止的SAS分区扩展器现 在是否正在使用相同的区域组权限表。
如果正在阻止的SAS分区扩展器的区域组权限表是当前的,那 么,正在阻止的SAS分区扩展器可以等待被阻止的SAS分区扩展 器在允许在两个SAS分区扩展器之间进行SAS交换之前,开始使 用区域組权限表的当前版本。同时,正在阻止的SAS分区扩展器可 以处理来自其他SAS分区扩展器的交换。
在另一个示范性实施例中,正在阻止的SAS分区扩展器可以继 续向被阻止的SAS分区扩展器传输周期性的请求,以判断被阻止的 SAS分区扩展器的已存储的区域组权限表是否已经变为当前的。例 如,这可以利用SMP报告一般请求来完成,该请求包括由正在阻止 的SAS分区扩展器向被阻止的SAS分区扩展器传输的版本标识 符。被阻止的SAS分区扩展器可以同样以SMP报告一般响应来作 出响应,该响应包括其已存储的区域组权限表的已存储的版本标识 符。然后,正在阻止的SAS分区扩展器可以判断被阻止的SAS分 区扩展器的已存储的区域組权限表和其自己的区域组权限表是否相 同,因此,判断两者是否都是当前的。
一旦正在阻止的SAS分区扩展器判断被阻止的SAS分区扩 展器的已存储的区域组权限表和其自己的区域组权限表相同,那么, 元件506用于恢复允许两个SAS分区扩展器之间的SAS交换。否 则,元件504用于继续周期性地进行检查,以判断已存储的区域组 权限表和区域组权限表是否相同。在另一个示范性实施例中,元件 504的处理可以对一个事件进行操作,如在连接到正在阻止的SAS
分区扩展器的SAS设备和连接到被阻止的SAS分区扩展器的 SAS设备之间的进行通信的请求。
所属领域的技术人员将认识到,参考图5所示范的各种实施例 可以由任何一个SAS分区扩展器来执行。两个SAS分区扩展器之 间的通信可以判断已存储的区域组权限表和区域组权限表之间的不 一致的情形。一个或两个SAS分区扩展器可以决定阻止SAS交换, 直到消除了不一致的情形。同样,任何一个设备都可以操作,以判断 其区域组权限表是否是更新的,以判断是否已经消除了不一致的情 形。
图6是允许SAS分区扩展器与SAS分区扩展器监控程序进 行通信以获得区域组权限表的当前版本的另 一种示范性方法的流程 图。
如上所述,元件304用于将来自正在传输的SAS分区扩展器 的接收的版本标识符与版本标识符进行比较,以判断两个SAS分区 扩展器是否正在使用相同的区域组权限表。在正在传输的SAS分区 扩展器的已存储的区域组权限表不同于正在接收的SAS分区扩展器 的区域组权限表的情况下, 一个或两个设备使其区域组权限表与SAS 分区扩展器监控程序同步可能是有好处的。例如,即使顺序特征判断 区域組权限表和已存储的区域組权限表中的哪一个是当前的,仍可能 希望确保任何一个SAS分区扩展器使用SAS域的当前的区域组权 限表。
元件602用于从SAS分区扩展器监控程序请求SAS域的区 域组权限表的当前版本。
在元件602的一个示范性实施例中,正在接收的SAS分区扩 展器可以查询SAS分区扩展器监控程序,以查找SAS域的当前的 区域组权限表的当前版本标识符。这可以通过例如使用发往SAS分 区扩展器监控程序的SMP报告一般请求来完成。作为响应,SAS分 区扩展器监控程序可以传输包括SAS域的当前的区域组权限表的当 前版本标识符的SMP报告一般响应。然后,正在接收的SAS分区扩展器可以判断是否需要对其区域组权限表进行更新。
如果需要对正在接收的SAS分区扩展器的区域组权限表进行 更新,那么,元件604对区域组权限表进行更新,以对应于当前版 本。在一个示范性实施例中,这可以通过使用从SAS分区扩展器监 控程序到SAS分区扩展器的SMP配置区域请求来完成。参考图6
接收的SAS分区扩展器的区域组权限表时,由正在传输的SAS分 区扩展器执行。
图7是允许SAS分区扩展器通知SAS分区扩展器监控程序 (说明正在传输的SAS分区扩展器的已存储的区域组权限表需要进 行更新)的另一种示范性方法的流程图。
如上所述,元件304用于将来自正在传输的SAS分区扩展器 的接收的版本标识符与版本标识符进行比较,以判断两个SAS分区 扩展器是否正在使用相同的区域组权限表。在正在传输的SAS分区 扩展器的已存储的区域组权限表不同于正在接收的SAS分区扩展器 的区域组权限表的情况下,可能需要更新正在传输的SAS分区扩展 器的已存储的区域组权限表。例如,正在接收的SAS分区扩展器可 以判断其区域组权限表比正在传输的SAS分区扩展器的已存储的区 域组权限表更新,则已存储的区域组权限表需要相应地进行更新。
元件702用于请求SAS分区扩展器监控程序更新正在传输的 SAS分区扩展器的已存储的区域組权限表。
元件704用于更新正在传输的SAS分区扩展器的已存储的区 域组权限表,以对应于SAS分区扩展器监控程序内存储的区域組权 限表的当前版本。在一个示范性实施例中,这可以通过使用从SAS分 区扩展器监控程序到正在传输的SAS分区扩展器的SMP配置区 域请求来完成。如此,然后,两个SAS分区扩展器可以存储区域组 权限表的相同版本作为SAS分区扩展器监控程序。
在某些情况下,SAS分区扩展器可以存储多个区域组权限表, 每一个区域组权限表都具有唯一的版本标识符。然后,可能需要选择 多个区域组权限表中的一个供SAS分区扩展器使用。例如,SAS分 区扩展器监控程序或其他SAS设备可以将区域组权限表传输到 SAS分区扩展器以备将来使用。在另一个实施例中,SAS分区扩展 器可以存储多个区域组权限表,供与SAS分区扩展器在其间交换的 不同的SAS域一起使用。在另一个实施例中,SAS域常常可以在区 域组权限表的多个版本之间变化,SAS分区扩展器可以存储多个版 本,供以后使用,而不是在每次进行更改时接收新的版本的副本。版 本标识符提供了用于在多个区域组权限表之间进行选择的手段。
图8是提供了这里的特征和方面的示范性实施例的允许SAS 分区扩展器从多个区域组权限表中选择区域组权限表的补充细节的 流程图。图8提供了图2元件204的处理过程的额外的示范性细 节。如上所述,元件204 —般用于基于与区域组权限表关联的版本 标识符判断区域组权限表是否是当前的。
元件802用于接收被接收的版本标识符。接收的版本标识符标 识SAS域的当前的区域组权限表。例如,SAS分区扩展器监控程序 可以将接收的版本标识符传输到SAS分区扩展器。同样,接收的版 本标识符可以来自负责配置SAS分区扩展器的区域组权限表的其他 SAS设备。
元件804用于通过将接收的版本标识符与多个区域組权限表中 的一个区域组权限表的对应的版本标识符匹配,选择SAS分区扩展 器内的当前的区域组权限表。 一旦选择了所需的区域组权限表,则 SAS分区扩展器的区域組权限表将是当前的。如果没有找到所需的区 域组权限表,那么,SAS分区扩展器可以将问题通知给另一个SAS 设备,例如,SAS分区扩展器监控程序,并可以获得所需的区域組权 限表(例如,当前版本)的副本。
图9是显示了根据这里的特征和方面的用于管理SAS域的区 域组权限表的另一个示范性方法的流程图。元件902用于将SAS域 的区域组权限表的版本标识符存储在第一 SAS分区扩展器上。
元件卯4用于与第二 SAS分区扩展器交换第一 SAS分区扩
展器的版本标识符,以判断第一 SAS分区扩展器和第二 SAS分区 扩展器是否存储了相同的区域组权限表。
元件906用于判断第二 SAS分区扩展器的已存储的区域组权 限表和第一 SAS分区扩展器的区域组权限表是否相同。这可以通过 将第一 SAS分区扩展器的版本标识符与第二 SAS分区扩展器的另 一个版本标识符进行比较来完成。如果版本标识符不同,那么,关联 的区域组权限表也不同。如果第二 SAS分区扩展器的已存储的区域 组权限表和第一 SAS分区扩展器的区域组权限表不相同,那么,至 少一个SAS分区扩展器没有存储SAS域的区域组权限表的当前版 本。
如果元件906的操作判断区域组权限表相同,那么,在元件908 中恢复正常的处理。
否则,如果元件卯6的操作判断区域组权限表不同,那么,元 件910用于使区域组权限表同步。在一个实施例中,第一和第二 SAS 分区扩展器可以使用版本标识符的顺序特征来判断哪一个区域组权 限表是当前的。例如,版本标识符可以包括时间戳。 一旦标识了当前 版本,然后,第一和第二 SAS分区扩展器可以交换当前的区域组权 限表,以使两个SAS分区扩展器的区域组权限表同步。
在另一个实施例中,第一或第二 SAS分区扩展器可以通知 SAS分区扩展器监控程序,区域組权限表与第二 SAS分区扩展器内 的已存储的区域组权限表不相同。然后,SAS分区扩展器监控程序可 以操作,以使区域组权限表和已存储的区域组权限表同步以对应于 SAS分区扩展器监控程序内存储的当前的区域组权限表。SAS分区 扩展器监控程序也可以等待操作员干预来解决不匹配的问题。
尽管在附图和前面的描迷中显示和描述了本发明,但是,这样 的例图和描述应被视为示范性的,而不是限制性的。显示和描述了本 发明的一个实施例和微小的变化。希望保护符合本发明的精神的所有 更改和修改。所属领域的技术人员将认识到在本发明的范围内的上文 所描述的实施例的变化。具体来说,所属领域的技术人员将轻松地认
识到,这里的特征和方面可以以电子电路或作为一般的或专用的处理 器的适当地编程的指令等效地实现。电路和编程设计的这样的等效性 作为设计选择,已为所属领域的技术人员所熟知。结果,本发明不仅 限于上文所讨论的特定示例和例图,而是只通过下面的权利要求以及 它们的等效内容加以限制。
权利要求
1. 一种用于管理串行连接SCSI(SAS)域的区域组权限表的方法,所述方法包括:将版本标识符与所述SAS域的区域组权限表关联;以及基于与所述区域组权限表关联的所述版本标识符,判断所述区域组权限表是否是当前的。
2. 根据权利要求1所述的方法,其中,所述版本标识符和所述 区域组权限表存储在所述SAS域的SAS分区扩展器上,其中,所 述判断步骤进一步包括接收被接收的版本标识符;以及将所述被接收的版本标识符与所述SAS分区扩展器的所述版 本标识符进行比较,以判断所述区域组权限表是否是当前的。
3. 根据权利要求1所述的方法,其中,所述版本标识符和所述 区域组权限表存储在所述SAS域的SAS分区扩展器上,其中,所 述判断步骤进一步包括从所述SAS域的正在传输的SAS分区扩展器接收被接收的 版本标识符,其中,所述被接收的版本标识符与所述正在传输的SAS 分区扩展器内的已存储的区域组权限表关联;以及将所述SAS分区扩展器的所述版本标识符与所述正在传输的 SAS分区扩展器的所述被接收的版本标识符进行比较,以判断所述版 本标识符是否与所述被接收的版本标识符相同。
4. 根据权利要求3所述的方法,其中,所述比较步骤判断所述 版本标识符与所述被接收的版本标识符不相同,所述比较步骤进一步包括基于所述被接收的版本标识符和所述版本标识符的顺序特征,判 断所迷正在传输的SAS分区扩展器的所述已存储的区域組权限表和 所述SAS分区扩展器的所述区域组权限表中的哪一个是当前的。
5. 根据权利要求4所述的方法,进一步包括 使所述正在传输的SAS分区扩展器的所述已存储的区域组权 限表和所述SAS分区扩展器的区域组权限表同步,以便两者都是当 前的。
6. 根据权利要求3所述的方法,其中,所述比较步骤判断所述 版本标识符与所迷被接收的版本标识符不相同,所述方法进一步包括阻止从所述正在传输的SAS分区扩展器到所述SAS分区扩 展器的SAS交换,直到所述SAS分区扩展器的所述区域组权限表 对应于所述正在传输的SAS分区扩展器的所述已存储的区域组权限 表。
7. 根据权利要求3所述的方法,其中,所述比较步骤判断所述 版本标识符与所迷已存储的版本标识符不相同,所述方法进一步包 括从SAS分区扩展器监控程序请求所述SAS域的所述区域组 权限表的当前版本;以及更新所述SAS分区扩展器的所述区域组权限表,以对应于从所 述SAS分区扩展器监控程序接收的所述区域组权限表的所述当前版 本。
8. 根据权利要求3所述的方法,其中,所述比较步骤判断所述 版本标识符与所述已存储的版本标识符不相同,所述方法进一步包 括请求SAS分区扩展器监控程序更新所述正在传输的SAS分 区扩展器的所述已存储的区域组权限表;以及 更新所述已存储的区域組权限表。
9. 根据权利要求1所述的方法,其中,所述版本标识符包括时
10. 根据权利要求1所述的方法,其中,所述版本标识符包括 校验和。
11. 根据权利要求1所述的方法,其中,所述SAS域的SAS 分区扩展器存储多个区域组权限表,所述判断步骤进一步包括接收所述SAS分区扩展器内的接收的版本标识符,其中,所述 被接收的版本标识符识别所述SAS域的所述当前区域组权限表;以 及通过将所述被接收的版本标识符与所述多个区域组权限表中的 一个的对应的版本标识符匹配,选择所述多个区域组权限表中的一个 供所述SAS分区扩展器使用,其中,所述多个区域组权限表中的所 述选定的一个对于所述SAS域是当前的。
12. —种用于管理SAS域的区域组权限表的方法,所述方法包括将SAS域的区域组权限表的版本标识符存储在第一 SAS分 区扩展器上;以及将所述版本标识符与第二 SAS分区扩展器交换,以判断所述第 一 SAS分区扩展器和所述第二 SAS分区扩展器是否存储了相同的 区域组权限表。
13. 根据权利要求12所述的方法,其中,所述版本标识符包括 时间戳。
14. 根据权利要求14所述的方法,其中,所迷版本标识符包括 校验和。
15. 根据权利要求12所述的方法,其中,所述第一 SAS分区 扩展器和所述第二 SAS分区扩展器存储了不同的区域组权限表,所 述方法进一步包括通知SAS分区扩展器监控程序,所述第一 SAS分区扩展器的 所述区域组权限表与所述第二 SAS分区扩展器的存储的区域组权限 表不相同;以及使所述第一 SAS分区扩展器的所述区域组权限表和所述第二 SAS分区扩展器的所述已存储的区域组权限表同步,以对应于所述 SAS分区扩展器监控程序内存储的当前的区域组权限表。
16. —种SAS分区扩展器,包括 SAS域的区域组权限表;与所述区域组权限表关联的版本标识符,其中,所述版本标识符 标识所述区域组权限表的版本;以及用于基于与所述区域组权限表关联的所述版本标识符判断所述 区域组权限表是否是当前的控制器。
17. 根据权利要求16所述的SAS分区扩展器,其中,所述控 制器进一步可以接收被接收的版本标识符,并将所述被接收的版本标 识符与所述SAS分区扩展器的所述版本标识符进行比较,以判断所 述区域组权限表是否是当前的。
18. 根据权利要求16所述的SAS分区扩展器,其中,所述控 制器进一步可以从所述SAS域的正在传输的SAS分区扩展器接收 被接收的版本标识符,其中,所述被接收的版本标识符与所述正在传 输的SAS分区扩展器内的已存储的区域组权限表关联,并且,所述 控制器进一步可以将所述SAS分区扩展器的所述版本标识符与所述 正在传输的SAS分区扩展器的所述被接收的版本标识符进行比较, 以判断所述版本标识符是否与所述被接收的版本标识符相同。
19. 根据权利要求18所述的SAS分区扩展器,其中,如果所 述版本标识符与所述被接收的版本标识符不相同,所述控制器进一步 可以基于所述被接收的版本标识符和所述版本标识符的顺序特征,判 断所述正在传输的SAS分区扩展器的所述已存储的区域组权限表和 所述SAS分区扩展器的所述区域组权限表中的哪一个是当前的。
20. 根据权利要求18所述的SAS分区扩展器,其中,所述控 制器进一步可以使所述正在传输的SAS分区扩展器的所述已存储的 区域组权限表和所述SAS分区扩展器的所述区域组权限表同步,以 便两者都是当前的。
21. 根据权利要求18所述的SAS分区扩展器,其中,如果所 述版本标识符与所述被接收的版本标识符不相同,所述控制器进一步 可以阻止从所述正在传输的SAS分区扩展器到所述SAS分区扩展 器的SAS交换,直到所述SAS分区扩展器的所述区域組权限表对 应于所述正在传输的SAS分区扩展器的所述已存储的区域组权限 表。
22.根据权利要求18所述的SAS分区扩展器,其中,如果所 述SAS分区扩展器的所述版本标识符与所述正在传输的SAS分区 扩展器的所述被接收的版本标识符不相同,所述控制器进一步可以从 SAS分区扩展器监控程序请求所迷SAS域的所述区域组权限表的 当前版本,并且,所述控制器进一步可以更新所述SAS分区扩展器 的所述区域组权限表以对应于所述区域组权限表的所述当前版本。
全文摘要
提供了用于使用关联的版本标识符管理SAS区域组权限表的设备和方法。SAS域的区域组权限表可以具有关联的版本标识符,表示区域组权限表的版本。版本标识符可以用来判断区域组权限表是否与SAS域的当前版本相同,无需将区域组权限表的内容与当前版本的内容进行比较。版本标识符还可以用于,如果两个或更多SAS分区扩展器存储了不同的区域组权限表,判断SAS域的多个区域组权限表中的哪一个是当前版本。
文档编号G06F3/06GK101384985SQ200780005602
公开日2009年3月11日 申请日期2007年9月21日 优先权日2006年11月21日
发明者斯蒂芬·B·约翰逊 申请人:Lsi公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1