CN105335103B - 一种pcie ssd阵列的数据写方法及系统 - Google Patents

一种pcie ssd阵列的数据写方法及系统 Download PDF

Info

Publication number
CN105335103B
CN105335103B CN201510687038.5A CN201510687038A CN105335103B CN 105335103 B CN105335103 B CN 105335103B CN 201510687038 A CN201510687038 A CN 201510687038A CN 105335103 B CN105335103 B CN 105335103B
Authority
CN
China
Prior art keywords
tgt
write
modules
command
parsing
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
Application number
CN201510687038.5A
Other languages
English (en)
Other versions
CN105335103A (zh
Inventor
王翔
向平
周士兵
姜黎
马翼
田达海
彭鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hunan Goke Microelectronics Co Ltd
Original Assignee
Hunan Goke Microelectronics Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hunan Goke Microelectronics Co Ltd filed Critical Hunan Goke Microelectronics Co Ltd
Priority to CN201510687038.5A priority Critical patent/CN105335103B/zh
Publication of CN105335103A publication Critical patent/CN105335103A/zh
Application granted granted Critical
Publication of CN105335103B publication Critical patent/CN105335103B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving 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

一种PCIE SSD阵列的数据写方法及系统
技术领域
本发明涉及一种PCIE SSD阵列的数据写方法及系统。
背景技术
现有操作系统和磁盘阵列都是按照早先机械盘的性能远远低于内存的性能设计的,和机械盘的读写延时相比,内存的读写延时几乎可以忽略不计,所以不管是常用的操作系统还是阵列的软件架构,读写的数据都是先放到系统内存中,再往盘下或者返回给应用。读的时候会先在内存cache中看数据能否命中,能命中的话则直接从内存cache中取出返回给应用,如不能命中才从磁盘中取出到内存中交给应用。我们以常见的磁盘阵列通过FC共享LUN到主机的情况看一下目前架构的读写流程,见图1和图2。
图1的方法没有考虑回写的情况。虽然FC的硬件设计有差别,或者用的以太网ISCSI共享LUN在流程的细节上会有一些差别,但是最终有一点是不会变的,就是IO的数据都是先写到阵列系统内存中再返回给请求方。这个方案在磁盘的性能较低的时候能极高的提高磁盘的读写性能(因为可以回写和cache命中),但采用此架构,磁盘的性能理论上只能达到内存带宽的一半以下(无论读写IO数据都要在系统内存中读写一次),实际还会更低(IO命令本身和阵列的操作系统和软件都会消耗系统内存的容量和带宽)。在极端理想的情况下,即cache足够大,所有写操作都可以回写,不用下盘,阵列的性能也只能接近内存带宽。
当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,读带宽则更高,在这种情况下目前的内存性能已成为阵列性能的瓶颈。
TGT端的FC模块:目前TGT端的FC模块都是作为PCIE设备安装在阵列上的,有共享内存给主机的能力,与阵列的交互也是各个FC模块硬件厂商自己定义的,驱动也是各个厂家自己的驱动,所以共享内存给主机需要FC模块具备此能力,并使用厂家自定义的接口。
INI端:输入端。
RAID:磁盘阵列。
发明内容
本发明所要解决的技术问题是,针对现有技术不足,提供一种PCIE SSD阵列的数据写方法及系统。
为解决上述技术问题,本发明所采用的技术方案是:一种PCIE SSD阵列的数据写方法,包括以下步骤:
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)PCIE SSD阵列得到IO命令后通知TGT端FC模块完成写命令,并回复INI端FC模块;
本发明还提供了一种PCIE SSD阵列的数据写系统,包括:
第一TGT端FC模块:用于接收写命令并通知第一阵列驱动,并直接将接收到的解析后的写命令写入共享内存的buffer中;
第一阵列驱动:用于在解析写命令后,通知第一TGT端FC模块接收解析后的写命令,在所述第一TGT端FC模块共享内存中分配一段buffer接收解析后的写命令,并将第一TGT端FC模块接收到的解析后的写命令根据LUN的RAID的情况分为一个或多个IO命令发送给不同的磁盘A;在得到磁盘A 的IO命令完成指令后,通知第一TGT端FC模块完成写命令,并回复INI端FC;
磁盘A:用于在接收到阵列驱动发送的IO命令后,通过PCIE命令从TGT端FC模块共享内存中读取IO命令,然后将读取的IO命令下刷到FLASH颗粒中,完成IO命令;
与现有技术相比,本发明所具有的有益效果为:本发明写请求的数据不经过阵列系统内存,所以性能不受阵列系统内存性能的限制,使得阵列写带宽可以超过主机内存的带宽;由于写请求数据不使用阵列系统内存,节约下来的阵列系统内存容量和带宽可以给阵列系统和IO命令本身使用,从总体上改善了阵列的性能。
附图说明
图1为现有的写流程图;
图2为本发明方法的写流程图;
图3为现有架构IO的阵列内数据流;
图4为本发明方法IO阵列内数据流。
具体实施方式
本发明基于使用PCIE SSD作为存储介质的存储阵列,PCIE SSD包括但不限于基于AHCI、NVMe协议的SSD盘。
本发明首先需要TGT端FC模块共享一定数量的自身的内存给阵列,这首先可以要求FC模块有自身的内存控制器以及可能需要外挂DDR。从图2可知,本发明和现有方案最大的不同在于IO data的buffer和cache都不再位于阵列系统内存中,而是位于FC模块的共享内存。该方案对目前的阵列架构冲击很小,还可以保留阵列本身读写流程的cache命中和回写等特性。另外阵列通常会有多个FC模块和多根FC共享对外提供LUN共享服务,当某个FC上的读命令命中cache的地址位于其它FC模块的共享内存中时,此FC模块可以通过PCIE命令读取此cache数据上传。
本发明TGT端的FC模块需要提供共享内存,只要内存的带宽性能大于FC带宽加PCIE带宽,FC模块的共享内存便不会成为阵列性能的瓶颈,以目前最新的64Gb FC或100Gb的以太网加PCIE 3.0来算的话,目前的DDR3或DDR4内存也可以达到。
对比图3和图4可知,在不考虑回写和cache命中的情况下,采用本发明方案写命令可以减少一次IO数据的写系统内存操作。在实际对带宽性能要求最高的场景下,如地质勘探,都是在短时间内有大量数据需要存储,都是连续写业务或连续读业务,在这种情况下回写和cache命中的效果几乎可以忽略不计。所以在真实高带宽写场景下,可以使阵列的带宽性能不受系统内存带宽的限制,节约出来的带宽和容量也让其它使用系统内存的程序(如IO命令本身内容)以及操作系统运行得更快,从而提高阵列的整体性能表现。

