一种硬件raid5/6存储系统的架构及数据处理方法

文档序号:6364288阅读:184来源:国知局
专利名称:一种硬件raid5/6存储系统的架构及数据处理方法
技术领域
本发明涉及一种计算机存储系统,尤其是一种基于RAID5/6磁盘阵列存储系统。
背景技术
独立冗余磁盘阵列(RedundantArray of Independent Disk, RAID)是一种把多块独立的硬盘(物理硬盘)按不同的方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的存储性能与数据备份能力的技术。RAID特色是N块硬盘同时读取速度加快及提供容错性(Fault Tolerant)。根据磁盘陈列的不同组合方式,可以将RAID分为不同级别,如RAIDO、RAID I、 RAID2、RAID5、RAID6等7个主要规范。根据架构的不同,RAID方案有两种实现方法,一种是硬件RAID解决方案,另一种是软RAID解决方案,还有一种外置RAID卡模式,也是硬件 RAID的一种。硬件RAID解决方案以其速度快、稳定性好,可以有效地提供高水平的硬盘可用性和冗余度的优点,在存储系统中得到广泛的应用。RAID5 (分布式奇偶校验的独立磁盘结构)是以数据的校验位来保证数据的安全,它不以单独硬盘来存放数据的校验位,而是将数据段的校验位交互存放于各个硬盘上,这样允许单个硬盘出错。RAID6 (两种存储的奇偶校验码的磁盘结构)是RAID5的扩展,引入了第二种校验码,安全性进一步提升。RAID5/6 作为在存储性能、数据安全和存储成本兼顾的存储解决方案,是目前大容量存储产品中最常见的方案。鉴于前述的RAID5/6的共性,如图I描述了一个典型的使用硬件RAID5/6解决方案的存储系统架构,其中硬件RAID5/6加速运算核(这里RAID6采用的是P + Q算法)通常为独立的芯片,挂接在数据总线上,它主要完成RAID5中的XOR(异或)运算或者RAID6 中的XOR(异或)运算和GF(伽罗华域)乘法运算。图2描述了在该结构框架下解决方案的数据流程。当主机需要写数据到磁盘内时,新的数据被主机控制器以DMA方式写入内存 DDR中,此时处理器单元通知硬件RAID5/6加速运算核从内存DDR获取数据,并计算出该段数据的校验值,之后硬件RAID5/6加速运算核将计算的数据校验值再次存入内存DDR ;最后处理器单元通知磁盘控制器将内存中的数据以及相对应的校验值写入各个磁盘对应的条带内。当主机需要从磁盘内读数据时,磁盘控制器会将需要的数据以及对应的校验值放入内存DDR ;若此时有数据盘丢失,则处理器单元通知硬件RAID5/6加速运算核计算出丢失盘内的数据,之后硬件RAID5/6加速运算核将恢复的数据写入内存DDR;最后主机控制器获取内存DDR内的数据,并将之传输给主机。从以上流程中可以看出,进行一次读写操作,主机控制器、磁盘控制器和硬件RAID5/6加速运算核需要进行4次申请总线占用和访问内存 DDR,频繁的总线申请和内存访问会大大降低整体系统的性能。现有技术中,在不改变硬件RA ID 5 /6存储系统架构的前提下,通过修改硬件 RAID5/6加速运算核的接口实现方法有一种优化方案,使硬件RAID5/6加速运算核在主机控制器和磁盘控制器从内存DDR读数据时,可以获取数据并进行数据校验值的计算,之后主机控制器和磁盘控制器可通过内部总线直接获取硬件RAID5/6加速运算核内的计算后的数据。图3为该结构框架下解决方案的数据流程。当主机需要写数据到磁盘内时,数据被主机控制器以DMA方式同时写入内存DDR内,之后处理器单元通知磁盘控制器从内存中获取数据,同时硬件RAID5/6加速运算核也从总线上获取有效数据,并计算出相应数据的校验值;最后磁盘控制器从硬件RAID5/6加速运算核的缓存器内获取校验值,并写入各个磁盘内。当主机需要从磁盘内读数据时,数据和其校验值被磁盘控制器同时写入内存DDR 和硬件RAID5/6加速运算核,硬件RAID5/6加速运算核负责恢复丢失的数据;主机控制器分别从内存DDR和硬件RAID5/6加速运算核的缓存器内获取数据和恢复的数据,并传输给主机使用。虽然该解决方案的系统架构不变,但是其数据流程却已经改变,这里减少了硬件 RAID5/6加速运算核访问内存和占用总线的次数有显著的减少,但是数据的校验值还需要占用一次内部总线,而且该方法实现起来,硬件RAID5/6加速运算核需要较复杂的逻辑。

