一种PCIE SSD阵列的数据读方法、系统及读写方法技术方案

技术编号:12618395 阅读:107 留言:0更新日期:2015-12-30 15:35
本发明专利技术公开了一种PCIE SSD阵列的数据读方法、系统及读写方法,数据不经过系统内存,直接从FC模块传输到PCIE SSD盘控制器的共享内存上。本发明专利技术避免了系统内存性能成为制约阵列性能的瓶颈,另外由于每块PCIE SSD盘都有自己的内存,只需要保证每块盘上的内存读写性能能达到本身磁盘读写带宽的两倍,就能保证磁盘上的内存性能不会成为制约阵列和磁盘性能的瓶颈了。

【技术实现步骤摘要】
一种PCIESSD阵列的数据读方法、系统及读写方法
本专利技术涉及一种PCIESSD阵列的数据读方法、系统及读写方法。
技术介绍
现有操作系统和磁盘阵列方案都是按照早先机械盘的性能远远低于内存的性能设计的,和机械盘的读写延时相比,内存的读写延时几乎可以忽略不计,所以不管是常用的操作系统还是阵列的软件架构,读写的数据都是先放到系统内存中再往盘下或者返回给应用。读的时候会先在内存cache中先看数据能否命中,能命中的话则直接从内存cache中取出返回给应用,如不能命中才从磁盘中取出到内存中交给应用。我们以常见的磁盘阵列通过FC共享LUN到主机的情况看一下目前架构的读写流程,见图1。图1和图2的方法没有考虑回写的情况,读流程也没有考虑cache命中的情况,并且因为FC的硬件设计差别或者用的以太网ISCSI共享LUN在流程的细节上会有一些差别,但是最终有一点是不会变的,就是IO的数据都是先写到阵列系统内存中再返回给请求方。这个方案在磁盘的性能较低的时候能极高的提高磁盘的读写性能(因为可以回写和cache命中),但采用此架构,磁盘的性能理论上只能达到内存带宽的一半以下(无论读写IO数据都要在系统内存中读写一次),实际还会更低(IO命令本身和阵列的操作系统和软件都会消耗系统内存的容量和带宽)。在极端理想的情况下,即cache足够大,所有写都可以回写不用下盘,所有读都可以命中,阵列的性能也只能接近内存带宽。当SSD磁盘出现后,硬盘的读写性能已经得到了极大的提高。目前最新的高性能SSD硬盘普遍采取PCIE接口,性能已经突破了SATA和SAS协议本身的限制。如intel的p3700,读写带宽分别能达2800/2000MB/s的级别。而且SSD的性能还在持续的提高之中。而内存带宽的情况在DDR3-1600四通道的情况下读写都只有20+GB/s,就算在目前最快的超频内存DDR4-3000四通道的情况下读写也只能分别到达60+GB/s和40+GB/s。在这种情况下普通单机单磁盘的系统内存带宽还不足以成为性能的瓶颈,但在多磁盘组成RAID组的情况下,或者在阵列的多磁盘情况下,系统内存带宽则可能出现瓶颈。如48块intel的p3700固态硬盘组成的阵列理论写带宽可以达到96GB/s,读带宽则更高,在这种情况下目前的内存性能已成为阵列性能的瓶颈。
技术实现思路
本专利技术所要解决的技术问题是,针对现有技术不足,提供一种PCIESSD阵列的数据读方法、系统及读写方法。为解决上述技术问题,本专利技术所采用的技术方案是:一种PCIESSD阵列的数据读方法,包括以下步骤:1)TGT端FC模块接收到读命令并通知阵列驱动;2)阵列驱动将读命令根据LUN的RAID情况分为一个或多个IO命令,并分配给不同的PCIESSD磁盘;3)为每个IO在对应的盘共享内存上分配buffer;4)阵列驱动将分配好的一个或多个IO命令发送给对应的PCIESSD磁盘;5)PCIESSD磁盘收到IO命令后,从FLASH中读出数据放到位于PCIESSD磁盘的共享内存的buffer中,完成IO命令;6)阵列驱动得到IO命令完成消息后通知TGT端FC模块将buffer数据回传;7)TGT端FC模块通过PCIE命令读取回传的buffer数据,回传给INI端,完成读命令。本专利技术还提供了一种PCIESSD阵列的数据读系统,包括:TGT端FC模块:用于接收写命令并通知阵列驱动;通过PCIE命令读取回传的buffer数据,回传给INI端,完成读命令;阵列驱动:用于将写命令根据LUN的RAID情况分为一个或多个IO命令,将IO命令分配给不同的PCIESSD磁盘,并在Buffer分配单元为每个IO分配buffer后,将分配好的一个或多个IO命令发送给对应的PCIESSD磁盘;在得到IO命令后通知IGT端FC模块将buffer数据回传;Buffer分配单元:用于为每个IO命令在对应的盘共享内存上分配buffer;PCIESSD磁盘:用于在接收到IO命令后,从FLASH中读出数据放到位于PCIESSD磁盘的共享内存的buffer中,完成IO命令。本专利技术的PCIESSD阵列的数据读写方法包括写数据方法和上述读数据方法;所述写数据方法包括以下步骤:1)TGT端FC模块接收到写命令并通知阵列驱动;2)阵列驱动解析写命令后,根据LUN的RAID情况分为一个或多个IO,分配给不同的PCIESSD磁盘;3)为每个IO在对应的盘共享内存上分配buffer;4)TGT端FC模块通知INI端接收数据;5)TGT端FC模块直接将接收到的数据通过PCIE命令写入上述步骤3)分配的buffer之中;6)阵列驱动将分配好的一个或多个IO发送给对应的PCIESSD磁盘;7)PCIESSD磁盘接收到IO命令后,将位于共享内存中的数据下刷到FLASH颗粒,完成IO命令;8)阵列驱动通知TGT端FC模块完成写命令并回复INI端FC模块。与现有技术相比,本专利技术所具有的有益效果为:本专利技术读写请求的数据不经过阵列系统内存,所以性能不受阵列系统内存性能的限制,使得阵列读写带宽可以超过主机内存的带宽性能;由于读写请求数据不使用阵列系统内存,节约下来的阵列系统内存容量和带宽可以给阵列系统和IO命令本身使用,从总体上提高了阵列的性能;现有方法每一次读写请求的数据都需要在PCIE链路上分别完成一次写操作和一次读操作,而采用本专利技术方法每次读写请求都只需要完成一次读操作或写操作,从而减轻了阵列PCIE链路带宽压力。在阵列的读写业务带宽相同的情况下,采用本专利技术方法的PCIE链路传输请求数据的带宽只需要现有方法的一半。附图说明图1为现有的写流程图;图2为现有的读流程图;图3为本专利技术方法的写流程图;图4为本专利技术方法的读流程图;图5为现有架构IO的阵列内数据流;图6为本专利技术方法IO阵列内数据流。具体实施方式本专利技术基于使用PCIESSD作为存储介质的存储阵列,PCIESSD包括但不限于基于AHCI、NVMe协议的SSD盘。本专利技术需要将PCIESSD盘的内存共享给主机(SSD盘的主机),目前NVMe1.2协议已经包含了将磁盘内存共享给主机的接口,其它不支持NVMe1.2协议的PCIESSD盘也可以通过自定义拓展协议实现将磁盘控制器的内存共享给主机。从图3和图4可知,本专利技术和现有方案最大的不同是数据不经过系统内存,而是直接从FC模块传输到PCIESSD盘控制器的共享内存上,从而避免了系统内存性能成为阵列性能的瓶颈,另外由于每块PCIESSD盘都有自己的内存,采用本专利技术我们只需要保证每块盘上的内存读写性能能达到本身磁盘读写带宽的两倍,就能保证磁盘上的内存性能不会成为阵列和磁盘性能的瓶颈了(IO数据经过PCIESSD的共享内存也需要分别读写一次)。对比图4和图5可知,在不考虑回写和cache命中的情况下,采用本专利技术方案读写命令都分别可以减少一次IO数据的写系统内存和读系统的操作。在实际对带宽性能要求最高的场景下,如地质勘探,都是在短时间内有大量数据需要存储,都是连续写业务或连续读业务,在这种情况下回写和cache命中的效果几乎可以忽略不计。所以在真实高带宽读写场景下,采用本专利技术的方法可以比传统方法节约相当于两倍阵列IO带宽的系统内存带宽,这样可以使阵列的带宽性能不本文档来自技高网
...
一种<a href="http://www.xjishu.com/zhuanli/55/CN105204787.html" title="一种PCIE SSD阵列的数据读方法、系统及读写方法原文来自X技术">PCIE SSD阵列的数据读方法、系统及读写方法</a>

