CN100492274C - 存储控制系统及其处理节点 - Google Patents
存储控制系统及其处理节点 Download PDFInfo
- Publication number
- CN100492274C CN100492274C CNB2007101516116A CN200710151611A CN100492274C CN 100492274 C CN100492274 C CN 100492274C CN B2007101516116 A CNB2007101516116 A CN B2007101516116A CN 200710151611 A CN200710151611 A CN 200710151611A CN 100492274 C CN100492274 C CN 100492274C
- Authority
- CN
- China
- Prior art keywords
- data
- processing node
- request
- cache
- processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种存储控制系统中的处理节点,该处理节点包括:功能模块和具有至少2个统一接口的处理模块,一个统一接口连接一个功能模块;所述处理模块,用于根据与其连接的功能模块确定所在处理节点的功能类型,控制所述功能模块执行所确定的功能类型下与所接收的数据请求类型对应的数据存储控制操作;所述功能模块,用于在所述处理模块的控制下执行与其功能对应的存储控制操作。本发明还公开了多种存储控制系统。使用本发明能够对存储控制系统进行灵活扩展。
Description
技术领域
本发明涉及存储技术,具体涉及存储控制系统和存储控制系统中的处理节点。
背景技术
图1为现有的存储系统结构示意图。如图1所示,存储系统包括存储控制子系统和至少1个磁盘介质。其中,存储控制子系统根据接收自应用主机的数据请求,对相应的磁盘介质进行读写操作。其中,应用主机是应用服务器或者用户主机;磁盘介质用于存储数据。
存储控制子系统是存储操作的控制核心,具体包括至少1个主机通道适配器(HCA,Host Channel Adapter),至少1个缓存(CACHE)和至少1个磁盘通道适配器(DCA,Disk Channel Adapter)。HCA、CACHE和DCA都是存储控制子系统中的处理节点。其中,HCA提供主机通道,耦合于应用主机,用以处理应用主机发起的数据请求;DCA提供磁盘通道,耦合于磁盘介质,用以执行对磁盘介质的读写操作;CACHE耦合于HCA与DCA之间,提供主机通道和磁盘通道之间的缓存通道。由于CACHE比磁盘介质具有更高的读写速度,通常采用CACHE来缓存待处理的数据,以提高存储控制子系统面向应用主机的响应速度。
对于读操作,当HCA接收到来自应用主机的读数据请求时,将接收到的读数据请求发送给相应的DCA,接收到读数据请求的DCA从与其相连的磁盘介质中读取数据并缓存到CACHE中,然后通知HCA。HCA从缓存数据的CACHE中获得要读取的数据并返回给发起读数据请求的应用主机。
具体而言,HCA从接收到的读数据请求中获取逻辑块地址(LBA,LogicBlock Address),该LBA指示了所要读取的数据在磁盘介质中的具体位置,HCA根据自身保存的LBA与DCA之间的对应关系,将读数据请求发送给对应的DCA。现有的HCA与CACHE之间,CACHE与DCA之间都是星形连接,HCA与DCA之间不直接进行信息交互,而是通过设置于CACHE处的交换模块进行信息交互。因此,HCA通过CACHE将读数据请求发送给DCA。
然后,DCA根据接收到的读数据请求中的LBA从与其相连的磁盘介质中读取数据。此时,DCA请求用于管理各CACHE的CACHE管理单元(图1中未示出CACHE管理单元与其他设备的连接关系)为其分配缓存空间,按照所分配的缓存空间将读取的数据写入CACHE中,同时将分配的缓存空间地址通过设置于CACHE处的交换机通知给HCA。
最后,HCA根据接收的通知,从CACHE中对应的缓存空间中读取数据,并将读取的数据返回给发起读数据请求的应用主机。
对于写操作,当HCA接收到来自应用主机的写数据请求和待写数据时,将接收到的待写数据缓存在CACHE中,并将写数据请求发送给相应的DCA,接收到写数据请求的DCA从缓存数据的CACHE中读取待写数据,并写入与该DCA相连的磁盘介质中。
在HCA将接收的待写数据保存到CACHE时,也是请求CACHE管理单元为其分配缓存空间,将待写数据保存到分配的缓存空间中,根据写数据请求中的LBA对应的DCA,将写数据请求和分配的缓存空间地址通知给所确定的DCA,由该DCA从CACHE中相应的缓存空间中读取待写数据,根据写数据请求中的LBA确定对应的磁盘介质,将读取的待写数据写入所确定的磁盘介质中。HCA同样通过设置于CACHE处的交换模块将写请求发送给DCA。如果不需要缓存待处理数据,那么将图1中设置CACHE的地方替换为交换机,以实现HCA与DCA之间的信息交互。
根据以上所述可见,存储控制操作分为3个阶段,其一是与用户交互阶段,其二是缓存阶段,其三是与磁盘交互阶段。每个阶段由一个具有对应功能的处理节点负责。
图2为现有的HCA结构示意图。如图2所示,该HCA包括处理模块、和交换模块(SWITCH),其中,处理模块完成上述HCA的基本功能,包括接收和处理来自应用主机的数据请求和数据,向CACHE管理单元请求缓存空间等。当处理模块接收到来自应用主机的写数据请求和待写数据时,通过SWITCH发送至CACHE;当处理模块接收到来自应用主机的读数据请求时,也是通过SWITCH发送至CACHE,将通过SWITCH接收的读取的数据返回给应用主机。SWITCH相当于交换机,负责信息转发。由于HCA与CACHE之间是星形连接,因此HCA中SWITCH上的端口数量与存储控制子系统中CACHE的数量有关,且不与DCA直接相连。
图3为现有的DCA结构示意图。如图3所示,该DCA包括处理模块、和交换模块(SWITCH),其中,处理模块完成上述DCA的基本功能,包括接收和处理来自CACHE的数据请求和数据,读写磁盘介质,向CACHE管理单元请求缓存空间,向CACHE写数据等。处理模块向CACHE发送的数据通过SWITCH到达CACHE,来自CACHE的数据请求和数据也通过SWITCH到达处理模块。该SWITCH也相当于交换机。由于CACHE与DCA之间是星形连接,因此DCA中SWITCH上的端口数量与存储控制子系统中CACHE的数量有关,且不与HCA直接相连。
可见,现有的存储控制子系统具有以下缺点:
其一、存储控制子系统中的处理节点功能单一。像HCA、CACHE和DCA等的处理节点,一个处理节点只能完成一种功能,且每个处理节点的功能是固定的。在实际应用中,作为处理节点的HCA、CACHE和DCA分别采用不同的硬件板卡实现,且这些板卡被设置在诸如刀片服务器的载体中。通常,设置有处理节点的载体具有对应于HCA、CACHE和DCA的插槽,由于HCA、CACHE和DCA的物理结构不同,其插槽结构也不相同,而且这些插槽的数量和类型是预先设计并固定的。例如,根据实际需要预先在同一载体中设置5个HCA插槽、4个CACHE插槽和5个DCA插槽,各插槽中分别插接有对应的硬件板卡。当实际需要发生改变,例如DCA的需求量增加,而HCA的需求量有所减少时,通常的做法是在当前载体中空闲的DCA插槽上增设DCA,将多余的HCA去除来满足变化的需求。如果当前载体不具有空闲的DCA插槽,那么只能通过额外增加设置有DCA的载体来满足DCA需求量的增加。以上两种扩展方式,在插槽类型限制下,都不能利用空闲出来的HCA插槽来插接DCA。同时,在处理节点功能单一且固定的限制下,也不能采用原有的HCA完成DCA的功能。可见,采用现有的处理节点组成的存储控制子系统扩展不够灵活。
其二、现有的存储控制子系统采用星形连接作为拓扑结构,当多个HCA同时访问同一个DCA时,到达该DCA的链路上可能会出现数据阻塞,从而导致存储控制效率的降低。
其三、由HCA、CACHE和DCA组成的存储控制子系统中,用户的数据请求和待写数据要依次经过HCA处的SWITCH、CACHE处的交换模块和DCA处的SWITCH共3次交换才能到达DCA;同理,DCA从磁盘介质中读取的数据也要经3次交换才能到达HCA。可见,存储控制的响应速度受到了影响。
其四、多个CACHE需要专门的CACHE管理单元进行管理,该CACHE管理单元根据各CACHE的剩余容量为待缓存数据分配可提供缓存空间的CACHE及具体的缓存空间地址。但是采用专门的CACHE管理单元增加了存储控制子系统的成本。
另外,由于HCA、CACHE和DCA等处理节点都采用独立的硬件板卡实现,对于实现最小容量的存储控制子系统来说,也需要至少3块硬件板卡,电路规模也较大,增加了最小容量的存储控制子系统的实现成本。
发明内容
有鉴于此,本发明提供了一种应用于存储控制系统中的处理节点,能够提高由该处理节点组成的存储控制系统的扩展灵活性。
该处理节点包括:功能模块和具有至少2个统一接口的处理模块,一个统一接口连接一个功能模块;
所述处理模块,用于根据与其连接的功能模块确定所在处理节点的功能类型,控制所述功能模块执行所确定的功能类型下的、与所接收的数据请求类型对应的数据存储控制操作;
所述功能模块,用于在所述处理模块的控制下执行与其功能对应的存储控制操作。
较佳地,该处理节点进一步包括交换模块,用于为所在处理节点与所有其他处理节点之间提供数据交互通道。
较佳地,所述处理模块进一步在所在处理节点正常工作时,产生周期性信号,通过所述交换模块向与所在处理节点对应的备用处理节点输出。
较佳地,所述处理模块进一步在所在处理节点请求退出时,产生拔出事件消息,通过所述交换模块向与所在处理节点对应的备用处理节点输出。
较佳地,所述处理模块进一步在通过所述交换模块接收到来自外部处理节点的拔出事件消息时,启动自身处理功能。
本发明提供了一种存储控制系统,能够提高存储控制系统的扩展灵活性。
该系统至少提供一个主机通道以及至少一个磁盘通道,用以处理应用主机对磁盘介质的数据请求;包括:
至少一个处理节点,
至少三个统一接口设置于至少一个处理节点上,所述统一接口用以连接HCC和/或DCC和/或缓存;
所述HCC耦合于应用主机,用以提供与应用主机之间的数据交互通道;所述DCC耦合于磁盘介质,用以对磁盘介质进行读写;所述CACHE耦合于HCC以及DCC之间,用以缓存待处理数据请求和/或数据。
本发明还提供了另一种存储控制系统,能够提高存储控制系统的扩展灵活性。
该系统至少提供一个主机通道以及至少一个磁盘通道,用以处理应用主机对磁盘的数据请求,包括:
两个或者两个以上的处理节点;
至少三个统一接口设置于至少两个处理节点上;所述统一接口用以连接HCC和/或DCC和/或缓存;
所述HCC耦合于应用主机,用以提供与应用主机之间的数据交互通道;所述DCC耦合于磁盘介质,用以对磁盘介质进行读写;所述CACHE耦合于HCC以及DCC之间,用以缓存待处理数据请求和/或数据
本发明提供了又一种存储控制系统,能够提高存储控制系统的扩展灵活性。
该系统用在若干磁盘介质以及应用主机之间以提供网络存储服务,包括多个对等的处理节点,每个处理节点上至少包括一个统一接口;所述统一接口用以连接HCC或DCC或CACHE;
所述HCC耦合于应用主机,用以提供与应用主机之间的数据交互通道;所述DCC耦合于磁盘介质,用以对磁盘介质进行读写;所述CACHE耦合于HCC以及DCC之间,用以缓存待处理数据请求和/或数据
根据以上技术方案可见,应用本发明能够提高存储控制系统的扩展灵活性。具体来说,具有如下有益效果:
其一、处理节点中的处理模块具有至少两个统一接口,该统一接口用于连接功能模块。功能模块可以是HCC、CACHE和DCC中的一种或任意组合。当处理模块至少连接HCC、CACHE和DCC中的两种模块时,该处理节点能够至少完成两种功能,避免了现有处理节点功能单一所带来问题;而且,当处理模块具有至少一个空闲的统一接口时,可以通过在该空闲的统一接口上插接HCC、CACHE或DCC来实现对处理节点的扩展。同时,由于处理模块为HCC、CACHE和DCC提供了统一接口,HCC、CACHE和DCC之间可以相互替换,那么本发明中的处理节点所具有的功能也不是固定的,可以根据需要灵活扩展。例如,当DCC的需求量增加,而HCC的需求量有所减少时,可以减少HCC的数量,并利用空闲出来的统一接口插接DCC,以满足DCC需求量的增加,从而提高了存储控制系统扩展的灵活性。
其二、每两个处理节点之间都可以进行信息交互,那么由处理节点形成的存储控制系统的拓扑结构为全连接结构。当多个处理节点同时访问一个处理节点时,分别通过不同的链路与被访问的处理节点通信,不会造成在到达被访问处理节点的链路上发生数据阻塞的情况,从而提高了存储控制效率。
其三、由本发明处理节点组成的存储控制系统,当两个处理节点组合完成存储控制操作时,用户的数据请求和数据只经过两次交换就可以到达磁盘介质,因此,存储控制的响应速度得到提高。当一个处理节点独立完成存储控制操作时,用户的数据请求和数据不经过交换就可以到达磁盘介质,进一步提高了存储控制的响应速度。
其四、无需专有的CACHE管理单元。存储控制系统中的处理节点可以独立管理自身节点中的CACHE资源,降低了存储控制系统的成本。
另外,本发明提供的处理节点可以作为一个最小容量的存储控制系统能够独立完成存储控制操作。通常,一个处理节点采用1块硬件板卡实现,那么最小容量的存储控制系统只需要1块硬件板卡,电路规模小,降低了最小容量的存储控制系统的成本。
附图说明
图1为现有的存储系统结构示意图。
图2为现有的HCA结构示意图。
图3为现有的DCA结构示意图。
图4为本发明实施例中存储控制系统的结构示意图。
图5为本发明存储控制系统的处理节点的基本结构示意图。
图6为本发明实施例中处理节点的一种结构示意图。
图7为本发明实施例中HCC的结构示意图。
图8为本发明实施例中DCC的结构示意图。
图9为本发明实施例中DCC的另一种结构示意图。
图10为本发明实施例中CACHE的结构示意图。
图11为本发明实施例二中处理节点的结构示意图。
图12为本发明实施例三中处理节点的结构示意图。
图13为本发明实施例四中处理节点的结构示意图。
图14为本发明实施例五中处理节点的结构示意图。
图15为本发明实施例六中处理节点的结构示意图。
图16为本发明实施例七中处理节点的结构示意图。
图17为本发明一实例中存储控制系统的结构示意图。
具体实施方式
下面结合附图并举实施例,对本发明进行详细描述。
本发明为一种存储控制方案,其基本思想为:建立基于至少1个处理节点的存储控制系统,每个处理节点执行其功能类型下与所接收的数据请求的类型对应的数据存储控制操作。
处理节点可以被配置为具有HCA,和/或缓存,和/或DCA的功能。具有HCA功能的处理节点耦合于应用主机,提供与应用主机之间的传输通道;具有DCA功能的处理节点耦合于磁盘介质,提供与磁盘介质之间的传输通道;具有CACHE功能的处理节点作为存储控制系统中的缓存。其中,至少有一个处理节点具有HCA功能,至少有一个节点具有DCA功能,至少有一个节点具有缓存功能。一个处理节点可以同时具有1个以上的功能。当处理节点被配置为同时具有HCA、缓存和DCA功能时,该处理节点可以独立完成存储控制,那么1个处理节点就可以构成存储控制系统。当处理节点被配置为具有HCA、缓存和DCA中的任意一种或两种功能时,需要至少两个处理节点来完成存储控制。
图4为本发明实施例中存储控制系统的结构示意图。如图4所示,该系统包括多个处理节点,每两个处理节点之间具有数据交互通道,可以进行信息交互。处理节点的数量不受限制,可以根据需要添加或减少。图4示出了16个处理节点的实例。
从图4中可以看出,每两个处理节点之间都具有数据交互通道,那么本实施例存储控制系统中的各处理节点形成了全连接的拓扑结构。当多个具有HCA功能的处理节点访问同一个具有DCA功能的处理节点时,并未采用同一条链路,因此避免了现有存储控制系统中可能出现的数据阻塞。
图5为本发明应用于存储控制系统的处理节点的基本结构示意图。如图5所示,该处理节点包括功能模块和具有至少2个统一接口的处理模块。功能模块通过统一接口与处理模块相连。其中,处理模块根据与其连接的功能模块确定处理节点的功能类型,控制功能模块执行所确定的功能类型下与所接收的数据请求的类型对应的存储控制操作。数据请求的类型包括对于磁盘介质的读数据请求和写数据请求以及对缓存的读缓存请求和写缓存请求
功能模块在处理模块的控制下执行与其功能对应的存储控制操作。
当处理节点配置有不同的功能模块时,该处理节点可以具有HCA,和/或缓存,和/或DCA的功能。
图6示出了本发明实施例中应用于存储控制系统的处理节点的一种结构示意图。如图6所示,该处理节点包括:由处理器和桥片组成的处理模块、交换模块(SWITCH)、主机通道适配卡(HCC,Host Channel Card)、缓存模块(CACHE)和磁盘通道适配卡(DCC,Disk Channel Card)。其中,HCC、DCC和CACHE是功能模块。
其中,处理模块中的桥片负责连接处理器、SWITCH和其他可配置功能模块的硬件。该桥片为功能模块提供至少两个具有相同物理特性、电气特性和协议定义的接口,一个统一接口上可以插接HCC、DCC和CACHE中的一个,从而令处理节点的功能不再固定,当桥片上插接至少2个不同类型的功能模块时,令一个处理节点的功能不再单一。那么就可以通过配置处理节点中的功能模块,实现对存储控制系统的灵活配置。处理模块中的处理器定时触发执行确定处理节点功能类型的操作,也可以在处理模块检测到有功能模块插入时检测所插入功能模块的类型并重新确定处理节点的功能类型。该处理器在确定的功能类型下根据接收到的数据请求进行相应处理。
与图5示出的基本结构相比,图6中增加了SWITCH,SWITCH用于提供处理节点之间的数据交互通道。处理节点通过SWITCH向其他处理节点发送数据请求和数据,通过SWITCH接收来自其他处理节点的数据请求和数据。该SWITCH所连接的处理节点的数目与存储控制系统中的处理节点数目相关,由于是全连接,当存储控制系统包括n(n为大于或等于1的整数)个处理节点时,每个处理节点中的SWITCH都与其他(n-1)个处理节点相连。
当处理节点至少配置有一个HCC时,该处理节点具有HCA功能;当处理节点至少配置有一个DCC时,该处理节点具有DCA功能;当处理节点至少配置有一个CACHE时,该处理节点具有缓存功能。
其中,HCC,用于为外部应用主机和处理节点之间提供传输通道。HCC将接收自应用主机的数据请求进行协议转换,转换为处理模块可识别的格式,然后发送给处理模块;将来自处理模块的数据进行协议转换,转换为应用主机可识别的格式,然后发送给应用主机。
图7为本发明实施例中HCC的结构示意图。如图7所示,该HCC包括用户接口、协议转换器和节点接口。其中,用户接口将接收自应用主机的符合用户接口协议类型的数据请求和数据发送给协议转换器,协议转换器对该数据请求和数据进行协议转换,转换为符合桥片上统一接口协议类型的数据请求和数据,然后通过节点接口发送给处理模块。节点接口将处理模块发送来的数据发送给协议转换器,协议转换器对该数据进行协议转换,转换为符合用户接口协议类型的数据,然后通过用户接口返回给应用主机。其中,用户接口协议类型根据应用主机所支持的协议类型确定,例如光纤接口、千兆网口,万兆网口所使用的协议。统一接口可以采用现有的PCI-EXPRESS接口。PCI-EXPRESS接口是周边元件扩展接口(PCI,Pedpherd ComponentInterconnect)中的一种,它比传统的PCI接口具有更快的速率,以取代几乎全部现有的内部总线。使用PCI-EXPRESS接口的设备能够支持热拔插以及热交换特性。在本发明的桥片上设置多个相同物理结构和相同电气特性的PCI-EXPRESS插槽,用于插接HCC、CACHE和DCC。那么,HCC的节点接口也设置为与桥片上的PCI-EXPRESS插槽的物理特性和电气特性对应的PCI-EXPRESS接口。
DCC,用于为磁盘介质和处理节点之间提供传输通道。DCC将接收自处理模块的数据请求和数据进行协议转换,转换为磁盘介质可识别的格式,然后发送给磁盘介质;将来自磁盘介质的数据进行协议转换,转换为处理模块可识别的格式,发送给处理模块。
图8为本发明实施例中DCC的结构示意图。如图8所示,该DCC包括磁盘接口、协议转换器和节点接口。其中,节点接口将接收自处理模块的符合统一接口协议类型的数据请求和数据发送给协议转换器,协议转换器对该数据请求和数据进行协议转换,转换为符合磁盘接口协议类型的数据请求和数据,然后通过磁盘接口发送给磁盘介质。磁盘接口将从磁盘介质读取的数据发送给协议转换器,协议转换器对该数据进行协议转换,转换为符合统一接口协议类型的数据,然后通过节点接口发送给处理模块。其中,磁盘接口协议类型根据磁盘介质支持的协议类型确定,例如光纤接口协议等。在桥片上的统一接口为PCI-EXPRESS插槽的情况下,DCC上的节点接口为与PCI-EXPRESS插槽的物理特性和电气特性对应的PCI-EXPRESS接口。
图8示出的DCC只是起到了数据通道的作用,处理模块完成对来自用户的数据请求进行解析、生成磁盘读写指令并通过DCC发送给磁盘介质的操作。为了减少处理模块的负担,也可以采用如图9示出的DCC结构。如图9所示,与图8不同之处在于,在DCC中增加单独的DCC处理器,用于根据接收自节点接口的数据请求和数据,生成用于对磁盘介质进行读写操作的磁盘读写指令,然后经由协议转换器和磁盘接口发送给磁盘介质;将接收自协议转换器的读取的数据发送给节点接口。那么,处理模块只需要将数据请求和数据发送给DCC即可。该DCC处理器可以采用现有的磁盘控制器实现,例如廉价磁盘冗余阵列(RAID,Redundant Array of Inexpensive Disks)卡。
图10为本发明实施例中CACHE的结构示意图。如图10所示,该CACHE包括节点接口、缓存控制器和缓存介质。其中,节点接口连接处理模块,作为处理模块与缓存控制器之间的数据传输通道,将接收自处理模块的数据请求发送给缓存控制器。缓存控制器根据接收自处理模块的数据请求对缓存介质进行读写操作;缓存介质用于缓存数据。通常,节点接口和缓存控制器采用现场可编程门阵列(FPGA,Field Programmable Gate Array)实现,缓存介质采用第二代双倍速(DDR2)存储介质。可见,CACHE采用的是FPGA+DDR2的结构。该CACHE中缓存空间的分配由处理模块管理,其容量取决于处理模块寻址空间的大小。在桥片上的统一接口为PCI-EXPRESS插槽的情况下,CACHE上的节点接口也为与PCI-EXPRESS插槽的物理特性和电气特性对应的PCI-EXPRESS接口。如果缓存控制器不支持PCI-EXPRESS,还需要在节点接口和缓存控制器之间增加协议转换模块,用于将通过节点接口接收的符合PCI-EXPRESS的命令/数据转换为缓存控制器支持的协议格式。
在以上HCC、CACHE和DCC都通过PCI-EXPRESS接口与桥片相连的情况下,当处理器检测到桥片上的电平变化,判定有功能模块插入桥片,或有功能模块从桥片拔出时,开始扫描桥片上的功能模块,读取各个功能模块的类型代码,根据读取的类型代码查找预先保存在处理器中的配置文件。配置文件中保存有类型代码和模块功能类型的对应关系。例如,类型代码02h对应模块功能类型为HCC,类型代码01h对应模块功能类型为DCC,类型代码05h对应模块功能类型为CACHE。当然,还可以在类型代码下设置子类型代码,类型代码与子类型代码的组合详细定义了功能模块的具体属性。例如,读取的类型代码为05h、子类型代码为00h,那么类型代码+子类型代码对应功能模块为采用RAM实现的CACHE。
在系统初始化时,也需要执行上述扫描、读取类型代码并确定处理节点功能类型的操作。
可见,处理器扫描完毕,可以根据读取的类型代码从预设的配置文件确定与读取的类型代码对应的功能类型,即各功能模块的功能类型,然后,根据所有功能模块的功能类型确定所在处理节点的功能类型。处理节点的功能类型确定完毕后就可以开始处理数据请求了。
下面举多个实施例,对本发明处理节点配置有不同功能模块时的工作原理进行详细描述。各实施例中,HCC采用图7示出的结构,DCC可以采用图8或图9示出的结构,CACHE采用图10示出的结构。由于桥片只负责连接各组成模块,对数据请求和数据进行单纯的中转,以下为了描述简洁,省略了数据请求和数据经过桥片的过程。
实施例一
本实施例中,通过统一接口连接在处理模块上的功能模块包括至少一个HCC、至少一个DCC和至少一个CACHE。在这种组合下,处理节点的功能类型为(HCC+DCC+CACHE)类型。本实施例中的DCC采用图9示出的具有DCC处理器的结构。
仍参见图6,本实施例中的处理节点包括处理器、桥片、SWITCH、至少一个HCC、至少一个CACHE和至少一个DCC。图6中的虚线示意性的示出了数据请求和数据在处理节点中的传输方向。如图6所示,处理器根据连接在桥片上的功能模块确定当前处理节点的功能类型为(HCC+DCC+CACHE)类型,处理器在接收到数据请求后,执行(HCC+DCC+CACHE)类型下与所接收得到数据请求对应的存储控制操作。
具体而言,处理器首先判断数据请求的类型,并根据判断结果进行相应的存储控制操作。
当判定接收到写数据请求时,将待写数据缓存在所述CACHE中,判断与写数据请求对应的处理节点是否包括本处理节点,如果包括,则控制本地DCC从缓存中获取待写数据并写入与该DCC相连的磁盘介质中;如果不包括,可以继续判断写数据请求对应的处理节点是否包括其它处理节点,如果是,在通过SWITCH将缓存的待写数据发送给与写数据请求对应的处理节点,否则不执行任何操作。当本实施例的处理节点不包括SWITCH时,只需要在接收到写数据请求并缓存在CACHE后,直接控制本地DCC从缓存中获取待写数据并写入相应的磁盘介质。
具体地,处理器为待写数据分配CACHE中的缓存空间,将待写数据先保存在所分配的缓存空间中,根据写数据请求中的LBA与自身保存的LBA与DCC之间的对应关系,确定与写数据请求中的LBA对应的DCC,将对应的DCC所在处理节点确定为与写数据请求对应的处理节点。当对应的DCC在本地处理节点时,判定写数据请求对应的处理节点为本处理节点,将之前为从HCC接收的写数据请求分配的缓存空间的地址发送给本地处理节点中对应的DCC,该对应的DCC根据接收到的缓存空间的地址从CACHE中获取数据,并保存到写数据请求中LBA所指示的磁盘介质中。当对应的DCC在其它处理节点时,判定写数据请求对应的处理节点为其它处理节点,处理器将接收到的写数据请求和保存在缓存空间中的数据通过SWITCH发送给具有对应DCC的处理节点。
当判定接收到读数据请求时,判断读数据请求对应的处理节点是否为本处理节点,如果是,则通过本地DCC从与其相连的磁盘介质中读取数据,并缓存在本处理节点的缓存中,然后通过HCC返回给发起读数据请求的应用主机;否则,将该读数据请求通过SWITCH发送给对应的处理节点,接收对应的处理节点返回的读取的数据,并缓存在本处理节点的缓存中,然后通过HCC返回给发起读数据请求的应用主机。当本实施例的处理节点不包括SWITCH时,只需要在接收到读数据请求后,直接执行通过本地DCC从相应的磁盘介质读取数据的操作。
具体地,当判定接收到读数据请求时,根据读数据请求中的LBA和自身保存的LBA与DCC之间的对应关系,确定与读数据请求中的LBA对应的DCC。判断该对应的DCC是否在本地处理节点,即判断与读数据请求对应的处理节点是否为本处理节点,如果是,则处理器将读数据请求发送给本地处理节点中对应的DCC,该对应的DCC根据读数据请求中LBA的指示,从与其连接的磁盘介质中读取数据,并向处理器申请缓存空间,处理器根据要缓存的数据分配缓存空间并将分配的缓存空间的地址发送给DCC,DCC将读取的数据写入分配的缓存空间中,并通知处理器,处理器从分配的缓存空间中获取DCC写入的数据并通过HCC返回给发起读数据请求的应用主机。否则,即判定对应的DCC在其他处理节点时,则处理器通过SWITCH将读数据请求发送给对应的DCC所在的处理节点,并通过SWITCH接收该处理节点返回的数据,处理器为接收的数据分配CACHE中的缓存空间,将接收的数据保存在所分配的缓存空间中,然后将保存在CACHE中的数据通过HCC返回给发起读数据请求的应用主机。
以上是当处理器接收到HCC发送来的数据请求后控制各功能模块执行的存储控制操作。数据请求还可以是其他处理节点通过SWITCH发来的,此时,处理器判断从SWITCH接收到的数据请求的类型,根据判断结果访问本地DCC所连接的磁盘介质。
当判定接收到来自其他处理节点的写数据请求时,处理器为接收到的数据分配CACHE中的缓存空间,将接收到的数据保存在为其分配的缓存空间中,将写数据请求和分配的缓存空间的地址通知给DCC,DCC从分配的缓存空间中读取数据,并根据写数据请求中的LBA将读取的数据写入对应的磁盘介质中。
当判定接收到来自其他处理节点读数据请求时,处理器将读数据请求发送给DCC,DCC根据读数据请求中的LBA从对应的磁盘介质中读取数据,向处理器申请缓存空间,处理器根据要缓存的数据分配缓存空间并将分配的缓存空间的地址发送给DCC,DCC将读取的数据写入分配的缓存空间中,并通知处理器。处理器从分配的缓存空间中获取DCC写入的数据,并通过SWITCH返回给发起读数据请求的处理节点。
从本实施例所述方案可见,处理节点不仅可以对来自本地的数据请求和数据进行处理,还可以对来自其他处理节点的数据请求和数据进行处理。在两个处理节点配合完成存储控制时,从本地的HCC接收数据请求和数据并将接收的数据请求和数据发给其他处理节点的处理节点为主节点,从SWITCH接收数据请求和数据并对本地DCC连接的磁盘介质进行访问的处理节点为从节点。一个处理节点可以是主节点、也可以是从节点,也可以同时具有主节点和从节点的身份。
在实际应用中,本实施例中的处理节点不仅可以完成读数据、写数据的操作,还可以完成数据备份、镜像等操作。例如,当处理节点上连接有至少2个DCC时,该处理节点可以对两个DCC所连接的磁盘介质进行相同的数据存储操作,以实现数据的备份或镜像。或者,该处理节点还可以在对本地DCC所连接的磁盘介质进行数据存储操作时,同时通过SWITCH对与其通信的其他处理节点中的DCC所连接的磁盘介质进行相同的数据存储操作,以实现数据的备份或镜像。
本实施例中,DCC采用的是图9示出的具有DCC处理器的结构,该DCC处理器可以实现对磁盘介质的操作,还可以完成为数据申请缓存空间的操作。当采用图8示出DCC结构时,DCC对磁盘介质的操作由处理器完成,同时处理器直接为数据分配缓存空间。而DCC只作为磁盘介质和处理器之间的数据传输通道,负责进行统一接口协议类型到磁盘接口协议类型的协议转换。
由本实施例可见,处理节点可以通过增加HCC、CACHE或DCC,或者HCC、CACHE和DCC之间的相互替换实现存储控制系统的灵活扩展,从而满足不同的需求。例如,当DCC需求量增加而HCC需求量有所减少时,不仅可以通过在空闲的统一接口上插接DCC来满足DCC需求量的增加,还可以将多余的HCC替换为DCC,来满足DCC需求量的增加,从而实现了存储控制系统的灵活扩展。
如果一个处理节点中配置有HCC、CACHE和DCC,那么即使该处理节点不包括SWITCH,也可以独立完成最小容量的存储控制。无需采用现有的HCA、CACHE和DCA三块硬件板卡实现最小容量的存储控制,从而降低了存储控制系统的成本。
此外,每个节点的处理器负责为本节点分配缓存空间,相当于在处理器中设置了内部CACHE管理模块,该内部CACHE管理模块可以由一段由处理器运行的管理程序实现,从而充分的利用了处理器的资源。由于不用在处理节点外部设置额外的CACHE管理模块用以对缓存空间进行管理,进一步降低了存储控制系统的成本。
实施例二
本实施例中,通过统一接口连接在处理模块上的功能模块包括至少一个
HCC。在这种组合下,处理节点的功能类型为HCC类型。
图11为本发明实施例二中应用于存储控制系统的处理节点的结构示意图。图11中的虚线示意性的示出了数据请求和数据在处理节点中的传输方向。如图11所示,该处理节点包括处理器、桥片、SWITCH和至少一个HCC。处理器根据连接在桥片上的功能模块确定当前处理节点的功能类型为HCC类型,处理器在接收到数据请求后,执行HCC类型下与所接收到的数据请求对应的存储控制操作。
具体而言,处理器从HCC接收来自应用主机的数据请求,判断所接收的数据请求的类型,并根据判断结果进行相应的存储控制操作。
当判定接收到写数据请求时,处理器将接收的写数据请求通过SWITCH发送给与写数据请求对应的处理节点。具体地,处理器根据写数据请求中的LBA和自身存储的LBA与DCC之间的对应关系,确定与写数据请求中LBA对应的DCC,将该对应的DCC所在处理节点确定为与写数据请求对应的处理节点。以下实施例的描述中,涉及确定与写数据请求对应的处理节点的操作与本实施例相同,就不再赘述。
当判定接收到读数据请求时,该处理器将接收的读数据请求通过SWITCH发送给与读数据请求对应的处理节点;通过SWITCH接收该对应的处理节点返回的读取的数据,将接收到的读取的数据通过HCC返回给发起读数据请求的应用主机。其中,确定与读数据请求对应的处理节点的操作时也采用自身存储的LBA与DCC之间的对应关系,确定与读数据请求中LBA对应的DCC,将该对应的DCC所在处理节点确定为与读数据请求对应的处理节点。以下实施例的描述中,涉及确定与读数据请求对应的处理节点的操作与本实施例相同,就不再赘述。
其中,配置在同一处理节点中的多个HCC可以是支持不同用户接口协议类型的主机通道适配卡。由于多个HCC与桥片连接的接口相同,可以通过在桥片上插接支持不同用户接口协议类型的HCC,以满足不同的用户端需求。
本发明将HCC、DCC和CACHE与桥片的接口都设计为统一的接口,那么连接HCC的地方可以连接DCC或者CACHE。因此,本实施例中的具有HCA功能的处理节点,其功能并不是一成不变的,当用户数量减少而需要增加系统缓存数量或存储容量时,可以根据具体的需求将本实施例中的HCC替换为DCC或CACHE。当然,也可以在桥片接口数量允许的情况下,连接更多的HCC、DCC或CACHE。
由本实施例以上所述可见,当处理节点中只配置HCC时,该处理节点可以实现现有的HCA功能,该处理节点在接收到数据请求时完成存储控制操作中与用户交互的操作。正是由于桥片上所具有的接口相同,因此本实施例中处理节点的功能不是固定的,随时可以根据需要灵活扩展。
实施例三
本实施例中,通过统一接口连接在处理模块上的功能模块包括至少一个DCC。在这种组合下,处理节点的功能类型为DCC类型。
图12为本发明实施例三中应用于存储控制系统的处理节点的结构示意图。图12中的虚线示意性的示出了数据请求和数据在处理节点中的传输方向。如图12所示,该处理节点包括处理器、桥片、SWITCH和至少一个DCC。处理器根据连接在桥片上的功能模块确定当前处理节点的功能类型为DCC类型,处理器在接收到数据请求后,执行DCC类型下与所接收到的数据请求对应的存储控制操作。
具体而言,处理器从SWITCH接收来自其他处理节点的数据请求,判断所接收的数据请求的类型,并根据判断结果进行相应的存储控制操作。
当判定接收到写数据请求时,通过本地DCC对于该DCC相连的磁盘介质进行写操作。
当判定接收到读数据请求时,处理器根据接收的读数据请求通过本地DCC对该DCC连接的磁盘介质进行读操作;将从磁盘介质中读取的数据通过SWITCH发送出去。数据发送的目标可以是发起读数据请求的处理节点,如果发起读数据请求的处理节点不具备CACHE,也可以将该数据发送给具有缓存功能的处理节点进行缓存,并通知发起数据请求的处理节点从缓存有读取的数据的处理节点中读取数据。在将数据发送给具有缓存功能的处理节点时,该提供缓存功能的处理节点可以由发起读数据请求的处理节点指定,也可以由本处理节点指定。提供缓存功能的处理节点可以采用以下实施例四所描述的处理节点。
与实施例二相似,本实施例中配置在同一处理节点中的多个DCC可以是支持不同磁盘接口协议类型的磁盘通道适配卡。由于多个DCC连接在桥片的统一接口上,可以通过在桥片上插接支持不同磁盘接口协议类型的DCC,以满足不同磁盘介质需求。本实施例中DCC具有处理器,该处理器可以完成各种RAID读写功能。当采用不具有处理器的DCC时,可以由DCC所在处理节点中的处理器实现各种RAID读写功能。
由本实施例以上所述可见,当处理节点中只配置DCC时,该处理节点可以实现现有的DCA功能,该处理节点在接收到数据请求时完成存储控制操作中与磁盘介质交互的操作。正是由于桥片上所具有的统一接口相同,因此本实施例中的处理节点的功能不是固定的,随时可以根据需要灵活扩展。
实施例四
本实施例中,通过统一接口连接在处理模块上的功能模块包括至少一个CACHE。在这种组合下,处理节点的功能类型为CACHE类型。
图13为本发明实施例四中应用于存储控制系统的处理节点的结构示意图。图13中的虚线示意性的示出了数据请求和数据在处理节点中的传输方向。如图13所示,该处理节点包括处理器、桥片、SWITCH和至少一个CACHE。该处理节点中的处理器用于管理连接在桥片上的所有CACHE。处理器根据连接在桥片上的功能模块确定当前处理节点的功能类型为CACHE类型。处理器在接收到数据请求后,执行CACHE类型下与所接收到的数据请求对应的存储控制操作。
具体而言,处理器从SWITCH接收来自其他处理节点的数据请求,判断所接收的数据请求的类型,并根据判断结果进行相应的存储控制操作。由于该处理节点中只有CACHE,因此该处理节点接收的数据请求的类型包括读缓存请求和写缓存请求。
当判定接收到写缓存请求时,处理器为待缓存的数据分配缓存空间,将待缓存数据写入所分配的缓存空间中,还要将所分配的缓存空间的地址通过SWITCH发送给发起写缓存请求的处理节点,或者将该缓存空间的地址通过S WITCH发送给将要读取缓存数据的处理节点。例如,对于实施例三中的具有DCC的处理节点来说,当具有DCC的处理节点读取数据后,可以向本实施例中的处理节点发送写缓存请求并将读取的数据作为待缓存数据发送给本实施例中的处理节点,接收本实施例中的处理节点返回的缓存空间的地址,该具有DCC的处理节点将缓存空间的地址通知给发起写数据请求的处理节点,使其能够从本实施例中的处理节点中获取缓存的数据。或者,本实施例中的处理节点在接收到写缓存请求时,也已经获得了发起写数据请求的处理节点地址,那么直接将缓存空间的地址发送给发起写数据请求的处理节点,使其能够从本实施例中的处理节点中获取缓存的数据。
当判定接收到读缓存请求时,处理器根据读缓存请求中所携带缓存空间的地址,从对应的CACHE中读取数据,将读取的数据返回给发起该读缓存请求的处理节点。
一个处理节点上可以配置多个CACHE,通过增加配置在处理节点上的CACHE来扩充系统中的缓存容量。
由本实施例以上所述可见,当处理节点中只配置CACHE时,该处理节点可以实现现有的缓存功能,该处理节点在接收到数据请求时完成存储控制操作中缓存的操作。正是由于桥片上所具有的接口相同,因此本实施例中的处理节点的功能不是固定的,随时可以根据需要灵活扩展。
实施例五
本实施例中,通过统一接口连接在处理模块上的功能模块包括至少一个HCC和至少一个CACHE。在这种组合下,处理节点的功能类型为(HCC+CACHE)类型。
图14为本发明实施例五中应用于存储控制系统的处理节点的结构示意图。图14中的虚线示意性的示出了数据请求和数据在处理节点中的传输方向。如图14所示,该处理节点包括处理器、桥片、SWITCH、至少一个HCC和至少一个CACHE。处理器根据连接在桥片上的功能模块确定当前处理节点的功能类型为HCC+CACHE类型,处理器在接收到数据请求后,执行(HCC+CACHE)类型下与所接收到的数据请求对应的存储控制操作。
具体而言,处理器从HCC接收来自应用主机的数据请求,判断所接收的数据请求的类型,并根据判断结果进行相应的存储控制操作。
当判定为接收到写数据请求时,处理器将待写数据缓存到CACHE中,并通过SWITCH通知写数据请求对应的处理节点,让其通过SWITCH将待写数据从CACHE中取走。
具体地,处理器为待写数据分配CACHE中的缓存空间,将待写数据写入所分配的缓存空间中。由于本地没有DCC,处理器将接收到的写数据请求和分配的缓存空间的地址通过SWITCH发送给写数据请求对应的处理节点。当通过SWITCH接收到其他处理节点的读缓存请求时,处理器根据读缓存请求中的缓存空间的地址,从CACHE中获取待写数据并通过SWITCH返回给发起读取缓存请求的处理节点。
当判定为接收到读数据请求时,处理器将读数据请求通过SWITCH发送给其他处理节点,让其通过SWITCH把要读取的数据缓存到CACHE中,然后再通过HCC将缓存在CACHE中的数据返回给发起读数据请求的应用主机。
具体地,处理器将接收到的读数据请求通过SWITCH发送给与读数据请求对应的处理节点,并通过SWITCH接收对应的处理节点返回的读取的数据,处理器为读取的数据分配CACHE中的缓存空间,将读取的数据保存在所分配的缓存空间中,然后通过HCC将保存在CACHE中的数据返回给发起读数据请求的应用主机。
由本实施例可见,如果一个处理节点中配置有HCC和CACHE,该处理节点在接收到数据请求时完成存储控制操作中与用户交互和缓存的操作。那么,该处理节点必须与具有DCC的处理节点合作才能完成完整的三个阶段的存储控制操作。例如,本实施例的处理节点与实施例一或实施例三示出的处理节点合作完成存储控制操作。本实施例中的处理节点可以实现现有的HCA和缓存功能。正是由于桥片上所具有的接口相同,因此本实施例中的处理节点的功能不是固定的,随时可以根据需要灵活扩展。
实施例六
本实施例中,通过统一接口连接在处理模块上的功能模块包括至少一个DCC和至少一个CACHE。在这种组合下,处理节点的功能类型为(DCC+CACHE)类型。
图15为本发明实施例六中应用于存储控制系统的处理节点的结构示意图。图15中的虚线示意性的示出了数据请求和数据在处理节点中的传输方向。如图15所示,该处理节点包括处理器、桥片、SWITCH、至少一个DCC和至少一个CACHE。处理器根据连接在桥片上的功能模块确定当前处理节点的功能类型为(DCC+CACHE)类型,处理器在接收到数据请求后,执行(DCC+CACHE)类型下与所接收到的数据请求对应的存储控制操作。
具体而言,处理器通过SWITCH接收来自其他节点的数据请求,判断所接收的数据请求的类型,并根据判断结果进行相应的存储控制操作。
当判定接收到写数据请求时,处理器将待写数据缓存到CACHE中,并通知DCC将缓存在CACHE中的待写数据写入与DCC连接的磁盘介质中。
具体地,处理器为待写数据分配CACHE中的缓存空间,将从SWITCH获取的待写数据写入所分配的缓存空间中,根据写数据请求中的LBA和自身存储的LBA与DCC之间的对应关系,确定与写数据请求中LBA对应的DCC,将写数据请求和所分配的缓存空间的地址通知给对应的DCC,该DCC根据缓存空间的地址从CACHE中读取待写数据,并根据写数据请求中的LBA将读取的待写数据写入对应的磁盘介质中。其中,处理器通过SWITCH从其他处理节点获取待写数据时,可以是接收其他处理节点主动发送来的待写数据,也可以根据接收到的待写数据在其他处理节点中的缓存空间的地址,主动从其他处理节点中获取。
当判定接收到读数据请求时,处理器通知DCC从与其相连的磁盘介质中读取数据并缓存到CACHE中,然后处理器将缓存在CACHE中的数据通过SWITCH返回给发起读数据请求的处理节点。
具体地,处理器根据读数据请求中的LBA和自身存储的LBA与DCC之间的对应关系,确定与读数据请求中LBA对应的DCC,将接收到的读数据请求发送给对应的DCC,该DCC根据读数据请求中的LBA的指示,从与其相连的磁盘介质中读取数据,并向处理器发送写缓存请求,处理器接收到写缓存请求后,根据待缓存数据分配缓存空间并将分配的缓存空间的地址发送给DCC,DCC将读取的数据缓存在分配的缓存空间中,并通知处理器。处理器从分配的缓存空间中获取缓存的数据并通过HCC返回给发起读数据请求的应用主机。
由本实施例可见,如果一个处理节点中配置有DCC和CACHE,该处理节点在接收到数据请求时完成存储控制操作中缓存和与磁盘交互的操作。那么,该处理节点必须与具有HCC的处理节点合作才能完成完整的三个阶段的存储控制操作。例如,本实施例中的处理节点与实施例一或实施例二或实施例五示出的处理节点合作完成存储控制操作。本实施例中的处理节点可以实现现有的DCA和缓存功能。正是由于桥片上所具有的接口相同,因此本实施例中的处理节点的功能不是固定的,随时可以根据需要灵活扩展。
实施例七
本实施例中,通过统一接口连接在处理模块上的功能模块包括至少一个HCC和至少一个DCC。在这种组合下,处理节点的功能类型为(HCC+DCC)类型。
图16为本发明实施例七中应用于存储控制系统的处理节点的结构示意图。图16中的虚线示意性的示出了数据请求和数据在处理节点中的传输方向。如图16所示,该处理节点包括处理器、桥片、SWITCH、至少一个DCC和至少一个HCC。处理器根据连接在桥片上的功能模块确定当前处理节点的功能类型为(HCC+DCC)类型,处理器在接收到数据请求后,执行(HCC+DCC)类型下与所接收到的数据请求对应的存储控制操作。
与实施例一的不同之处在于,该处理节点没有CACHE,那么在向DCC读取和写入数据的过程中,将待缓存数据缓存在其他处理节点中,并在需要读取时从缓存数据的处理节点中读取。该缓存数据的数据节点可以采用实施例四示出的处理节点。处理器的功能与实施例一中的处理器功能相似,不同之处在于,本实施例中的处理器不负责分配缓存空间的地址,即不需要管理CACHE。
具体而言,判定接收到写数据请求时,处理器将待写数据携带在写缓存请求中通过SWITCH发送给具有提供缓存功能的处理节点,通过SWITCH接收来自该处理节点返回的缓存空间的地址,将接收的缓存空间的地址携带在写数据请求中发送给该写数据请求对应的DCC。接收到写数据请求的DCC在处理写数据请求时通知处理器,此时,处理器通过SWITCH向缓存数据的处理节点发送携带缓存空间的地址的读缓存请求,通过SWITCH接收返回的缓存的数据,将该数据发送给DCC,此时,DCC可以将接收到的数据写入写数据请求中LBA对应的磁盘介质中。
判定接收到读数据请求时,处理器将读数据请求发送给DCC,DCC对读数据请求中LBA对应的磁盘介质进行读操作,将读取的数据发送给处理器,处理器将读取的数据携带在写缓存请求中通过SWITCH发送给提供缓存的处理节点,通过SWITCH接收来自该处理节点返回的缓存空间的地址;然后,向用户返回读取的数据时,处理器通过SWITCH向缓存数据的处理节点发送携带缓存空间的地址的读缓存请求,通过SWITCH接收返回的缓存的数据,将接收的数据通过HCC返回给发起读数据请求的应用主机。
在实际中,处理器也可以直接根据来自HCC的数据请求执行与磁盘交互阶段的操作,而省略了存储控制操作中的缓存阶段。在这种情况下,本实施例中的处理节点可以不包括SWITCH。
当然,与前述实施例相同,本实施例处理节点中的桥片也具有统一的接口,因此本实施例中的处理节点的功能不是固定的,随时可以根据需要灵活扩展。
以上七个实施例中,处理节点的处理器管理其所在处理节点的CACHE。当处理节点不具有CACHE时,处理节点向其他处理节点请求缓存空间。这种独立管理的方式称为分散管理,即由各个处理节点管理自身具有的CACHE资源。在实际中,CACHE资源的管理功能也可以由某一个被确定为管理节点的处理节点承担。该方式下,无论哪个处理节点要缓存数据,都需要向该管理节点请求缓存空间。该CACHE管理功能采用加载在处理节点中程序实现,从而充分利用了处理节点的资源。当然,还可以将分散式管理和集中式管理相结合,即集中式和分散式结合管理。
在实际中,如果某个处理节点失效,那么由该处理节点负责的工作将无法正常进行,也会导致存储控制系统可靠性不高。因此,为了进一步提高存储控制系统的可靠性,在为处理节点配置其功能时,为每一个处理节点配置一个备用节点。主、备处理节点成对出现,且具有相同功能。当主处理节点正常工作时,备用处理节点也会接收与主处理节点相同的数据请求,但是不作处理;当主处理节点失效时,由其备用处理节点接替它的工作,从而保证了存储控制系统的可靠性。主处理节点在自身正常时,产生周期性信号,向对应的备用处理节点输出。在自身异常时,不输出信号。当备用处理节点接收不到其主处理节点输出的周期性信号时,则判定主处理节点失效,同时启动自身处理功能,以接管主处理节点的工作。
另外,存储控制系统中的处理节点支持热插拔。与主处理节点失效相似,当处理节点请求退出时,向其备用处理节点下发拔出事件消息,备用处理节点接收到该拔出事件消息,启动自身数据请求处理功能,从而接管业务。当有处理节点插入时,由系统管理员为其配置插入的处理节点的功能和对应的备用处理节点。
如果来自用户的数据请求不能被及时响应,还可以采用CACHE缓存数据请求。缓存数据请求的CACHE可以与缓存数据的CACHE采用同一个物理实体实现,也可以设置两个CACHE,采用其中一个缓存数据请求,采用另一个缓存数据。
以下举一个采用以上实施例所描述的处理节点组成存储控制系统的实例。图17为本发明一实例中存储控制系统的结构示意图。如图17所示,该存储控制系统包括4个处理节点,每两个处理节点之间可以直接进行通信。其中,处理节点1和处理节点2为(HCC+CACHE)类型的处理节点,分别和与其连接的应用主机进行信息交互;处理节点3为(HCC+DCC+CACHE)类型的处理节点,和与其连接的应用主机和磁盘介质进行信息交互;处理节点4为DCC类型的处理节点,和与其连接的磁盘介质进行信息交互。如图17可见,处理节点1与处理节点3或与处理节点4组合,可以完成存储控制操作;处理节点2与处理节点3或与处理节点4组合,可以完成存储控制操作;处理节点3与处理节点4组合可以完成存储控制操作,当然处理节点3自身也可以完成存储控制操作。当实际需求发生改变时,例如DCC的需求量增加,而HCC的需求量有所减少时,可以在处理节点1~4中的任意一个或任意多个中增加DCC,从而提供更多的与磁盘介质进行交互的通道。当然,也可以将处理节点3中的HCC替换为DCC,从而提供更多的与磁盘介质进行交互的通道;还可以将处理节点1或处理节点2中的HCC替换为DCC,从而将处理节点1或处理节点2改变为(HCC+DCC+CACHE)的功能类型,满足了DCC需求量增加的需要。可见由本发明实施例提供的处理节点所组成的存储控制系统扩展十分灵活。当然,在实际应用中,也可以将存储控制系统中部分处理节点的功能设置为固定,另一部分处理节点的功能设置为可配置。这种部分固定部分可变的配置方式,也可以同样完成存储控制操作,并且在需求发生改变时,通过对功能可配置的处理节点进行配置也可以满足变化的需求。
从图17还可以看出,该存储控制系统中每两个处理节点通过SWITCH直接相连,组成了全连接的拓扑结构。当多个处理节点访问同一个处理节点时,分别通过与被访问的处理节点之间的链路进行直接通信,没有经过同一条链路,避免了现有技术中因共用同一条链路而发生链路阻塞的问题。而且当处理节点的功能发生改变时,存储控制系统的拓扑结构不用发生改变,依然能够正常工作。
图17中的处理节点3采用实施例一示出的处理节点结构,该处理节点3能够独立完成存储控制操作中的3个阶段。待存储的数据不用经过SWITCH即可到达磁盘介质,节省了数据交换时间。当采用两个处理节点合作完成存储控制操作时,只需经过一个SWITCH,依然比采用现有的存储控制系统进行3次交换所消耗的数据转换时间要短。
从以上实例可以看出,该存储控制系统提供了多个主机通道和多个磁盘通道。存储控制系统由多个处理节点组成,每个处理节点上至少包括一个统一接口,用以连接HCC、DCC或CACHE,从而实现相应的处理节点功能。实际上至少提供一个主机通道和至少一个磁盘通道就可以完成存储控制功能。在实际中可以采用以下几种方式:
方式一、采用至少一个处理节点完成存储控制功能,至少3个统一接口设置在至少一个处理节点上。统一接口用以连接HCC、DCC或缓存,并且至少有3个统一接口分别连接有一个HCC、一个DCC和一个CACHE,以保证该存储控制系统至少能够提供至少一个主机通道,至少一个磁盘通道,以及一个位于主机通道和磁盘通道之间的缓存通道。那么,该存储控制系统就具有与应用主机交互、与磁盘交互和缓存的功能,从而实现存储控制的三个阶段。
方式二、采用至少两个处理节点完成存储控制功能,至少3个统一接口设置在这至少两个处理节点上,其每个处理节点上至少设置一个统一接口。同样,至少有3个统一接口分别连接有一个HCC、一个DCC和一个CACHE。那么,该存储控制系统就具有与应用主机交互、与磁盘交互和缓存的功能,从而实现存储控制的三个阶段。
由以上所述可以看出,本发明所提供的存储控制方案,能够提高存储控制系统的扩展灵活性。当多个处理节点同时访问一个处理节点时,多个处理节点分别通过不同的链路与被访问的处理节点通信,不会造成在到达被访问处理节点的链路上发生数据阻塞的情况,从而提高了存储控制效率。存储控制的响应速度较高,存储控制系统成本较低。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (25)
1、一种存储控制系统中的处理节点,其特征在于,该处理节点包括:功能模块和具有至少2个统一接口的处理模块,一个统一接口连接一个功能模块;
所述处理模块,用于根据与其连接的功能模块确定所在处理节点的功能类型,控制所述功能模块执行所确定的功能类型下的、与所接收的数据请求类型对应的数据存储控制操作;
所述功能模块,用于在所述处理模块的控制下执行与其功能对应的存储控制操作。
2、如权利要求1所述的处理节点,其特征在于,所述统一接口为具有相同物理特性、电气特性和协议定义的接口。
3、如权利要求1所述的处理节点,其特征在于,所述统一接口为周边元件扩展接口PCI-EXPRESS。
4、如权利要求1所述的处理节点,其特征在于,所述处理模块系统初始化或在检测到统一接口上的电平发生变化时,扫描与统一接口连接的功能模块,读取各个功能模块的类型代码,根据预先保存在自身的类型代码和功能类型的对应关系,确定各功能模块的功能类型,根据所有功能模块的功能类型,确定所在处理节点的功能类型。
5、如权利要求1所述的处理节点,其特征在于,该处理节点进一步包括交换模块,用于为所在处理节点与所有其他处理节点之间提供数据交互通道。
6、如权利要求5所述的处理节点,其特征在于,所述功能模块包括HCC,耦合于应用主机,用于提供与应用主机之间的数据交互通道;
所述处理模块,根据与其连接的功能模块确定所在处理节点的功能类型为HCC类型;通过所述HCC接收来自应用主机的数据请求,通过所述交换模块提供的数据交互通道,在所在处理节点和与所述数据请求对应的处理节点之间,执行与所述数据请求对应的缓存操作和磁盘操作。
7、如权利要求5所述的处理节点,其特征在于,所述功能模块包括磁盘通道适配卡DCC,耦合于磁盘介质,用于提供与磁盘介质之间的数据交互通道;
所述处理模块,根据与其连接的功能模块确定所在处理节点的功能类型为DCC类型;通过所述交换模块提供的数据交互通道接收来自其它处理节点的数据请求,在所在处理节点中执行与所述数据请求对应的磁盘操作。
8、如权利要求5所述的处理节点,其特征在于,所述功能模块包括缓存CACHE;
所述CACHE,用于缓存数据;
所述处理模块,根据与其连接的功能模块确定所在处理节点的功能类型为CACHE类型;通过所述交换模块接收来自其它处理节点的数据请求,在所在处理节点中执行与所述数据请求对应的缓存操作。
9、如权利要求5所述的处理节点,其特征在于,所述功能模块包括HCC和CACHE;
所述HCC耦合于应用主机,用于提供与应用主机之间的数据交互通道;
所述CACHE,用于缓存数据;
所述处理模块,根据与其连接的功能模块确定所在处理节点的功能类型为HCC+CACHE类型;通过所述HCC接收来自应用主机的数据请求,在所在处理节点中执行与所述数据请求对应的缓存操作,通过所述交换模块提供的数据交互通道,在所在处理节点和与所述数据请求对应的处理节点之间,执行与所述数据请求对应的磁盘操作。
10、如权利要求5所述的处理节点,其特征在于,所述功能模块包括DCC和CACHE;
所述DCC耦合于磁盘介质,用于提供与磁盘介质之间的数据交互通道;
所述CACHE,用于缓存数据;
所述处理模块,根据与其连接的功能模块确定所在处理节点的功能类型为DCC+CACHE类型;通过所述交换模块提供的数据交互通道接收来自其它处理节点的数据请求,在所在处理节点中执行与所述数据请求对应的缓存操作和磁盘操作。
11、如权利要求1所述的处理节点,其特征在于,所述功能模块包括HCC和DCC;
所述HCC耦合于应用主机,用于提供与应用主机之间的数据交互通道;
所述DCC耦合于磁盘介质,用于提供与磁盘介质之间的数据交互通道;
所述处理模块,根据与其连接的功能模块确定所在处理节点的功能类型为HCC+DCC类型;通过所述HCC接收来自应用主机的数据请求,在所在处理节点中执行与所述数据请求对应的磁盘操作。
12、如权利要求11所述的处理节点,其特征在于,该处理节点进一步包括交换模块,用于为所在处理节点与所有其他处理节点之间提供数据交互通道;
所述处理模块进一步通过所述交换模块提供的数据交互通道,在所在处理节点和所在系统中提供CACHE的处理节点之间,执行与所述数据请求对应的缓存操作。
13、如权利要求1所述的处理节点,其特征在于,所述功能模块包括HCC、DCC和CACHE;
所述HCC耦合于应用主机,用于提供与应用主机之间的数据交互通道;
所述DCC耦合于磁盘介质,用于提供与磁盘介质之间的数据交互通道;
所述处理模块,根据与其连接的功能模块确定所在处理节点的功能类型为HCC+DCC+CACHE类型;通过所述HCC接收来自应用主机的数据请求,在所在处理节点中执行与所述数据请求对应的缓存操作和磁盘操作。
14、如权利要求13所述的处理节点,其特征在于,该处理节点进一步包括交换模块,用于为所在处理节点与所有其他处理节点之间提供数据交互通道;
所述处理模块,进一步通过所述交换模块提供的数据交互通道,在所在处理节点和与所述数据请求对应的处理节点之间,执行与所述数据请求对应的磁盘操作。
15、如权利要求12或14所述的处理节点,其特征在于,所述处理模块,进一步通过所述交换模块提供的数据交互通道接收来自其它处理节点的数据请求。
16、如权利要求6、9、11、12、13或14所述的处理节点,其特征在于,所述HCC包括:用户接口、协议转换器和节点接口;
所述用户接口,将接收自外部应用主机的数据请求和数据发送给所述协议转换器;将接收自所述协议转换器的数据发送给所述外部应用主机;
所述协议转换器,对接收自所述用户接口的数据请求和数据进行协议转换,发送给所述节点接口;对接收自所述节点接口的数据进行协议转换,发送给所述用户接口;
所述节点接口,将接收自所述协议转换器的数据请求和数据发送给所述处理模块;将接收自所述处理模块的数据发送给所述协议转换器。
17、如权利要求7、10、11、12、13或14所述的处理节点,其特征在于,所述DCC包括:节点接口、协议转换器和磁盘接口;
所述节点接口,将接收自所述处理模块的数据请求和数据发送给所述协议转换器;将接收自所述协议转换器的数据发送给所述处理模块;
所述协议转换器,对接收自所述节点接口的数据请求和数据进行协议转换,发送给所述磁盘接口;对接收自所述磁盘接口的数据进行协议转换,发送给所述节点接口;
所述磁盘接口,将接收自所述协议转换器的数据请求和数据发送给与该磁盘接口相连的磁盘介质,将接收自所述磁盘介质的数据发送给所述协议转换器。
18、如权利要求7、10、11、12、13或14所述的处理节点,其特征在于,所述DCC进一步包括与所述节点接口和协议转换器相连的DCC处理器,用于根据接收自节点接口的数据请求和数据生成磁盘读写指令,发送给所述协议转换器,将接收自所述协议转换器的数据发送给所述节点接口。
19、如权利要求8、9、10、13或14所述的处理节点,其特征在于,所述缓存包括节点接口、缓存控制器和缓存介质;
所述节点接口,用于将接收自所述处理模块的数据请求发送给所述缓存控制器;
所述缓存控制器,用于根据接收的数据请求对与其连接的缓存介质进行读操作或写操作;
所述缓存介质用于缓存数据。
20、如权利要求5所述的处理节点,其特征在于,所述处理模块进一步在所在处理节点正常工作时,产生周期性信号,通过所述交换模块向与所在处理节点对应的备用处理节点输出。
21、如权利要求5所述的处理节点,其特征在于,所述处理模块进一步在所在处理节点请求退出时,产生拔出事件消息,通过所述交换模块向与所在处理节点对应的备用处理节点输出。
22、如权利要求21所述的处理节点,其特征在于,所述处理模块进一步在通过所述交换模块接收到来自外部处理节点的拔出事件消息时,启动自身处理功能。
23、一种网络存储控制系统,至少提供一个主机通道以及至少一个磁盘通道,用以处理应用主机对磁盘介质的数据请求;其特征在于,该系统包括:
至少一个处理节点,
至少三个统一接口设置于至少一个处理节点上,所述统一接口用以连接HCC和/或DCC和/或缓存;
所述HCC耦合于应用主机,用以提供与应用主机之间的数据交互通道;所述DCC耦合于磁盘介质,用以对磁盘介质进行读写;所述CACHE耦合于HCC以及DCC之间,用以缓存待处理数据请求和/或数据。
24、一种存储控制系统,至少提供一个主机通道以及至少一个磁盘通道,用以处理应用主机对磁盘的数据请求,其特征在于,该系统包括:
两个或者两个以上的处理节点;
至少三个统一接口设置于至少两个处理节点上;所述统一接口用以连接HCC和/或DCC和/或缓存;
所述HCC耦合于应用主机,用以提供与应用主机之间的数据交互通道;所述DCC耦合于磁盘介质,用以对磁盘介质进行读写;所述CACHE耦合于HCC以及DCC之间,用以缓存待处理数据请求和/或数据。
25、一种存储控制系统,用在若干磁盘介质以及应用主机之间以提供网络存储服务,其特征在于,该系统包括多个对等的处理节点,每个处理节点上至少包括一个统一接口;所述统一接口用以连接HCC或DCC或CACHE;
所述HCC耦合于应用主机,用以提供与应用主机之间的数据交互通道;所述DCC耦合于磁盘介质,用以对磁盘介质进行读写;所述CACHE耦合于HCC以及DCC之间,用以缓存待处理数据请求和/或数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2007101516116A CN100492274C (zh) | 2007-08-17 | 2007-09-21 | 存储控制系统及其处理节点 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200710120445.3 | 2007-08-17 | ||
CN200710120445 | 2007-08-17 | ||
CNB2007101516116A CN100492274C (zh) | 2007-08-17 | 2007-09-21 | 存储控制系统及其处理节点 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101131624A CN101131624A (zh) | 2008-02-27 |
CN100492274C true CN100492274C (zh) | 2009-05-27 |
Family
ID=39128907
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2007101516116A Active CN100492274C (zh) | 2007-08-17 | 2007-09-21 | 存储控制系统及其处理节点 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100492274C (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8694737B2 (en) | 2010-06-09 | 2014-04-08 | Micron Technology, Inc. | Persistent memory for processor main memory |
US9448938B2 (en) | 2010-06-09 | 2016-09-20 | Micron Technology, Inc. | Cache coherence protocol for persistent memories |
US8613074B2 (en) | 2010-09-30 | 2013-12-17 | Micron Technology, Inc. | Security protection for memory content of processor main memory |
CN103890746B (zh) * | 2012-09-28 | 2016-12-28 | 华为技术有限公司 | 报文发送控制方法、处理方法、设备及系统 |
CN110187832B (zh) | 2014-05-21 | 2023-08-22 | 华为技术有限公司 | 一种数据操作的方法、设备和系统 |
CN106161492B (zh) | 2015-03-24 | 2019-05-10 | 华为技术有限公司 | 一种数据决策方法、装置及系统 |
CN105007307B (zh) * | 2015-06-18 | 2019-02-22 | 浪潮(北京)电子信息产业有限公司 | 一种存储控制方法和系统 |
US9658968B1 (en) * | 2015-11-09 | 2017-05-23 | International Business Machines Corporation | Implementing hardware accelerator for storage write cache management |
CN110399314B (zh) * | 2019-06-25 | 2021-10-15 | 苏州浪潮智能科技有限公司 | 一种cpu、一种电子设备以及一种cpu缓存控制方法 |
CN111080510B (zh) * | 2019-12-11 | 2021-02-12 | 海光信息技术股份有限公司 | 数据处理装置、方法、芯片、处理器、设备及存储介质 |
CN112559459B (zh) * | 2020-12-15 | 2024-02-13 | 跬云(上海)信息科技有限公司 | 一种基于云计算的自适应存储分层系统及方法 |
-
2007
- 2007-09-21 CN CNB2007101516116A patent/CN100492274C/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN101131624A (zh) | 2008-02-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100492274C (zh) | 存储控制系统及其处理节点 | |
CN100495312C (zh) | 存储控制系统及其处理节点 | |
CN100562842C (zh) | 存储系统 | |
US7389367B2 (en) | Method of managing I/O interface modules in a computer system | |
US7565503B2 (en) | Method and apparatus implementing virtualization for data migration with volume mapping based on configuration information and with efficient use of old assets | |
JP4508612B2 (ja) | クラスタ型ストレージシステム及びその管理方法 | |
JP2003015915A (ja) | 記憶装置の容量自動拡張方法 | |
JP2004518217A (ja) | 交換環境におけるリモートミラーリング | |
JP2008512759A (ja) | 分散ストレージシステムを管理する方法 | |
KR20080096547A (ko) | 가상 네트워크 저장 시스템, 네트워크 저장 장치 및 가상 방법 | |
JPS6118053A (ja) | デ−タ処理システム | |
JP2003162377A (ja) | ディスクアレイシステム及びコントローラ間での論理ユニットの引き継ぎ方法 | |
US20050210314A1 (en) | Method for operating storage system | |
JP2010271808A (ja) | ストレージ装置及びデータコピー方法 | |
JP2003323263A (ja) | 共有メモリ制御方法および制御システム | |
JP2004302713A (ja) | 記憶システム及びその制御方法 | |
CN100538617C (zh) | 存储介质处理方法及系统 | |
JPH05508506A (ja) | 耐障害性回路網ファイルシステム | |
JP2009026091A (ja) | 接続管理プログラム、接続管理方法および情報処理装置 | |
JP2005056200A (ja) | データ管理方法、ディスク記憶装置およびディスク記憶システム | |
US20050076177A1 (en) | Storage device control unit and method of controlling the same | |
JP2003131818A (ja) | クラスタ構成ストレージにおけるクラスタ間raid構成 | |
JP4180291B2 (ja) | 記憶装置システムの制御方法および記憶装置、管理装置、およびプログラム | |
CN105677519B (zh) | 一种资源的访问方法和装置 | |
CN112069108A (zh) | 一种基于PCIE Switch的服务器灵活配置系统及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Patentee after: Xinhua three Technology Co., Ltd. Address before: 310053 Hangzhou hi tech Industrial Development Zone, Zhejiang province science and Technology Industrial Park, No. 310 and No. six road, HUAWEI, Hangzhou production base Patentee before: Huasan Communication Technology Co., Ltd. |
|
CP03 | Change of name, title or address |