CN105353978A - 一种pcie ssd阵列的数据读方法、系统及读写方法 - Google Patents
一种pcie ssd阵列的数据读方法、系统及读写方法 Download PDFInfo
- Publication number
- CN105353978A CN105353978A CN201510694634.6A CN201510694634A CN105353978A CN 105353978 A CN105353978 A CN 105353978A CN 201510694634 A CN201510694634 A CN 201510694634A CN 105353978 A CN105353978 A CN 105353978A
- Authority
- CN
- China
- Prior art keywords
- order
- module
- array
- tgt
- write
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种PCIE?SSD阵列的数据读方法、系统及读写方法,IO?data的buffer和cache都不再位于阵列系统内存中,而是位于FC模块的共享内存。本发明避免了系统内存性能成为制约阵列性能的瓶颈,另外由于每块PCIE?SSD盘都有自己的内存,只需要保证每块盘上的内存读写性能能达到本身磁盘读写带宽的两倍,就能保证磁盘上的内存性能不会成为制约阵列和磁盘性能的瓶颈了。
Description
技术领域
本发明涉及一种PCIESSD阵列的数据读方法、系统及读写方法。
背景技术
现有操作系统和磁盘阵列都是按照早先机械盘的性能远远低于内存的性能设计的,和机械盘的读写延时相比,内存的读写延时几乎可以忽略不计,所以不管是常用的操作系统还是阵列的软件架构,读写的数据都是先放到系统内存中,再往盘下或者返回给应用。读的时候会先在内存cache中看数据能否命中,能命中的话则直接从内存cache中取出返回给应用,如不能命中才从磁盘中取出到内存中交给应用。我们以常见的磁盘阵列通过FC共享LUN到主机的情况看一下目前架构的读写流程,见图1和图2。
图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,读带宽则更高,在这种情况下目前的内存性能已成为阵列性能的瓶颈。
TGT端的FC模块:目前TGT端的FC模块都是作为PCIE设备安装在阵列上的,有共享内存给主机的能力,与阵列的交互也是各个FC模块硬件厂商自己定义的,驱动也是各个厂家自己的驱动,所以共享内存给主机需要FC模块具备此能力,并使用厂家自定义的接口。
INI端:输入端。
RAID:磁盘阵列。
发明内容
本发明所要解决的技术问题是,针对现有技术不足,提供一种PCIESSD阵列的数据读方法、系统及读写方法。
为解决上述技术问题,本发明所采用的技术方案是:一种PCIESSD阵列的数据读方法,包括以下步骤:
1)TGT端FC模块接收到读命令并通知阵列驱动;
2)阵列驱动解析读命令后,在cache模块尝试数据是否能命中,若未命中,则进入下述步骤3);若命中,则直接从cache模块中取出数据并完成读命令;
3)在对应TGT端FC模块共享内存中分配一段区域作为buffer;
4)阵列驱动将解析后的读命令根据LUN的RAID情况分为一个或多个IO命令,发送给不同的磁盘,并将步骤3)分配的buffer地址通过IO命令下发给磁盘;
5)磁盘从FLASH中读出IO命令后,通过PCIE命令将IO命令放到位于TGT端FC模块共享内存的buffer中,完成IO命令;
6)阵列驱动得到IO命令完成的指令后,通知TGT端FC模块将buffer内的数据回传;
7)TGT端FC模块读取buffer内的数据,回传给INI端,完成读命令。
本发明还提供了一种PCIESSD阵列的数据读系统,包括:
TGT端FC模块:用于接收读命令并通知阵列驱动;在得到阵列的通知后,读取buffer内的解析后的读命令,回传buffer内解析后的读命令给INI端,完成读命令;
阵列驱动:用于在解析读命令后,在cache模块尝试解析后的读命令是否能命中,若没有命中,则在对应TGT端FC模块共享内存中分配一段区域作为接收解析后的读命令的buffer,然后将TGT端FC模块接收到的解析后的读命令根据LUN的RAID情况分为一个或多个IO命令,发送给不同的磁盘B,将TGT端FC模块共享内存中的buffer地址通过IO命令下发给磁盘;在得到磁盘B的IO命令完成的指令后,通知TGT端FC模块将buffer内的数据回传;
磁盘B:用于从FLASH中读出IO命令后,通过PCIE命令将IO命令放到buffer中,完成IO命令。
本发明的PCIESSD阵列的数据读写方法包括写数据方法和上述读数据方法;
所述写数据方法包括以下步骤:
1)TGT端FC模块接收到写命令并通知阵列驱动;
2)阵列驱动解析写命令后,通知TGT端FC模块接收解析后的写命令,并在所述TGT端FC模块共享内存中分配一段buffer接收解析后的写命令;
3)TGT端FC模块直接将接收到的解析后的写命令写入上述buffer中;
4)阵列驱动将TGT端FC模块接收到的解析后的写命令根据LUN的RAID情况分为一个或多个IO命令,发送给不同的磁盘;
5)磁盘接收到IO命令后,通过PCIE命令从TGT端FC模块共享内存中读取IO命令;
6)磁盘将读取的IO命令下刷到FLASH颗粒中,完成IO命令;
7)PCIESSD阵列得到IO命令后通知TGT端FC模块完成写命令,并回复INI端FC模块
与现有技术相比,本发明所具有的有益效果为:本发明读写请求的数据不经过阵列系统内存,所以性能不受阵列系统内存性能的限制,使得阵列读写带宽可以超过主机内存的带宽;由于读写请求数据不使用阵列系统内存,节约下来的阵列系统内存容量和带宽可以给阵列系统和IO命令本身使用,从总体上改善了阵列的性能;现有方法每一次读写请求的数据都需要在PCIE链路上分别完成一次写操作和一次读操作,而采用本发明方法每次读写请求都只需要在PCIE链路上完成一次读操作或写操作,从而减轻了阵列PCIE链路带宽压力;在阵列的读写业务带宽相同的情况下,采用本发明方法,PCIE链路传输请求数据的带宽只需要现有方案的一半。
附图说明
图1为现有的写流程图;
图2为现有的读流程图;
图3为本发明方法的写流程图;
图4为本发明方法的读流程图;
图5为现有架构IO的阵列内数据流;
图6为本发明方法IO阵列内数据流。
具体实施方式
本发明基于使用PCIESSD作为存储介质的存储阵列,PCIESSD包括但不限于基于AHCI、NVMe协议的SSD盘。
本发明首先需要TGT端FC模块共享一定数量的自身的内存给阵列,这首先可以要求FC模块有自身的内存控制器以及可能需要外挂DDR。从图3和图4可知,本发明和现有方案最大的不同在于IOdata的buffer和cache都不再位于阵列系统内存中,而是位于FC模块的共享内存。该方案对目前的阵列架构冲击很小,还可以保留阵列本身读写流程的cache命中和回写等特性。另外阵列通常会有多个FC模块和多根FC共享对外提供LUN共享服务,当某个FC上的读命令命中cache的地址位于其它FC模块的共享内存中时,此FC模块可以通过PCIE命令读取此cache数据上传。
本发明TGT端的FC模块需要提供共享内存,只要内存的带宽性能大于FC带宽加PCIE带宽,FC模块的共享内存便不会成为阵列性能的瓶颈,以目前最新的64GbFC或100Gb的以太网加PCIE3.0来算的话,目前的DDR3或DDR4内存也可以达到。
对比图5和图6可知,在不考虑回写和cache命中的情况下,采用本发明方案读写命令都分别可以减少一次IO数据的写系统内存和读系统的操作。在实际对带宽性能要求最高的场景下,如地质勘探,都是在短时间内有大量数据需要存储,都是连续写业务或连续读业务,在这种情况下回写和cache命中的效果几乎可以忽略不计。所以在真实高带宽读写场景下,采用本发明的方法可以比传统方法节约相当于两倍阵列IO带宽的系统内存带宽,这样可以使阵列的带宽性能不受系统内存带宽的限制,节约出来的带宽和容量也让其它使用系统内存的程序(如IO命令本身内容)以及操作系统运行得更快,从而提高阵列的整体性能表现。
Claims (3)
1.一种PCIESSD阵列的数据读方法,其特征在于,包括以下步骤:
1)TGT端FC模块接收到读命令并通知阵列驱动;
2)阵列驱动解析读命令后,在cache模块尝试数据是否能命中,若未命中,则进入下述步骤3);若命中,则直接从cache模块中取出数据并完成读命令;
3)在对应TGT端FC模块共享内存中分配一段区域作为buffer;
4)阵列驱动将解析后的读命令根据LUN的RAID情况分为一个或多个IO命令,发送给不同的磁盘,并将步骤3)分配的buffer地址通过IO命令下发给磁盘;
5)磁盘从FLASH中读出IO命令后,通过PCIE命令将IO命令放到位于TGT端FC模块共享内存的buffer中,完成IO命令;
6)阵列驱动得到IO命令完成的指令后,通知TGT端FC模块将buffer内的数据回传;
7)TGT端FC模块读取buffer内的数据,回传给INI端,完成读命令。
2.一种PCIESSD阵列的数据读系统,其特征在于,包括:
TGT端FC模块:用于接收读命令并通知阵列驱动;在得到阵列的通知后,读取buffer内的解析后的读命令,回传buffer内解析后的读命令给INI端,完成读命令;
阵列驱动:用于在解析读命令后,在cache模块尝试解析后的读命令是否能命中,若没有命中,则在对应TGT端FC模块共享内存中分配一段区域作为接收解析后的读命令的buffer,然后将TGT端FC模块接收到的解析后的读命令根据LUN的RAID情况分为一个或多个IO命令,发送给不同的磁盘B,将TGT端FC模块共享内存中的buffer地址通过IO命令下发给磁盘;在得到磁盘B的IO命令完成的指令后,通知TGT端FC模块将buffer内的数据回传;
磁盘B:用于从FLASH中读出IO命令后,通过PCIE命令将IO命令放到buffer中,完成IO命令。
3.一种PCIESSD阵列的数据读写方法,其特征在于,包括写数据方法和权利要求1所述的读数据方法;
所述写数据方法包括以下步骤:
1)TGT端FC模块接收到写命令并通知阵列驱动;
2)阵列驱动解析写命令后,通知TGT端FC模块接收解析后的写命令,并在所述TGT端FC模块共享内存中分配一段buffer接收解析后的写命令;
3)TGT端FC模块直接将接收到的解析后的写命令写入上述buffer中;
4)阵列驱动将TGT端FC模块接收到的解析后的写命令根据LUN的RAID情况分为一个或多个IO命令,发送给不同的磁盘;
5)磁盘接收到IO命令后,通过PCIE命令从TGT端FC模块共享内存中读取IO命令;
6)磁盘将读取的IO命令下刷到FLASH颗粒中,完成IO命令;
7)PCIESSD阵列得到IO命令后通知TGT端FC模块完成写命令,并回复INI端FC模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510694634.6A CN105353978B (zh) | 2015-10-22 | 2015-10-22 | 一种pcie ssd阵列的数据读方法、系统及读写方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510694634.6A CN105353978B (zh) | 2015-10-22 | 2015-10-22 | 一种pcie ssd阵列的数据读方法、系统及读写方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105353978A true CN105353978A (zh) | 2016-02-24 |
CN105353978B CN105353978B (zh) | 2017-07-14 |
Family
ID=55329957
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510694634.6A Active CN105353978B (zh) | 2015-10-22 | 2015-10-22 | 一种pcie ssd阵列的数据读方法、系统及读写方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105353978B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105786409A (zh) * | 2016-02-26 | 2016-07-20 | 联想(北京)有限公司 | 一种电子设备及资源共享方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102906726A (zh) * | 2011-12-09 | 2013-01-30 | 华为技术有限公司 | 协处理加速方法、装置及系统 |
US20140047166A1 (en) * | 2012-08-08 | 2014-02-13 | Avalanche Technology, Inc. | Storage system employing mram and array of solid state disks with integrated switch |
CN104881248A (zh) * | 2015-05-11 | 2015-09-02 | 中国人民解放军国防科学技术大学 | 面向ssd的文件系统中自适应直接io加速方法 |
-
2015
- 2015-10-22 CN CN201510694634.6A patent/CN105353978B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102906726A (zh) * | 2011-12-09 | 2013-01-30 | 华为技术有限公司 | 协处理加速方法、装置及系统 |
US20140047166A1 (en) * | 2012-08-08 | 2014-02-13 | Avalanche Technology, Inc. | Storage system employing mram and array of solid state disks with integrated switch |
CN104881248A (zh) * | 2015-05-11 | 2015-09-02 | 中国人民解放军国防科学技术大学 | 面向ssd的文件系统中自适应直接io加速方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105786409A (zh) * | 2016-02-26 | 2016-07-20 | 联想(北京)有限公司 | 一种电子设备及资源共享方法 |
CN105786409B (zh) * | 2016-02-26 | 2018-12-14 | 联想(北京)有限公司 | 一种电子设备及资源共享方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105353978B (zh) | 2017-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9128855B1 (en) | Flash cache partitioning | |
US9229653B2 (en) | Write spike performance enhancement in hybrid storage systems | |
US8140747B2 (en) | Operating method for a memory subsystem and devices for executing the operating method | |
JP7116381B2 (ja) | クラウド・ベースのランクを使用するデータの動的再配置 | |
US9098404B2 (en) | Storage array, storage system, and data access method | |
CN104267912A (zh) | 一种nas加速方法及系统 | |
US9417814B1 (en) | Tempered pacing of shingled magnetic storage devices | |
US9836223B2 (en) | Changing storage volume ownership using cache memory | |
US20150081967A1 (en) | Management of storage read requests | |
US20200341684A1 (en) | Managing a raid group that uses storage devices of different types that provide different data storage characteristics | |
CN103049220A (zh) | 存储控制方法、存储控制装置和固态存储系统 | |
CN104850355A (zh) | 存储装置、存储系统及存储装置的地址信息处理方法 | |
US10339053B2 (en) | Variable cache flushing | |
US10031689B2 (en) | Stream management for storage devices | |
CN105204787A (zh) | 一种pcie ssd阵列的数据读方法、系统及读写方法 | |
US8713257B2 (en) | Method and system for shared high speed cache in SAS switches | |
US9069471B2 (en) | Passing hint of page allocation of thin provisioning with multiple virtual volumes fit to parallel data access | |
CN104951243A (zh) | 虚拟化存储系统中的存储扩展方法和装置 | |
CN105204786B (zh) | 一种pcie ssd阵列的数据写方法及系统 | |
US9298397B2 (en) | Nonvolatile storage thresholding for ultra-SSD, SSD, and HDD drive intermix | |
CN105353978B (zh) | 一种pcie ssd阵列的数据读方法、系统及读写方法 | |
CN105335103A (zh) | 一种pcie ssd阵列的数据写方法及系统 | |
CN103186349B (zh) | 块级分布式存储系统及其数据读写方法 | |
KR20160127449A (ko) | 초고속 반도체 저장장치를 활용한 클러스터링 기반 분산 파일 시스템 | |
KR101509183B1 (ko) | 네트워크 직접 부착방식의 저장장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
EE01 | Entry into force of recordation of patent licensing contract | ||
EE01 | Entry into force of recordation of patent licensing contract |
Application publication date: 20160224 Assignee: Jiangsu Xinsheng Intelligent Technology Co., Ltd. Assignor: GOKE MICROELECTRONICS CO., LTD. Contract record no.: 2018430000021 Denomination of invention: PCIE SSD array data reading method and system and PCIE SSD array data read-write method Granted publication date: 20170714 License type: Common License Record date: 20181203 |