【技术保护点】
一种PCIE SSD阵列的数据读方法,其特征在于,包括以下步骤:1)TGT端FC模块接收到读命令并通知阵列驱动;2)阵列驱动将读命令根据LUN的RAID情况分为一个或多个IO命令,并分配给不同的PCIE SSD磁盘;3)为每个IO在对应的盘共享内存上分配buffer;4)阵列驱动将分配好的一个或多个IO命令发送给对应的PCIE SSD磁盘;5)PCIE SSD磁盘收到IO命令后,从FLASH中读出数据放到位于PCIE SSD磁盘的共享内存的buffer中,完成IO命令;6)阵列驱动得到IO命令完成消息后通知TGT端FC模块将buffer数据回传;7)TGT端FC模块通过PCIE命令读取回传的buffer数据,回传给INI端,完成读命令。

【技术特征摘要】
1.一种PCIESSD阵列的数据读方法,其特征在于,包括以下步骤:1)TGT端FC模块接收到读命令并通知阵列驱动;2)阵列驱动将读命令根据LUN的RAID情况分为一个或多个IO命令,并分配给不同的PCIESSD磁盘;3)为每个IO命令在对应的盘共享内存上分配buffer;4)阵列驱动将分配好的一个或多个IO命令发送给对应的PCIESSD磁盘;5)PCIESSD磁盘收到IO命令后,从FLASH中读出数据放到位于PCIESSD磁盘的共享内存的buffer中,完成IO命令;6)阵列驱动得到IO命令完成消息后通知TGT端FC模块将buffer数据回传;7)TGT端FC模块通过PCIE命令读取回传的buffer数据,回传给INI端,完成读命令。2.一种PCIESSD阵列的数据读系统,其特征在于,包括:TGT端FC模块:用于接收读命令并通知阵列驱动模块;通过PCIE命令读取回传的buffer数据,回传给INI端,完成读命令;阵列驱动模块:用于将读命令根据LUN的RAID情况分为一个或多个IO命令,将IO命令分配给不同的PCIESSD磁盘,并在Buffer分配单元为每个IO命令分配buffer后,将分配好的一个或多...

【专利技术属性】
技术研发人员:王翔向平周士兵姜黎马翼田达海彭鹏
申请(专利权)人:湖南国科微电子股份有限公司
类型:发明
国别省市:湖南;43

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1