多镜像硬件访问系统的制作方法

文档序号:6630588阅读:312来源:国知局
专利名称:多镜像硬件访问系统的制作方法
技术领域
本发明一般涉及数据存储系统领域。具体地说,本发明由用于管理计算机支持系统的系统组成。
背景技术
在图1中,计算机存储系统10包括主服务器(“主机”)12、数据处理服务器14、数据存储系统16和各种支持系统18,支持系统18例如电源18a、电池18b、风扇18c和温度传感器18d。每一个数据处理服务器14可以包括多个被分组为处理集群(“cluster”)20的处理设备,并且可以基本上相同并是冗余的。叠加在计算机存储系统10的物理部件上的可以是多个被称为镜像22的虚拟化存储服务器,如图2中所示。每一个镜像(image)22一般驻留在两个或更多个集群上。但是,在集群故障的情况下,镜像22可以故障转移(failover)到剩余的集群。
支持系统18是提供除数据存储之外的服务的硬件设备。每一个镜像22一般可访问并可以使用这些设备。此外,这些支持设备18可以具有产生有关事件、错误和故障的报告的能力。镜像22通过远程进程调用(remote procedurecall,“RPC”)适配器24与支持系统18进行通信。
在一种配置中,每一个镜像22将通过其自己的RPC适配器24访问支持系统18。但是,由于冗余硬件的成本导致这种方法极为昂贵。此外,每一个RPC适配器24可能明显地利用不足。因此,期望具有高效且经济的用于建立与支持系统18的通信的系统。
在5,633,999号美国专利中,Clowes等公开了用工作站实施的用于服务器容错的数据存储重路由。在多主机数据存储系统中的交叉镜像提供了容错而无需很多冗余硬件,并且在数据存储路径上没有一个故障点。但是,Clowes没有描述用于通过一组RPC适配器来共享对支持系统的访问的系统。
另一种方法是使用静态多层体系结构,该静态多层体系结构允许一个镜像拥有RPC适配器24,并要求其他的镜像通过该所有镜像(owning image)来间接地访问支持系统18。但是,如果担负管理支持系统18的任务的镜像22发生故障,排除了利用其它的有效镜像对支持系统18的使用,则出现了问题。因此,期望具有用于建立对支持系统18的所有权,同时允许其他的镜像22对RPC适配器24的直接访问的系统。
在传统的动态系统中,RPC适配器24每次可以被一个镜像拥有,仅持续和该镜像要求使用支持系统18的时间一样长的时间。然后,RPC适配器24被释放,并使其可供另一镜像使用。但是,在寻求对RPC适配器的并发控制的镜像22之间可能出现竞争。因此,期望具有用于建立对RPC适配器24的控制的系统,该系统防止竞争。
在5,553,287号美国专利中,Bailey等公开了一种计算机系统,用于结合动态地管理I/O连接性的装置,将输入输出(“I/O”)设备经由通道子系统可切换地连接到主机。Bailey的发明包括与硬件资源相关联的集中式控制锁。但是,并未提供资源来标识哪一个镜像负责管理每一个硬件资源。因此,期望具有标识所拥有的镜像的主锁。

