专利名称:提高串行存储设备的可靠性和可伸缩性的方法及装置的制作方法
技术领域:
广义而言,本发明涉及处理器和存储设备之间的通信;具体而言,则涉及这样一种方法及装置,它们可以在多个控制器与多个串行存储设备及串行存储设备组之间提供同时的连接。
然而,并行ATA也有若干局限性,使它无法继续提高其性能。例如,在不久的将来,使用技术领先的工艺过程所生产的集成电路将无法有效支持5V的信号电压。此外,并行ATA具有26个信号,需要40针的连接器,并使用笨重的80针带状电缆在机架内进行连接。针数如此之高,对于芯片设计是很成问题的,而且给主板上的布线造成困难。较宽的带状电缆阻碍了机架内的空气流动,使得热控设计更加困难。对于笔记本计算机、较小尺寸因子(small form factor)桌面计算机、服务器和网络存储而言,这些问题变得特别严重。而且,并行ATA盘驱动器由于其信号接头和电源接头的限制,只能用于电缆连接的场合,而不利于热插拔。
串行ATA(Serial advanced technology attachment,S-ATA)意在取代当前的并行ATA。串行ATA的设计是为了解决并行ATA的很多局限性,而同时保证100%的软件兼容性。这极有利于向串行ATA的过渡,因为不需要对当前的驱动程序和操作系统作任何改变。串行ATA使得在整个行业可以采用更薄的电缆、更少的针数,消耗更少的电能,获得更高的性能,并具有热插拔的能力。
串行ATA(S-ATA)意在成为桌面盘驱动器市场的主导接口。由于其低成本和热插拔设备的能力,它对于服务器和廉价盘冗余阵列(RAID)的应用场合也是极有价值的。
然而,人们发现,S-ATA也存在几个显著问题。问题主要在于S-ATA是一种点对点技术。点对点技术意味着同一时间只能有一个控制器与一个给定的驱动器相连。此外,S-ATA要求每个驱动器只能有一个接口端口。这样一来,如果控制器发生故障,则盘驱动器就无法访问了。由于这些不足之处,运用S-ATA技术来建造能够访问多个盘驱动器的较大系统的努力受挫。因此,最好能够建立巨大的数据网络互连系统,它使用基于通道的交换结构体系,该交换结构体系具有很高的可伸缩性和性能。另一个目标是要克服S-ATA的缺点,从而形成一个具有极大吞吐量和高水平功能相当可靠的高速的数据传输环境。
可见,我们需要一个其可伸缩性和可靠性都大为提高的数据通信系统,它能为多个控制器提供同时地和相互独立地访问多个串行存储设备的能力。
同时可以看到,我们也需要这样的设备,它能够提供多个控制器到多个串行存储设备的互连访问,这种互连访问不但可以提供从多个控制器到多个串行存储设备的通路,也可以成为增加S-ATA端口数的互连机制。
本发明通过提供多个控制器对多个存储设备的互连访问,来提高使用串行ATA存储设备时的可靠性和可伸缩性,从而解决了前述问题。
根据本发明的原理,其方法包括提供多个存储控制器,提供多个串行存储设备,并将多个存储控制器与多个串行存储设备连接起来,以使多个存储控制器可以访问多个串行存储设备中的任何一个。
根据本发明的原理,其系统包括多个存储控制器,多个串行存储器,以及至少一个数据通信桥,它将多个存储控制器与多个串行存储设备连接起来,并使得多个存储控制器可以访问多个串行存储设备中的任何一个。
根据本发明的原理,其装置包括一个存储系统桥,它在多个控制器和多个串行存储设备之间提供了并发的、有目标的连接。
本发明所具有的这些以及若干其它新颖的优点和特征,在本说明书附带的、并构成本说明书一部分的权利要求书中,将加以特别说明。然而,为了更好地理解本发明、它的优点以及使用它所能获得的好处,则应当参阅构成本说明书另一部分的附图,并参阅附随的说明材料,在该说明材料中,对符合本发明的装置的具体范例作了图解说明和描述。
图8是根据本发明的另一个数据通信系统的框图。以及图9是一流程图,它描绘了根据本发明的一个实施例、提高数据通信系统的可伸缩性的一种方法。
本发明提供了这样的方法和装置,它们可以提供多个控制器对多个存储设备的互连访问,从而提高使用串行ATA存储设备时的可靠性和可伸缩性。在本发明的一个实施例中,外围设备和CPU通过包交换结构相连。设备之间的通信和设备的运行是异步进行的,但是本发明并不局限于异步运行。
为了提高通信速度、可靠性和可伸缩性,本发明可以包含包交换结构,如InfiniBand交换结构(InfiniBandswitch fabric)。InfiniBand技术是高速的、封包的、串行输入/输出体系结构,在其中,计算单元与外围设备由一个交换网络连接起来,该交换网络又称为交换结构。InfiniBand技术是由一个联盟推广的,该联盟由一批行业领袖们(包括IBM)所领导。InfiniBand是为了解决目前的数据传输技术所面临的某些问题而推出的,它将极大地提高下一代计算机硬件的性能、可靠性和可伸缩性。运用交换结构体系将使得多个节点通过交换器而实现高速互连。
图1的框图100描绘了控制器和盘驱动器之间的、典型的串行数据通信链路。在图1中,盘驱动器150是通过一个串行数据通信链路140,而与控制器110相连的。图中显示,串行数据通信链路140连接到盘驱动器150上唯一的串行端口175。串行数据通信要求每个驱动器上有一个接口端口175。图1清楚地显示出一个显著的缺点,即盘驱动器150只能与一个单独的控制器110通信,而排除了其它请求数据的设备。
图2的框图200描绘了,当盘驱动器与某个控制器相连时,另一个控制器无法与之相连。在图2中,盘驱动器250与控制器210通过串行数据通信链路240相连,而串行数据通信链路240与盘驱动器250上唯一的串行端口275相连。
串行数据通信要求每个驱动器具有一个单独的接口端口275。在图2中,一个控制器210无法与盘驱动器250建立连接,这由断开的连接链路245显示出来,而另一个控制器210则与唯一的端口275相连。图2清楚地显示出一个严重的缺点,即盘驱动器250只能与一个控制器相连。
图3是一个根据本发明的数据通信系统300的框图。图3显示,数据通信系统300包括两个控制器310,它们通过数据通信链路320而与数据通信桥330而进行着有效的连接。数据通信链路320的一个例子是控制器数据通信链路,如InfiniBank链路。InfiniBank链路可以很容易地应用于一系列传输媒介,它提供了几乎无限的网络扩展性,并可以直接支持铜线、光纤和印刷电路的布线结构。
在图3中,多个串行存储设备350,通过串行数据通信链路340,而与数据通信桥330有效地相连。串行数据通信链路340可以是S-ATA链路。数据通信系统300允许两个控制器310访问一组串行存储设备350中的数据。通过数据通信桥330至少实现了两个控制器同时访问单端口设备的能力。
图4是符合本发明的另一个数据通信系统400的框图。图4显示,数据通信系统400包括多个控制器410,它们通过数据通信链路420,而与数据通信桥430有效地相连。数据通信链路420的一个例子是控制器数据通信链路,如InfiniBank链路。InfiniBank链路消除了PCI和PCI-X总线所固有的数据传输瓶颈,并提供了更快和更可靠的高速数据网络互连。
在图4中,控制器数据通信链路通过控制器数据通信端口460,有效地将控制器410与数据通信桥430连接起来。控制器数据通信端口460可以是InfiniBand端口。图4显示,多个单端口的串行存储设备450通过串行数据通信链路440,有效地与数据通信桥430相连。串行数据通信链路440可以是S-ATA链路。串行数据通信链路通过串行数据通信端口470,有效地将存储设备与数据通信桥430相连。串行数据通信端口470可以是S-ATA端口。数据通信桥430允许多个控制器410访问一组单端口存储设备450中的数据。通过数据通信桥430至少实现了单端口存储设备与多个控制器的连接。
图5是根据本发明的一个数据通信桥的框图500。在图5中,数据通信桥510包括两个数据通信端口540和550,这两个端口具体为Infiniband端口,它们分别与两个目标通道适配器(TCA)块520和530连接。InfiniBandTCA在InfiniBand结构体系中代表目标功能块,它能把诸如S-ATA等I/O端口连接到InfiniBand结构体系中。TCA块520与局部总线560相连,而TCA块530与局部总线570相连。同时,局部总线560和570还与两个4端口的S-ATA块580相连。每个S-ATA块都包括S-ATA应用层、传输层、链路层和物理层。每个S-ATA块580都与局部总线560和570这二者相连。每个S-ATA块有4个S-ATA端口590,通过这些端口可以与S-ATA设备进行通信。InfiniBand端口540可以通过TCA块520、局部总线560和一个S-ATA块580访问任何一个S-ATA端口590。同样地,InfiniBand端口550可以通过TCA块530、局部总线570和一个S-ATA块580访问任何一个S-ATA端口590。
不仅如此,该数据通信桥结构体系,由于具有两个TCA、两个内部局部总线和若干个4端口的S-ATA块,而可以随时进行两个同时性的通信过程。例如,当一个InfiniBand端口540正在与某个S-ATA端口590连接,并发送驱动器命令时,另一个InfiniBand端口550可以与任何其它的S-ATA端口连接,并在两个端口之间传输数据。每个InfiniBand端口到任何一个S-ATA端口的通路都是专用的。唯一的限制是,在任何给定时刻,一个S-ATA端口最多只能与一个InfiniBand端口连接。如果两个InfiniBand端口同时与同一个S-ATA端口通信,则其中一个必须等待另一个首先完成。
图5一般性地显示出,数据通信桥510分别通过第一个局部总线560和第二个局部总线570,而具有两个数据通信通路。局部总线560和570可以同时执行相同的数据通信功能,如上行通信,即控制器向存储设备发出的信息读请求或信息写请求;或下行通信,即从存储设备到控制器的信息传输。
局部总线560和570也可以同时执行不同的数据通信功能。例如,第一局部总线560可以进行上行通信,与此同时,第二局部总线570则进行下行通信,或者反过来也可以。数据通信桥510通过串行存储设备通信端口590和多个控制器数据通信端口540和550,而提供了与每个存储设备的串行有效数据连接。
通过将每个控制器与数据通信桥510的一个控制器数据通信端口540或550相连,多个控制器就可以同时地和相互独立地访问该组存储设备。如果一个控制器发生故障,另一个控制器仍然可以继续访问存储设备。只要增加与数据通信桥510有效连接着的存储设备和控制器的数量,系统即获得扩展。
图6是根据本发明的另一个数据通信系统600的框图。在图6中,数据通信系统600包括多个控制器610,它们通过多个交换器666以及多个控制器数据通信链路620而有效地连接起来。交换器666可以是包交换结构交换器,如InfiniBand交换器,而数据通信链路620可以是包交换结构,如InfiniBand。
如前所述,InfiniBand交换结构提供了一种数据传输连接,它可以同时操纵若干条信息,并将每条信息传送出去,就好象全部网络资源都在为该条信息服务一样。InfiniBand可以很容易地用于一系列传输媒介,并提供了几乎无限的网络扩展性,还可以直接支持铜线、光纤和印刷电路布线结构。
交换器666使得更多的控制器610可以访问存储设备650。多个交换器666通过数据通信链路620,而与多个数据通信桥630相连;连接交换器666和数据通信桥630的数据通信链路620,可以与连接控制器610和交换器666的控制器数据通信链路620相同。
数据通信桥630通过串行数据通信链路640,与形成多个存储设备组的多个存储设备650有效地连接着,该串行数据通信链路可以是S-ATA链路。通过将每个控制器610与交换器666的一个端口有效地连接,数据通信系统的规模就获得极大的提高。交换器666再与多个桥630连接,而桥630则通过串行链路640与多个存储设备650有效地连接。
本发明所带来的一个优点是,多个控制器610可以同时地和相互独立地访问一组存储设备650。如果一个控制器610发生故障,其它控制器610仍然可以继续访问存储设备650。
使用交换器666来扩大存储设备650和控制器610的数量,而这些存储设备和控制器借助于本发明而进行着有效的连接,这样,系统就具有了无限的可扩展性。数据访问网络的可靠性也得到提高,因为单个控制器或存储设备的故障不再会造成整个系统的崩溃。
图7是根据本发明的一个数据通信桥的框图700。在图7中,数据通信桥710包括一对数据通信端口740和750,在本例中,端口具体为InfiniBand端口。这两个InfiniBand端口分别与目标通道适配器(TCA)块720和730相连接。如前所述,InfiniBand代表InfiniBand体系结构中的目标功能,并允许I/O端口,如S-ATA等,连接到InfiniBand体系结构。TCA块720连接到局部总线760,而TCA块730连接到局部总线770。
图7还显示出,桥如何可以具有最少的交换功能,如一个9端口IB交换器715,它提供了端口745和755。因此,我们看到,桥710能够以低成本而提供有限的可伸缩性。
局部总线760和770还与两个4端口的S-ATA块780相连。每个S-ATA块都包含S-ATA应用层、传输层、链路层和物理层。每个S-ATA块780都与局部总线760和770这二者相连。每个S-ATA块有4个S-ATA端口790,它们可以与S-ATA设备进行通信。
InfiniBand端口740可以通过TCA块720、局部总线760和一个S-ATA块780访问任何一个S-ATA端口。同样的,InfiniBand端口750可以通过TCA块730、局部总线770和一个S-ATA块780访问任何一个S-ATA端口790。不仅如此,InfiniBand端口740和750可以通过端口745和755进行连接。
图8是根据本发明的另一个数据通信系统800的框图。在图8中,系统800利用了一个具有IB交换器820的桥。因而,如图8所示,控制器810和812都可以通过IB-至-串行ATA桥/IB交换器820和IB-至-串行ATA桥830而与存储设备840、842、844或846相连。
图9是一流程图,它描绘了根据本发明的一个实施例、用来提高数据通信系统的可伸缩性和可靠性的方法。存储系统具有多个控制器910。该存储系统也具有多个串行存储设备920。多个存储控制器和多个串行存储设备相互连接,以使多个存储控制器可以访问多个串行存储设备中的任何一个930。多个存储控制器是通过一个交换结构体系与多个串行存储设备相连的。多个存储控制器和多个串行存储设备之间的交换结构体系,提供了二者之间的有目标连接。可以对交换结构体系进行修改,以便指导和协调控制器和串行存储设备之间的通信。通过将InfiniBand技术应用到与系统相关的链路、端口、总线和交换器,可以对系统作进一步改善。使用InfiniBand,多个设备可以由单一的处理器来管理,并级连起来,以形成一个高速数据通信网络。InfiniBand允许每个端口连接到另外的交换器,这样就可以配置多个外围设备,它们协同工作,以传送数据通信包。
InfiniBand以4倍、8倍、甚至16倍的倍数,提高了端口和交换器的可访问性。这就是说,可以使用的同时性连接的数量大为增加,因而,系统的可伸缩性也大为提高。
使用InfiniBand,系统就具有了不限数量的、不同的通信通路,来进行数据传输和数据请求。即使在控制器的使用负荷很高的情况下,系统也能够继续指导和协调通信,并防止数据请求或传输的失败。
数据访问网络的可靠性也得到提高,因为单个控制器或单个存储设备的故障不再能够使整个系统崩溃。本发明提供了一种方法和装置,可以提高数据通信系统的可伸缩性和可靠性。本发明提供了一个数据通信系统,该系统具有一个桥,可用来实现多个控制器和多个串行存储设备之间的同时性通信。本发明提供了具有多个交换器的数据通信,可以进一步提高系统的可靠性和可伸缩性。运用InfiniBand技术,将再一次地改善数据通信系统。
对本发明的示例性实施例的以上描述只是为了描绘和说明的目的,并未打算穷尽其所有实现形式,也不意味着本发明的实现形式只限于上述具体形式。因此,很多修改和改变都是可能的。我们认为,本发明的范围不受上述详细说明的限制,而受本说明书附带的权利要求书的限制。
权利要求
1.一种改善数据通信系统的方法,该方法包括提供多个存储控制器;提供多个串行存储设备;以及将多个存储控制器与多个串行存储设备连接在一起,以使得多个存储控制器可以访问任何一个串行存储设备。
2.如权利要求1所述的方法,其中所述连接包括提供交换结构体系,该体系处于多个存储控制器和多个串行存储设备之间,并在多个存储控制器和多个串行存储设备之间提供有目标连接。
3.如权利要求2所述的方法,其中所述交换结构体系包括InfiniBand桥,它处于多个存储控制器和多个串行存储设备之间。
4.如权利要求3所述的方法,它进一步包括提供具有多个串行通信端口的InfiniBand桥,这些端口将多个存储设备与InfiniBand桥有效地连接起来。
5.如权利要求4所述的方法,其中所述多个串行通信端口是S-ATA端口。
6.如权利要求2所述的方法,它进一步包括,通过控制从控制器到存储设备的连接,来协调多个控制器的多向数据通信。
7.如权利要求1所述的方法,其中所述多个存储控制器和多个串行存储设备之间的连接,进一步包括提供双总线结构,以便使每个控制器可以访问一条局部总线,从而在控制器和多个串行存储设备之间提供相互独立的通信通道。
8.如权利要求7中所述的方法,其中所述提供双总线结构,进一步包括提供与双总线结构连接在一起的两个InfiniBand端口,这两个InfiniBand端口提供了控制器与多个串行存储设备之间的同时性通信。
9.如权利要求7所述的方法,其中所述多个存储控制器和多个串行存储设备之间的连接,进一步包括在任一给定时刻,只允许一个控制器访问某给定串行存储设备。
10.一种数据通信系统包括多个存储控制器;多个串行存储设备;以及至少一个数据通信桥,它把多个存储控制器与多个串行存储设备连接起来,并使得多个存储控制器可以访问多个串行存储设备中的任何一个。
11.如权利要求10所述的系统,其中所述桥包括一个交换结构体系,它在多个存储控制器和多个串行存储设备之间提供了有目标的连接。
12.如权利要求11所述的系统,其中所述多个串行存储设备是S-ATA存储设备。
13.如权利要求11所述的系统,其中所述交换结构体系包括控制器端口,它们有效地连接到一条控制器端口总线。
14.如权利要求13所述的系统,其中所述控制器端口是InfiniBand端口,而控制器端口总线是InfiniBand总线。
15.如权利要求10所述的系统,其中所述桥由多个串行通信端口组成,这些端口将多个存储设备与桥有效地连接起来。
16.如权利要求15所述的系统,其中所述串行通信端口与串行通信总线有效地连接起来。
17.如权利要求16中所述的系统,其中所述串行通信端口是S-ATA端口,而串行通信总线是S-ATA总线。
18.如权利要求11所述的系统,其中所述桥进一步包括一个双总线结构,它使得每个控制器可以访问一条局部总线,从而在控制器和多个串行存储设备之间提供了相互独立的通信通道。
19.如权利要求18中所述的系统,其中所述桥进一步包括提供两个InfiniBand端口,它们与双总线结构相连,并通过双总线结构,在控制器和多个串行存储设备之间提供同时性的通信。
20.如权利要求18所述的系统,其中,所述桥在任一给定时刻只允许一个控制器访问某一给定串行存储设备。
21.如权利要求10所述的系统,其中所述系统进一步包括至少一个控制器数据通信交换器。
22.如权利要求21所述的系统,其中所述控制器数据通信交换器包括多个进入控制器数据通信端口和多个外出控制器数据通信端口。
23.如权利要求22所述的系统,其中所述控制器数据通信交换器,通过控制器和桥之间的有效连接,而协调和指导二者之间的通信。
24.如权利要求23所述的系统,其中所述控制器数据通信交换器是InfiniBand交换结构。
25.一种存储系统桥,该桥在多个控制器和多个串行存储设备之间提供了并发的、有目标的连接。
26.如权利要求25所述的桥,该桥包括多个控制器端口,可以将控制器与桥有效地连接起来。
27.如权利要求26所述的桥,其中所述控制器端口与控制器端口总线有效地连接起来。
28.如权利要求27所述的桥,其中所述控制器端口是InfiniBand端口,而控制器端口总线是InfiniBand总线。
29.如权利要求25所述的桥,该桥包括多个串行通信端口,它们将多个串行存储设备与桥有效地连接起来。
30.如权利要求29所述的桥,其中所述串行通信端口有效地连接到串行通信总线。
31.如权利要求30所述的桥,其中所述串行通信端口是S-ATA端口,而串行通信总线是S-ATA总线。
32.如权利要求25所述的桥,其中所述桥进一步包括一个双总线结构,使得每一个控制器可以访问一条局部总线,以便在控制器和多个串行存储设备之间提供相互独立的通信通道。
33.如权利要求32所述的桥,其中所述桥进一步包括提供两个InfiniBand端口,这两个InfiniBand端口与双总线结构相连,它们通过双总线结构,提供控制器和多个串行存储设备之间的同时性通信。
34.如权利要求32所述的桥,其中所述桥在任一给定时刻,只允许一个控制器访问某一给定串行存储设备。
全文摘要
本发明提供了方法、系统和设备,可以在多个控制器和多个串行存储设备之间提供互连访问。串行存储设备与数据通信桥之间存在着有效的串行连接。桥与多个控制器有效地连接着。多个控制器与一组串行存储设备之间存在着并发的、有目标的连接。在本发明的一个实施例中,InfiniBand
文档编号G06F13/00GK1477531SQ0315002
公开日2004年2月25日 申请日期2003年7月29日 优先权日2002年8月1日
发明者K·R·瑟乌古奇, K R 瑟乌古奇 申请人:国际商业机器公司