一种双控双活存储控制系统及方法

文档序号:6399680阅读:500来源:国知局
专利名称:一种双控双活存储控制系统及方法
技术领域
本发明涉及计算机系统及存储领域,尤其涉及一种双控双活存储控制系统及方法。
背景技术
双控存储系统是保障数据可靠性的有效方式,也是当前中小企业数据存储中首选方案。首先双控存储系统能够通过两个控制器进行业务7*24小时的业务支撑,其次双控存储系统能够实现两个控制器的负载均衡功能。当前的双控存储系统设计大都采用存储资源独占化管理模式,即对于同一个存储资源在一定的时间内由同一个控制器占用,另一个控制器的数据读写需要将数据转发到这个控制器,由这个控制器完成实际的读写功能。存储资源独占化管理简化了系统的读写流程,不需要协同两个控制器的同步问题。这种设计模式由于其局限性,不能支持更大的存储空间。首先,由一个控制器进行读写,不能够充分利用两个控制器的传输总线、计算资源,当扩展到一定的存储空间时,性能将受到极大的限制;其次,由于存储资源的管理粒度较大,当一个控制器出现故障时,需要有复杂的存储资源切换流程,如果应用对数据读写时间的容忍度较小时,将会出现业务的中断现象。

发明内容
本发明要解决的技术问题是提供一种双控双活存储控制系统及方法,解决现有双控存储系统控制器对资源独占化管理导致的存储性能局限。为了解决上述技术问题,本发明提供了一种双控双活存储控制系统,所述系统包括两个存储控制器,还包括与所述两个存储控制器均相连的磁盘柜,所述两个存储控制器中均包含存储资源管理模块和缓存模块;所述缓存模块,用于保存缓存数据;所述存储资源管理模块,用于接收应用服务器的请求,以磁盘阵列条带为单位将所述缓存模块中的相应缓存数据刷写至所述磁盘柜或者以条带为单位将所述磁盘柜的数据读取至所述缓存模块,刷写或读取完毕后释放所占用的磁盘柜资源。进一步地,上述装置还可以具有以下特点:所述两个存储控制器之间通过互联总线相连;所述存储资源管理模块,还用于统计负载信息并通过互联总线与另一存储控制器的存储资源管理模块交互所述负载信息,协商两者各自需承担的缓存数据的刷写任务,并执行本身需承担的刷写任务。进一步地,上述装置还可以具有以下特点:所述存储资源管理模块,还用于将所述缓存模块的缓存空间通过基树的形式组织,所述基树的叶子节点包括磁盘阵列条带的数据结构和数据,还用于以磁盘阵列条带为单位将需缓存的数据写入所述缓存模块。
进一步地,上述装置还可以具有以下特点:所述两个存储控制器之间通过互联总线相连;所述存储资源管理模块,还用于对所述缓存模块的缓存数据进行改写后通过所述互联总线将改写后的缓存数据镜像到对端的存储控制器。进一步地,上述装置还可以具有以下特点:所述两个存储控制器之间通过互联总线相连,所述两个存储控制器中均包含心跳模块;所述心跳模块,用于通过所述互联总线检测到对端存储控制器处于故障状态时,对所述对端存储控制器的电源进行重置。为了解决上述技术问题,本发明还提供了一种双控双活存储控制方法,包括:双控双活存储系统中的存储控制器接收应用服务器的请求,以磁盘阵列条带为单位将缓存模块中的相应缓存数据刷写至磁盘柜或者以条带为单位将所述磁盘柜的数据读取至所述缓存模块,刷写或读取完毕后释放所占用的磁盘柜资源。进一步地,上述方法还可以具有以下特点:所述存储控制器统计负载信息并通过互联总线与另一存储控制器的存储资源管理模块交互所述负载信息,协商两者各自需承担的缓存数据的刷写任务,并执行本身需承担的刷写任务。进一步地,上述方法还可以具有以下特点:所述存储控制器将所述缓存模块的缓存空间通过基树的形式组织,所述基树的叶子节点包括磁盘阵列条带的数据结构和数据,并以磁盘阵列条带为单位将需缓存的数据写入所述缓存模块。进一步地,上述方法还可以具有以下特点:所述存储控制器对所述缓存模块的缓存数据进行改写后通过所述互联总线将改写后的缓存数据镜像到对端的存储控制器。进一步地,上述方法还可以具有以下特点:所述存储控制器通过所述互联总线检测到对端存储控制器处于故障状态时,对所述对端存储控制器的电源进行重置。本发明通过细化存储资源管理粒度,从宏观上实现了两个控制器同时读写,充分利用了控制器的传输总线及计算资源,提高了存储性能。本发明还通过采用新的存储资源管理方式,提高了双控制器的总线资源、计算资源的利用率,提高存储的性能和容量,降低存储系统故障的切换时间。