发明内容
这里公开的发明利用了可以被计算机系统中的每一个虚拟化服务器(“image”)访问的主锁寄存器。主锁驻留在每一个目标设备中。当镜像被建立时,它访问主锁寄存器,以确定主锁是否已经被分配。如果没有,则该镜像通过很多方法中的一个获得主锁。通过写入给定的寄存器、将模式写入目标设备上的存储器位置,或通过诸如保持给定的通信线路激活或接地的离散操作,可以实现获得主锁。对于那些使用寄存器或存储器的实施,可以应用简单的二进制获取模式,或者,主镜像可以将其标识(“ID”)写入主锁寄存器。对主锁的多个请求被主锁寄存器串行化,并且只有一个设备可以声明(assert)其ID。
使用主锁允许很多个镜像中的每一个都访问和使用支持系统作为目标设备。虽然计算机系统中的每一个镜像都可以访问和使用支持系统,但是只有主镜像负责起到设备的目标的作用,并负责接收和驱动用于涉及支持系统事件、错误和故障的报告的汇报和记录。此外,只有主镜像可以管理相关联的支持系统。在一个实施中,目标设备使用广播协议向所有的设备发送非自己发起的消息(“警告”)。镜像依据镜像对其主/非主状态的了解,选择性地忽略警告或根据警告采取行动。
在另一个实施中,目标设备具有用于主镜像的唯一ID,并使用该ID来路由或寻址消息,以便只被主镜像接收到。至于由镜像发起的消息的响应(“响应”),设备可以再次使用各种消息传递选项。在一个实施中,设备可以临时存储进入消息的返回地址,并使用该返回地址智能地路由响应。而在另一个实施中,设备可以广播响应,迫使镜像从所有的广播中识别其响应。在另一实施中,镜像和目标设备之间的构造(fabric)或网络可以处理响应的路由。
目标设备可以包含寄存器、存储器、传感器状态、离散值,或镜像所需的其它动态信息。在本发明的一个实施例中,当镜像需要访问支持系统时,该镜像创建具有嵌入标识符的请求消息。当RPC适配器接收到该请求消息时,唯一标识符被从请求消息剥离(strip),并被放入缓冲区,而请求则由目标设备处理。当支持系统产生对请求的响应时,RPC适配器将请求镜像的标识符与响应紧密结合。响应消息被除了请求镜像之外的所有的镜像忽略。如同所指出的那样,取决于给定实施的要求和设计者的偏好,存在各种提供响应的方法(means)。
本发明的一个优点是每一个镜像可以独立并直接地和支持设备进行通信,而不受来自其它镜像的干扰和竞争。此外,根据起始镜像的标识,起始镜像被确保接收到其响应。而另一个优点是不需要镜像到镜像的通信。很多传统设备仲裁方案要求镜像使用各种镜像到镜像的通信方法在其自身中间竞争。但是,在复杂的系统中,因为在进行镜像到镜像的通信时的开销和性能丧失,或者因为出于安全和可靠性的原因人们期望镜像彼此完全和彻底地隔离和独立,所以这样是不可取的。本发明独特地允许多个镜像在设备所有权上达成一致,而不要求或使用镜像之间的开放通信通道。
从下面的说明书中的对本发明的描述,以及从所附权利要求中特别指出的新颖特征,本发明的各种其他目的和优点将变得清晰。因此,为实现上面所描述的目标,本发明包含下面在附图中所示出的特征,这些特征在优选实施例和详细描述中被完整的描述,并在权利要求中被特别指出。但是,这些附图和描述仅仅公开了可以实践本发明的各种方式中的几个。


