在非并发群集环境中提供多路径输入/输出的方法和设备的制作方法

文档序号:6571277阅读:265来源:国知局
专利名称:在非并发群集环境中提供多路径输入/输出的方法和设备的制作方法
技术领域
本发明总的涉及用SCSI或FCP(光纤通道协议)主机装置访问存储器阵列,并更具体地涉及一种在使用SCSI-3持续保留的非并发群集环境中用于提供多路径I/O(输入/输出)的方法和设备。
背景技术
在近年来,磁盘驱动系统已经在尺寸和完善度方面得到了大规模地成长。这些系统可以典型地包括由复杂多任务磁盘驱动控制器控制的许多大型磁盘驱动单元。一个大规模磁盘驱动系统可以典型地从多个主计算机接收命令,并可以控制大量的磁盘驱动海量存储元件,每个海量存储单元能够存储超过几十亿位的数据。
小型计算机系统接口(SCSI)是一个用于互连计算机和其它输入/输出装置的日益流行的通信协议标准。SCSI的第一版本(SCSI-1)在ANSIX3.131-1986中有描述。SCSI标准经历了几次修订,驱动速度和容量得到了提高,但仍遗留一定的局限性。
根据SCSI协议,主机装置(如一个工作站)和目标装置(如一个硬盘驱动器)以菊花链方式连接于单总线。总线上的每个装置,不管是主机还是目标,被分配一个专用的ID号码。可以连接于该总线的装置的数量受到可用的专用ID号码的数量的限制。例如,在SCSI-1协议下,只有八个设备可以被连接到该SCSI总线。SCSI协议的后来的版本用于十六个装置,并且将来的版本无疑会方便更多的装置与单SCSI总线的连接。
除了限制可以连接到单SCSI总线的装置的数量外,该协议还限制可以通过特定目标号码访问的逻辑单元(如单独的驱动器)的数量。例如,根据SCSI-1标准,每个目标装置的逻辑单元的数量也被限制到八个。因此,特定目标(如一个磁盘阵列)可以提供对八个逻辑单元(磁盘驱动器)的访问,目标号码和逻辑单元号码唯一地标示SCSI系统上的特定存储装置。SCSI-3规格被设计为进一步改善功能性并容纳高速串行传输接口。这样做,使SCSI有效地进行逻辑“分层”。这种分层允许软件接口保持相对固定,而基于诸如光纤通道和串行存储架构(SSA)的串行互连,可容纳新的物理互连方案。
为了添加可以访问特定存储装置的主机的数量,多条SCSI总线以多层树结构被连接在一起,路由装置在各层之间传递数据和命令。在这种多层网络中,当访问超过一层以外的装置时,给主机造成性能的延迟。另外,因为上述的限制,目前的SCSI系统不能利用由目前的存储阵列提供的好处,该存储阵列提供对大量的存储装置的并行访问。例如,存储装置的数量可能超过可用的目标数和该SCSI系统上可用的逻辑单元数。再有,每个SCSI总线每次可能仅被一个主机使用,因此防止了由同一个SCSI系统上的任何两个主机并行访问该存储阵列。多层系统的不同层上的主机可以以并行方式访问存储阵列上的不同装置,但是这种并行访问添加了将各层互连的路由器的复杂性和成本。
可以看到,计算机使用的增长已经产生了对于存储用于计算机系统的灵活的、高可用性系统的日益添加的需求。许多企业具有包括或独立工作或通过网络互连的个人计算机和工作站的多主计算机系统。人们期望多主机系统能够访问多存储系统的公用池(pool),以便可以通过所有的主机系统访问数据。这种安排添加了对于任何一个主机系统可用的总的数据量。另外,可以在各主机之间分担工作负载,并且整个系统可以受到保护,不受任何一个主机的故障的影响。
由于系统的复杂性添加,人们越来越不希望在磁盘驱动器或控制器层发生中断故障。结果,系统变得更加可靠并且各故障之间的平均时间持续添加。然而,如果磁盘驱动系统“宕机”或脱线(off-line),即使问题在几个小时内得到相对较快地更正,但是对于用户却不仅仅是不方便了。导致损失的时间不仅负面地影响系统的吞吐量性能,也负面地影响用户的应用性能。再有,用户不关心是物理磁盘驱动器还是它的控制器发生故障,该系统的故障和引起的不方便作为整体,造成了用户的困扰。
因此,人们希望提供保护硬件故障的冗余路径,以便可以保证数据访问的性能和高可用性。以前用于允许多主机访问多计算机系统的方案使用了主机适配器卡、外板磁盘控制器(out board disk controllers)、和标准网络通信系统的组合。
许多磁盘驱动系统依赖于诸如上述的SCSI总线的标准总线将主计算机连接到控制器,并且连接控制器和磁盘驱动单元。因此,如果连接到该总线的磁盘驱动控制器发生故障,由主计算机所看到的整个系统就发生故障,结果是如上所述用户无法接受的。
针对这个问题,具有冗余操作的磁盘驱动控制器系统可以分布在连接于SCSI总线的至少两个适配器中。至少一个计算机也可以连接到SCSI总线中。如果SCSI适配器中的一个发生故障,连接于该总线的另一个SCSI适配器一旦检测到这个故障,就接管由发生故障的SCSI适配器所服务的各装置。
在这种网络中,可以连接多个服务器以提供高可用性群集多处理。群集服务器能够并行访问数据,这可以帮助提供重要商业应用所需要的冗余和抗故障性能。当操作在非并发模式中时,高可用性群集多处理可以使用SCSI的保留/释放(Reserve/Release)以控制对磁盘存储装置的访问。在非并发模式中,仅仅单群集节点可以访问逻辑卷中的数据。高可用性群集多处理向另一个群集节点提供了一个因为硬件或软件的故障而对这个数据进行故障恢复(failover)访问的方式。可是,在提供对存储系统的访问的同时,如果有可能的话,希望防止节点故障恢复。
可以看到存在着对于用于在非并发群集环境中提供多路径I/O的方法和设备的需求。

