CN100495312C - 存储控制系统及其处理节点 - Google Patents
存储控制系统及其处理节点 Download PDFInfo
- Publication number
- CN100495312C CN100495312C CNB2007101546662A CN200710154666A CN100495312C CN 100495312 C CN100495312 C CN 100495312C CN B2007101546662 A CNB2007101546662 A CN B2007101546662A CN 200710154666 A CN200710154666 A CN 200710154666A CN 100495312 C CN100495312 C CN 100495312C
- Authority
- CN
- China
- Prior art keywords
- processing node
- data
- cache
- request
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种存储控制系统,该存储控制系统位于应用主机与磁盘介质之间,用以处理应用主机向磁盘介质发起的数据请求,该系统由多个处理节点构成全连接拓扑结构,其中,每2个处理节点之间具有数据交互通道;所述处理节点包括功能模块、处理模块和交换模块。存储控制系统的所有处理节点中,至少有一个处理节点的功能模块中包括一个耦合于应用主机的HCC,至少有一个处理节点的功能模块中包括一个耦合于磁盘介质的DCC,至少有一个处理节点的功能模块中包括一个用于缓存数据的CACHE。本发明还公开了一种存储控制系统中的处理节点。使用本发明能够提高存储控制系统中各处理节点之间的带宽。
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来缓存待处理的数据,以提高存储控制子系统面向应用主机的响应速度。
现有的存储控制操作分为3个阶段,其一是由HCA负责的用户交互阶段,其二是由CACHE负责的缓存阶段,其三是由DCA负责的磁盘交互阶段。
从图1中可以看出,HCA与CACHE之间是星型连接,DCA与CACHE之间也是星型连接。HCA与DCA之间可以直接传输读写命令,或通过CACHE传输读写命令,但是,对于读写数据来说,由于需要采用CACHE进行缓存,因此HCA与DCA之间的读写数据必须通过CACHE传输。
参见图1,在目前的存储控制系统中还包括用于管理各CACHE资源的CACHE管理单元(图1中未示出CACHE管理单元与其他设备的连接关系),在HCA与DCA之间进行读写数据传输时,请求CACHE管理单元为数据请求分配缓存空间。
可见,现有的存储控制子系统具有以下缺点:
其一,现有的存储控制子系统采用星形连接作为拓扑结构,当多个HCA同时访问同一个DCA时,数据经由CACHE并通过相同链路到达DCA。由于到达该DCA的链路带宽有限,可能会出现数据阻塞,从而导致存储控制效率的降低。
其二、多个CACHE需要专门的CACHE管理单元进行管理,该CACHE管理单元负责为写请求分配缓存空间,甚至为读请求查询CACHE是否命中等任务。但是,采用专门的CACHE管理单元不仅增加了存储控制子系统的成本,而且,CACHE管理工作只能由CACHE管理单元完成,管理方式不够灵活。如果CACHE管理单元发生故障后,存储控制系统中数量众多的处理节点则无法进行正常的通信,从而降低了存储控制系统的可靠性。
其三、存储控制子系统中的处理节点功能单一。像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、CACHE和DCA组成的存储控制子系统中,待写数据要依次经过HCA处的SWITCH、CACHE处的交换模块和DCA处的SWITCH共3次交换才能到达DCA;同理,DCA从磁盘介质中读取的数据也要经3次交换才能到达HCA。可见,存储控制的响应速度受到了影响。
另外,由于HCA、CACHE和DCA等处理节点都采用独立的硬件板卡实现,对于实现最小容量的存储控制子系统来说,也需要至少3块硬件板卡,电路规模也较大,增加了最小容量的存储控制子系统的实现成本。
发明内容
有鉴于此,本发明提供了一种存储控制系统,能够提高存储控制系统中各处理节点之间的带宽。
所述存储控制系统位于应用主机与磁盘介质之间,用以处理应用主机向磁盘介质发起的数据请求,其特征在于,该系统由多个处理节点构成全连接拓扑结构,其中,每2个处理节点之间具有数据交互通道;
所述处理节点包括功能模块、处理模块和交换模块;
所述处理模块,用于控制所述功能模块在所在处理节点执行与所接收的数据请求类型对应的存储控制操作;通过所述交换模块提供的数据交互通道在所在处理节点与其他处理节点之间,执行与所接收的数据请求类型对应的数据存储控制操作;
所述功能模块,用于在所述处理模块的控制下执行与其功能对应的存储控制操作;
所述交换模块,用于为所在处理节点与所有其他处理节点之间提供数据交互通道;
所述存储控制系统中的所有处理节点中,至少有一个处理节点的功能模块中包括一个主机通道适配卡HCC,耦合于应用主机,用于提供与应用主机之间的数据交互通道;
至少有一个处理节点的功能模块中包括一个磁盘通道适配卡DCC,耦合于磁盘介质,用于提供与磁盘介质之间的数据交互通道;
至少有一个处理节点的功能模块中包括一个缓存CACHE,用于缓存数据。
较佳地,所述处理节点进一步与所在系统中的其他处理节点协商,确定出作为管理节点的处理节点;
作为管理节点的处理节点执行对所述存储控制系统中CACHE资源的管理。
其中,由所述管理节点管理的CACHE资源为系统中所有处理节点中的CACHE资源,或者,为系统中由所有处理节点提供的可共享CACHE资源。
较佳地,所述处理节点包括成对出现的主处理节点和备用处理节点,在主处理节点失效时,与其对应的备用处理节点检测到失效事件,并启动自身处理操作。
本发明还提供了一种应用于存储控制系统中的处理节点,能够提高其所在存储控制系统中,各处理节点之间的带宽。
所述存储控制系统位于应用主机与磁盘介质之间,用以处理应用主机向磁盘介质发起的数据请求,所述处理节点包括功能模块、处理模块和交换模块;
所述处理模块,用于控制所述功能模块在所在处理节点执行与所接收的数据请求类型对应的存储控制操作;通过所述交换模块提供的数据交互通道在所在处理节点与其他处理节点之间,执行与所接收的数据请求类型对应的数据存储控制操作;
所述功能模块在所述处理模块的控制下执行与其功能对应的存储控制操作;该功能模块包括HCC和/或CACHE和/或DCC;
所述HCC,耦合于应用主机,用于提供与应用主机之间的数据交互通道;所述DCC,耦合于磁盘介质,用于提供与磁盘介质之间的数据交互通道;所述CACHE,用于缓存数据;
所述交换模块,用于为所在处理节点与所有其他处理节点之间提供数据交互通道。
根据以上技术方案可见,应用本发明能够提高存储控制系统中各处理节点之间的带宽。具体来说,具有如下有益效果:
其一、每两个处理节点之间都可以进行信息交互,那么由处理节点形成的存储控制系统的拓扑结构为全连接结构。当多个处理节点同时访问一个处理节点时,分别通过不同的链路与被访问的处理节点通信,不会造成在到达被访问处理节点的链路上发生数据阻塞的情况。可见,全连接的拓扑结构能够提高处理节点之间的带宽,从而提高了存储控制效率。
其二、无需专有的CACHE管理单元。全连接存储控制系统中的任意一个处理节点均可以通过协商作为管理节点。作为管理节点的处理节点负责为整个存储控制系统或为自身分配缓存空间,避免了采用专门的CACHE管理单元进行缓存空间的管理,从而降低了存储控制系统的成本。另外,存储控制系统中的处理节点还可以独立管理自身节点中的CACHE资源,或者与管理节点结合共同管理处理节点中的CACHE资源,提高了管理的灵活性。
附图说明
图1为现有的存储系统结构示意图。
图2为本发明实施例中存储控制系统的结构示意图。
图3为本发明实施例中具有16个处理节点的存储控制系统的结构示意图。
图4为本发明存储控制系统的处理节点的基本结构示意图。
图5为本发明实施例中处理节点的一种结构示意图。
图6为本发明实施例中HCC的结构示意图。
图7为本发明实施例中DCC的结构示意图。
图8为本发明实施例中DCC的另一种结构示意图。
图9为本发明实施例中CACHE的结构示意图。
图10为本发明实施例二中处理节点的结构示意图。
图11为本发明实施例三中处理节点的结构示意图。
图12为本发明实施例四中处理节点的结构示意图。
图13为本发明实施例五中处理节点的结构示意图。
图14为本发明实施例六中处理节点的结构示意图。
图15为本发明实施例七中处理节点的结构示意图。
图16为本发明一实例中存储控制系统的结构示意图。
具体实施方式
下面结合附图并举实施例,对本发明进行详细描述。
本发明首先提出了一种全连接拓扑结构的存储控制系统。图2为在本发明一个实施例中提出的全交换存储控制系统的结构示意图。如图2所示,在本发明一个实施例中,全连接存储控制系统由多个处理节点构成全连接拓扑结构,其中,每2个处理节点之间具有数据交互通道。
其中,处理节点,在自身中或通过数据交互通道与其它处理节点之间,执行与所接收的数据请求的类型对应的数据存储控制操作。该处理节点中包括交换模块,用于为所在处理节点与所有其他处理节点之间提供数据交互通道。
全连接存储控制系统中的处理节点可以被配置为具有HCA,和/或缓存,和/或DCA的功能。具有HCA功能的处理节点耦合于应用主机,提供处理节点与应用主机之间的传输通道;具有DCA功能的处理节点耦合于磁盘介质,提供处理节点与磁盘介质之间的传输通道;具有CACHE功能的处理节点作为存储控制系统中的缓存。其中,至少有一个处理节点具有HCA功能,至少有一个节点具有DCA功能,至少有一个节点具有缓存功能。一个处理节点可以同时具有1个以上的功能。
从图2中可以看出,每两个处理节点之间都具有数据交互通道,那么本实施例存储控制系统中的各处理节点形成了全连接的拓扑结构。当多个具有HCA功能的处理节点访问同一个具有DCA功能的处理节点时,并未采用同一条链路,因此避免了现有存储控制系统中可能出现的数据阻塞。可见,该全连接的拓扑结构能够提高处理节点之间的带宽,提供存储控制效率。
全连接存储控制系统中处理节点的数量不受限制,可以根据需要添加或减少。图3示出了本发明实施例中具有16个处理节点的存储控制系统的结构示意图。
在全连接存储控制系统中,CACHE资源的管理方式可以有以下几种:
1、集中式管理,即CACHE资源的管理功能由某一个被确定为管理节点的处理节点承担。无论哪个处理节点要缓存数据,都需要向该管理节点请求缓存空间。该CACHE管理功能采用加载在处理节点中程序实现,从而充分利用了处理节点的资源。
管理节点是由系统中处理节点相互协商确定的。在多个处理节点中,任意一个处理节点都可以与其他处理节点协商,确定出作为管理节点的处理节点,当自身作为管理节点时,执行CACHE管理工作。协商的方式可以是处理节点根据自身优先级和其他处理节点的优先级,确定优先级最高的处理节点作为管理节点。管理节点可以管理的CACHE资源是由具有CACHE功能的处理节点上报给管理节点的。
在实际中,如果管理节点失效,那么无法分配CACHE资源,导致存储控制系统无法正常工作,存储控制系统可靠性不高。为了提供存储控制系统的可靠性,管理节点在自身正常时与其他处理节点进行心跳信号的交互,当其他处理节点无法收到该管理节点的心跳信号,则重新确定管理节点,并由重新确定出的管理节点接管CACHE资源管理工作。该心跳信号为周期性信号。
这种集中式管理的好处在于整个系统的CACHE资源被共享和统一管理。在实际中,可以采用现有诸如Mailbox等多种现有的CACHE读写技术实现对CACHE的读写。
2、分散式管理,即由各个处理节点管理自身具有的CACHE资源。不具有CACHE的处理节点向具有CACHE的处理节点请求缓存空间。在分散式管理下,还可以设置某个处理节点管理自身和某个预先分配的处理节点中的CACHE资源,比如说处理节点1可以管理本地的CACHE以及处理节点2下的CACHE,甚至处理节点2下CACHE的某一部分,各处理节点能够管理到的CACHE资源是在系统初始化的过程中分配好的。
3、集中式和分散式结合管理,即在系统初始化时,由具有CACHE的处理节点向系统中的管理节点发送其自身CACHE中可以被共享的地址段,并管理自身未被共享的CACHE资源,管理节点负责管理各处理节点中被共享的CACHE资源。
可见,本发明实施例为CACHE管理提供多样化的管理方案。
在实际中,如果某个处理节点失效,那么由该处理节点负责的工作将无法正常进行,也会导致存储控制系统可靠性不高。因此,为了进一步提高存储控制系统的可靠性,在为处理节点配置其功能时,为每一个处理节点配置一个备用节点。主、备处理节点成对出现且具有的功能相同。当主处理节点正常工作时,备用处理节点也会接收与主处理节点相同的数据请求,但是不作处理;当主处理节点失效时,由其备用处理节点接替它的工作,从而保证了存储控制系统的可靠性。主处理节点在自身正常时,产生周期性信号,向对应的备用处理节点输出。在自身异常时,不输出信号。当备用处理节点接收不到其主处理节点输出的周期性信号时,则判定主处理节点失效,同时启动自身处理功能,以接管主处理节点的工作。
另外,存储控制系统中的处理节点支持热插拔。与主处理节点失效相似,当处理节点要退出系统之前,向其备用处理节点下发拔出事件消息,备用处理节点接收到该拔出事件消息,启动自身数据请求处理功能,从而接管业务。当有处理节点插入时,由系统管理员为其配置该处理节点具有的功能和备用处理节点。
图4为本发明应用于存储控制系统的处理节点的基本结构示意图。如图4所示,该处理节点包括功能模块、处理模块和交换模块。
其中,处理模块,用于控制功能模块在所在处理节点执行与所接收的数据请求类型对应的存储控制操作;通过交换模块提供的数据交互通道在所在处理节点与其他处理节点之间,执行与所接收的数据请求类型对应的数据存储控制操作。其中,数据请求的类型包括对于磁盘介质的读数据请求和写数据请求以及对缓存的读缓存请求和写缓存请求。
功能模块在处理模块的控制下执行与其功能对应的存储控制操作。
交换模块与其他处理节点的交换模块相连,用于提供所在处理节点与所有其他处理节点之间的数据交互通道。
当处理节点配置有不同的功能模块时,该处理节点可以具有HCA,和/或缓存,和/或DCA的功能。
较佳地,处理模块具有至少2个统一接口,一个统一接口连接一个功能模块。由于统一接口的物理结构和协议都相同,因此各功能模块之间可以任意交换,从而实现处理节点功能的可配置。在这种情况下,处理模块在实现控制之前,需要根据与其连接的功能模块确定所在处理节点的功能类型,并在接收到数据请求后,控制功能模块执行在所确定的功能类型下与所接收的数据请求的类型对应的存储控制操作。另外,在存储控制系统初始化时、有新的功能模块插入时、或者与其连接的功能模块被拔出时,处理模块重新确定所在处理节点的功能。这样,本发明实施例中处理节点的功能可以根据需要任意配置,而且在需求发生变化时,根据变化的需求增加或减少功能模块的数量,或者将原有的功能模块替换为能实现不同功能的功能模块。
图5示出了本发明实施例中应用于存储控制系统的处理节点的一种结构示意图。如图5所示,该处理节点包括:由处理器和桥片组成的处理模块、交换模块(SWITCH)、主机通道适配卡(HCC,Host Channel Card)、缓存模块(CACHE)和磁盘通道适配卡(DCC,Disk Channel Card)。其中,HCC、DCC和CACHE是功能模块。
其中,处理模块中的桥片是负责连接处理器、SWITCH和其他可配置功能模块的硬件。该桥片为功能模块提供至少两个具有统一规格和协议定义的统一接口,一个统一接口上可以插接HCC、DCC和CACHE中的一个,从而令处理节点的功能不再单一也不再固定。那么就可以通过配置处理节点中的功能模块,实现对存储控制系统的灵活配置。处理模块中的处理器定时触发执行确定处理节点功能类型的操作,也可以在处理模块检测到有功能模块插入时检测所插入功能模块的类型并重新确定处理节点的功能类型。该处理器在确定的功能类型下根据接收到的数据请求进行相应处理。
SWITCH用于提供所在处理节点与外部其他处理节点之间的传输通道。所在处理节点通过SWITCH向其他处理节点发送数据请求和数据,通过SWITCH接收来自其他处理节点的数据请求和数据。该SWITCH所连接的处理节点的数目与存储控制系统中的处理节点数目相关,由于是全连接,当存储控制系统包括n(n为大于或等于1的整数)个处理节点时,每个处理节点中的SWITCH都与其他(n-1)个处理节点相连。
当处理节点至少配置有一个HCC时,该处理节点具有HCA功能;当处理节点至少配置有一个DCC时,该处理节点具有DCA功能;当处理节点至少配置有一个CACHE时,该处理节点具有缓存功能。
其中,HCC,耦合于应用主机,为外部应用主机和处理节点之间提供传输通道。HCC将接收自应用主机的数据请求进行协议转换,转换为处理模块可识别的格式,然后发送给处理模块;将来自处理模块的数据进行协议转换,转换为应用主机可识别的格式,然后发送给应用主机。
图6为本发明实施例中HCC的结构示意图。如图6所示,该HCC包括用户接口、协议转换器和节点接口。其中,用户接口将接收自应用主机的符合用户接口协议类型的数据请求和数据发送给协议转换器,协议转换器对该数据请求和数据进行协议转换,转换为符合桥片上统一接口协议类型的数据请求和数据,然后通过节点接口发送给处理模块。节点接口将处理模块发送来的数据发送给协议转换器,协议转换器对该数据进行协议转换,转换为符合用户接口协议类型的数据,然后通过用户接口返回给应用主机。其中,用户接口协议类型根据应用主机所支持的协议类型确定,例如光纤接口、千兆网口,万兆网口所使用的协议。统一接口协议类型可以采用PCI-EXPRESS协议。
DCC,用于为磁盘介质和处理节点之间提供传输通道。DCC将接收自处理模块的数据请求和数据进行协议转换,转换为磁盘介质可识别的格式,然后发送给磁盘介质;将来自磁盘介质的数据进行协议转换,转换为处理模块可识别的格式,发送给处理模块。
图7为本发明实施例中DCC的结构示意图。如图7所示,该DCC包括磁盘接口、协议转换器和节点接口。其中,节点接口将接收自处理模块的符合统一接口协议类型的数据请求和数据发送给协议转换器,协议转换器对该数据请求和数据进行协议转换,转换为符合磁盘接口协议类型的数据请求和数据,然后通过磁盘接口发送给磁盘介质。磁盘接口将从磁盘介质读取的数据发送给协议转换器,协议转换器对该数据进行协议转换,转换为符合统一接口协议类型的数据,然后通过节点接口发送给处理模块。其中,磁盘接口协议类型根据磁盘介质支持的协议类型确定,例如光纤接口协议等。统一接口协议类型可以采用PCI-EXPRESS协议。
图7示出的DCC只是起到了数据通道的作用,处理模块完成对来自用户的数据请求进行解析、生成磁盘读写指令并通过DCC发送给磁盘介质的操作。为了减少处理模块的负担,也可以采用如图8示出的DCC结构。如图8所示,与图7不同之处在于,在DCC中增加单独的DCC处理器,用于根据接收自节点接口的数据请求和数据,生成用于对磁盘介质进行读写操作的磁盘读写指令,然后经由协议转换器和磁盘接口发送给磁盘介质;将接收自协议转换器的读取的数据发送给节点接口。那么,处理模块只需要将数据请求和数据发送给DCC即可。该DCC处理器可以采用现有的磁盘控制器实现,例如廉价磁盘冗余阵列(RAID,Redundant Array of Inexpensive Disks)卡。
图9为本发明实施例中CACHE的结构示意图。如图9所示,该CACHE包括节点接口、缓存控制器和缓存介质。其中,节点接口连接处理模块,作为处理模块与缓存控制器之间的数据传输通道,将接收自处理模块的数据请求发送给缓存控制模块。缓存控制器根据接收自节点接口的数据请求对缓存介质进行读写操作;缓存介质用于缓存数据。通常,节点接口和缓存控制器采用现场可编程门阵列(FPGA,Field Programmable Gate Array)实现,缓存介质采用第二代双倍速(DDR2)存储介质。可见,CACHE采用的是FPGA+DDR2的结构。该CACHE中缓存空间的分配由处理模块管理,其容量取决于处理模块寻址空间的大小。节点接口接收自处理模块的命令/数据为符合统一接口协议类型的数据,例如符合PCI-EXPRESS协议的命令/数据。如果缓存控制器不支持统一接口协议类型,还需要在节点接口和缓存控制器之间增加协议转换模块,用于将通过节点接口接收的符合统一接口协议类型的命令/数据转换为缓存控制器支持的协议格式。
下面举多个实施例,对本发明处理节点配置有不同功能模块时的工作原理进行详细描述。各实施例中,HCC采用图6示出的结构,DCC可以采用图7或图8示出的结构,CACHE采用图9示出的结构。由于桥片只负责连接各组成模块,对数据请求和数据进行单纯的中转,以下为了描述简洁,省略了数据请求和数据经过桥片的过程。
实施例一
本实施例中,通过统一接口连接在处理模块上的功能模块包括至少一个HCC、至少一个DCC和至少一个CACHE。在这种组合下,处理节点的功能类型为(HCC+DCC+CACHE)类型。本实施例中的DCC采用图8示出的具有DCC处理器的结构。
仍参见图5,本实施例中的处理节点包括处理器、桥片、SWITCH、至少一个HCC、至少一个CACHE和至少一个DCC。图5中的虚线示意性的示出了数据请求和数据在处理节点中的传输方向。如图5所示,处理器根据连接在桥片上的功能模块确定当前处理节点的功能类型为(HCC+DCC+CACHE)类型,处理器在接收到数据请求后,执行(HCC+DCC+CACHE)类型下与所接收得到数据请求对应的存储控制操作。
具体而言,处理器首先判断数据请求的类型,并根据判断结果进行相应的存储控制操作。
当判定接收到写数据请求时,将待写数据缓存在所述CACHE中,判断与写数据请求对应的处理节点是否包括本处理节点,如果包括,则控制本地DCC从缓存中获取待写数据并写入与该DCC相连的磁盘介质中;如果不包括,可以继续判断写数据请求对应的处理节点是否包括其它处理节点,如果是,在通过SWITCH将缓存的待写数据发送给与写数据请求对应的处理节点,否则不执行任何操作。当本实施例的处理节点不包括SWITCH时,只需要在接收到写数据请求并缓存在CACHE后,直接控制本地DCC从缓存中获取待写数据并写入相应的磁盘介质。
具体地,处理器为待写数据分配CACHE中的缓存空间,将待写数据先保存在所分配的缓存空间中,根据写数据请求中的逻辑块地址(LBA,LogicBlock Address)与自身保存的LBA与DCC之间的对应关系,确定与写数据请求中的LBA对应的DCC,将对应的DCC所在处理节点确定为与写数据请求对应的处理节点。当对应的DCC在本地处理节点时,判定写数据请求对应的处理节点为本处理节点,将之前为从HCC接收的写数据请求分配的缓存空间的地址发送给本地处理节点中对应的DCC,该对应的DCC根据接收到的缓存空间的地址从CACHE中获取数据,并保存到写数据请求中LBA所指示的磁盘介质中。当对应的DCC在其它处理节点时,判定写数据请求对应的处理节点为其它处理节点,处理器将接收到的写数据请求和保存在缓存空间中的数据通过SWITCH发送给具有对应DCC的处理节点。
当判定接收到读数据请求时,判断读数据请求对应的处理节点是否为本处理节点,如果是,则通过本地DCC从与其相连的磁盘介质中读取数据,并缓存在本处理节点的缓存中,然后通过HCC返回给发起读数据请求的应用主机;否则,将该读数据请求通过SWITCH发送给对应的处理节点,接收对应的处理节点返回的读取的数据,并缓存在本处理节点的缓存中,然后通过HCC返回给发起读数据请求的应用主机。
具体地,当判定接收到读数据请求时,根据读数据请求中的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所连接的磁盘介质进行相同的数据存储操作,以实现数据的备份或镜像。
当处理节点为管理节点时,还需要处理缓存请求。例如,为写请求请求分配缓存空间,为读请求查询CACHE是否命中等。
本实施例中,DCC采用的是图8示出的具有DCC处理器的结构,该DCC处理器可以实现对磁盘介质的操作,还可以完成为数据申请缓存空间的操作。当采用图7示出DCC结构时,DCC对磁盘介质的操作由处理器完成,同时处理器直接为数据分配缓存空间。而DCC只作为磁盘介质和处理器之间的数据传输通道,负责进行统一接口协议类型到磁盘接口协议类型的协议转换。
由本实施例可见,处理节点可以通过增加HCC、CACHE或DCC,或者HCC、CACHE和DCC之间的相互替换实现存储控制系统的灵活扩展,从而满足不同的需求。例如,当DCC需求量增加而HCC需求量有所减少时,不仅可以通过在空闲的统一接口上插接DCC来满足DCC需求量的增加,还可以将多余的HCC替换为DCC,来满足DCC需求量的增加,从而实现了存储控制系统的灵活扩展。
如果一个处理节点中配置有HCC、CACHE和DCC,那么该处理节点还可以独立完成最小容量的存储控制。无需采用现有的HCA、CACHE和DCA三块硬件板卡实现最小容量的存储控制,从而降低了存储控制系统的成本。
此外,每个节点的处理器负责为本节点分配缓存空间,相当于在处理器中设置了内部CACHE管理模块,该内部CACHE管理模块可以由一段由处理器运行的管理程序实现,从而充分的利用了处理器的资源。由于不用在处理节点外部设置额外的CACHE管理模块用以对缓存空间进行管理,进一步降低了存储控制系统的成本。
实施例二
本实施例中,通过统一接口连接在处理模块上的功能模块包括至少一个HCC。在这种组合下,处理节点的功能类型为HCC类型。
图10为本发明实施例二中应用于存储控制系统的处理节点的结构示意图。图10中的虚线示意性的示出了数据请求和数据在处理节点中的传输方向。如图10所示,该处理节点包括处理器、桥片、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类型。
图11为本发明实施例三中应用于存储控制系统的处理节点的结构示意图。图11中的虚线示意性的示出了数据请求和数据在处理节点中的传输方向。如图11所示,该处理节点包括处理器、桥片、SWITCH和至少一个DCC。处理器根据连接在桥片上的功能模块确定当前处理节点的功能类型为DCC类型,处理器在接收到数据请求后,执行DCC类型下与所接收到的数据请求对应的存储控制操作。
具体而言,处理器从SWITCH接收来自其他处理节点的数据请求,判断所接收的数据请求的类型,并根据判断结果进行相应的存储控制操作。
当判定接收到写数据请求时,通过本地DCC对于该DCC相连的磁盘介质进行写操作。
当判定接收到读数据请求时,处理器根据接收的读数据请求通过本地DCC对该DCC连接的磁盘介质进行读操作;将从磁盘介质中读取的数据通过SWITCH发送出去。数据发送的目标可以是发起读数据请求的处理节点,如果发起读数据请求的处理节点不具备CACHE,也可以将该数据发送给具有缓存功能的处理节点进行缓存,并通知发起数据请求的处理节点从缓存有读取的数据的处理节点中读取数据。在将数据发送给具有缓存功能的处理节点时,该提供缓存功能的处理节点可以由发起读数据请求的处理节点指定,也可以由本处理节点指定。提供缓存功能的处理节点可以采用以下实施例四所描述的处理节点。
与实施例二相似,本实施例中配置在同一处理节点中的多个DCC可以是支持不同磁盘接口协议类型的磁盘通道适配卡。由于多个DCC连接在桥片的统一接口上,可以通过在桥片上插接支持不同磁盘接口协议类型的DCC,以满足不同磁盘介质需求。本实施例中DCC具有处理器,该处理器可以完成各种RAID读写功能。当采用不具有处理器的DCC时,可以由DCC所在处理节点中的处理器实现各种RAID读写功能。
由本实施例以上所述可见,当处理节点中只配置DCC时,该处理节点可以实现现有的DCA功能,该处理节点在接收到数据请求时完成存储控制操作中与磁盘介质交互的操作。正是由于桥片上所具有的统一接口相同,因此本实施例中的处理节点的功能不是固定的,随时可以根据需要灵活扩展。
实施例四
本实施例中,通过统一接口连接在处理模块上的功能模块包括至少一个CACHE。在这种组合下,处理节点的功能类型为CACHE类型。
图12为本发明实施例四中应用于存储控制系统的处理节点的结构示意图。图12中的虚线示意性的示出了数据请求和数据在处理节点中的传输方向。如图12所示,该处理节点包括处理器、桥片、SWITCH和至少一个CACHE。该处理节点中的处理器用于管理连接在桥片上的所有CACHE。处理器根据连接在桥片上的功能模块确定当前处理节点的功能类型为CACHE类型。处理器在接收到数据请求后,执行CACHE类型下与所接收到的数据请求对应的存储控制操作。
具体而言,处理器从SWITCH接收来自其他处理节点的数据请求,判断所接收的数据请求的类型,并根据判断结果进行相应的存储控制操作。由于该处理节点中只有CACHE,因此该处理节点接收的数据请求的类型包括读缓存请求和写缓存请求。
当判定接收到写缓存请求时,处理器为待缓存的数据分配缓存空间,将待缓存数据写入所分配的缓存空间中,还要将所分配的缓存空间的地址通过SWITCH发送给发起写缓存请求的处理节点,或者将该缓存空间的地址通过SWITCH发送给将要读取缓存数据的处理节点。例如,对于实施例三中的具有DCC的处理节点来说,当具有DCC的处理节点读取数据后,可以向本实施例中的处理节点发送写缓存请求并将读取的数据作为待缓存数据发送给本实施例中的处理节点,接收本实施例中的处理节点返回的缓存空间的地址,该具有DCC的处理节点将缓存空间的地址通知给发起写数据请求的处理节点,使其能够从本实施例中的处理节点中获取缓存的数据。或者,本实施例中的处理节点在接收到写缓存请求时,也已经获得了发起写数据请求的处理节点地址,那么直接将缓存空间的地址发送给发起写数据请求的处理节点,使其能够从本实施例中的处理节点中获取缓存的数据。
当判定接收到读缓存请求时,处理器根据读缓存请求中所携带缓存空间的地址,从对应的CACHE中读取数据,将读取的数据返回给发起该读缓存请求的处理节点。
一个处理节点上可以配置多个CACHE,通过增加配置在处理节点上的CACHE来扩充系统中的缓存容量。
由本实施例以上所述可见,当处理节点中只配置CACHE时,该处理节点可以实现现有的缓存功能,该处理节点在接收到数据请求时完成存储控制操作中缓存的操作。正是由于桥片上所具有的接口相同,因此本实施例中的处理节点的功能不是固定的,随时可以根据需要灵活扩展。
实施例五
本实施例中,通过统一接口连接在处理模块上的功能模块包括至少一个HCC和至少一个CACHE。在这种组合下,处理节点的功能类型为(HCC+CACHE)类型。
图13为本发明实施例五中应用于存储控制系统的处理节点的结构示意图。图13中的虚线示意性的示出了数据请求和数据在处理节点中的传输方向。如图13所示,该处理节点包括处理器、桥片、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)类型。
图14为本发明实施例六中应用于存储控制系统的处理节点的结构示意图。图14中的虚线示意性的示出了数据请求和数据在处理节点中的传输方向。如图14所示,该处理节点包括处理器、桥片、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)类型。
图15为本发明实施例七中应用于存储控制系统的处理节点的结构示意图。图15中的虚线示意性的示出了数据请求和数据在处理节点中的传输方向。如图15所示,该处理节点包括处理器、桥片、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返回给发起读数据请求的应用主机。
当然,与前述实施例相同,本实施例处理节点中的桥片也具有统一的接口,因此本实施例中的处理节点的功能不是固定的,随时可以根据需要灵活扩展。
以上七个实施例中,处理节点的处理器管理其所在处理节点的CACHE。当处理节点不具有CACHE时,处理节点向其他处理节点请求缓存空间。被请求缓存空间的处理节点可以是系统中的管理节点,由管理节点为其分配系统中的缓存空间;被请求缓存空间的处理节点也可以是预先为不具有CACHE的处理节点配置的提供缓存空间的处理节点,该处理节点为请求缓存空间的处理节点分配其自身CACHE中的缓存空间。
如果来自用户的数据请求不能被及时响应,还可以采用CACHE缓存数据请求。缓存数据请求的CACHE可以与缓存数据的CACHE采用同一个物理实体实现,也可以设置两个CACHE,采用其中一个缓存数据请求,采用另一个缓存数据。
以下举一个采用以上实施例所描述的处理节点组成存储控制系统的实例。图16为本发明一实例中存储控制系统的结构示意图。如图16所示,该存储控制系统包括4个处理节点,每两个处理节点之间可以直接进行通信。其中,处理节点1和处理节点2为(HCC+CACHE)类型的处理节点,分别和与其连接的应用主机进行信息交互;处理节点3为(HCC+DCC+CACHE)类型的处理节点,和与其连接的应用主机和磁盘介质进行信息交互;处理节点4为DCC类型的处理节点,和与其连接的磁盘介质进行信息交互。如图16可见,处理节点1与处理节点3或与处理节点4组合,可以完成存储控制操作;处理节点2与处理节点3或与处理节点4组合,可以完成存储控制操作;处理节点3与处理节点4组合可以完成存储控制操作,当然处理节点3自身也可以完成存储控制操作。
该存储控制系统中每两个处理节点通过SWITCH直接相连,组成了全连接的拓扑结构。当处理节点1、2和3同时访问处理节点4时,分别通过与处理节点4之间的链路直接通信,没有经过同一条链路,避免了现有技术中因共用同一条链路而发生数据阻塞的问题。
在集中管理方式下,假设当系统初始化时,推选出处理节点1作为管理节点,那么,处理节点2、3和4向处理节点1申请缓存空间;在分散管理方式下,预先配置处理节点4向处理节点2申请缓存空间,那么,处理节点1、2和3独立管理其具有的CACHE资源,处理节点4向处理节点2申请缓存空间。在集中和分散结合管理方式下,处理节点2和3将部分CACHE共享,由作为管理节点的处理节点1管理,那么,处理节点2和3独立管理各自没有被共享的CACHE资源,处理节点1和4可以向处理节点1申请缓存空间。当然,处理节点2和3也可以在其CACHE已分配完时,向处理节点1申请缓存空间。可见,存储控制系统不需要在处理节点以外设置专门的CACHE管理单元对待缓存数据分配缓存空间,分配缓存空间的工作由各处理节点中的处理器完成,从而充分利用处理器的资源,降低了存储控制系统的成本。
当实际需求发生改变时,例如DCC的需求量增加,而HCC的需求量有所减少时,可以在处理节点1~4中的任意一个或任意多个中增加DCC,从而提供更多的与磁盘介质进行交互的通道。当然,也可以将处理节点3中的HCC替换为DCC,从而提供更多的与磁盘介质进行交互的通道;还可以将处理节点1或处理节点2中的HCC替换为DCC,从而将处理节点1或处理节点2改变为(HCC+DCC+CACHE)的功能类型,满足了DCC需求量增加的需要。可见由本发明实施例提供的处理节点所组成的存储控制系统扩展十分灵活。当然,在实际应用中,也可以将存储控制系统中部分处理节点的功能设置为固定,另一部分处理节点的功能设置为可配置。这种部分固定部分可变的配置方式,也可以同样完成存储控制操作,并且在需求发生改变时,通过对功能可配置的处理节点进行配置也可以满足变化的需求。而且,当处理节点的功能发生改变时,存储控制系统的拓扑结构仍为全连接结构,不用发生改变,依然能够正常工作。
图16中的处理节点3采用实施例一示出的处理节点结构,该处理节点3能够独立完成存储控制操作中的3个阶段。待存储的数据不用经过SWITCH即可到达磁盘介质,节省了数据交换时间。当采用两个处理节点合作完成存储控制操作时,只需经过一个SWITCH,依然比采用现有的存储控制系统进行3次交换所消耗的数据转换时间要短。
由以上所述可以看出,本发明所提供的存储控制方案,当多个处理节点同时访问一个处理节点时,多个处理节点分别通过不同的链路与被访问的处理节点通信,不会造成在到达被访问处理节点的链路上发生数据阻塞的情况,从而增加了处理节点之间的带宽,提高了存储控制效率。同时,能够提高存储控制系统的扩展灵活性。存储控制的响应速度较高,存储控制系统成本较低。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (16)
1、一种存储控制系统,所述存储控制系统位于应用主机与磁盘介质之间,用以处理应用主机向磁盘介质发起的数据请求,其特征在于,该系统由多个处理节点构成全连接拓扑结构,其中,每2个处理节点之间具有数据交互通道;
所述处理节点包括功能模块、处理模块和交换模块;
所述处理模块,用于控制所述功能模块在所在处理节点执行与所接收的数据请求类型对应的存储控制操作;通过所述交换模块提供的数据交互通道在所在处理节点与其他处理节点之间,执行与所接收的数据请求类型对应的数据存储控制操作;
所述功能模块,用于在所述处理模块的控制下执行与其功能对应的存储控制操作;
所述交换模块,用于为所在处理节点与所有其他处理节点之间提供数据交互通道;
所述存储控制系统的所有处理节点中,至少有一个处理节点的功能模块中包括一个主机通道适配卡HCC,耦合于应用主机,用于提供与应用主机之间的数据交互通道;
至少有一个处理节点的功能模块中包括一个磁盘通道适配卡DCC,耦合于磁盘介质,用于提供与磁盘介质之间的数据交互通道;
至少有一个处理节点的功能模块中包括一个缓存CACHE,用于缓存数据。
2、如权利要求1所述的系统,其特征在于,所述处理模块具有统一接口,每一个统一接口连接一个所述的功能模块;
所述处理模块进一步用于根据与其连接的功能模块确定所在处理节点的功能类型,在所确定的功能类型下,控制所述功能模块在所在处理节点执行与所接收的数据请求类型对应的存储控制操作;通过所述交换模块提供的数据交互通道在所在处理节点与其他处理节点之间,执行与所接收的数据请求类型对应的数据存储控制操作。
3、如权利要求2所述的系统,其特征在于,所述功能模块包括HCC;
所述处理模块,根据与其连接的功能模块确定所在处理节点的功能类型为HCC类型;通过所述HCC接收来自应用主机的数据请求,通过所述交换模块提供的数据交互通道,在所在处理节点和与所述数据请求对应的处理节点之间,执行与所述数据请求对应的缓存操作和磁盘操作。
4、如权利要求2所述的系统,其特征在于,所述功能模块包括DCC;
所述处理模块,根据与其连接的功能模块确定所在处理节点的功能类型为DCC类型;通过所述交换模块提供的数据交互通道接收来自其它处理节点的数据请求,在所在处理节点中执行与所述数据请求对应的磁盘操作。
5、如权利要求2所述的系统,其特征在于,所述功能模块包括CACHE;
所述处理模块,根据与其连接的功能模块确定所在处理节点的功能类型为缓存类型;通过所述交换模块提供的数据交互通道接收来自其它处理节点的数据请求,在所在处理节点中执行与所述数据请求对应的缓存操作。
6、如权利要求2所述的系统,其特征在于,所述功能模块包括HCC和CACHE;
所述处理模块,根据与其连接的功能模块确定所在处理节点的功能类型为HCC+CACHE类型;通过所述HCC接收来自应用主机的数据请求,在所在处理节点中执行与所述数据请求对应的缓存操作,通过所述交换模块提供的数据交互通道,在所在处理节点和与所述数据请求对应的处理节点之间,执行与所述数据请求对应的磁盘操作。
7、如权利要求2所述的系统,其特征在于,所述功能模块包括DCC和CACHE;
所述处理模块,根据与其连接的功能模块确定所在处理节点的功能类型为DCC+CACHE类型;通过所述交换模块接收来自其它处理节点的数据请求,在所在处理节点中执行与所述数据请求对应的缓存操作和磁盘操作。
8、如权利要求2所述的系统,其特征在于,所述功能模块包括HCC和DCC;
所述处理模块,根据与其连接的功能模块确定所在处理节点的功能类型为HCC+DCC类型;通过所述HCC接收来自应用主机的数据请求,在所在处理节点中执行与所述数据请求对应的磁盘操作。
9、如权利要求8所述的系统,其特征在于,所述处理模块,进一步通过所述交换模块提供的数据交换通道,在所在处理节点和系统中提供CACHE的处理节点之间,执行与所述数据请求对应的缓存操作。
10、如权利要求2所述的系统,其特征在于,所述功能模块包括HCC、DCC和CACHE;
所述处理模块,根据与其连接的功能模块确定所在处理节点的功能类型为HCC+DCC+CACHE类型;通过所述HCC接收来自应用主机的数据请求,在所在处理节点中执行与所述数据请求对应的缓存操作和磁盘操作。
11、如权利要求10所述的系统,其特征在于,所述处理模块,进一步通过所述交换模块提供的数据交互通道,在所在处理节点和与所述数据请求对应的处理节点之间,执行与所述数据请求对应的磁盘操作。
12、如权利要求8、9、10或11所述的系统,其特征在于,所述处理模块,进一步通过所述交换模块提供的数据交互通道接收来自其它处理节点的数据请求。
13、如权利要求1所述的系统,其特征在于,所述处理节点进一步与所在系统中的其他处理节点协商,确定出作为管理节点的处理节点;
作为管理节点的处理节点执行对所述存储控制系统中CACHE资源的管理。
14、如权利要求13所述的系统,其特征在于,由所述管理节点管理的CACHE资源为系统中所有处理节点中的CACHE资源,或者,为系统中由所有处理节点提供的可共享CACHE资源。
15、如权利要求1所述的系统,其特征在于,所述处理节点包括成对出现的主处理节点和备用处理节点,在主处理节点失效时,与其对应的备用处理节点检测到失效事件,并启动自身处理操作。
16、一种存储控制系统中的处理节点,所述存储控制系统位于应用主机与磁盘介质之间,用以处理应用主机向磁盘介质发起的数据请求,其特征在于,所述处理节点包括功能模块、处理模块和交换模块;
所述处理模块,用于控制所述功能模块在所在处理节点执行与所接收的数据请求类型对应的存储控制操作;通过所述交换模块提供的数据交互通道在所在处理节点与其他处理节点之间,执行与所接收的数据请求类型对应的数据存储控制操作;
所述功能模块,用于在所述处理模块的控制下执行与其功能对应的存储控制操作;该功能模块包括HCC和/或CACHE和/或DCC;
所述HCC,耦合于应用主机,用于提供与应用主机之间的数据交互通道;
所述DCC,耦合于磁盘介质,用于提供与磁盘介质之间的数据交互通道;
所述CACHE,用于缓存数据;
所述交换模块,用于为所在处理节点与所有其他处理节点之间提供数据交互通道,使得每2个处理节点之间具有数据交互通道。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2007101546662A CN100495312C (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 | ||
CNB2007101546662A CN100495312C (zh) | 2007-08-17 | 2007-09-21 | 存储控制系统及其处理节点 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101135953A CN101135953A (zh) | 2008-03-05 |
CN100495312C true CN100495312C (zh) | 2009-06-03 |
Family
ID=39160066
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2007101546662A Expired - Fee Related CN100495312C (zh) | 2007-08-17 | 2007-09-21 | 存储控制系统及其处理节点 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100495312C (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103152394B (zh) * | 2013-02-06 | 2016-09-28 | 华为技术有限公司 | 数据存取系统、内存共享设备及数据读取方法 |
CN106161492B (zh) * | 2015-03-24 | 2019-05-10 | 华为技术有限公司 | 一种数据决策方法、装置及系统 |
CN105893156B (zh) * | 2016-04-20 | 2018-02-09 | 北京云宏信达信息科技有限公司 | 存储计算系统中的请求处理方法及存储计算系统 |
CN112416259B (zh) * | 2020-12-04 | 2022-09-13 | 海光信息技术股份有限公司 | 数据访存方法和数据访存装置 |
CN113704160B (zh) * | 2021-08-17 | 2023-03-24 | 深圳市安信达存储技术有限公司 | 基于飞腾处理器的数据存储方法、系统及存储主板 |
CN113704161B (zh) * | 2021-08-17 | 2023-04-07 | 深圳市安信达存储技术有限公司 | 基于龙芯处理器的数据存储方法、系统及存储主板 |
CN117633119A (zh) * | 2024-01-25 | 2024-03-01 | 平凯星辰(北京)科技有限公司 | 数据同步方法、数据同步系统的节点、设备及存储介质 |
-
2007
- 2007-09-21 CN CNB2007101546662A patent/CN100495312C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN101135953A (zh) | 2008-03-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100492274C (zh) | 存储控制系统及其处理节点 | |
CN100495312C (zh) | 存储控制系统及其处理节点 | |
US8949503B2 (en) | Disk subsystem | |
US6654831B1 (en) | Using multiple controllers together to create data spans | |
JP4338068B2 (ja) | ストレージシステム | |
JP4688514B2 (ja) | ストレージ制御装置 | |
US7216148B2 (en) | Storage system having a plurality of controllers | |
CN100562842C (zh) | 存储系统 | |
JP4508612B2 (ja) | クラスタ型ストレージシステム及びその管理方法 | |
US20050267963A1 (en) | Method for managing I/O interface modules in a computer system | |
JP4786255B2 (ja) | ストレージシステム及び記憶制御方法 | |
US20110145452A1 (en) | Methods and apparatus for distribution of raid storage management over a sas domain | |
JP2004518217A (ja) | 交換環境におけるリモートミラーリング | |
JP2001256003A (ja) | ディスクアレイ制御装置、そのディスクアレイ制御ユニットおよびその増設方法 | |
JP2003323263A (ja) | 共有メモリ制御方法および制御システム | |
US6477618B2 (en) | Data storage system cluster architecture | |
US7299334B2 (en) | Storage system configurations | |
CN101222490A (zh) | 一种网络服务器系统及方法 | |
CN101370027A (zh) | 网络存储系统、方法及应用服务器 | |
JP2005056200A (ja) | データ管理方法、ディスク記憶装置およびディスク記憶システム | |
JP2000089916A (ja) | ファイル制御装置 | |
US7043603B2 (en) | Storage device control unit and method of controlling the same | |
CN111684421B (zh) | 服务器系统 | |
CN101232513B (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 | ||
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. |
|
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090603 Termination date: 20200921 |