发明内容
本发明针对现有的硬件RAID5/6技术,提出一种新的硬件架构,旨在更多的节约总线资源、减少内存读写,提高整个RAID的数据传输性能。这种架构是这样的多个磁盘被磁盘控制器控制,主机控制主机控制器挂载内部数据总线,内存、处理器单元、磁盘控制器也都挂载至内部数据总线,硬件RAID5/6加速运算核没有挂载到内部数据总线上,而是放置在主机控制器和磁盘控制器之间。硬件RAID5/6 加速运算核内部具有双端口缓存器(RAM),它计算的校验数值以及需要恢复的数据并不存放在内存中,而是存放在所述的双端口 RAM内;硬件RAID5/6加速运算核内有两个RAID5/6 计算单元,一个负责处理数据校验值的产生,另一个负责丢失数据的恢复。本发明采用了 FPGA芯片的SOC架构,主机控制器和磁盘控制器的接口协议都在 FPGA芯片内部实现,所述主机控制器和硬件RAID5/6加速运算核之间以及磁盘控制器和硬件RAID5/6加速运算核之间通过并行内部总线进行通信连接。若主机控制器和磁盘控制器的接口都是单独芯片,硬件RAID5/6加速运算核也可以为一个单独的芯片,它们之间也可通过高速串行总线进行连接通信(如SFI等串行传输协议接口)。基于所述的RAID5/6的硬件架构,具体的RAID数据处理方法是整个数据处理包括主机的写数据和读数据操作。对于主机的写操作,主机控制器首先对接收的数据进行区分数据命令包和非数据命令包;对于数据命令包,主机控制器将其数据同时传递给硬件 RAID5/6加速运算核和内存的DDR,硬件RAID5/6加速运算核负责对数据进行XOR运算或者 GF运算,并产生相应的RAID5或RAID6校验值,并暂时存放在其内部的缓存器RAM内;当数据块计算完成之后,由处理器单元通知磁盘控制器从内存DDR和硬件RAID5/6加速运算核的缓存器RAM内分别读取数据和校验值;之后磁盘控制器负责将获取到的数据写入相应的磁盘中。非数据命令包则直接写入内存。对于主机的读操作,磁盘控制器将各个磁盘内的数据和校验值读取出来,同时写入内存DDR和硬件RAID5/6加速运算核,硬件RAID5/6加速运算核检查是否有数据损坏,并恢复丢失的数据,存放在相应的缓存器RAM内;主机控制器负责从内存DDR和硬件RAID5/6 加速运算核的缓存器内读出相应的数据,并传输给主机。本发明通过优化硬件RAID5/6的结构,减少了对内存和数据总线的访问次数,可以提高存储系统的整体性能。


