CN105204786B - 一种pcie ssd阵列的数据写方法及系统 - Google Patents
一种pcie ssd阵列的数据写方法及系统 Download PDFInfo
- Publication number
- CN105204786B CN105204786B CN201510686775.3A CN201510686775A CN105204786B CN 105204786 B CN105204786 B CN 105204786B CN 201510686775 A CN201510686775 A CN 201510686775A CN 105204786 B CN105204786 B CN 105204786B
- Authority
- CN
- China
- Prior art keywords
- write
- array
- module
- data
- pcie ssd
- 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.)
- Active
Links
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种PCIE SSD阵列的数据写方法及系统,数据不经过系统内存,直接从FC模块传输到PCIE SSD盘控制器的共享内存上。本发明避免了系统内存性能成为制约阵列性能的瓶颈,另外由于每块PCIE SSD盘都有自己的内存,只需要保证每块盘上的内存写性能能达到本身磁盘写带宽的两倍,就能保证磁盘上的内存性能不会成为制约阵列和磁盘性能的瓶颈了。
Description
技术领域
本发明涉及一种PCIE SSD阵列的数据写方法及系统。
背景技术
现有操作系统和磁盘阵列方案都是按照早先机械盘的性能远远低于内存的性能设计的,和机械盘的读写延时相比,内存的读写延时几乎可以忽略不计,所以不管是常用的操作系统还是阵列的软件架构,写的数据都是先放到系统内存中再往盘下或者返回给应用。我们以常见的磁盘阵列通过FC共享LUN到主机的情况看一下目前架构的读写流程,见图1。
图1的方法没有考虑回写的情况,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,在这种情况下目前的内存性能已成为阵列性能的瓶颈。
发明内容
本发明所要解决的技术问题是,针对现有技术不足,提供一种PCIE SSD阵列的数据写方法及系统。
为解决上述技术问题,本发明所采用的技术方案是:一种PCIE SSD阵列的数据写方法,包括以下步骤:
1)TGT端FC模块接收到写命令并通知阵列驱动;
2)阵列驱动解析写命令后,根据LUN的RAID情况分为一个或多个IO,分配给不同的PCIE SSD磁盘;
3)为每个IO在对应的盘共享内存上分配buffer;
4)TGT端FC模块通知INI端接收数据;
5)TGT端FC模块直接将接收到的数据通过PCIE命令写入上述步骤3)分配的buffer之中;
6)阵列驱动将分配好的一个或多个IO发送给对应的PCIE SSD磁盘;
7)PCIE SSD磁盘接收到IO命令后,将位于共享内存中的数据下刷到FLASH颗粒,完成IO命令;
8)阵列驱动通知TGT端FC模块完成写命令并回复INI端FC模块。
相应的,读数据方法可以包括以下步骤:
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数据回传;
TGT端FC模块通过PCIE命令读取回传的buffer数据,回传给INI端,完成读命令。
本发明还提供了一种PCIE SSD阵列的数据写系统,其特征在于,包括:
TGT端FC模块:用于接收写命令并通知阵列驱动;通知INI端接收数据,并将接收到的数据通过PCIE命令写入分配的buffer之中;完成写命令并回复INI端FC模块;
阵列驱动:用于在解析写命令后,根据LUN的RAID情况分为一个或多个IO,分配给不同的PCIE SSD磁盘,为每个IO在对应的盘共享内存上分配buffer;将该命令分配好的一个或多个IO发送给对应的PCIE SSD磁盘;在IO命令完成后通知TGT端FC模块完成写命令并回复INI端FC模块;
PCIE SSD磁盘:接收到阵列驱动发送的IO命令后,将位于共享内存中的数据下刷到FLASH颗粒,完成IO命令。
与现有技术相比,本发明所具有的有益效果为:本发明写请求的数据不经过阵列系统内存,所以性能不受阵列系统内存性能的限制,使得阵列写带宽可以超过主机内存的带宽性能;由于写请求数据不使用阵列系统内存,节约下来的阵列系统内存容量和带宽可以给阵列系统和IO命令本身使用,从总体上提高了阵列的性能。
附图说明
图1为现有的写流程图;
图2为本发明方法的写流程图;
图3为现有架构IO的阵列内数据流;
图4为本发明方法IO阵列内数据流。
具体实施方式
本发明基于使用PCIE SSD作为存储介质的存储阵列,PCIE
SSD包括但不限于基于AHCI、NVMe协议的SSD盘。
本发明需要将PCIE SSD盘的内存共享给主机(SSD盘的主机),目前NVMe 1.2协议已经包含了将磁盘内存共享给主机的接口,其它不支持NVMe 1.2协议的PCIE SSD盘也可以通过自定义拓展协议实现将磁盘控制器的内存共享给主机。
从图2可知,本发明和现有方案最大的不同是数据不经过系统内存,而是直接从FC模块传输到PCIE SSD盘控制器的共享内存上,从而避免了系统内存性能成为阵列性能的瓶颈,另外由于每块PCIE SSD盘都有自己的内存,采用本发明我们只需要保证每块盘上的内存写性能能达到本身磁盘读写带宽的两倍,就能保证磁盘上的内存性能不会成为阵列和磁盘性能的瓶颈了(IO数据经过PCIE SSD的共享内存也需要分别读写一次)。
对比图3和图4可知,在不考虑回写和cache命中的情况下,采用本发明方案写命令都分别可以减少一次IO数据的写系统内存的操作。在实际对带宽性能要求最高的场景下,如地质勘探,都是在短时间内有大量数据需要存储,都是连续写业务或连续读业务,在这种情况下回写和cache命中的效果几乎可以忽略不计。所以在真实高带宽写场景下,采用本发明的方法可以在一定程度上使阵列的带宽性能不受系统内存带宽的限制,节约出来的带宽和容量也让其它使用系统内存的程序如IO命令本身内容以及操作系统能运行得更快,从而提高阵列的整体性能表现。
Claims (2)
1.一种PCIE SSD阵列的数据写方法,其特征在于,包括以下步骤;
1)TGT端FC模块接收到写命令并通知阵列驱动;
2)阵列驱动解析写命令后,根据LUN的RAID情况分为一个或多个IO,分配给不同的PCIE SSD磁盘;
3)为每个IO在对应的盘共享内存上分配buffer;
4)TGT端FC模块通知INI端接收数据;
5)TGT端FC模块直接将接收到的数据通过PCIE命令写入上述步骤3)分配的buffer之中;
6)阵列驱动将分配好的一个或多个IO发送给对应的PCIE SSD磁盘;
7)PCIE SSD磁盘接收到IO命令后,将位于共享内存中的数据下刷到FLASH颗粒,完成IO命令;
8)阵列驱动通知TGT端FC模块完成写命令并回复INI端FC模块。
2.一种PCIE SSD阵列的数据写系统,其特征在于,包括:
TGT端FC模块:用于接收写命令并通知阵列驱动;通知INI端接收数据,并将接收到的数据通过PCIE命令写入分配的buffer之中;完成写命令并回复INI端FC模块;
阵列驱动:用于在解析写命令后,根据LUN的RAID情况分为一个或多个IO,分配给不同的PCIE SSD磁盘,为每个IO在对应的盘共享内存上分配buffer;将该命令分配好的一个或多个IO发送给对应的PCIE SSD磁盘;在IO命令完成后通知TGT端FC模块完成写命令并回复INI端FC模块;
PCIE SSD磁盘:接收到阵列驱动发送的IO命令后,将位于共享内存中的数据下刷到FLASH颗粒,完成IO命令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510686775.3A CN105204786B (zh) | 2015-10-22 | 2015-10-22 | 一种pcie ssd阵列的数据写方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510686775.3A CN105204786B (zh) | 2015-10-22 | 2015-10-22 | 一种pcie ssd阵列的数据写方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105204786A CN105204786A (zh) | 2015-12-30 |
CN105204786B true CN105204786B (zh) | 2016-10-12 |
Family
ID=54952505
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510686775.3A Active CN105204786B (zh) | 2015-10-22 | 2015-10-22 | 一种pcie ssd阵列的数据写方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105204786B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107491271A (zh) * | 2017-09-25 | 2017-12-19 | 郑州云海信息技术有限公司 | 一种缓存数据管理的方法及装置 |
CN114579055B (zh) * | 2022-03-07 | 2023-01-31 | 重庆紫光华山智安科技有限公司 | 磁盘存储方法、装置、设备及介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101963891A (zh) * | 2010-09-25 | 2011-02-02 | 成都市华为赛门铁克科技有限公司 | 数据存储处理方法与装置、固态硬盘系统与数据处理系统 |
CN102567257A (zh) * | 2011-12-26 | 2012-07-11 | 华中科技大学 | 一种控制多通道固态盘数据读写的方法 |
CN103135945A (zh) * | 2013-03-25 | 2013-06-05 | 中国人民解放军国防科学技术大学 | 用于ssd的多通道动态读写调度方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101070511B1 (ko) * | 2009-03-20 | 2011-10-05 | (주)인디링스 | Ssd 컨트롤러 및 ssd 컨트롤러의 동작 방법 |
-
2015
- 2015-10-22 CN CN201510686775.3A patent/CN105204786B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101963891A (zh) * | 2010-09-25 | 2011-02-02 | 成都市华为赛门铁克科技有限公司 | 数据存储处理方法与装置、固态硬盘系统与数据处理系统 |
CN102567257A (zh) * | 2011-12-26 | 2012-07-11 | 华中科技大学 | 一种控制多通道固态盘数据读写的方法 |
CN103135945A (zh) * | 2013-03-25 | 2013-06-05 | 中国人民解放军国防科学技术大学 | 用于ssd的多通道动态读写调度方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105204786A (zh) | 2015-12-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101629615B1 (ko) | 저전력 저지연 고용량 스토리지 클래스 메모리용 장치 및 방법 | |
JP7116381B2 (ja) | クラウド・ベースのランクを使用するデータの動的再配置 | |
CN103336745B (zh) | 一种基于ssd缓存的fc hba及其设计方法 | |
US9098404B2 (en) | Storage array, storage system, and data access method | |
CN104267912A (zh) | 一种nas加速方法及系统 | |
CN106066890B (zh) | 一种分布式高性能数据库一体机系统 | |
US9836223B2 (en) | Changing storage volume ownership using cache memory | |
US9411519B2 (en) | Implementing enhanced performance flash memory devices | |
US10721304B2 (en) | Storage system using cloud storage as a rank | |
US20200341684A1 (en) | Managing a raid group that uses storage devices of different types that provide different data storage characteristics | |
CN103049220A (zh) | 存储控制方法、存储控制装置和固态存储系统 | |
CN103076993A (zh) | 一种密集型系统中的存储系统及方法 | |
CN103403667A (zh) | 数据处理方法和设备 | |
CN105204786B (zh) | 一种pcie ssd阵列的数据写方法及系统 | |
CN105204787B (zh) | 一种pcie ssd阵列的数据读方法、系统及读写方法 | |
CN109375868B (zh) | 一种数据存储方法、调度装置、系统、设备及存储介质 | |
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 | |
US9298397B2 (en) | Nonvolatile storage thresholding for ultra-SSD, SSD, and HDD drive intermix | |
CN202615266U (zh) | 基于固态硬盘的计算机系统 | |
US8140804B1 (en) | Systems and methods for determining whether to perform a computing operation that is optimized for a specific storage-device-technology type | |
CN105353978B (zh) | 一种pcie ssd阵列的数据读方法、系统及读写方法 | |
CN105335103B (zh) | 一种pcie ssd阵列的数据写方法及系统 | |
CN104932839A (zh) | 一种实现单控制器存储的方法 | |
KR101190885B1 (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
EE01 | Entry into force of recordation of patent licensing contract |
Application publication date: 20151230 Assignee: Jiangsu Xinsheng Intelligent Technology Co., Ltd. Assignor: GOKE MICROELECTRONICS CO., LTD. Contract record no.: 2018430000021 Denomination of invention: PCIE SSD array data writing method and system Granted publication date: 20161012 License type: Common License Record date: 20181203 |
|
EE01 | Entry into force of recordation of patent licensing contract |