一种pciessd阵列的数据写方法及系统的制作方法

文档序号:9579005阅读:277来源:国知局
一种pcie ssd阵列的数据写方法及系统的制作方法
【技术领域】
[0001]本发明涉及一种PCIE SSD阵列的数据写方法及系统。
【背景技术】
[0002]现有操作系统和磁盘阵列都是按照早先机械盘的性能远远低于内存的性能设计的,和机械盘的读写延时相比,内存的读写延时几乎可以忽略不计,所以不管是常用的操作系统还是阵列的软件架构,读写的数据都是先放到系统内存中,再往盘下或者返回给应用。读的时候会先在内存cache中看数据能否命中,能命中的话则直接从内存cache中取出返回给应用,如不能命中才从磁盘中取出到内存中交给应用。我们以常见的磁盘阵列通过FC共享LUN到主机的情况看一下目前架构的读写流程,见图1和图2。
[0003]图1的方法没有考虑回写的情况。虽然FC的硬件设计有差别,或者用的以太网ISCSI共享LUN在流程的细节上会有一些差别,但是最终有一点是不会变的,就是10的数据都是先写到阵列系统内存中再返回给请求方。这个方案在磁盘的性能较低的时候能极高的提高磁盘的读写性能(因为可以回写和cache命中),但采用此架构,磁盘的性能理论上只能达到内存带宽的一半以下(无论读写10数据都要在系统内存中读写一次),实际还会更低(10命令本身和阵列的操作系统和软件都会消耗系统内存的容量和带宽)。在极端理想的情况下,即cache足够大,所有写操作都可以回写,不用下盘,阵列的性能也只能接近内存带宽。
[0004]当SSD磁盘出现后,硬盘的写性能已经得到了极大的提高。目前最新的高性能SSD硬盘普遍采取PCIE接口,性能已经突破了 SATA和SAS协议本身的限制。如intel的P3700,写带宽能达2000MB/S的级别。而且SSD的性能还在持续的提高之中。而内存带宽在DDR3-1600四通道的情况下读写都只有20+GB/s,就算在目前最快的超频内存DDR4-3000四通道的情况下,写也只能到达40+GB/s。在这种情况下普通单机单磁盘的系统内存带宽还不足以成为性能的瓶颈,但在多磁盘组成RAID组的情况下,或者在阵列的多磁盘情况下,系统内存带宽则可能出现瓶颈。如48块intel的p3700固态硬盘组成的阵列理论写带宽可以达到96GB/S,读带宽则更高,在这种情况下目前的内存性能已成为阵列性能的瓶颈。
[0005]TGT端的FC模块:目前TGT端的FC模块都是作为PCIE设备安装在阵列上的,有共享内存给主机的能力,与阵列的交互也是各个FC模块硬件厂商自己定义的,驱动也是各个厂家自己的驱动,所以共享内存给主机需要FC模块具备此能力,并使用厂家自定义的接
□ ο
[0006]INI端:输入端。
[0007]RAID:磁盘阵列。

【发明内容】