发明内容
为了克服如上所述的现有技术中的限制,并为了克服在阅读和理解本说明书时很清楚的其它限制,本发明公开了一种用于在非并发群集环境中提供多路径I/O的方法和设备。
本发明通过经由使用SCSI-3持续保留命令的多路径,提供对逻辑卷的共享非并发访问,解决了上述问题。
根据本发明的原理的一种方法,包括将操作系统的打开选项映射到SCSI持续保留命令(persistent reserve command),以允许所有的多路径用共享存储系统的逻辑单元号登记,并允许第二个多路径在用共享存储系统获得持续保留后,访问共享存储系统的逻辑单元号。
根据本发明的原理的方法的其它实施例包括可替换的或可选择的另外的方面。其中本发明的第一方面是将操作系统的打开选项映射到SCSI持续保留命令,以允许所有的多路径用共享存储系统的逻辑单元号登记进一步包括用使用单一保留键用共享存储系统的逻辑单元号登记来自第一主机的所有路径。
本发明的另一方面是将操作系统的打开选项映射到SCSI持续保留命令进一步包括获得关于持续保留(persistent reservation)和保留键的信息。
本发明的另一方面是获得关于持续保留和保留键的信息进一步包括使用保留输入(reservation in)命令。
本发明的另一方面是保留输入命令进一步包括读键服务动作和读保留服务动作。
本发明的另一方面是将操作系统的打开选项映射到SCSI持续保留命令进一步包括发布用于用共享存储系统的逻辑单元号开始一个动作的持续保留输出(reservation out)命令。
本发明的另一方面是用于用共享存储系统的逻辑单元号开始一个动作的持续保留输出命令进一步包括从包括登记、保留、释放、清除、预占和异常预占的组中选择的服务动作。
本发明的另一方面是登记服务动作包括一个添加(add)和一个删除(remove)选项。
本发明的另一方面是添加选项进一步包括当在配置时登记每条路径,确定第一次登记尝试是否成功,当第一次登记尝试不成功时进行第二次登记尝试,当第二次登记尝试不成功时将该路径的状态设置为停用,并且当路径具有被设置为停用的状态时忽略该路径,当第一或第二次登记尝试成功时,将该路径的状态设置为真。
本发明的另一方面是删除选项进一步包括确定一条路径是否具有持续保留,当该路径被确定具有持续保留时,用设置的服务选项释放发布持续保留输出,并且当该路径被确定不具有持续保留时释放该保留。
本发明的另一方面是保留服务动作还包括通过检查是否设置命令参数判定一个装置是否需要向共享存储系统的逻辑单元号进行保留,当未设置命令参数时,缺省设为需要保留,并且当没有启动程序(initiator)已经保留共享存储系统的逻辑单元号和设置命令参数为执行该命令参数时,实现对共享存储装置的逻辑单元号的持续保留。
本发明的另一方面是命令参数是强制打开选项,当当前保留键与该装置的保留键不匹配时,该强制打开选项使得该装置读取当前保留键、预占和异常列队任务。
本发明的另一方面是该方法进一步包括通过设置命令参数为非保留来防止SCSI-2保留,确定强制打开是否成功完成,当强制打开命令成功完成时,设置该装置的保留标志到进行了持续保留的路径索引并打开带有设置的非SCSI-2保留选项的所有路径,并且当强制打开命令没有成功完成时,发布差错代码。
本发明的另一方面是该命令参数是一个保持(retain)保留选项,该保持保留使得该装置读取当前保留键、确定是否返回一个键、当不返回一个键时,确定不由启动程序保留逻辑单元号,并进行持续保留。
本发明的另一方面是保持保留选择使得该装置确定返回的键是否与该装置的保留键匹配,当该返回的键与该装置的保留键不匹配时发布差错代码,当该返回的键与该装置的保留键匹配时,打开设置为非SCSI-2保留选项的所有路径,设置保留标志为进行了持续保留的路径索引,设置保持保留为真,并在关闭时检查保持保留字段以确定是否应该释放持续保留。
本发明的另一方面是命令参数是非保留选项,该非保留选项使得该装置读取当前保留键、确定是否返回一个键、确定不由启动程序保留逻辑单元号并用来自主机的原始命令参数打开所有路径。
本发明的另一方面是非保留选项使得该装置确定是否返回键与该装置的保留键匹配,当该返回键与该装置的保留键不匹配时发布差错代码,当该返回键与该装置的保留键匹配时用释放发布持续保留输出。
本发明的另一方面是该命令参数是一个缺省保留选项,该缺省保留选项使得该装置检查所有路径、确定是否有路径未登记、登记所有未登记的路径、忽略任何未成功登记的路径、返回和读取保留键、当该返回的保留键与该装置的保留键不匹配时发布差错代码并打开所有设置的非SCSI-2保留的已登记路径。
本发明的另一方面是该缺省保留选项使得当不返回一个键时该装置选择一个登记的路径、为所选择的登记的路径发布持续保留、如果该持续保留不成功则忽略该路径、当持续保留成功时用进行了保留的路径索引来标记保留字段并打开带有设置为非SCSI-2保留的命令参数的所有登记的路径。
本发明的另一方面是该命令参数是一个单选项,该单选项使得该装置检查所有路径、确定是否有路径未登记、登记所有未登记的路径、忽略任何未成功登记的路径、返回并读取保留键、当该返回的保留键与该装置的保留键不匹配时发布差错代码,并打开设置的非保留的所有已登记路径。
本发明的另一方面是该单选项使得当不返回一个键时该装置选择一个登记的路径、为所选择的登记的路径发布持续保留、忽略持续保留不成功的该路径、当持续保留成功时用进行了保留的路径索引来标记保留字段并打开带有设置为非保留的命令参数的所有登记的路径。
本发明的另一方面是释放服务动作包括关闭所有未保留的、设置为保持保留选项的路径,打开带有设置的保持保留标志的一个路径并发布带有设置的释放服务动作的持续保留输出命令,以释放一个路径的持续保留。
在本发明的另一个实施例中,提供一种用于由共享存储系统支持SCSI持续保留命令的方法。该方法包括处理保留键以标识登记的主机并且处理持续保留命令以控制通过一个主机的访问。
本发明的另一方面是持续保留命令的处理包括允许所有的多路径用共享存储系统的逻辑单元号登记。
本发明的另一方面是该方法还包括用使用一个单保留键的共享存储系统的逻辑单元号登记来自第一主机的所有路径。
本发明的另一方面是处理保留键包括获得关于持续保留和保留键的信息。
本发明的另一方面是获得关于持续保留和保留键的信息还包括使用保留输入命令。
本发明的另一方面是保留输入命令包括读取键服务动作和读取保留服务动作。
本发明的另一方面是持续保留命令的处理包括发布用于用共享存储系统的逻辑单元号开始一个动作的持续保留输出命令。
本发明的另一方面是用于用共享存储系统的逻辑单元号开始一个动作的持续保留输出命令还包括从包括登记、保留、释放、清除、预占和异常预占的组中选择的服务动作。
在本发明的另一个实施例中,提供一种用于将操作系统的打开选项映射到SCSI持续保留命令的驱动器。该驱动器被配置为处理保留键以标识登记的主机,并且处理持续保留命令以控制通过一个主机的访问。
本发明的另一方面是该驱动器通过允许所有的多路径用共享存储系统的逻辑单元号登记来处理持续保留命令。
本发明的另一方面是该驱动器用使用一个单一保留键的共享存储系统的逻辑单元号登记来自第一主机的所有路径。
本发明的另一方面是该驱动器通过获得关于持续保留和保留键的信息处理保留键。
本发明的另一方面是该驱动器通过使用保留命令获得关于持续保留和保留键的信息。
本发明的另一方面是保留命令包括读取键服务动作和读取保留服务动作。
本发明的另一方面是该驱动器通过发布用于用共享存储系统的逻辑单元号开始一个动作的持续保留输出命令处理持续保留命令。
本发明的另一方面是用于用共享存储系统的逻辑单元号开始一个动作的持续保留输出命令还包括从包括登记、保留、释放、清除、预占和异常预占的组中选择的服务动作。
体现本发明的新颖性的这些和其它优点和特点由后附的权利要求书中的细节所指出并形成其中的一部分。可是,为了更好地理解本发明,将参照构成本发明另一部分的附图和说明描述它的优点和通过它的使用获得的目的,在该说明中描述了根据本发明的设备的特定实例。