Claims (2)

1.一种PCIE SSD阵列的数据写方法,其特征在于,包括以下步骤:
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)PCIE SSD阵列得到IO命令后通知TGT端FC模块完成写命令,并回复INI端FC模块。
2.一种PCIE SSD阵列的数据写系统,其特征在于,包括:
TGT端FC模块:用于接收写命令并通知阵列驱动模块,并直接将接收到的解析后的写命令写入共享内存的buffer中;
阵列驱动模块:用于在解析写命令后,通知TGT端FC模块接收解析后的写命令,在所述TGT端FC模块共享内存中分配一段buffer接收解析后的写命令,并将TGT端FC模块接收到的解析后的写命令根据LUN的RAID的情况分为一个或多个IO命令发送给不同的磁盘;在得到磁盘的IO命令完成指令后,通知TGT端FC模块完成写命令,并回复INI端FC;
磁盘:用于在接收到阵列驱动模块发送的IO命令后,通过PCIE命令从TGT端FC模块共享内存中读取IO命令,然后将读取的IO命令下刷到FLASH颗粒中,完成IO命令。
CN201510687038.5A 2015-10-22 2015-10-22 一种pcie ssd阵列的数据写方法及系统 Active CN105335103B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510687038.5A CN105335103B (zh) 2015-10-22 2015-10-22 一种pcie ssd阵列的数据写方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510687038.5A CN105335103B (zh) 2015-10-22 2015-10-22 一种pcie ssd阵列的数据写方法及系统

