多重连接管理系统的制作方法

文档序号:6512757阅读:219来源:国知局
专利名称:多重连接管理系统的制作方法
技术领域
本发明涉及计算系统,特别涉及用来在计算系统的联网设备之间进行通信的计算机软件和硬件。
背景技术
有效的计算机操作需要高效地从诸如存储盘的外围设备中读取数据和向其中写入数据。此读取和写入能力的基础是提供用于与该外围设备通信的物理通路的硬件连接。这样的连接一般包括耦接到计算机和外围设备两者的端口的光纤线缆。这样,线缆包括在其上交换读取和写入的数据的通信链路。
出于性能和可靠性的考虑,已经开发了使用多个线缆来连接两个设备的计算机系统。例如,计算机可以使用5条或更多条线缆来将数据写入到单个盘存储单元中,以及从单个盘存储单元中读取数据。在一个方面,使用多条线缆来连接相同的计算机设备加强了可靠性。如果一条或更多条线缆变为断开或者因其它原因而不能工作,则另一连接理想地保持可用。更大数目的线缆还提供增大的带宽,从而允许更高效的数据交换。
尽管有这样的处理和可靠性进步,然而,使用冗余连接给计算机性能提出了新的挑战。例如,现有系统仅被配置为使用单个连接来将数据发送(route)到所希望的外围设备。现有的系统上层程序设计(upper level programming)依赖于外围设备与其各自的线缆连接的一对一关系,以便将数据发送给该设备。这是因为该上层程序设计在不考虑连接的情况下发送读取/写入命令。例如,当写入数据时,上层程序被配置为仅“看到”或者以其它方式处理目标盘单元所特有的地址。
随着冗余连接的出现,具有通向相同盘单元的多个连接的计算机必须说明(account for)每个线缆连接的存在,以便成功地读取和写入数据。必须知道每条线缆的状态,例如,线缆是否在报告(report)、是否被删除、添加等。否则,若未能分别跟踪每个连接,则可能造成将数据写入到不恰当的设备,或者从不恰当的设备读取数据。这样的错误通信将导致文件损坏。
此外,现有系统具有相对有限的可用来潜在地存储地址、路由和与不同通信路径有关的其它信息的存储器资源。接纳用于每个设备的多个线缆连接必须以某种方式不使可用的存储器超负荷。另外,计算机处理的时间关键(critical)性质要求任何路由方案都应足够高效,以便无延迟地处理日益增加的工作量。
因此,存在着对于管理硬件设备和计算机系统之间连接的改进方式的相当大的需求。

发明内容
本发明通过提供一种管理通向外围设备的多个物理连接的装置、程序产品和方法,来解决与现有技术相关的这些和其它问题。根据本发明的实施例包括提供逻辑连接接口的多路径驱动程序(driver)。此接口允许客户端通过一个或多个物理连接来高效地访问外围设备。例如,客户端用户或系统可以从外围设备读取数据和将数据写入到外围设备中,而不考虑使用哪个实际的物理连接来发送该数据。作为替代地,由多路径驱动程序来自动且透明地确定那个物理连接。
成为本发明的特征的这些和其他优点及特征在附加于此的权利要求中阐述,并形成本发明另一部分。然而,为了更好地理解本发明以及通过使用本发明而达到的优点和目的,应当参考附图和伴随的描述性内容,其中在所述描述性内容中描述了本发明的示例实施例。