下面参照附图,在所有的附图中,相同的标号表示相应的部分。
图1示例了说明本发明的环境的方框图;图2示例了在操作系统中将打开选项映射到用于控制对共享存储装置的访问的适当SCSI-3持续保留命令的伪装置驱动器;图3示例了表示共享LUN问题的方框图;图4示例了本发明的流程图;图5示例了用于用LUN登记的添加选项的流程图;图6示例了用于用LUN解除登记一条路径的删除选项的流程图;图7示例了用于用LUN保留的流程图;
图8示例了用于强制打开选项的流程图;图9示例了用于保持保留打开选项的流程图;图10示例了用于非保留选项的流程图;图11示例了用于缺省保留打开选项的流程图;和图12示例了用于用LUN释放的流程图1200。
具体实施例方式
在下列具体实施例的描述中,将参照构成本发明的一部分的附图,并且其中通过示例表示了实施本发明的特定实施例。可以理解,在不脱离本发明的范围的情况下可以利用其它的实施例作为结构上的改变。
本发明提供了一种用于在非并发群集环境中提供多路径I/O的方法和设备。通过使用SCSI-3持续保留命令提供经由多路径对逻辑卷的共享非并发访问。
图1示例了表示本发明的环境的方框图100。在图1中,由LUN(逻辑单元号)示例的存储系统可以通过多个主机访问。在图1中显示了两个主机110和112。可是,本领域的技术人员会知道本发明不意味着限制于仅仅两个主机访问该存储系统的环境。
所有者主机110和故障恢复(failover)主机112均包括用于访问LUN0130的至少两条路径。所有者主机110和故障恢复主机112均用LUN0 130登记。可是,所有者主机110如由具有用于所有者主机110的KEY A的LUN0所指示的具有对LUN0的专用访问。
当操作在非并发模式时,SCSI保留/释放控制对磁盘存储装置的访问。在非并发模式中,仅有所有者主机110具有对LUN0 130中的数据的访问权。如果发生硬件或软件故障,可能发生故障恢复访问使得故障恢复主机112可以访问LUN0 130上的数据。然而,如果可能的话,希望防止节点故障恢复。因为每个节点110、112都具有到共享存储装置的多I/O路径,如果一个单独I/O路径中的硬件发生故障,I/O的业务量可以被切换到替换路径。这避免了执行更具破坏性的节点故障恢复的需要。
图2示例了在操作系统中将打开选项映射到用于控制对共享存储装置的访问的适当SCSI-3持续保留命令的伪装置驱动器。根据本发明,向操作系统引入一个新的装置驱动器,它提供了一个用于对单个共享装置240的所有多路径的单个伪装置210。在图2中,提供伪装置驱动器210用于通过将打开选项映射到适当的SCSI-3持续保留命令,提供路径选择和路径重试。伪装置驱动器210提供到逻辑卷的共享非并发访问并提供对该装置的多路径访问。这给该装置的各路径提供了I/O负载平衡的附加的好处,并且当在一个单独装置路径上发生差错时使路径故障恢复以防止对一个节点执行节点故障恢复。该伪装置驱动器210将操作系统请求212转换为SCSI磁盘驱动器214可以处理的请求。SCSI磁盘驱动器214将输入/输出(I/O)请求转换为多个命令描述符块(CDB)。SCSI磁盘驱动器214调用适配器驱动器220并将多个CDB提供给适配器驱动器220以发出到LUN 240的请求。主机可以通过操作系统配置旁路伪磁盘驱动器210。在这种方式中,当到LUN 240的多路径之一发生故障时,在不提供SCSI保留/释放的情况下,处理磁盘I/O请求250,以无故障恢复地提供对磁盘存储装置的访问。
图3示例了表示共享LUN问题的方框图。主机看见访问多个LUN 320的多个适配器310。可是,多个适配器330实际上被映射到单一的LUN 340。
因此,根据本发明,在伪装置驱动器中的SCSI-3持续保留命令的实现允许对LUN的单一路径和对LUN配置的多个路径的两者的支持。用单一路径配置,由SCSI-2普通保留/释放命令在系统磁盘驱动器级上实现对LUN的保留/释放功能。
为了在多路径配置环境实现这个命令,到一个主机上的LUN的所有路径必须在相同的保留键下登记一个LUN,并且各路径中仅有一个需要在打开时间用“仅登记者专用的访问”的保留类型进行对该LUN的持续保留。从其它主机到该LUN的所有路径可以在所有时间向该LUN登记,但是在它们能访问它之前,必须要求得到对这个LUN的持续保留。用这种保留类型,登记到那个LUN上的一个主机的所有路径可以共享和访问这个LUN。如果这个伪装置驱动器被应用于不支持SCSI-3持续保留命令的存储子系统,该伪装置驱动器将用存储子系统的多路径配置自动切换到单路径功能。
SCSI-3持续保留支持两个命令。一个是持续保留输入(PersistentReserve In),这个命令用于获得关于在LUN上有效的保留键和持续保留的信息。持续保留输入命令支持的两个服务动作是“读取键”和“读取保留”,另一个命令是持续保留输出(Persistent Reserve Out)。这个命令用于用LUN登记,向该LUN进行保留,向LUN释放保留,预占其它启动程序的LUN的保留,并从LUN清除所有的保留键和持续保留。由持续保留输出支持的六个服务动作是“登记”、“保留”、“释放”、“清除”、“预占”、“登记和忽略现存键”和“预占和异常”。
图4示例了本发明的流程图400。首先,将操作系统的打开选项映射到SCSI持续保留命令以允许所有的多路径用共享存储系统410登记。然后允许该多路径的第二个在获得共享存储系统420的持续保留后,访问该共享存储系统。用使用单一保留键的共享存储系统登记来自第一主机的所有路径(也见图1)。关于持续保留和保留键的信息可以通过一个主机获得。一个保留输入命令被用于获得关于持续保留和保留键的信息。保留输入命令包括读键服务动作和读保留服务动作。发布一个使共享存储系统开始一个动作的持续保留输出命令。持续保留输出命令包括从包括登记、保留、释放、清除、预占和异常预占的组中选择的服务动作。保留服务动作包括一个添加和一个删除选项。
图5示例了用于用LUN登记的添加选项的流程图500。当配置时,每一个未用路径(underpath)将用LUN 510登记。确定该登记是否成功(步骤512)。如果路径登记成功(步骤540),它的“已登记”字段被设置为真(步骤550)。如果在此时失败(步骤514),它的“已登记”字段被设置为假(步骤516)。在打开时,所有路径用“登记和忽略现存键”重新登记(步骤520)。在故障发生后,接管主机发布“强制打开”,使得SDD用“异常预占”服务选项命令发布持续保留输出(步骤522)。然后这个命令清除所有与预占的保留键相匹配的登记键。
图6示例了用于用LUN解除登记(unregister)一条路径的删除选项的流程图600。当一个路径将被删除时,该路径的所有登记的未用路径都需要从LUN解除登记的动作。在删除路径前,持续保留被要求用该LUN释放(步骤610)。检查路径保留标志(步骤620)。如果该标志被设置为未用路径索引(步骤622),而不是-1,则对该LUN的保留在装置关闭调用时尚未被释放(步骤624)。只有当该路径用被设置的RETAIN RESERVATION(保持保留)标志打开时这种情况才发生,并且它在装置关闭调用时不释放该保留(步骤626)。如果是这种情况,以前预定的未用路径将用释放服务动作发布持续保留输出以从LUN释放该保留(步骤628)。
图7示例了用于用LUN保留的流程图700。由诸如操作系统逻辑卷管理器驱动器的上级调用器判定一个路径是否需要向它连接的LUN进行保留(步骤720)。检查装置打开选项的“ext”参数。如果设置“ext”参数(步骤740),它们将指示请求保留(步骤750)。这个“ext”参数的有效选择值是SCFORCEDOPEN不承诺装置保留冲突状态SCRETAINRESERVATION不在关闭时释放装置SCNORESERVE在打开子例程调用那个装置期间,防止该装置的保留,允许多主机共享一个装置。
SCSINGLE将所选择的装置置于专用访问模式如果不设置任何上述的选项(步骤722),该装置打开子例程缺省为所请求的保留(步骤724)。如果还没有启动程序已经保留了这个LUN,该装置实现到该LUN的持续保留(步骤726)。下面的流程图说明了这些选项是如何用SCSI-3持续保留命令实现的。
图8示例了用于强制打开选项的流程图800。当用设置的强制打开选项调用装置打开子例程时(步骤810),该装置试图读取当前持续保留键(步骤820)。如果返回一个键,该装置首先检查保留键是否与它的键匹配(步骤830)。如果它与它的键匹配(步骤830),因为该装置保留了该LUN,所以该装置不做任何事。如果返回一个键,并且它与这个装置的保留键不匹配(步骤832),这个保留键被预占并且它的列队任务异常中断(步骤840)。这个LUN的保留被这个装置偷取并通过设置非保留参数来阻止保留(步骤850)。确定这个命令是否成功完成(步骤852)。如果这个命令未成功完成(步骤854),则发布差错代码(步骤856)。如果这个命令成功完成(步骤858),该装置的保留标志被设置为进行了这个保留的未用路径索引(步骤860)。用设置为“ext”参数的SCNO-RESERVE选项打开所有登记的未用路径到操作系统磁盘驱动器打开例程(步骤870)。可以通过登记到LUN的装置的所有未用路径来访问和共享该LUN。
图9示例了用于保持保留打开选项的流程图900。当用设置的这个选项调用装置打开子例程时(步骤910),该装置将读取当前持续保留键(步骤920)。确定是否返回一个键(步骤930)。如果没有返回保留键(步骤980),那意味着该LUN没有被任何启动程序保留(步骤982),并且该装置将对该LUN进行持续保留(步骤984)。确定该保留是否成功(步骤986)。如果这个保留命令失败(步骤990),该系统驱动器到调用器的打开调用失败,差错代码为XXX(步骤992)。如果这个保留命令成功完成(步骤988),用SC-NO-RESERVE选项打开所有登记的未用路径(步骤942)。
如果返回一个保留键(步骤932),确定该键是否与该装置的保留键匹配(步骤934)。如果它与这个装置的保留键不匹配(步骤936),该装置指示到该调用器打开调用失败,差错代码为XXX(步骤938)。如果返回键与这个装置的保留键匹配(步骤940),则用设置的SC-NO-RESERVE选项打开所有的未用路径(步骤942)。
如果用设置的非SCSI-2保留选项打开所有的未用路径(步骤942),则可以通过登记于LUN的这个装置的所有未用路径访问和共享该LUN。该装置的保留标志被设置为进行了这个保留的未用路径索引(步骤950)。保持保留字段被设置为真(步骤960)。在装置关闭调用时检查这个字段以确定持续保留是否应该被释放(步骤970)。
图10示例了用于非保留选项的流程图1000。当用设置的这个选项调用装置打开子例程时(步骤1010),该装置将读取当前持续保留键(步骤1020)。为了实现这个过程,所有未用路径用“登记和忽略现存键”登记以确保所有未用路径用该LUN登记。如果有还没有用该LUN登记的未用路径,那个未用路径将用登记服务动作发布持续保留输出命令。如果这个重试再次失败,这个未用路径将被忽略并跳到其它操作,然后选择登记的未用路径以用读取保留服务动作发布持续保留输入命令以得到当前持续保留键。
确定是否返回一个键(步骤1030)。如果没有返回保留键(步骤1080),该LUN不被任何启动程序保留(步骤1082)。该装置用来自调用器的原始的“ext”参数打开它所有的未用路径到操作系统磁盘驱动器打开例程(步骤1084)。
如果返回一个当前持续保留键(步骤1032),确定它是否与这个装置的保留键匹配(步骤1034)。如果它与这个装置的保留键匹配(步骤1040),则用释放服务动作发布持续保留命令以用该LUN释放持续保留(步骤1042);否则(步骤1036),该系统驱动器对该调用器的打开调用失败,差错代码为XXX(步骤1038)。
图11示例了用于缺省保留打开选项的流程图1100。当不用上面所列设置的任何一个选项调用装置打开子例程时,该打开缺省为所要求的RESERVE。不管它们是否已经在配置阶段登记,所有的未用路径用该LUN登记(步骤1110)。未用路径将用“登记和忽略现存键”服务动作发布持续保留输出命令。该装置用读取保留发布持续保留输入命令以得到当前持续保留键(步骤1130)。确定是否返回一个键(步骤1132)。如果返回一个键(步骤1133),确定该键是否与该装置的保留键匹配(步骤1134)。如果它不匹配于它自己的保留键(步骤1136),该驱动器到该调用器的打开调用失败,差错代码为EIO(步骤1138)。如果返回的持续保留键与该装置的保留键匹配(步骤1140),用设置为“ext”参数的SCNORESERVE打开所有登记的未用路径(步骤1142)。如果没有返回持续保留键(步骤1144),选择登记的未用路径(步骤1150)。用保留服务动作打开持续保留输出命令以与该LUN进行持续保留。确定该命令是否成功完成(步骤1154)。如果成功完成(步骤1160),该装置用未用路径索引标记保留的字段,该未用路径索引与该LUN进行了保留(步骤1170)。用设置为SC NO RESERVE的‘EXT”参数打开所有登记的未用路径(步骤1180)。如果保留命令失败(步骤1156),该驱动器对该调用器的打开调用失败,差错代码为EIO(步骤1158)。
图12示例了用于用LUN释放的流程图1200。当调用装置关闭例程时,除它的retain-reserve(保持保留)标志被设置为TRUE(真)外,它应该总是释放它的持续保留给它所连接的LUN,其中带有释放服务动作的持续保留输出命令必须通过未用路径发布,该未用路径在之前已经进行了保留并仍然持有该保留。如果这个条件不能满足,该请求被忽略并返回正常状态(GoodStatus)。
为了实现这个过程,首先驱动器关闭该装置的所有未用路径(步骤1210),然后打开保持该保留的未用路径(步骤1220)。用释放服务动作发布持续保留输出命令以释放该持续保留到该LUN(步骤1230)。
已经为说明和示例的目的提出了本发明具体实施例的前面的描述。它不是穷举的或将本发明限制为所公布的精确的形式。按照上面的宗旨,许多修改和变化是可能的。这意味着本发明的范围不局限于其详细的说明,而由后附的权利要求书来限定。
权利要求
1.一种用于当在多个输入/输出路径的第一个中发生硬件故障时使用多个输入/输出路径中的第二个提供对共享存储系统的逻辑单元号的访问的方法,该方法包括将操作系统的打开选项映射到SCSI持续保留命令,以允许所有的多路径用共享存储系统的逻辑单元号登记,并允许该多路径中的第二个在用共享存储系统获得持续保留后访问共享存储系统的逻辑单元号。
2.如权利要求1所述的方法,其特征在于将操作系统的打开选项映射到SCSI持续保留命令,以允许所有的多路径用共享存储系统的逻辑单元号登记进一步包括使用单一保留键用共享存储系统的逻辑单元号登记来自第一主机的所有路径。
3.如权利要求1所述的方法,其特征在于将操作系统的打开选项映射到SCSI持续保留命令进一步包括获得关于持续保留和保留键的信息。
4.如权利要求3所述的方法,其特征在于获得关于持续保留和保留键的信息进一步包括使用保留输入命令。
5.如权利要求4所述的方法,其特征在于保留输入命令进一步包括读键服务动作和读保留服务动作。
6.如权利要求1所述的方法,其特征在于将操作系统的打开选项映射到SCSI持续保留命令进一步包括发布用于用共享存储系统的逻辑单元号开始一个动作的持续保留输出命令。
7.如权利要求6所述的方法,其特征在于用于用共享存储系统的逻辑单元号开始一个动作的持续保留输出命令进一步包括从包括登记、保留、释放、清除、预占、登记和忽略现存键、和异常预占的组中选择的服务动作。
8.如权利要求7所述的方法,其特征在于登记服务动作包括一个添加和一个删除选项。
9.如权利要求7所述的方法,其特征在于添加选项进一步包括当在配置时登记每条路径;确定第一次登记尝试是否成功;在打开时,用登记和忽略现存键再次登记所有路径登记;故障发生后,由接管主机发布一个强迫打开以用预占和异常服务选项命令使持续保留输出清除与预占的保留键匹配的保留键;和当第一或第二次登记尝试成功时,将该路径的状态设置为真。
10.如权利要求7所述的方法,其特征在于删除选择进一步包括确定一条路径是否具有持续保留;当该路径被确定具有持续保留时,用设置的服务选项释放来发布持续保留输出;和当该路径被确定为不具有持续保留时释放该保留。
11.如权利要求7所述的方法,其特征在于保留服务动作还包括通过检查是否设置命令参数判定一个装置是否需要向共享存储系统的逻辑单元号进行保留;当未设置命令参数时,缺省为所要求的保留,并且当没有启动程序已经保留共享存储系统的逻辑单元号时,实现对共享存储装置的逻辑单元号的持续保留;和当设置了命令参数时执行该命令参数。
12.如权利要求11所述的方法,其特征在于命令参数是强制打开选项,当当前保留键与该装置的保留键不匹配时,该强制打开选项使得该装置读取当前保留键、预占和异常列队任务。
13.如权利要求12所述的方法,还包括通过设置命令参数为非保留防止SCSI-2保留;确定强制打开是否成功完成;当强制打开命令成功完成时,设置该装置的保留标志为进行了持续保留的路径索引并打开带有设置的非SCSI-2保留选项的所有路径;和当强制打开命令没有成功完成时发布差错代码。
14.如权利要求11所述的方法,其特征在于该命令参数是一个保持保留选项,该保持保留使得该装置读取当前保留键、确定是否返回一个键、当不返回一个键时,确定不由启动程序保留逻辑单元号,并进行持续保留。
15.如权利要求14所述的方法,其特征在于保持保留选项使得该装置确定返回的键是否与该装置的保留键匹配,当该返回的键与该装置的保留键不匹配时发布差错代码,当该返回的键与该装置的保留键匹配时,打开带有设置的非SCSI-2保留选项的所有路径,设置保留标志为进行了持续保留的路径索引,设置保持保留为真,并在关闭时检查保持保留字段以确定是否应该释放持续保留。
16.如权利要求11所述的方法,其特征在于命令参数是非保留选项,该非保留选项使得该装置读取当前保留键、确定是否返回一个键、确定不由启动程序保留逻辑单元号并用来自主机的原始命令参数打开所有路径。
17.如权利要求16所述的方法,其特征在于该非保留选项使得该装置确定是否返回键与该装置的保留键匹配,当该返回键与该装置的保留键不匹配时发布差错代码,当该返回键与该装置的保留键匹配时用释放发布持续保留输出。
18.如权利要求11所述的方法,其特征在于该命令参数是一个缺省保留选项,该缺省保留选项使得该装置检查所有路径、确定是否有路径未登记,登记所有未登记的路径、忽略任何未成功登记的路径、返回和读取保留键、当该返回的保留键与该装置的保留键不匹配时发布差错代码并打开所有带有设置的非SCSI-2保留的已登记路径。
19.如权利要求18所述的方法,其特征在于该缺省保留选项使得当不返回一个键时该装置选择一个登记的路径、为所选择的登记的路径发布持续保留、如果该持续保留不成功则忽略该路径,当持续保留成功时用进行了保留的路径索引来标记保留字段,并打开带有设置为非SCSI-2保留的命令参数的所有登记的路径。
20.如权利要求11所述的方法,其特征在于该命令参数是一个单选项,该单选项使得该装置检查所有路径、确定路径是否未登记、登记所有未登记的路径、忽略任何未成功登记的路径、返回并读取保留键、当该返回的保留键与该装置的保留键不匹配时发布差错代码,并打开带有设置的非保留的所有已登记路径。
21.如权利要求20所述的方法,其特征在于该单选项使得当不返回一个键时该装置选择一个登记的路径、为所选择的登记的路径发布持续保留、忽略该持续保留不成功的该路径,并且当持续保留成功时用进行了保留的路径索引来标记保留字段并打开带有设置为非保留的命令参数的所有登记的路径。
22.如权利要求7所述的方法,其特征在于释放服务动作包括关闭所有未保留的、带有设置的持续保留标志的路径;打开带有设置的持续保留标志的一个路径;和发布带有设置的释放服务动作的持续保留输出命令以释放一个路径的持续保留。
23.一种用于由共享存储系统支持SCSI持续保留命令的方法,包括处理保留键以标识登记的主机;和处理持续保留命令以控制通过一个主机的访问。
24.如权利要求23所述的方法,其特征在于持续保留命令的处理包括允许所有的多路径用共享存储系统的逻辑单元号登记。
25.如权利要求24所述的方法,还包括使用一个单保留键用共享存储系统的逻辑单元号登记来自第一主机的所有路径。
26.如权利要求23所述的方法,其特征在于处理保留键包括获得关于持续保留和保留键的信息。
27.如权利要求26所述的方法,其特征在于获得关于持续保留和保留键的信息还包括使用保留输入命令。
28.如权利要求27所述的方法,其特征在于保留输入命令包括读取键服务动作和读取保留服务动作。
29.如权利要求23所述的方法,其特征在于持续保留命令的处理包括发布用于用共享存储系统的逻辑单元号开始一个动作的持续保留输出命令。
30.如权利要求29所述的方法,其特征在于用于用共享存储系统的逻辑单元号开始一个动作的持续保留输出命令还包括从包括登记、保留、释放、清除、预占、登记和忽略现存键、和异常预占的组中选择的服务动作。
31.一种用于将操作系统的打开选项映射到SCSI持续保留命令的驱动器,该驱动器被配置为处理保留键以标识登记的主机,并且处理持续保留命令以控制通过一个主机的访问。
32.如权利要求31所述的驱动器,其特征在于该驱动器通过允许所有的多路径用共享存储系统的逻辑单元号登记来处理持续保留命令。
33.如权利要求32所述的驱动器,其特征在于该驱动器用使用一个单一保留键的共享存储系统的逻辑单元号登记来自第一主机的所有路径。
34.如权利要求31所述的驱动器,其特征在于该驱动器通过获得关于持续保留和保留键的信息来处理保留键。
35.如权利要求34所述的驱动器,其特征在于该驱动器通过使用保留命令获得关于持续保留和保留键的信息。
36.如权利要求35所述的驱动器,其特征在于保留命令包括读取键服务动作和读取保留服务动作。
37.如权利要求31所述的驱动器,其特征在于该驱动器通过发布用于用共享存储系统的逻辑单元号开始一个动作的持续保留输出命令来处理持续保留命令。
38.如权利要求37所述的驱动器,其特征在于用于用共享存储系统的逻辑单元号开始一个动作的持续保留输出命令还包括从包括登记、保留、释放、清除、预占、登记和忽略现存键、和异常预占的组中选择的服务动作。
全文摘要
公开了一种用于在非并发群集环境中提供多路径I/O的方法和设备。通过使用SCSI-3持续保留命令提供经由多条路径对逻辑卷的共享非并发访问。操作系统的打开选项被映射到SCSI持续保留命令,以允许所有的多路径用共享存储系统的逻辑单元号登记,并允许多路径中的第二条在用共享存储系统获得持续保留后,访问共享存储系统的逻辑单元号。
文档编号G06F13/00GK1348134SQ0114119
公开日2002年5月8日 申请日期2001年10月12日 优先权日2000年10月13日
发明者小约翰·T·弗林, 理查德·H·约翰逊, 萧丽梅 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1