Publications (2)

Publication Number Publication Date
CN105335103A CN105335103A (zh) 2016-02-17
CN105335103B true CN105335103B (zh) 2017-05-03

Family

ID=55285684

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510687038.5A Active CN105335103B (zh) 2015-10-22 2015-10-22 一种pcie ssd阵列的数据写方法及系统

Country Status (1)

Country Link
CN (1) CN105335103B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115643321A (zh) * 2022-09-29 2023-01-24 中科驭数(北京)科技有限公司 数据处理方法、装置、设备及计算机可读存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8589723B2 (en) * 2010-12-22 2013-11-19 Intel Corporation Method and apparatus to provide a high availability solid state drive
US9767058B2 (en) * 2011-11-17 2017-09-19 Futurewei Technologies, Inc. Method and apparatus for scalable low latency solid state drive interface
CN103336745B (zh) * 2013-07-01 2017-02-01 无锡北方数据计算股份有限公司 一种基于ssd缓存的fc hba及其设计方法
CN103885909B (zh) * 2014-03-26 2017-07-11 国电南瑞科技股份有限公司 基于原生PCIe接口的SSD控制器及其控制方法

Also Published As

Publication number Publication date
CN105335103A (zh) 2016-02-17

Similar Documents

Publication Publication Date Title
CN108292196B (zh) 数据写入方法、装置和计算机可读存储介质
TWI814975B (zh) 用於利用自我調整寫緩衝區釋放的存儲介質編程方法與裝置、以及其系統單晶片
Ananthanarayanan et al. {Disk-Locality} in Datacenter Computing Considered Irrelevant
US8140747B2 (en) Operating method for a memory subsystem and devices for executing the operating method
JP7116381B2 (ja) クラウド・ベースのランクを使用するデータの動的再配置
US10649667B2 (en) Mitigating GC effect in a RAID configuration
US9417814B1 (en) Tempered pacing of shingled magnetic storage devices
US20150081967A1 (en) Management of storage read requests
US9612745B2 (en) Raid set initialization
CN103049220A (zh) 存储控制方法、存储控制装置和固态存储系统
CN104850355A (zh) 存储装置、存储系统及存储装置的地址信息处理方法
KR20210059790A (ko) 다수의 스트림을 위한 2 스테이지 하이브리드 메모리 버퍼
US9069471B2 (en) Passing hint of page allocation of thin provisioning with multiple virtual volumes fit to parallel data access
CN105204787B (zh) 一种pcie ssd阵列的数据读方法、系统及读写方法
CN105335103B (zh) 一种pcie ssd阵列的数据写方法及系统
KR20210008826A (ko) 논리 블록 어드레싱 범위 충돌 크롤러
CN105204786B (zh) 一种pcie ssd阵列的数据写方法及系统
CN105353978B (zh) 一种pcie ssd阵列的数据读方法、系统及读写方法
KR101491687B1 (ko) 버퍼 용량의 사용이 개선된 대량 저장 시스템
KR101147186B1 (ko) 홈 저장 장치 및 소프트웨어
KR101185818B1 (ko) 고체 상태 드라이브를 이용한 연속 데이터 보호 시스템
CN104461394A (zh) 一种raid及从其读取数据的方法
KR20120046073A (ko) 홈 저장 시스템
US11194489B2 (en) Zone-based device with control level selected by the host
US20230185470A1 (en) Method of operating memory system and memory system performing the same

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: 20160217

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: 20170503

License type: Common License

Record date: 20181203