图I,现有的典型的硬件RAID5/6架构;
图2,基于现有典型硬件RAID5/6架构的数据处理流程;
图3,基于现有典型硬件RAID5/6架构的优化的数据处理流程;
图4,本发明的硬件架构;
图5,本发明的数据处理流程;
图6,主机控制器的内部结构;
图7,硬件RAID5/6加速运算核的内部结构;
图8, RAID计算单元内部结构;
图9,磁盘控制器内部结构。
具体实施例方式如图4,整个系统架构主要包括主机控制器、硬件RAID5/6加速运算核、磁盘控制器、内部数据总线、处理器单元、内存DDR以及其它部件组成。其中本发明主要涉及的部分为主机控制器、硬件RAID5/6加速运算核和磁盘控制器。硬件RAID5/6加速运算核没有挂载到内部数据总线上,而是放置在主机控制器和磁盘控制器之间。本发明内的主机控制器主要负责和主机或交换机通信和数据交互,这里使用的 Fibre Channel协议,但是也可以替换成其它的接口协议(如TCP/IP、FCOE, Ethernet、 Infiniband等)。本发明内的磁盘控制器主要负责对多个磁盘的读写控制,这里使用传输协议为SATA协议,但是也可以替换为其它协议(如SAS、Fibre Channel等)。硬件RAID5/6 加速运算核主要负责RAID5中的XOR (异或)运算以及RAID6中的XOR(异或)运算和GF (伽罗华域)乘法运算,对于数据的校验值计算或数据恢复,只要配置相应的寄存器,不需要 CPU进行参与,就可以快速计算出需要的数据。硬件RAID5/6加速运算核包括两个RAID5/6 计算单元,而且两个计算单元之间是相互独立的,这样可以保证主机控制器和磁盘控制器可以同时工作。主机控制器和硬件RAID5/6加速运算核之间以及磁盘控制器和硬件RAID5/6加速运算核之间通过并行内部总线进行通信。硬件RAID5/6加速运算核计算完成之后,可通过中断信息通知处理器单元。处理器单元负责通知主机控制器或磁盘控制器从硬件RAID5/6 加速运算核内的缓存器中取数据。以FPGA芯片内的实现方式为例,以下是本发明的具体硬件结构。图6为主机控制器的内部结构图。物理接口连接主机和协议逻辑单元,协议逻辑单元通过系统总线接口连接内存DDR,还通过辅助传输接口连接硬件RAID5/6加速运算核。物理接口单元负责维护和远端主机的连接功能。协议逻辑单元主要完成特殊协议的解析、数据包的拆分和组装、以DMA方式将数据传输到内存DDR、传输有效的数据到硬件 RAID5/6加速运算核等功能。系统总线接口单元负责处理协议逻辑单元通过内部总线对内存DDR的读写操作。辅助传输接口单元与硬件RAID5/6加速运算核连接通信,它一方面负责将协议逻辑单元解析数据和参数传递给硬件RAID5/6加速运算核,另一方面负责接收硬件RAID5/6加速运算核计算恢复出的数据;辅助传输接口单元可使用并行传输总线,因此它可以快速的完成对数据的传输和接收处理。当远端主机需要写数据到磁盘内时,主机控制器的协议逻辑单元从物理接口单元接收稳定的并行数据包,之后根据相应的协议规则,对数据包进行拆分和解析,对于非数据的命令包,协议逻辑单元只将其通过系统总线接口单元将其写入内存DDR的相应位置;对于包含数据的命令包,协议逻辑单元将数据传输到内存DDR之外,同时将其有效数据净荷和相应的处理参数通过辅助传输接口单元实时传递给硬件RAID5/6加速运算核。当远端主机需要从磁盘内读数据时,主机控制器的协议逻辑单元根据处理器单元的通知参数,分别从内存DDR和硬件RAID5/6加速运算核读取相应的数据,并进行封装组包,之后交由物理接口单元传送出去。图7为硬件RAID5/6加速运算核的结构图,硬件RAID5/6加速运算核通过数据接口连接主机控制器和磁盘控制器,具有两个RAID计算单元、两组接收、发送接口。两组数据接收接口单元分别负责接收主机控制器或磁盘控制器传输的数据和参数;两组数据发送接口单元则负责将硬件RAID5/6加速运算核计算的数据结果传送给主机控制器或磁盘控制器。RAID计算单元主要完成RAID5中的XOR(异或)运算以及RAID6中的XOR(异或)运算和GF(伽罗华域)乘法运算,并产生相应数据块的校验值或者产生需要恢复的数据块。两个RAID计算单元的功能是完成相同的,这里使用两个RAID计算单元是为了保证同时可以处理来主机控制器和磁盘控制器的输入数据。图8进一步描述了 RAID计算单元的内部结构,状态机控制单元主要负责控制整个校验运算单元的工作和运算处理,它接收来自数据接收接口单元的数据和参数,根据要求计算校验数据P和Q、以及需要恢复的数据块。校验运算单元负责根据状态机控制单元的指示,对输入数据进行XOR运算和GF运算,以产生RAID5校验值、RAID6校验值(P+Q)以及丢失的数据。校验运算单元内的异或单元负责完成对输入数据块异或运算,GF运算单元负责完成对输入数据块的伽罗华域乘法或除法运算,而其中的缓存器Bufferl、Buffer2和 Buffer3使用FPGA内的双端口 RAM实现,它负责暂存计算的中间值、校验数据P和Q以及需要恢复的各个丢失盘数据块。图9中描述了磁盘控制器内部结构。磁盘控制器内系统总线接口单元和辅助传输接口单元和主机控制器的单元的功能和实现基本相同。而这里的协议处理单元主要用来处理多个存储设备接口的传输协议的解析、以及数据包的分发和选择的作用;这里有多个存储设备接口单元,每一个存储设备接口单元控连接一个磁盘,负责对磁盘的读写操作。
以上的硬件可以在FPGA芯片内实现,但是不限于FPGA平台实现。结合图5的流程图和图6、的结构图,基于本发明所述的硬件架构的RAID5/6的数据处理方法,有主机的写数据和读数据操作两部分。对于主机的写操作,主机控制器首先对接收的数据进行区分数据命令包和非数据命令包;对于数据命令包,主机控制器将其数据通过数据传输接口传递给硬件RAID5/6加速运算核,具体是由硬件RAID5/6加速运算核的一个RAID计算单元(校验单元)进行处理,同时主控制器将数据传输给内存DDR,硬件 RAID5/6加速运算核的校验单元对数据进行XOR运算或者GF运算,产生相应的RAID5或 RAID6校验值,并暂时存放在其内部的缓存器RAM——BufferU Buffer2和Buffer3内; 当512Byte的数据校验计算完成之后,处理器单元通知磁盘处理器的协议处理单元从内存 DDR或硬件RAID5/6加速运算核内的缓存器内读取相应的数据,并进行组包分发,由各个存储设备接口写到磁盘内的相应位置。非数据命令包则直接写入内存。对于主机的读操作,磁盘控制器的协议处理单元将从存储设备接口单元读取各个磁盘内的数据块,将之传递到内存DDR内的相应位置,同时也将这些数据和需要恢复数据的参数通过辅助传输接口单元传输到硬件RAID5/6加速运算核。硬件RAID5/6加速运算核检查是否有数据损坏,并恢复丢失的数据,存放在相应的缓存器RAM内;主机控制器负责从内存DDR和硬件RAID5/6加速运算核的缓存器内读出相应的数据,并传输给主机。本发明通过优化硬件RAID5/6加速运算核,使用内部RAM暂存校验数据,并修改其放置的位置,减少了校验数据块在主机控制器和磁盘控制器之间的传输,提高了系统的整体性能。
权利要求
1.一种硬件RAID5/6存储系统架构,多个磁盘被磁盘控制器控制,主机控制主机控制器挂载内部数据总线,内存、处理器模块、磁盘控制器也都挂载至内部数据总线,其特征是: 在主机控制器和磁盘控制器之间放置硬件RAID5/6加速运算核。
2.根据权利要求I所述的硬件RAID5/6存储系统架构,其特征是所述的硬件RAID5/6 加速运算核内部具有双端口缓存器(RAM),校验数值以及需要恢复的数据存放在所述的双端口缓存器RAM内。
3.根据权利要求I或2所述的硬件RAID5/6存储系统架构,其特征是所述的硬件 RAID5/6加速运算核内有两个RAID5/6计算单元。
4.根据权利要求I所述的硬件RAID5/6存储系统架构,其特征是所述主机控制器和硬件RAID5/6加速运算核之间以及磁盘控制器和硬件RAID5/6加速运算核之间通过并行内部总线进行通信连接。
5.根据权利要求I所述的硬件RAID5/6存储系统架构,其特征是所述主机控制器和硬件RAID5/6加速运算核之间以及磁盘控制器和硬件RAID5/6加速运算核之间通过高速串行协议总线进行通信连接。
6.根据权利要求I所述的硬件RAID5/6存储系统架构,其特征是主机控制器内部设有物理接口连接主机和协议逻辑单元,协议逻辑单元通过系统总线接口连接内存DDR,还通过辅助传输接口连接硬件RAID5/6加速运算核。
7.—种硬件RAID5/6存储系统架构的数据处理方法,包括主机的写数据和读数据操作,其特征是对于主机的写操作,主机控制器首先对接收的数据进行区分数据命令包和非数据命令包;对于数据命令包,主机控制器将其数据同时传递给硬件RAID5/6加速运算核和内存的DDR,硬件RAID5/6加速运算核对数据进行XOR运算或者GF运算,产生相应的 RAID5或RAID6校验值,并暂时存放在其内部的缓存器RAM内;当数据块计算完成之后,由处理器单元通知磁盘控制器从内存DDR和硬件RAID5/6加速运算核的缓存器RAM内分别读取数据和校验值;之后磁盘控制器将获取到的数据写入相应的磁盘中;非数据命令包则直接写入内存;对于主机的读操作,磁盘控制器将各个磁盘内的数据和校验值读取出来,同时写入内存DDR和硬件RAID5/6加速运算核,硬件RAID5/6加速运算核检查是否有数据损坏, 并恢复丢失的数据,存放在相应的缓存器RAM内;主机控制器从内存DDR和硬件RAID5/6加速运算核的缓存器内读出相应的数据,并传输给主机。
全文摘要
一种硬件RAID5/6存储系统的架构及数据处理方法,涉及磁盘存储技术,多个磁盘被磁盘控制器控制,主机控制主机控制器挂载内部数据总线,内存、处理器模块、磁盘控制器也都挂载至内部数据总线,其特征是在主机控制器和磁盘控制器之间放置硬件RAID5/6加速运算核。校验数值以及需要恢复的数据存放在硬件RAID5/6加速运算核内部的双端口缓存器RAM内。数据处理的写和读操作中,校验值在缓存器RAM中,可以直接被主机控制器和磁盘控制器访问获取,优化了数据的传输路径,从而极大的提高了系统的整体性能。
文档编号G06F3/06GK102609221SQ20121002576
公开日2012年7月25日 申请日期2012年2月7日 优先权日2012年2月7日
发明者张庆敏, 张衡, 李天仁, 胡刚 申请人:无锡众志和达存储技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1