图1是根据本发明的计算机系统的方框图。
图2是图1的系统中的计算机的方框图。
图3是图2的操作系统在添加新连接之后的方框图。
图4是图示用于对与图1的计算机系统中的盘单元相关的基本连接(primary)定位的示例例程的流程图。
图5示出配置为使新设备驱动程序与图4中定位的基本连接相关联的一系列示例步骤。
图6是图示由图3的多路径驱动程序进行的、用于响应于失败连接而按顺序转到另一连接的示例例程的流程图。
图7是图示用于将连接从图1的计算机系统中的盘单元脱离的示例例程的流程图。
具体实施例方式
本发明提供一种管理通向外围设备的多个物理连接的装置、程序产品和方法。根据本发明的实施例包括多路径驱动程序,其使得客户端能够通过一个或多个物理连接来高效地访问外围设备。由多路径驱动程序自动且透明地确定用来访问所述设备的物理连接。
在一种意义上,多路径驱动程序包括客户端/上层程序设计和与每个连接相关的逻辑之间的逻辑接口层。也就是说,多路径驱动程序可包括为当前硬件和软件实现保留“一个设备”接口的新层,而同时提供保持通向外围设备的各个连接特定的信息的接口。这允许上层程序设计实现诸如读取、写入、重置、读取参数等的功能,同时仅集中于由多路径驱动程序提供的外围设备的“一个视图(view)”。这样,实际的物理连接仍然未卸下客户端和其它上层程序设计的负荷。
通过将多个连接与单个外围设备相关联,并且允许将该连接作为一个实体对待,多路径驱动程序减少了数据损坏的发生。例如,多路径驱动程序帮助防止连接的遗漏、或者连接与外围设备的不正确关联。此外,可以在“运行中(on the fly)”添加另外的连接,而不需要任何关机/停顿等。
为此,多路径驱动程序可包括这样的列表,该列表包括仅指向与可用或在其它方面合乎需要的连接相关的那些对象字段的指针。通过仅保持有效(active)连接的单独列表,节省了存储空间。而且,更为简明的列表减少了对适当连接定位所需的处理时间和功率。多路径设备通过从所述列表中移除失败连接,并且通过确定通向该外围设备的替换连接来附加地处理连接失败。
值得注意的是,到此替换连接的转换被无缝地,或者在没有任何客户端可辨识的延迟的情况下实现。这样,尽管有失败连接,但计算操作仍然是不间断的。这样,有效列表和多路径驱动程序的这些特征使得在确定新路线时不必检查每个设备驱动程序的状态。这些特征也确保重试的最佳数目,并确保尝试了所有可能的路径。将失败的连接从列表删除也为其它应用释放了存储器。
此外,多路径驱动程序持续地更新连接信息,以减少数据损坏和处理延迟的发生。例如,当添加和删除每个系统规格的连接时,自动建立对应的逻辑连接。另外,本发明的过程通过删除与不希望的连接有关的数据来使对存储器的使用最少。
转向附图,其中在这几幅视图中,相同的标号总是表示相同部件,图1示出了示例计算机系统10,其被配置为管理将计算机12链接到外围设备18的多个物理连接22。也就是说,图1的计算机12使用多于一条线缆或其它连接来耦接到外围设备18。系统10管理这些连接,以允许计算机命令和数据的高效通信。出于客户端处理的考虑,这样的管理包括数据发送功能、以及使每一个连接22与基本连接和/或外围设备18相关联。
为此,系统10的计算机12被配置为支持向客户端软件提供逻辑连接接口的多路径驱动程序。此接口允许客户端通过一个或多个物理连接22来高效地访问外围设备18。在这么做的时候,计算机12的逻辑连接/多路径接口将该连接与基本连接相关联,同时更新并使用有效连接列表来将数据无缝地发送到外围设备18。在一个实施例中,从存储器删除无效连接。
如图1所示,系统10包括多个计算机12、14和16,它们互相联网,并连接到外围设备18和20。图1的示例外围设备包括存储服务器逻辑单元,其被配置为将数据存储到联网的计算机12、14和16上,以及从联网的计算机12、14和16发送数据。这样的存储服务器逻辑单元包括可单独寻址的盘单元,其中,每个计算机12、14和16可以分别从所述盘单元读取数据,并将数据写入到所述盘单元上。服务器逻辑单元的示例是例如可以从国际商业机器公司得到的企业存储服务器(Enterprise Storage Server)。光纤线缆22将计算机12、14和16连接到外围单元18和20上。
尽管图1示出外围单元18和20为服务器逻辑单元,但本领域技术人员应当理解,合适的替换外围设备可以包括其它联网的硬件设备。另外,尽管图1中示出的连接22包括光纤线缆,但是根据本发明的其它实施例的合适连接可以包括其它通信设备,以至包括无线传输装置。
尽管对根据本发明的一些实施例的目的来说不是必要的,但是图1的系统10支持集群。集群通常是指将多台计算机联网到一起以合作执行计算机任务的计算机系统组织。计算机集群的重要方面是集群中的所有计算机呈现出单个映像。集群常常用在特别关心高性能和可靠性的相对大型多用户计算机系统中。
例如,由于与单个计算机所能够处理的相比,多个计算机可以并行处理更大数量的任务,因此使用集群来增大总体性能。通常,可以使用负荷平衡来确保在计算机之间公平地分配任务,以防止个别计算机超负荷。还可以使用集群来提供冗余、或故障容忍,使得如果任何计算机或连接失败,则将由集群中的其它计算机或连接来处理先前由那个计算机或连接执行的操作。
在图1的特定环境中,多个连接22支持集群系统10的集群计算机12和外围单元18之间的通信。这样,多个连接22可以包括从服务器逻辑单元的相同盘单元到计算机12的不同通信路径。这些冗余连接22可以提供提高的系统可靠性和性能。
在一个示例实施例中,计算机12、14和16被实现为来自国际商业机器公司的iSeries计算机,而操作系统40被实现为诸如也可以从IBM得到的OS/400操作系统的合并了集群性能的适当操作系统。对于本领域普通技术人员来说,示例环境中的集群服务的一般使用和结构是众所周知的。
应当理解,可以在除了集群结构中组织的系统以外的系统中完成根据本发明的过程。还应当理解,可以在其它环境中使用除了在此专门用来描述由计算机系统进行的计算机任务处理的命名以外的命名。因此,本发明不应被限于在此使用的例如关于协议、请求、写入、读取、删除、作业、对象等的特定命名。
图2示出了被配置为管理通向外围设备18的一个或多个物理连接的图1的计算机12的示例硬件结构。例如,计算机12一般地代表多个多用户计算机中任何一个,如网络服务器、中型计算机、大型计算机等。这样,在此说明书全文中,有时互换地使用术语“节点”、“系统”和“计算机”。无论如何,应当理解的是,可以在其它计算机和数据处理系统中,例如在诸如工作站、台式计算机、便携计算机等的单机或单用户计算机中,或者在其它(例如,合并了嵌入式控制器等的)可编程电子设备中,实现本发明。
计算机12通常包括一个或多个系统处理器24,其通过布置在高速缓存系统28中的一级或多级高速缓冲存储器而耦接到主存储器26。此外,主存储器26通过系统输入/输出(I/O)总线35以及例如工作站控制器34和I/O处理器36的多个接口设备而耦接到多种外部设备,其中,所述系统输入/输出(I/O)总线35和多个接口设备分别提供对一个或多个外部网络(例如,集群网络互连)、一个或多个工作站14、和/或诸如存储服务器逻辑单元的一个或多个存储设备的外部访问。可以使用任何数量的替换计算机体系结构。
为了实现根据本发明的用于管理连接的装置、程序产品和方法,图示计算机12为在主存储器26中驻留有操作系统40,该操作系统40实现用于管理通向外围设备18的连接的多个对象31、41、42和50。对象包括统称为方法的数据结构和操作。方法访问并操纵数据结构。可以将具有同样数据结构和共同行为的对象集中到一起成为类。对象结构包括数据和指针字段,指针包含其它存储器位置的地址。数据字段体现信息或其它对象。尽管在图示的实施例中作为对象示出,但是在其它实施例中,多路径驱动程序、设备驱动程序和根据本发明的所有其它软件组件不限于由对象组成。
如图2所示,操作系统40的一些对象31、41和42可以对应于计算机12和/或计算机系统10的物理组件。例如,IOP 31可对应于连同适配器(未示出)一起与外围设备18通信的I/O处理器36。这样,IOP 31包括访问和操纵I/O处理器36的方法。也就是说,IOP 41使用I/O处理器36来发起与访问外围设备18相关的过程。类似地,设备驱动程序42可一对一地对应于与外围设备18通信的物理连接。因而,设备驱动程序42充当操作系统40用来操纵与各个线缆连接相关的信息和过程的逻辑结构。这样,如图2所示,计算机12仅具有一个与外围设备18相关的物理连接。
存储管理器50包括负责管理盘分配的其它上层程序,或者以其它方式与负责管理盘分配的其它上层程序通信。也就是说,存储管理器50被配置为对盘单元和其它外围设备18进行命令和其它数据的分配、读取和写入。
在图2的单个连接的情景中,存储管理器50将信息发送到设备驱动程序42,并从设备驱动程序42接收信息。设备驱动程序42部分地充当IOP 31和存储管理器50之间的接口。例如,设备驱动程序42可以在其与存储管理器50通信之前从外围设备18进行读取。这样的数据包括一个或多个与各个外围单元如盘单元相关的标识符。例如,当确定读取/写入分配时,存储管理器50可以使用此标识符信息。
如本领域所众所周知的,设备驱动程序42可以附加地与逻辑硬件资源信息(LHRI)41相对接。LHRI 41解决和处理用户及系统输入,以在一个方面确保计算机和系统之间的一致命名约定。此外,LHRI 41可以对应于用于接收用户输入的物理HRI接口。如在下面所更详细地讨论的,这样的输入可以包括指定从与外围设备18的关联中移除连接。
在计算机12中还图示了一个或多个任务或应用46,每个任务或应用46可以访问对象31、41、42和50、以及在操作系统40中实现的其它特征。然而,应当理解,可以在计算机12中的其它软件层中实现在此描述的功能性或特征,并且可以在集群计算机系统10中的其它程序、方法、计算机或组件之间分配功能性。因此,本发明不限于在此描述的特定软件实现。
图2的I/O处理器36和外围单元18之间的连接可以包括一个或多个连接,例如图1中示出的光纤线缆。示例对象31、41和42可以各自为单个连接所特有。如图3所示,可以为所添加的或者以其它方式与相同盘单元相关的每个附加连接创建这样的新对象。
更具体地说,图3示出了具有通向单个盘单元60的多个连接的图2的计算机12的操作系统40。在一种意义上,图3图示了在计算机12和盘单元60之间添加了两个附加连接之后的图2的操作系统40。当在计算机12和相同的盘单元60之间安装新线缆时,可以创建新连接66和68。这样,图3的盘单元60利用由分支线64、66和68逻辑表示的三个连接而连接到计算机12。
如图3所示,每个连接的添加可以引起操作系统40内用于每个连接的新设备驱动程序、IOP和LHRI的创建。这样,操作系统40的每个设备驱动程序42、71和72可以与各个物理连接64、66和68相关。因此,每个设备驱动程序充当操作系统40用来操纵与各个线缆连接相关的信息和过程的逻辑结构。出于下面详细讨论的原因,与通向盘单元60的第一连接64相关的设备驱动程序42可以包括基本标志67或其它指示符。设备驱动程序42中的这种基本指示符可以帮助将顺次安装的连接与基本设备驱动程序42和盘单元60相关联。
每个连接64、66和68具有各自的IOP 41、69和70。然而,本领域技术人员将理解,合适的IOP可以与多于一个连接相关。这些IOP 41、69和70传送盘单元60以及连接64、66和68所特有的信息。IOP 41、69和70可以将这样的信息传递到各个设备驱动程序42、71、72。这样,每个连接64、66和68分别与它自己的设备驱动程序42、71和72相关联。以这一方式,图3的操作系统40为每个连接64、66和68保持各自的设备驱动程序42、71和72。这允许单独跟踪连接状态和其它特性,例如连接的可操作性和连接信息。
每个设备驱动程序42、71和72还包括盘单元60所特有的识别信息。分别为每个连接64、66和68附加地创建LHRI 73、74和75。LHRI 73、74和75保持连接64、66和68与盘单元60之间的一致命名,并且给用户提供接口机制,以对特定连接寻址。如在下面详细讨论的,例如,可以使用LHRI来从盘单元删除连接数据。
与用于每个设备驱动程序42、71和72的各个连接和盘单元有关的信息最终可以传送到多路径驱动程序76。可以响应于操作系统40确定有多于一个连接形成主计算机12和盘单元60之间的通信路径,创建多路径驱动程序76。例如,基本设备驱动程序42可以响应于来自新设备驱动程序71的提示而创建多路径驱动程序76。新设备驱动程序71与通向相同盘单元60的新连接66相关。
在一种意义上,多路径驱动程序76包括上层程序设计/存储管理器50和与每个连接相关的逻辑之间的逻辑接口层。也就是说,多路径驱动程序76包括设备驱动程序42、69和70之间的新层,其为当前硬件和软件实现保留“一个设备”接口,而同时提供保持通向盘单元60的各个连接64、66和68特定的信息的接口。因此,多路径驱动程序76呈现外围设备/盘单元60的一个“视图”,而不管有多少通向盘单元60的连接。这允许上层程序设计和存储管理器50实现诸如读取、写入、重置、读取参数等的功能,同时仅集中在多路径驱动程序76提供的盘单元60上。
因为多个连接与单个盘单元60相关联,所以存储管理器50可以将它们作为一个实体对待。这确保了通向盘单元的连接不被排除在外,并且用于两个不同盘单元的两个连接不被错误地关联到一起。这减少了数据损害的发生。
为此,多路径驱动程序76可以编制完整连接列表77。该完整连接列表可以包括涉及每个设备驱动程序42、71和72的信息。例如,多路径驱动程序76可以编制具有指向与给定连接相关的每个设备驱动程序的类型/级别/序列号字段的指针的完整列表77。例如,只要连接变得可操作或者添加了新的盘单元,就可以将这样的信息记录在完整列表77中。完整连接列表77被安排成对上层程序设计/存储管理器50可用。
多路径驱动程序76还可以包括有效连接列表78。有效列表78可包括指向可用或者以其它方式合乎需要的那些设备驱动程序的对象字段的指针。例如,示例有效列表可以包括指向设备驱动程序42和72、但不指向设备驱动程序71的指针,其中,例如,设备驱动程序71的相关线缆连接66为了维护而被断开。
此外,更为简明的列表减少了对适当连接进行定位所需的处理时间和功率。多路径设备76通过从提供给存储管理器50的有效列表中移除失败连接71来附加地处理连接失败。多路径设备76响应于失败连接66而附加地查找通向盘单元60的替换连接64和/或68。
同时,多路径驱动程序76可以将相关信息,以至于完整列表77中包含的信息,向上传递给存储管理器50。存储管理器50可以将读取/写入命令向下发送到多路径驱动程序76。而多路径驱动程序76又充当接口,以协调和管理应当将写入/读取命令发送到哪里以到达它们的目标。也就是说,多路径驱动程序76可以使用有效连接列表78来确定应当使用哪个连接64、66和/或68。如在此讨论的,由多路径驱动程序76进行的所述确定除了确定给定连接是否有效以外,还可以包括负荷均衡和其它考虑。
出于示例的目的,图3只包括一个多路径驱动程序76,因此,设备驱动程序42、71和72只与一个盘单元60相关联。然而,本领域技术人员将理解,操作系统40可以包括管理另外的盘单元的连接所需的多个另外的多路径驱动程序。
针对此特定盘单元60的所有通信都流经图2的一个多路径驱动程序76。当有多个连接时,每个连接与设备驱动程序、资源名称和相同盘单元60相关。多路径驱动程序76管理所有对象。存储管理器50和其它上层程序设计根据有多少实际连接而保持无负担(unburdened)。此外,可以“在运行中”添加另外的连接,而无需任何关机/停顿等。
外围设备18的每个盘单元60、62包括唯一的标识符字符串,例如由存储服务器逻辑单元的制造商设置的标识符字符串。该字符串可以被读取,并且通常不会被系统10改变。外围设备18还包括具有连接信息的页。操作系统40使用该连接信息来保持对盘单元的跟踪,从而将相同的资源名称分配给用于每次初始程序加载(IPL)的每个盘单元和连接。当连接22最初耦接到盘单元60时,盘单元60将与连接22有关的连接信息记录在盘单元的页上。如在下面详细讨论的,当用户使用LHRI来移除连接时,可以更新这样的信息。
图3的操作系统40的全局设备79可以维持注册信息的全局列表80。全局列表80的注册信息可以与在计算机12上注册的所有连接有关。此注册信息可以与多路径驱动程序76的当前连接列表77中包括的信息不同。也就是说,当前列表77的指针信息仅与和单个盘单元60相关的那些连接有关。可替换地,全局列表80可包括指向已经与计算机12相关联地注册的所有连接的指针。
全局列表80可访问的、或者在其它情况下全局列表80中包括的注册信息包括例如在激活连接时或者在IPL期间传送的类型/级别/序列号信息。如在下面讨论的,出于管理的考虑,此全局列表80提供使通向相同盘单元的连接与基本盘单元相关联的机制。也可以使用此全局列表80来确定当移除连接时有用的替换路线。
下文中的讨论将集中在用来以根据本发明的方式来管理连接的特定例程。被执行以实现本发明的实施例的例程,不管是作为操作系统的一部分还是作为特定应用、组件、程序、对象、模块或指令序列来实现,在此都将被称为“计算机程序”、“程序代码”、或者被简称为“程序”。计算机程序通常包括一个或多个这样的指令,其中,所述指令在不同时刻驻留在计算机内的不同的存储器和存储设备中,并且在被计算机内的一个或多个处理器读取和执行时,该指令使得那台计算机进行执行体现本发明的各个方面的步骤或元素所必需的步骤。
此外,尽管已经且下文中仍将在全功能计算机和计算机系统的上下文中描述本发明,但本领域技术人员将理解,本发明的各种实施例能够被作为程序产品而以各种形式分发,并且,不管用来实际进行该分发的特定类型的信号承载介质是什么,本发明同等地适用。信号承载介质的示例包括但不限于可记录型介质,尤其是诸如易失性和非易失性存储设备、软盘和其它可移动盘、硬盘驱动器、光盘(例如CD-ROM、DVD等);和诸如数字和模拟通信链路的传输型介质。
应当理解,可以基于应用来标识下文中描述的各种程序,其中,为了所述应用而在本发明的特定实施例中实现所述各种程序。然而,应当理解,后面的任何特定程序命名都仅仅是为了方便而使用,因而,本发明不应被限制为只用于由这样的命名所标识和/或暗示的任何特定应用中。
此外,本领域技术人员将认识到,图1-3中图示的示例环境不意欲限制本发明。实际上,本领域技术人员将认识到,在不脱离本发明范围的情况下,可以使用其它替换硬件和/或软件环境。
图4示出了可由图1-3的硬件和软件环境执行的步骤序列。更具体地说,图4的流程图90的示例步骤被配置为部分地确定基本连接的候选者。也就是说,通常,流程图90的过程旨在对通向盘单元的基本连接进行定位。然后,为了根据连接的共同盘单元来组织和管理适当连接,而使通向相同盘单元的所有其它连接与此基本连接相关联。
在图4的方框92,连接事件发生。典型的连接事件可以包括计算机12给所连接的盘单元供电;线缆被插入端口或接线器(switch)中;和/或配置新的盘单元。在图4的方框94,报告与经历了方框92的事件的连接有关的类型/级别/序列号信息。通常,出于识别的目的而在制造商制造的硬件设备中包括这样的类型/级别/序列号信息。这样,IOP 69可以通过物理连接66而从盘单元60中检索该类型/级别/序列号信息。
然后,在方框96,IOP 69可以发起设备驱动程序71的生成。这样,与IOP 69相关联地生成设备驱动程序71。而IOP 69又依次与连接66和盘单元60相关。从而,新创建的设备驱动程序71可以包括对在方框94检索到的类型/级别/序列号的访问权。
然后,在方框98,将包含新生成对象的地址的指针添加到全局列表80中。当这样配置时,全局列表80可以包括指向先前生成的对象的指针。这些对象可以与相同的盘单元60相关,也可以不与相同的盘单元60相关。
在方框100,设备驱动程序71使IOP 69读出盘单元60的页的唯一ID。在流程图90的方框102,可以存储此唯一ID。与方框94处IOP 69检索到的类型/级别/序列号信息不同,方框100处的唯一ID为单个盘单元60所特有。也就是说,没有两个盘单元共享相同的唯一ID。这样,这两种类型的识别信息提供关于识别给定盘单元的确切性(specificity)的不同级别的粒度(granularity)。
如完全阅读本说明书之后将明白的,根据本发明的实施例利用这些不同级别的粒度来首先在全局列表80中对具有与方框94处读取的类型/级别/序列号相同的类型/级别/序列号的设备驱动程序定位。如在下面结合图5详细描述的,对此第一对象定位有助于搜索基本连接,而不过度减慢其它过程。为此,在方框104,新设备驱动程序71在全局列表80中搜索与在方框94处检索到的数据相匹配的类型/级别/序列号数据。由于可以容易地得到类型/级别/序列号数据,所以以相对少的处理和存储器需求迅速地实现了对基本连接定位的这一部分。
在图4的方框112,锁定具有所述类型/级别/序列号的所识别的第一设备驱动程序42。值得注意的是,由于对在方框98处添加到全局列表80中的设备驱动程序71本身的搜索,必须有至少一个这样的具有匹配的类型/级别/序列号的对象。方框112的锁定允许所定位的设备驱动程序42继续搜索全局列表80,而具有相同类型/级别/序列号的所有其它对象被操作系统40有效地抑制(hold)、或者被保持无效。也就是说,不允许全局列表80中具有相同类型/级别/序列号的其它设备驱动程序对象进行搜索,直到解除对所定位的第一设备驱动程序42的锁定为止。这一预防措施防止全局列表80中后来注册的对象同时搜索基本连接。这样的同时搜索会错误地导致确定多于一个基本连接,这将导致分离和数据丢失。
在一个实施例中,锁定保持只施加到全局列表80上具有所查找的类型/级别/序列号的那些设备驱动程序上。因为只有具有相同类型/级别/序列号的那些对象被保持无效,所以列表上的其它方法能够同时搜索与其它盘单元相关的其它类型/级别/序列号对象。这一特征通过使能并行处理而允许良好的效率。
当具有相同类型/级别/序列号的其它对象保持无效时,在方框116,所定位的第一设备驱动程序42顺次读取锁定对象的唯一标识符。然后,在方框117,具有锁定的设备驱动程序42比较所读取的唯一标识符和在方框114取回的所存储的唯一标识符。也就是说,锁定的设备驱动程序42可以评估列表上的其它设备驱动程序,以找到匹配的唯一ID。此唯一ID被用来确认特定设备驱动程序确实与相同的盘单元60相关。
图5的流程图118示出了被配置为将新设备驱动程序71与图4中定位的基本连接相关联的一系列示例步骤。更具体地转向图5的过程,被锁定的设备驱动程序42比较它自己的唯一ID与所取回的(在图4的方框102存储的)新创建的设备驱动程序71的ID。当在图5的方框119,与全局列表80中的任何设备驱动程序相关的唯一ID均与所取回的ID不匹配时,然后,在方框120,在被锁定的设备驱动程序42中设置标志67。此标志67指定被锁定的设备驱动程序42为用于给定盘单元60的基本设备驱动程序。因此,添加到全局列表80中的所有后来的连接可以对基本设备驱动程序定位,并与基本设备驱动程序相关联。
如上面所讨论的,在图4中定位的第一设备驱动程序42可以是在图4的方框96生成的相同设备驱动程序71。出现这样的情形,其中,方框96处生成的设备驱动程序是添加到列表中的第一个设备驱动程序。如在此讨论的,这将是把新创建的对象指定为用于给定盘单元的基本设备驱动程序的情况。
在图5的方框122,释放对基本设备驱动程序42的锁定。然后,在方框123,基本设备驱动程序42可以报告它自己,以登记(post)到存储管理器50或其它上层程序。
当在图5的方框119,被锁定的对象42的唯一标识符替换地匹配所取回的新创建的设备驱动程序71的唯一标识符时,然后,可以使新对象71与被锁定的对象、或基本设备驱动程序42相关联。更具体地说,新设备驱动程序71提示基本设备驱动程序42查看是否已经有与基本设备驱动程序42(和盘单元60)相关的多路径驱动程序76。如果没有,则在图5的方框126,基本设备驱动程序42创建多路径驱动程序76。无论如何,在方框128,把指向新的辅助设备驱动程序71的指针添加到多路径驱动程序76中。
以这一方式,多路径驱动程序76改进(develop)分别包括当前和有效连接列表77和78的阵列。这些列表部分地将新设备驱动程序71关联到基本设备驱动程序42,其中,新设备驱动程序71和基本设备驱动程序42均与盘单元60相关。多路径驱动程序76可以根据连接的状态来更新当前连接列表77和有效连接列表78。
图6的流程图130示出了适于更新有效连接列表78的一个这样的示例步骤序列。更具体地说,流程图130的步骤更新和使用有效连接列表78,以在连接66变得不能工作的情况下透明地转换到替换连接。例如,在图6的方框132,设备驱动程序71可以将连接失败的通知传送给多路径驱动程序76。
响应于该失败,在方框134,多路径驱动程序76确定设备驱动程序71与失败连接66相关。例如,多路径驱动程序76可以读取通知中包括的指向失败设备驱动程序的指针。然后,在方框136,多路径驱动程序76可以从有效连接列表78移除指向所述连接的指针。从有效连接列表78的这一移除确保了多路径驱动程序76不会试图再次通过失败连接66发送数据,或者至少在根据图4的连接过程而重新建立连接66之前不会这么做。
当在方框138,有效列表78表明多路径驱动程序76具有多个由其支配的通向盘单元60的替换连接时,多路径驱动程序76可以顺着(sequence)列表78向下,以通过工作的连接68发送数据。值得注意的是,到此新连接68的转变被无缝或者没有任何可辨识延迟地实现。因此,尽管连接66失败,计算操作仍保持不中断。
为此,多路径驱动程序76尝试使用指向与连接68相关的适当设备驱动程序72的指针来将数据发送到替换连接68。当在方框142通信成功时,然后,在方框144,操作无缝地继续进行。在图6的方框136,将随后发现的任何失败连接都从有效列表78中移除。这样,失败连接只被尝试一次,并且系统10避免失败连接之间的徒劳循环。也就是说,有效列表78中的每个连接只被尝试一次,并且,重试的最大数目等于列表78中的连接数目。只有当在图6的方框138不能确定替换连接时,才在方框146中止操作。
因而,列表78和多路径驱动程序76的这些特征使得不必在确定新路线时检查每个设备驱动程序的状态。自最后一次的更新起,有效列表中包括的所有对象应当是有效的。这些特征也确保最佳次数的重试,并确保尝试了所有可能的路径。
使存储器需求最小化也是由图7中示出的流程图150的过程实现的好处。更具体地说,流程图150的示例步骤更新存储在外围设备/盘单元60上的连接信息。除了减少存储器利用率以外,如下面所讨论的将连接信息从盘单元移除有助于对当前连接信息的处理。
盘单元包括用于存储连接信息的有限空间。连接信息包括将盘单元耦接到计算机的一个或多个连接所特有的标识符序列。例如,存储在盘单元上的可读取可写入的数据页可以包括与耦接到盘单元的每个连接相关的字符串。当添加更多连接时,此存储空间将充满。因此,本发明的特征提供用于删除有关每个盘单元的错误或过时的连接信息的机制。
具体转向图7的方框152,用户可以将命令输入到计算机12,以删除失败或无报告连接。作为响应,计算机12的操作系统40可以自动地发起从盘单元60移除连接信息的过程。例如,在方框154,与无报告连接66的设备驱动程序71相关的LHRI 74可以提示全局驱动程序79对耦接到盘单元60的工作的连接进行定位。也就是说,LHRI 74发起自动发现不同于无报告连接且通向以前与该无报告连接进行有效通信的相同盘单元60的替换路径的过程。
为此,在方框156,全局驱动程序79在全局列表80中搜索与盘单元60相关的类型/级别/序列号信息,如果发现信息匹配,则在方框164,全局驱动程序79提示与列表80中可适用的指针相关的设备驱动程序72读出盘单元60的连接数据。在方框166,这种数据的成功读取可以自动地发起对盘单元60的连接数据的评估。当该数据不能被读取或者连接数据不匹配时,在方框156,可以继续进行对替换连接的搜索。
可替换地,当在方框168定位并确认了通向盘单元60的工作的连接时,则在方框170,设备驱动程序72可以使用IOP 70来使盘单元60上的连接数据被移除。然后,此连接数据被设备驱动程序72重新写入,使得其不包含对无报告连接的引用。一旦被这样更新,在方框174,设备驱动程序72将更新后的连接信息写回到盘单元60。在方框160,方框174处的成功更新结束更新序列。
以这一方式,可以为准确的连接信息和其它用途而保留盘存储空间。此外,例如,可以使用更新后的连接信息来在IPL或安装时验证连接性。在这样的一种场景下,来自盘单元的连接信息可以向多路径驱动程序表明与四条不同线缆有关的数据驻留在盘单元存储器中。多路径驱动程序可以使用有效连接列表78来验证那四个连接当前可用。不相符之处可导致对与一个或多个所述连接相关的对象进行检查,以验证它们是否仍然如所报告的一样在运行。
尽管通过对各种实施例的描述而说明了本发明,并且,尽管相当详细地描述了这些实施例,但是申请人并不想将所附权利要求的范围约束或者以任何方式限制于这样的细节。例如,可以根据本发明的原理来删除、增加上述示例流程图的任何步骤,或者使其与另一步骤同时发生,或者以其它方式对其进行改变。
此外,尽管根据本发明原理的计算机系统实际上可以包括任何数目的联网计算机,并且,尽管通过权利申请(entitlement application)可以促进本发明上下文中那些计算机之间的通信,但是,本领域技术人员仍将理解,本发明的过程也可以适用于引导如上面的示例中的两台计算机之间的直接通信,或者甚至适用于单个计算机的内部处理。对本领域技术人员来说,其它优点和修改将变得非常明显。因此,在其更为广泛的方面,本发明不限于所示出和描述的特定细节、代表装置和方法以及说明性示例。因此,在不脱离申请人的总体发明构思的精神或范围的情况下,可以脱离这样的细节。
权利要求
1.一种装置,包括处理器;以及多路径设备驱动程序,被配置为在处理器上运行,并管理通向外围设备的多个物理连接,该多路径设备驱动程序提供逻辑连接接口,该逻辑连接接口被配置为给客户端提供通过所述多个物理连接中的至少一个对外围设备的访问。
2.如权利要求1所述的装置,其中,多路径设备驱动程序包括用于所述多个物理连接中的每一个并耦接到该多路径设备驱动程序的设备驱动程序。
3.如权利要求1所述的装置,其中,多路径设备驱动程序被配置为管理包括所述多个物理连接的列表。
4.如权利要求3所述的装置,其中,多路径设备驱动程序还被配置为管理包括与所述多个物理连接中的有效连接有关的信息的第二列表。
5.如权利要求4所述的装置,其中,第二列表包括与所述多个连接中的每一个的状态有关的信息。
6.如权利要求1所述的装置,其中,多路径设备驱动程序响应于失败连接而发起确定替换连接的操作。
7.如权利要求6所述的装置,其中,多路径设备驱动程序通过访问替换连接的列表来确定替换连接。
8.如权利要求1所述的装置,其中,多路径设备驱动程序发起从外围设备删除连接数据的操作。
9.如权利要求1所述的装置,其中,多路径设备驱动程序通过经由所述多个连接中的另一个连接与外围设备通信,来发起删除连接数据的操作。
10.如权利要求1所述的装置,其中,多路径设备驱动程序发起将连接数据写入外围设备中的操作。
11.如权利要求1所述的装置,其中,多路径设备驱动程序发起使第一设备驱动程序与第二设备驱动程序相关联的操作。
12.如权利要求1所述的装置,其中,多路径设备驱动程序发起从列表中搜索指示外围设备的标识符的操作,以便确定基本连接。
13.如权利要求1所述的装置,其中,多路径设备驱动程序发起对设备驱动程序加锁的操作,以防止另一设备驱动程序搜索列表。
14.如权利要求1所述的装置,其中,多路径设备驱动程序发起将连接指定为基本连接的操作。
15.如权利要求1所述的装置,其中,多路径设备驱动程序由基本设备驱动程序创建。
16.如权利要求15所述的装置,其中,基本设备驱动程序响应于检测到与外围设备相关的新连接而创建多路径设备驱动程序。
17.一种装置,包括处理器;以及设备驱动程序,在处理器上运行,并被配置为管理通向外围设备的多个物理连接,该设备驱动程序提供逻辑连接接口,该逻辑连接接口被配置为创建包括与将计算机连接到外围设备的多个连接中的至少一个有效连接相关的数据的列表,并且被配置为使用所述列表来自动地为从计算机到外围设备的通信选择路线。
18.如权利要求17所述的装置,其中,设备驱动程序被配置为在第一连接失败的情况下使用所述列表来给通信选择路线为列表上的第二连接。
19.如权利要求17所述的装置,其中,设备驱动程序被配置为响应于至少一个有效连接失败而从列表移除与所述至少一个有效连接相关的数据。
20.如权利要求17所述的装置,其中,设备驱动程序被配置为创建包括与全部所述多个连接有关的信息的第二列表。
21.一种装置,包括处理器;以及多路径设备驱动程序,在处理器上运行,并被配置为管理通向外围设备的多个物理连接,该多路径设备驱动程序提供逻辑连接接口,该逻辑连接接口被配置为接收关于从外围设备的存储器中移除与将计算机连接到外围设备的多个连接中不希望的连接有关的信息的输入,并从外围设备中移除该信息。
22.如权利要求21所述的装置,其中,多路径设备驱动程序还被配置为确定与该外围设备通信的替换连接。
23.如权利要求21所述的装置,其中,多路径设备驱动程序还被配置为使用与该外围设备通信的替换连接来从外围设备中移除所述信息。
24.一种用于管理从计算机到外围设备的多个物理连接的方法,该方法包括创建多路径设备驱动程序,所述多路径设备驱动程序包括通向通过多个物理连接而耦接到计算机的外围设备的逻辑连接;以及使用多路径设备驱动程序来访问外围设备。
25.如权利要求24所述的方法,还包括响应于检测到外围设备和计算机之间的新连接,而添加与多路径设备驱动程序相关的新设备驱动程序。
26.如权利要求24所述的方法,其中,使用多路径设备驱动程序来访问外围设备还包括访问存储器。
27.如权利要求24所述的方法,其中,使用多路径设备驱动程序来访问外围设备还包括响应于检测到失败连接而确定通向外围设备的替换连接。
28.如权利要求27所述的方法,其中,响应于检测到失败连接而确定通向外围设备的替换连接还包括访问有效连接的列表。
29.如权利要求24所述的方法,其中,通过多路径设备驱动程序来访问外围设备还包括从外围设备中删除连接数据。
30.如权利要求29所述的方法,其中,从外围设备删除连接数据还包括通过所述多个连接中的另一个来与外围设备通信。
31.如权利要求24所述的方法,其中,通过多路径设备驱动程序来访问外围设备还包括将连接数据写入外围设备中。
32.如权利要求24所述的方法,其中,创建多路径设备驱动程序还包括将新设备驱动程序与基本设备驱动程序相关联,其中,基本设备驱动程序与多路径设备驱动程序相关联。
33.如权利要求24所述的方法,其中,创建多路径设备驱动程序还包括更新包括通向外围设备的有效连接的列表。
34.如权利要求24所述的方法,其中,创建多路径设备驱动程序还包括更新包括与所述多个连接有关的状态信息的列表。
35.如权利要求24所述的方法,其中,创建多路径设备驱动程序还包括在列表中搜索与外围设备相关的标识符。
36.如权利要求24所述的方法,其中,创建多路径设备驱动程序还包括给对象加锁,以防止该对象搜索列表。
37.如权利要求24所述的方法,其中,创建多路径设备驱动程序还包括从外围设备读取识别数据,以确认连接的身份。
38.如权利要求24所述的方法,其中,创建多路径设备驱动程序还包括响应于检测到与不同外围设备相关的新连接而创建多路径驱动程序。
39.如权利要求24所述的方法,其中,创建多路径设备驱动程序还包括使用基本设备驱动程序来创建多路径设备驱动程序。
40.如权利要求37所述的装置,其中,创建多路径设备驱动程序还包括响应于检测到与外围设备相关的新连接而创建多路径设备驱动程序。
41.如权利要求37所述的装置,其中,创建多路径设备驱动程序还包括使用与新连接相关的新设备驱动程序来提示基本设备驱动程序创建多路径设备驱动程序,其中,该多路径设备与基本设备驱动程序和新设备驱动程序两者都相关。
42.一种用于管理从计算机到外围设备的多个物理连接的方法,该方法包括创建包括与将计算机连接到外围设备的多个连接中的至少一个有效连接相关的数据的列表;以及使用该列表来自动地为从计算机到外围设备的通信选择路线。
43.如权利要求42所述的方法,其中,使用所述列表还包括在至少一个有效连接失败的情况下使用该列表来给该通信选择路线为第二连接。
44.如权利要求42所述的方法,还包括响应于至少一个有效连接失败而移除与所述至少一个有效连接相关的数据。
45.如权利要求42所述的方法,还包括创建包括与全部所述多个连接有关的信息的列表。
46.一种用于管理从计算机到外围设备的多个物理连接的方法,该方法包括接收关于从外围设备的存储器中移除与将计算机连接到外围设备的多个连接中不希望的连接有关的信息的输入;以及从外围设备中移除所述信息。
47.如权利要求46所述的方法,其中,移除所述信息还包括确定与该外围设备通信的替换连接。
48.如权利要求47所述的方法,其中,移除所述信息还包括使用与该外围设备通信的替换连接来从外围设备中移除该信息。
49.一种程序产品,包括程序代码,包括被配置为管理通向外围设备的多个物理连接的设备驱动程序,该设备驱动程序提供逻辑连接接口,该逻辑连接接口被配置为给客户端提供通过所述多个物理连接中的至少一个对外围设备的访问;以及信号承载介质,承载该程序代码。
50.如权利要求49所述的程序产品,其中,该信号承载介质包括可记录介质和传输型介质中的至少一种。
全文摘要
一种用于管理通向外围设备的多个物理连接的装置、程序产品和方法。多路径驱动程序给客户端提供逻辑连接接口。此接口允许客户端通过一个或多个物理连接来高效地访问外围设备。在这么做的时候,逻辑连接接口将各连接与基本连接相关联,从存储器中删除无效连接,并更新和使用有效连接的列表来将数据无缝地发送到外围设备。
文档编号G06F15/16GK1641611SQ20051000443
公开日2005年7月20日 申请日期2005年1月17日 优先权日2004年1月15日
发明者特洛伊·D·阿姆斯特朗, 托马斯·R·克劳莱, 肯尼斯·G·林, 詹姆斯·L·内勒, 约瑟夫·T·里兹 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1