[0008]本发明所要解决的技术问题是,针对现有技术不足,提供一种PCIE SSD阵列的数据写方法及系统。
[0009]为解决上述技术问题,本发明所采用的技术方案是:一种PCIE SSD阵列的数据写方法,包括以下步骤:
1)TGT端FC模块接收到写命令并通知阵列驱动;
2)阵列驱动解析写命令后,通知TGT端FC模块接收解析后的写命令,并在所述TGT端FC模块共享内存中分配一段buffer接收解析后的写命令;
3)TGT端FC模块直接将接收到的解析后的写命令写入上述buffer中;
4)阵列驱动将TGT端FC模块接收到的解析后的写命令根据LUN的RAID情况分为一个或多个1命令,发送给不同的磁盘;
5)磁盘接收到1命令后,通过PCIE命令从TGT端FC模块共享内存中读取1命令;
6)磁盘将读取的1命令下刷到FLASH颗粒中,完成1命令;
7)PCIE SSD阵列得到1命令后通知TGT端FC模块完成写命令,并回复INI端FC模块;
本发明还提供了一种PCIE SSD阵列的数据写系统,包括:
第一 TGT端FC模块:用于接收写命令并通知第一阵列驱动,并直接将接收到的解析后的写命令写入共享内存的buffer中;
第一阵列驱动:用于在解析写命令后,通知第一TGT端FC模块接收解析后的写命令,在所述第一 TGT端FC模块共享内存中分配一段buffer接收解析后的写命令,并将第一 TGT端FC模块接收到的解析后的写命令根据LUN的RAID的情况分为一个或多个1命令发送给不同的磁盘A ;在得到磁盘A的1命令完成指令后,通知第一 TGT端FC模块完成写命令,并回复INI端FC ;
磁盘A:用于在接收到阵列驱动发送的1命令后,通过PCIE命令从TGT端FC模块共享内存中读取1命令,然后将读取的1命令下刷到FLASH颗粒中,完成1命令;
与现有技术相比,本发明所具有的有益效果为:本发明写请求的数据不经过阵列系统内存,所以性能不受阵列系统内存性能的限制,使得阵列写带宽可以超过主机内存的带宽;由于写请求数据不使用阵列系统内存,节约下来的阵列系统内存容量和带宽可以给阵列系统和1命令本身使用,从总体上改善了阵列的性能。
【附图说明】
[0010]图1为现有的写流程图;
图2为本发明方法的写流程图;
图3为现有架构1的阵列内数据流;
图4为本发明方法1阵列内数据流。
【具体实施方式】
[0011]本发明基于使用PCIE SSD作为存储介质的存储阵列,PCIE SSD包括但不限于基于AHC1、NVMe协议的SSD盘。
[0012]本发明首先需要TGT端FC模块共享一定数量的自身的内存给阵列,这首先可以要求FC模块有自身的内存控制器以及可能需要外挂DDR。从图2可知,本发明和现有方案最大的不同在于1 data的buffer和cache都不再位于阵列系统内存中,而是位于FC模块的共享内存。该方案对目前的阵列架构冲击很小,还可以保留阵列本身读写流程的cache命中和回写等特性。另外阵列通常会有多个FC模块和多根FC共享对外提供LUN共享服务,当某个FC上的读命令命中cache的地址位于其它FC模块的共享内存中时,此FC模块可以通过PCIE命令读取此cache数据上传。
[0013]本发明TGT端的FC模块需要提供共享内存,只要内存的带宽性能大于FC带宽加PCIE带宽,FC模块的共享内存便不会成为阵列性能的瓶颈,以目前最新的64Gb FC或10Gb的以太网加PCIE 3.0来算的话,目前的DDR3或DDR4内存也可以达到。
[0014]对比图3和图4可知,在不考虑回与和cache命中的情况下,米用本发明方案与命令可以减少一次1数据的写系统内存操作。在实际对带宽性能要求最高的场景下,如地质勘探,都是在短时间内有大量数据需要存储,都是连续写业务或连续读业务,在这种情况下回写和cache命中的效果几乎可以忽略不计。所以在真实高带宽写场景下,可以使阵列的带宽性能不受系统内存带宽的限制,节约出来的带宽和容量也让其它使用系统内存的程序(如1命令本身内容)以及操作系统运行得更快,从而提高阵列的整体性能表现。
【主权项】
1.一种PCIE SSD阵列的数据写方法,其特征在于,包括以下步骤: 1)TGT端FC模块接收到写命令并通知阵列驱动; 2)阵列驱动解析写命令后,通知TGT端FC模块接收解析后的写命令,并在所述3)TGT端FC模块共享内存中分配一段buffer接收解析后的写命令; 4)TGT端FC模块直接将接收到的解析后的写命令写入上述buffer中; 5)阵列驱动将TGT端FC模块接收到的解析后的写命令根据LUN的RAID情况分为一个或多个1命令,发送给不同的磁盘; 6)磁盘接收到1命令后,通过PCIE命令从TGT端FC模块共享内存中读取1命令; 7)磁盘将读取的1命令下刷到FLASH颗粒中,完成1命令; 8)PCIESSD阵列得到1命令后通知TGT端FC模块完成写命令,并回复INI端FC模块。2.—种PCIE SSD阵列的数据写系统,其特征在于,包括: TGT端FC模块:用于接收写命令并通知阵列驱动,并直接将接收到的解析后的写命令写入共享内存的buffer中; 阵列驱动:用于在解析写命令后,通知TGT端FC模块接收解析后的写命令,在所述TGT端FC模块共享内存中分配一段buffer接收解析后的写命令,并将TGT端FC模块接收到的解析后的写命令根据LUN的RAID的情况分为一个或多个1命令发送给不同的磁盘A ;在得到磁盘A的1命令完成指令后,通知TGT端FC模块完成写命令,并回复INI端FC ; 磁盘A:用于在接收到阵列驱动发送的1命令后,通过PCIE命令从TGT端FC模块共享内存中读取1命令,然后将读取的1命令下刷到FLASH颗粒中,完成1命令。
【专利摘要】本发明公开了一种PCIE?SSD阵列的数据写方法及系统,IO?data的buffer和cache都不再位于阵列系统内存中,而是位于FC模块的共享内存。本发明避免了系统内存性能成为制约阵列性能的瓶颈,另外由于每块PCIE?SSD盘都有自己的内存,只需要保证每块盘上的内存读写性能能达到本身磁盘读写带宽的两倍,就能保证磁盘上的内存性能不会成为制约阵列和磁盘性能的瓶颈了。
【IPC分类】G06F3/06
【公开号】CN105335103
【申请号】CN201510687038
【发明人】王翔, 向平, 周士兵, 姜黎, 马翼, 田达海, 彭鹏
【申请人】湖南国科微电子股份有限公司
【公开日】2016年2月17日
【申请日】2015年10月22日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1