图1是双控双活存储控制系统的应用拓扑图;图2是缓存单元的管理示意图;图3是存储控制器的硬件设计示意图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。双控双活存储控制系统的应用拓扑如图1所示。应用服务器通过存储区域网络(Storage Area Network, SAN)连接到存储控制系统中,使用存储系统提供的块级数据存储服务。目前SAN网络的基础构建方式有IP、FC、IB等网络可选。如图1所示,双控双活存储控制系统包括两个完全独立且相同的存储控制器,还包括与此两个存储控制器均相连的磁盘柜。应用服务器登录任何一个控制器都可以访问到整体存储系统的所有资源。当前使用的磁盘柜有串行连接SCSI (Serial Attached SCSI,SAS)磁盘柜、FC磁盘柜两种规格。为了确保两个控制器的对称性,控制器与磁盘柜的连接需要采用交换模式。在本案中,可以采用业界通用的FC交换机、SAS交换机实现。为了节省实现成本,可以采用SAS expander芯片替代交换模块。两个存储控制器中均包含服务接口模块和SAN服务模块。服务接口模块主要处理传输层向下的协议(如TCP/IP协议)。SAN服务模块首先实现存储服务的安全认证,其次处理应用服务端请求的小型计算机系统接口(Small Computer System Interface, SCSI)协议。两个存储控制器中均包含缓存模块和存储资源管理模块。缓存模块用于保存缓存数据。存储资源管理模块用于接收应用服务器的请求,以磁盘阵列条带为单位将缓存模块中的相应缓存数据刷写至磁盘柜或者以条带为单位将磁盘柜的数据读取至缓存模块,刷写或读取完毕后释放所占用的磁盘柜资源。存储资源管理模块除了负责上述读写控制,还负责存储资源的组织和冗余保护等功能。本案中采用细粒度的存储资源管理方式。传统的双控设计中,由一个控制器在相当长的一段时间内独占存储资源,甚至是当控制器没有失效时一直独占存储资源。采用这种方式的缺点时,不能够充分利用两个控制器的计算资源对数据进行校验,也不能够充分利用后端的磁盘总线向下读写。本案中采用的存储资源管理以条带为单位。某个控制器只有在数据刷新的瞬间才能占用磁盘资源。当刷新完成之后立即释放资源。因此,从宏观的角度,两个控制器能够同时对后端磁盘进行读写。由于两个控制器缓存脏数据是相同的。因此,在缓存刷写分配时可以有多种分配方式。第一种是固定分析模式。每个控制器负责哪些条带的数据刷写和读取是固定的。t匕如,固定分配1-5000条带由控制器0进行刷写,而5000到10000条带由控制器I进行刷写。这种方式与传统存储资源固定方式相同。第二种是就近分配原则。应用服务器从哪个控制器请求写的数据,由哪个控制器负责刷写。这种分配方式控制器负载的均衡性取决于前端应用请求的均衡性。事实上,应用服务器一般会安装对存储的MPIO软件,它能够实现存储链路的负载均衡。实际上也就实现了存储控制器的负载均衡。因此,这种分配方式在大部分情况下是相当有效的。第三种是智能分配方式,两个控制器通过各自的负载统计对比,共同协助分配刷写任务。这种方式是在没有任何假设的情况下,最有利于利用两个控制器资源的方式。即存储资源管理模块统计负载信息并通过互联总线与另一存储控制器的存储资源管理模块交互负载信息,协商两者各自需承担的缓存数据的刷写任务,并执行本身需承担的刷写任务。为了提高缓存的利用率。数据的刷写需要遵循前端应用的读写规律,同时将小块读写转化成大块的数据读写。最简单有效的实现方式即在缓存管理的模块上实现一个数据读写队列。当一个chunk被读写时,从头部加入到队列中。这样,此队列中的读写记录从前往后逐渐变老。刷写时从队列的后端摘取元素进行刷写。本发明涉及的存储系统体系结构采用全新的缓存设计模式,摒弃操作系统的缓存管理方式。主要考虑以下几点:首先,操作系统的缓存管理模式构建于文件系统之上。为了保证文件系统缓存的性能,充分考虑的文件的组织方式,为此造成了大量的缓存处理损耗。其次,操作系统的缓存与本系统所需要缓存的对象不同。操作系统的缓存管理与内存管理相结合,缓存对象对页为单位。本方案中所采用的缓存管理需要与磁盘阵列(RedundantArrays of Inexpensive Disks,RAID)机制结合,缓存对象以条带为单位。再次,操作系统的缓存以文件为缓存的单位组织。本方案中缓存单元以逻辑上连续的存储空间为单位组织。本案的缓存管理如图2所示。为了便于缓存单元的有效查找,存储资源管理模块将缓存模块的缓存空间通过基树的形式组织,基树的叶子节点包括磁盘阵列条带的数据结构和数据,并以磁盘阵列条带为单位将需缓存的数据写入缓存模块。每个条带由多个等长的chunk组成,多个chunk校验形成校验值。为了保校验值的有效性,需要在写数据之前计算校验值。缓存数据的来源由以下几个方面:首先,存储服务器向缓存写入数据时,需要检查相应的缓存数据是否存在,如果不存在的话,从磁盘中读出相应的数据,并对缓存进行改写。存储资源管理模块还用于对缓存模块的缓存数据进行改写后通过互联总线将改写后的缓存数据镜像到对端的存储控制器。为了提高性能,这个过程不需要读取一个条带中的所有数据,可以首先读取需要改写的chunk,然后异步读取相关联的其它chunk。其次,缓存数据也可能来源于对端写数据的镜像。当一个chunk数据已经改写,但没有写入磁盘时,我们称之为脏数据。为了确保控制失效时,不会造成数据的丢失,需要在两个控制器中均保存脏数据。因此,两个控制器中的脏数据完成相同。最后,缓存数据还可能来源于系统的预读。缓存管理模块会根据系统读写特点,预读一部分数据,以提高系统的性能。预读的数据是非脏的。因此,两个控制器的非脏数据有可能是不同的。两个存储控制器中均包含心跳模块。心跳模块用于通过互联总线检测到对端存储控制器处于故障状态时,对对端存储控制器的电源进行重置。通过心跳模块可以确保一个控制器出现故障时,另一个控制器能够及时的承担其之前承担的工作。图3为存储控制器的硬件设计示意图。本发明涉及的存储控制器硬件,无平台方面的设计,也不需要专门的芯片,可以采用通用的X86服务器设计架构。存储控制器与传统的服务器硬件的设计区别在于:首先,构建专用的内部互联总线。内部互联主要用于两个控制器之间的数据和控制通信。数据通信的作用是能够实现两个控制器缓存的互备,控制通信的作用时,能够及时检测控制器的状态。这两类通信对互联总线的需求不同,前者需要互联总线提高带宽的数据传输,后者需要互联总线低响应延时。在实际设计时,为了提高系统的性能和可靠性,可以采用双通信链路的设计。控制链路采用串口、千兆网络等,数据总线可采用PC1-E NTB,SAS总线、万兆以太网、IB网络等。其次,两个控制器能够实现电源的相互控制。控制器出现故障时,其运行状态是不可预测的。在故障切换时,需要将其电源重置,以保证此控制器的状态不能够影响正常控制器的运行,因此,本发明中,需要控制器间能够实现电源的相互控制。最后,在结构设计上,两个控制器需要放在一个2—3U的机箱内。因此,设计过程中,需要充分考虑机箱的体积,简化设计,比如减少不必要的IO设备。本方案使用了简化的存储资源切换技术。通过上述采用的全新的缓存管理机制,存储资源切换将变得非常简单,其流程如下:不失一般性,假设控制器0失效:( I)控制器I检测到控制器0失效( 2 )控制器I重置控制器0电源(3)控制器0完成不能访问,应用服务器端的MPIO软件将放弃控制器0的链路,将数据从控制器I写入(4)控制器I重新分配刷写机制,所有的数据刷写由控制器I完成(5)接管成功(6)当控制器0恢复业务时,应用服务器端的MPIO软件将会重新检测到控制器0的链路有效,并通过控制器0写入数据。而控制器I检测到控制器0恢复之后,重新协商刷写分配即可完成切换。采用上述的接管回切策略将使控制器间的故障接管回切时间缩短到秒级。在上述系统架构下,本发明的双控双活存储控制方法包括:双控双活存储系统中的存储控制器接收应用服务器的请求,以磁盘阵列条带为单位将缓存模块中的相应缓存数据刷写至磁盘柜或者以条带为单位将所述磁盘柜的数据读取至所述缓存模块,刷写或读取完毕后释放所占用的磁盘柜资源。存储控制器统计负载信息并通过互联总线与另一存储控制器的存储资源管理模块交互所述负载信息,协商两者各自需承担的缓存数据的刷写任务,并执行本身需承担的刷写任务。存储控制器将所述缓存模块的缓存空间通过基树的形式组织,所述基树的叶子节点包括磁盘阵列条带的数据结构和数据,并以磁盘阵列条带为单位将需缓存的数据写入所述缓存模块。存储控制器对所述缓存模块的缓存数据进行改写后通过所述互联总线将改写后的缓存数据镜像到对端的存储控制器。存储控制器通过所述互联总线检测到对端存储控制器处于故障状态时,对所述对端存储控制器的电源进行重置。当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
权利要求
1.一种双控双活存储控制系统,所述系统包括两个存储控制器,还包括与所述两个存储控制器均相连的磁盘柜,其特征在于, 所述两个存储控制器中均包含存储资源管理模块和缓存模块; 所述缓存模块,用于保存缓存数据; 所述存储资源管理模块,用于接收应用服务器的请求,以磁盘阵列条带为单位将所述缓存模块中的相应缓存数据刷写至所述磁盘柜或者以条带为单位将所述磁盘柜的数据读取至所述缓存模块,刷写或读取完毕后释放所占用的磁盘柜资源。
2.按权利要求1所述的装置,其特征在于, 所述两个存储控制器之间通过互联总线相连; 所述存储资源管理模 块,还用于统计负载信息并通过互联总线与另一存储控制器的存储资源管理模块交互所述负载信息,协商两者各自需承担的缓存数据的刷写任务,并执行本身需承担的刷写任务。
3.按权利要求1所述的装置,其特征在于, 所述存储资源管理模块,还用于将所述缓存模块的缓存空间通过基树的形式组织,所述基树的叶子节点包括磁盘阵列条带的数据结构和数据,还用于以磁盘阵列条带为单位将需缓存的数据写入所述缓存模块。
4.按权利要求1所述的装置,其特征在于, 所述两个存储控制器之间通过互联总线相连; 所述存储资源管理模块,还用于对所述缓存模块的缓存数据进行改写后通过所述互联总线将改写后的缓存数据镜像到对端的存储控制器。
5.按权利要求1所述的装置,其特征在于, 所述两个存储控制器之间通过互联总线相连,所述两个存储控制器中均包含心跳模块; 所述心跳模块,用于通过所述互联总线检测到对端存储控制器处于故障状态时,对所述对端存储控制器的电源进行重置。
6.一种双控双活存储控制方法,其特征在于, 双控双活存储系统中的存储控制器接收应用服务器的请求,以磁盘阵列条带为单位将缓存模块中的相应缓存数据刷写至磁盘柜或者以条带为单位将所述磁盘柜的数据读取至所述缓存模块,刷写或读取完毕后释放所占用的磁盘柜资源。
7.按权利要求6所述的方法,其特征在于, 所述存储控制器统计负载信息并通过互联总线与另一存储控制器的存储资源管理模块交互所述负载信息,协商两者各自需承担的缓存数据的刷写任务,并执行本身需承担的刷写任务。
8.按权利要求6所述的方法,其特征在于, 所述存储控制器将所述缓存模块的缓存空间通过基树的形式组织,所述基树的叶子节点包括磁盘阵列条带的数据结构和数据,并以磁盘阵列条带为单位将需缓存的数据写入所述缓存模块。
9.按权利要求6所述的方法,其特征在于, 所述存储控制器对所述缓存模块的缓存数据进行改写后通过所述互联总线将改写后的缓存数据镜像到对端的存储控制器。
10.按权利要求6所述 的方法,其特征在于, 所述存储控制器通过所述互联总线检测到对端存储控制器处于故障状态时,对所述对端存储控制器的电源进行 重置。
全文摘要
本发明公开了一种双控双活存储控制系统及方法,本系统包括两个存储控制器还包括与两个存储控制器均相连的磁盘柜,两个存储控制器中均包含存储资源管理模块和缓存模块。存储控制器接收应用服务器的请求,以磁盘阵列条带为单位将缓存模块中的相应缓存数据刷写至磁盘柜或者以条带为单位将所述磁盘柜的数据读取至所述缓存模块,刷写或读取完毕后释放所占用的磁盘柜资源。本发明通过细化存储资源管理粒度,从宏观上实现了两个控制器同时读写,充分利用了控制器的传输总线及计算资源,提高了存储性能。本发明还通过采用新的存储资源管理方式,提高了双控制器的总线资源、计算资源的利用率,提高存储的性能和容量,降低存储系统故障的切换时间。
文档编号G06F13/16GK103092786SQ201310058159
公开日2013年5月8日 申请日期2013年2月25日 优先权日2013年2月25日
发明者王恩东, 文中领, 吴庆民, 施培任 申请人:浪潮(北京)电子信息产业有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1