图1是示出了常规计算机系统的框图,常规的计算机系统包括主服务器、数据处理服务器、数据存储设备和支持系统。
图2是示出了图1的具有多个虚拟化服务器(“镜像”)和通信适配器的计算机存储系统的框图。
图3是根据本发明的计算机存储系统的框图,包括主锁寄存器、队列、处理设备和多个RPC访问寄存器。
图4是示出通信适配器利用算法的流程图。
具体实施例方式
本发明基于如下构思使用主锁寄存器、多个适配器访问寄存器、队列以及数字处理设备来动态地利用计算机系统中多个虚拟化服务器和一个或更多个支持服务之间的通信适配器。这里公开的发明可以被实施为方法、装置或使用标准的编程或工程技术来生产软件、固件、硬件或其任何组合的方法,装置或产品(article of manufacture)。如此处所用的术语“产品”指实施在硬件或例如光学存储设备和易失性或非易失性存储器设备的计算机可读介质中的代码或逻辑。这样的硬件可以包括但不局限于现场可编程门阵列(“FPGA”)、专用集成电路(“ASIC”)、复杂可编程门器件(“CPLD”)、可编程逻辑阵列(“PLA”)、微处理器或其他类似的处理设备。
参照附图,其中,相同的部分被给予相同的参考数字和符号,图3是说明计算机存储系统110的框图,计算机存储系统110包括主服务器(“主机”)112、数据处理服务器114、数据存储系统116和支持系统118。数据存储系统116可以包括多个数据存储设备,例如硬盘驱动器、光盘驱动器或磁带匣(tape catridge)驱动器。每一个数据处理服务器114可以包括多个被分组为处理集群(“cluster”)的处理设备120,并且可以基本上相同并是冗余的。
此外,支持系统18包括主锁寄存器132、多个适配器访问寄存器126、队列130和数字处理设备(“处理器”)128,数字处理设备128例如微处理器、通用中央处理单元(CPU),或可编程逻辑设备,例如FPGA、CPLD、PLA或ASIC。数据处理服务器114包括通信适配器123,而支持系统118包括另一个通信适配器124,例如远程进程调用(“RPC”)适配器。
多个被称为镜像122的虚拟化存储服务器被叠加在计算机存储系统110的物理部件上。每一个镜像122一般驻留在两个或更多个集群上。但是,在集群故障的情况下,镜像22可以故障转移(failover)到剩余集群。
支持系统118是提供除了数据存储以外的服务的硬件设备。在本发明的这个实施例中,支持系统118是连接到电源118a、电池118b、风扇118c或温度传感器118d的功率控制器卡。或者,支持系统可以是单独的设备,例如具有其自己的主锁寄存器、自己的多个适配器访问寄存器、自己的队列和其自己的处理器的电源。每一个镜像122一般均可访问并可以所用这些支持设备。
当镜像被建立时,它访问主锁寄存器以确定主锁是否已经被分配。如果没有,则该镜像通过很多方法中的一个获得主锁。通过写入给定的寄存器、将模式写入目标设备上的存储器位置、或通过诸如保持给定的通信线路激活或接地的离散操作,可以实现获得主锁。对于那些使用寄存器或存储器的实施,可以应用简单的二进制获取模式,或者,主镜像可以将其标识(“ID”)写入主锁寄存器。对主锁的多个请求被主锁寄存器串行化,并且只有一个设备可以声明其ID。
支持系统18发送有关事件、错误和故障的报告,尽管这并非利用本发明的要求。在拥有该设备的主镜像将仅仅简单是设备管理服务时,完全无源(passive)的设备可以利用本发明。或者,所有设备可以保持目标设备的关键产品数据(vital product data,VPD)。但是,只有一个镜像,即,主镜像122a可以拥有每一个支持系统或设备118,即,负责接受这些报告、负责对事件、错误和故障做出响应、并负责管理这些支持系统。支持系统118产生的系统事件被通信适配器124广播到所有被连接的镜像122。但是,广播系统事件被除了主镜像122a之外所有的镜像忽略。如前所标注,这仅仅是一种通知主镜像关于需要干预的事件、记录、服务或报告的方法。
在图4的通信适配器利用算法200中,说明了动态地允许适配器被多个镜像122利用的过程。当镜像122要求使用支持系统118时,该镜像在步骤202产生包含其标识(“ID”)的请求消息。或者,通信结构或处理器可以识别请求源并产生该ID。
在步骤204,处理器128将标识(“ID”)放入适配器访问寄存器或缓冲器126其中的一个。或者,可以在通信结构、处理器或支持系统118内管理该ID。在步骤206,作为一种选择,请求可以被放入队列130中,或者立刻由支持设备来处理。
在步骤208,支持系统设备118a产生响应。在步骤210,通信适配器124将该响应与请求镜像的ID 126a紧密结合,并将作为结果的响应消息广播到所有被连接的镜像122。或者,结构可以包括能够将响应消息路由到原始镜像去的网桥(bridge)和路由器。响应消息被除了请求镜像之外的所有镜像忽略。
制造计算机支持系统技术领域中的熟练技术人员可以开发出本发明其它的实施例。但是,在前面的说明书中已采用的术语和表达方式是被用作描述的术语而不是限制,并且,在使用这些术语和表达方式时,并无排除所示出和描述的特征或其一部分的等效物的企图,应当理解,本发明的范围仅仅由所附权利要求所定义和限制。
权利要求
1.一种多镜像硬件访问设备,包含虚拟服务器,它包括第一通信适配器;和支持系统,它包括连接到第一通信适配器的第二通信适配器,所述第二通信适配器包括适配器访问寄存器。
2.如权利要求1所述的多镜像硬件访问设备,其中,所述支持系统还包括适于保留主镜像标识(“ID”)的主锁寄存器。
3.如权利要求1所述的多镜像硬件访问设备,其中,所述支持系统包括支持系统设备。
4.如权利要求1所述的多镜像硬件访问设备,其中,虚拟服务器包括第一镜像,所述第一镜像产生包括设备请求和请求镜像标识(“ID”)的设备请求消息。
5.如权利要求4所述的多镜像硬件访问设备,其中,第二通信适配器还包括队列,并且,第二通信适配器适于接收设备请求消息,适于将请求镜像ID放入适配器访问寄存器,并适于将设备请求放入队列。
6.如权利要求5所述的多镜像硬件访问设备,其中,通信适配器还适于从支持系统设备接收响应,适于通过将响应与请求镜像ID组合以产生响应消息,并适于将响应消息发送到第一镜像。
7.如权利要求6所述的多镜像硬件访问设备,其中,所述通信适配器还适于使用广播来发送响应消息。
8.如权利要求3所述的多镜像硬件访问设备,其中,所述支持系统设备包括电源。
9.如权利要求3所述的多镜像硬件访问设备,其中,所述支持系统设备包括电池。
10.如权利要求3所述的多镜像硬件访问设备,其中,所述支持系统设备包括风扇。
11.如权利要求3所述的多镜像硬件访问设备,其中,所述支持系统设备包括温度传感器。
12.如权利要求3所述的多镜像硬件访问设备,其中,所述支持系统设备包括功率控制卡。
13.如权利要求1所述的多镜像硬件访问设备,其中,所述第二通信适配器是远程进程调用(“RPC”)适配器。
14.一种利用支持系统的方法,包含步骤将包括设备请求和请求镜像标识(“ID”)的设备请求消息从第一通信适配器发送到第二通信适配器;将请求镜像ID放入适配器访问寄存器;和将设备请求放入队列。
15.如权利要求14所述的方法,还包含步骤将响应从支持系统设备发送到第二通信适配器;通过将响应与请求镜像ID组合来创建响应消息;和将响应消息从第二通信适配器发送到第一通信适配器。
16.如权利要求14所述的方法,其中,所述第二通信适配器是远程进程调用(“RPC”)适配器。
17.如权利要求15所述的方法,其中,所述发送响应消息的步骤包括广播所述响应消息。
18.如权利要求17所述的方法,其中,所述支持系统设备包括电源。
19.如权利要求17所述的方法,其中,所述支持系统设备包括电池。
20.如权利要求17所述的方法,其中,所述支持系统设备包括风扇。
21.如权利要求17所述的方法,其中,所述支持系统设备包括温度传感器。
22.如权利要求17所述的方法,其中,所述支持系统设备包括功率控制卡。
23.一种包括数据存储介质的产品,所述数据存储介质包括一组机器可读指令,所述机器可读指令可由处理设备执行以实施一种算法,所述算法包含步骤将包括设备请求和请求镜像标识(“ID”)的设备请求消息从第一通信适配器发送到第二通信适配器;将请求镜像ID放入适配器访问寄存器;和将设备请求放入队列。
24.如权利要求23所述的产品,还包含步骤将响应从支持系统设备发送到第二通信适配器;通过将响应与请求镜像ID组合来创建响应消息;和将响应消息从第二通信适配器发送到第一通信适配器。
25.如权利要求23所述的产品,其中,所述第二通信适配器是远程进程调用(“RPC”)适配器。
26.如权利要求24所述的产品,其中,所述发送响应消息的步骤包括广播所述响应消息。
27.如权利要求26所述的产品,其中,所述支持系统设备包括电源。
28.如权利要求26所述的产品,其中,所述支持系统设备包括电池。
29.如权利要求26所述的产品,其中,所述支持系统设备包括风扇。
30.如权利要求26所述的产品,其中,所述支持系统设备包括温度传感器。
31.如权利要求26所述的产品,其中,所述支持系统设备包括功率控制卡。
32.一种提供用于管理支持系统的服务的方法,包含将计算机可读代码集成进计算系统,其中,计算机可读代码结合计算系统能够执行下列步骤将包括设备请求和请求镜像标识(“ID”)的设备请求消息从第一通信适配器发送到第二通信适配器;将请求镜像ID放入适配器访问寄存器;和将设备请求放入队列。
33.如权利要求32所述的方法,还包含步骤将响应从支持系统设备发送到第二通信适配器;通过将响应与请求镜像ID组合来创建响应消息;和将响应消息从第二通信适配器发送到第一通信适配器。
34.如权利要求32所述的方法,其中,所述第二通信适配器是远程进程调用(“RPC”)适配器。
35.如权利要求33所述的方法,其中,所述发送响应消息的步骤包括广播所述响应消息。
36.如权利要求35所述的方法,其中,所述支持系统设备包括电源。
37.如权利要求35所述的方法,其中,所述支持系统设备包括电池。
38.如权利要求35所述的方法,其中,所述支持系统设备包括风扇。
39.如权利要求35所述的方法,其中,所述支持系统设备包括温度传感器。
40.如权利要求35所述的方法,其中,所述支持系统设备包括功率控制卡。
全文摘要
本发明的一种计算机系统包括通信适配器,通信适配器将多个虚拟化服务器连接到一个或多个支持系统设备。通信适配器包括主锁寄存器、处理设备、队列和多个适配器访问寄存器。在初始化时,如果寄存器为空,则虚拟服务器通过将其标识写入主锁寄存器来声明对通信适配器的所有权。使用起始标识(“ID”)将镜像的服务请求发送到通信适配器。这个ID被放入适配器访问寄存器中的一个,并且,服务请求被放入队列。当支持系统设备对服务请求做出响应时,该响应被与ID紧密结合,并被广播回所有被连接的虚拟化服务器。
文档编号G06F15/16GK1776641SQ200510085000
公开日2006年5月24日 申请日期2005年7月26日 优先权日2004年11月18日
发明者蒂莫西·J·克劳福德, 布兰登·L·亨特, 布赖恩·A·里纳尔蒂 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1