CN109815170B - 数据冗余的处理方法及其相关电脑系统 - Google Patents
数据冗余的处理方法及其相关电脑系统 Download PDFInfo
- Publication number
- CN109815170B CN109815170B CN201711210915.5A CN201711210915A CN109815170B CN 109815170 B CN109815170 B CN 109815170B CN 201711210915 A CN201711210915 A CN 201711210915A CN 109815170 B CN109815170 B CN 109815170B
- Authority
- CN
- China
- Prior art keywords
- data
- memory
- controller
- field programmable
- programmable array
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 15
- 230000027455 binding Effects 0.000 claims abstract description 13
- 238000009739 binding Methods 0.000 claims abstract description 13
- 239000000835 fiber Substances 0.000 claims abstract description 10
- 238000000034 method Methods 0.000 claims description 15
- 230000008569 process Effects 0.000 claims description 13
- 230000002093 peripheral effect Effects 0.000 claims description 12
- 238000012545 processing Methods 0.000 claims description 11
- 230000009977 dual effect Effects 0.000 claims description 7
- 238000005192 partition Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 12
- 230000004044 response Effects 0.000 description 7
- 239000004744 fabric Substances 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 239000011230 binding agent Substances 0.000 description 3
- 238000005538 encapsulation Methods 0.000 description 3
- 239000013307 optical fiber Substances 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000010076 replication Effects 0.000 description 2
- 241000282373 Panthera pardus Species 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000013403 standard screening design Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- 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
-
- 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
- G06F3/0611—Improving I/O performance in relation to response time
-
- 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
- G06F3/0613—Improving I/O performance in relation to throughput
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0664—Virtualisation aspects at device level, e.g. emulation of a storage device or system
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0665—Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
-
- 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/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- 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/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Systems (AREA)
Abstract
本发明提出了一种数据冗余的处理方法及其相关电脑系统,该数据冗余的处理方法,用于一非挥发性存储器,以通过一光纤通道自一主机端传送一数据到一远端直接存储器存取网络介面控制器及一简单硬盘捆绑端,该处理方法包含有虚拟化该远端直接存储器存取网络介面控制器的一现场可程序化阵列为一动态随机存取存储器,并将该数据储存于该动态随机存取存储器;复制或分割该数据成多个数据,并由该现场可程序化阵列回报对应于该多个数据的多个虚拟存储器地址至该远端直接存储器存取网络介面控制器;以及根据该多个虚拟存储器地址,读取该多个数据并传送至对应的多个非挥发性存储器控制器。
Description
技术领域
本发明指一种数据冗余的处理方法及其相关电脑系统,尤指一种用于非挥发性存储器(Non-Volatile Memory express,NVMe)以通过光纤通道传送数据的数据冗余的处理方法及其相关电脑系统。
背景技术
随着科技的进步与发明,计算、储存与网络已成为现代信息科技领域的基础架构核心。相较于传统的网络传输,远端直接存储器存取(Remote Direct Memory Access,RDMA)通过网络在两个端点的应用软件之间直接传递数据,并且无需操作系统及中央处理器的作业系统的资源参与,以实现端点之间的高通量、低延迟的网络通信方式。并且,快闪存储器及新一代相变化存储器(Phase Change Memory,PCM)固态储存的固态硬盘(SolidState Disk,SSD)于数据处理系统广泛的使用。然而,目前的数据处理系统所使用的简单硬盘捆绑(Just a Bunch of Flash,JBOF)都是分配单一或多个运算服务器使用一或多个完整的SSD,当有高可用性(High Availability,HA)或数据复制(Data Replication)的需求时,却缺乏相关硬件装置来执行。
因此,如何有效发挥储存资源的功效,并解决数据冗余的处理,便成为此技术领域的重要课题。
发明内容
因此,本发明提供一种NVMe over Fabric的数据冗余处理方法及相关电脑系统,以提供高效率及低延迟的优势,并发挥储存资源的功效。
本发明揭露一种数据冗余的处理方法,用于一非挥发性存储器(Non-VolatileMemory express,NVMe),以通过一光纤通道自一主机(Host)端传送一数据到一RDMA网络介面控制器(Remote-direct-memory-access-enable Network Interface Controller,RNIC)及一简单硬盘捆绑(Just a Bunch of Flash,JBOF)端,该处理方法包含虚拟化该RDMA网络介面控制器的一现场可程序化阵列(Field Programmable Gate Array,FPGA)为一动态随机存取存储器(Dynamic Random Access Memory,DRAM),并将该数据储存于该动态随机存取存储器;复制或分割该数据成多个数据,并且由该现场可程序化阵列回报对应于该多个数据的多个虚拟存储器地址至该RDMA网络介面控制器;以及根据该多个虚拟存储器地址,读取该多个数据并传送至对应的多个NVMe控制器;其中,该现场可程序化阵列回报该RDMA网络介面控制器,该现场可程序化阵列的存储器空间大于该动态随机存取存储器。
本发明另揭露一种电脑系统,包含有一主机端,用于一非挥发性存储器,以通过一光纤通道传送一数据;一RDMA网络介面控制器,用来接收该主机端传送的该数据,并虚拟化一现场可程序化阵列为一动态随机存取存储器,并将该数据储存于该动态随机存取存储器,复制或分割该数据成多个数据,并且由该现场可程序化阵列回报对应于该多个数据的多个虚拟存储器地址至该RDMA网络介面控制器;以及一简单硬盘捆绑端,用来根据该多个虚拟存储器地址,读取对应的该多个数据,并传送至对应的多个NVMe控制器。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一电脑系统的示意图。
图2为本发明实施例的一数据冗余的处理流程的示意图。
图3为本发明实施例的一FPGA实作的示意图。
图4为本发明实施例的另一FPGA实作的示意图。
图5为本发明实施例的另一FPGA实作的示意图。
图6为本发明实施例一简单硬盘捆绑端的回应流程的示意图。
附图标号:
10 电脑系统
102 主机端
104 RDMA网路介面控制器
106 简单硬碟捆绑端
20、60 流程
202、204、206、208、210、212、 步骤
214、216、602、604、606、608、
610、612
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域相关技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护的范围。
请参考图1,图1为本发明实施例一电脑系统10的示意图。电脑系统10用来处理数据处理系统的数据冗余,其包含有一主机端102、一RDMA网络介面控制器104(Remote-direct-memory-access-enable Network Interface Controller,RNIC)、一光纤通道及一简单硬盘捆绑端106(Just a Bunch of Flash,JBOF)。主机端102通过光纤通道及RDMA网络介面控制器104传送一数据至简单硬盘捆绑端106。RDMA网络介面控制器104用来接收或传送主机端102传送的数据,以及虚拟化一现场可程序化阵列(Field Programmable GateArray,FPGA)为一动态随机存取存储器(Dynamic Random Access Memory,DRAM)。如图1所示,主机端102的RDMA网络介面控制器104用来将自主机端102接收的数据传送至一接收端的RDMA网络介面控制器104,而接收端的RDMA网络介面控制器104用来虚拟化FPGA为一虚拟DRAM,并由FPGA回报RDMA网络介面控制器104其虚拟存储器空间大于DRAM。此外,RDMA网络介面控制器104将数据复制或分割成多个数据,并且由FPGA回报对应于多个数据的多个虚拟存储器地址address_i至具有一系统单芯片(System on Chip,SoC)的RDMA网络介面控制器104。而简单硬盘捆绑端106用来根据虚拟存储器地址address_i,读取对应的数据,并传送至对应的多个NVMe控制器。如此一来,电脑系统10不需要中央处理器(CentralProcessing Unit,CPU)及作业系统(Operating System,OS)的参与,便可以在高速网络环境下,通过光纤通道传输大量数据以处理数据冗余。
上述范例仅概略性地说明本发明的电脑系统10的数据冗余的处理方法,用于NVMe以通过光纤通道自主机端快速且有效率地传送大量数据至接收端。需注意的是,本领域具通常知识者可根据不同系统需求适当设计电脑系统10。举例来说,根据不同制造商或电脑系统的需求,选用不同的RDMA网络介面控制器,例如,系统单芯片Broadcom BCM5880X,或者,选用不同的简单硬盘捆绑端,例如,NVMe储存装置Wiwynn ST300。上述实施例可根据使用者或制造商的指示或电脑系统的设定来调整,而不限于此,皆属本发明的范畴。
详细来说,请继续参考图2,图2为本发明实施例的一数据冗余的处理流程20的示意图。请同时参考图1及图2,以写入指令为例,在光纤通道的NVMe(NVMe over Fabric)及RDMA的架构下,主机端102(例如,Leopard)将数据通过具有系统单芯片的RDMA网络介面控制器104(例如,Broadcom BCM5880X)传送至简单硬盘捆绑端106(Wiwynn ST300)的数据冗余的处理流程20包含下列步骤:
步骤202:开始。
步骤204:主机端102将一提交队列(Submission Queue,SQ)的一写入指令作为常驻存储器(Host-memory Resident)的提交队列入口(SQ Entry,SQE),并且,主控端的NVMe控制器将SQE封装至一NVMe指令封装。
步骤206:RDMA网络介面控制器104将伫列于一传送队列(Send Queue,SQ)封装传送至接收端的RDMA网络介面控制器104中的接收队列(Receive Queue,RQ)。
步骤208:接收端的RDMA网络介面控制器104中的FPGA解封装SQE并撷取储存于RDMA网络介面控制器104中的实体DRAM,并且由FPGA产生目标端的三个虚拟DRAM地址。
步骤210:目标端以三个虚拟DRAM地址数据更新SQE的写入指令的指标值,并且将写入指令传送三个虚拟数据指标值至三个对应于的NVMe控制器。
步骤212:当NVMe控制器自RDMA网络介面控制器104中的DRAM撷取数据时,FPGA即时以纠删码(Erasure Coding)编码分割(split)数据,并根据虚拟DRAM地址传送至对应的NVMe控制器。
步骤214:清除所有DRAM中的暂存数据。
步骤216:结束。
由上述可知,根据处理流程20,电脑系统10的NVMe控制器(即主机端102)通过光纤通道,以于RDMA网络介面控制器104与简单硬盘捆绑端106两个端点之间直接进行点对点传输。值得注意的是,在此例中,目标端的RDMA网络介面控制器104将数据复制或分割为三份,但不以此为限。接收主机端102与其RDMA网络介面控制器104是通过一快捷外设互联标准(Peripheral Component Interconnect Express,PCIe)进行传送。并且,简单硬盘捆绑端106与其对RDMA网络介面控制器104亦为通过PCIe传送,使得电脑系统10在高速网络环境下,不需耗费过多资源于处理和搬移数据。
由于FPGA为一种可编程的硬件,因此,RDMA网络介面控制器104中的FPGA可以不同实作方式实现。详细来说,请参考图3,图3为本发明实施例的一FPGA实作的示意图。在一实施例中,如图3所示,数据自主机端102(未绘示于图3)经由NVMe over Fabric至简单硬盘捆绑端106的RDMA网络介面控制器104上,此时,RDMA网络介面控制器104选择多个实体存储器控制器的其中之一处理并储存数据,接着,由FPGA虚拟成的对应于多个实体存储器控制器的多个虚拟存储器控制器进行复制或分割数据,并由对应的多个虚拟存储器控制器,将数据储存至对应的DRAM,再由RDMA网络介面控制器104的目标端提供对应于实体存储器地址的虚拟存储器地址至多个NVMe子系统。值得注意的是,每一实体存储器控制器皆可对应到一虚拟存储器控制器及多个双列直插式存储器模块(Dual In-line Memory Module,DIMM)的其中之一,也就是说,虚拟存储器控制器与双列直插式存储器模块是一对一对应。
在另一实施例中,请参考图4,图4为本发明实施例的另一FPGA实作的示意图。如图4所示,数据自主机端102(未绘示于图4)经由NVMe over Fabric至简单硬盘捆绑端106的RDMA网络介面控制器104上,此时,数据经由一PCIe控制器进入由FPGA虚拟成的一PCIe装置的一PCIe存储器控制器,接着,由FPGA虚拟成的多个虚拟存储器控制器复制或分割数据,并由对应于数据的多个虚拟存储器控制器,将数据储存至对应的DRAM后,由RDMA网络介面控制器104的目标端提供对应于实体存储器地址的虚拟存储器地址至多个NVMe子系统。值得注意的是,PCIe存储器控制器的每一虚拟存储器控制器可对应到每一双列直插式存储器模块,也就是说,虚拟存储器控制器与双列直插式存储器模块是一对一对应的。
在另一实施例中,请参考图5,图5为本发明实施例的另一FPGA实作的示意图。如图5所示,数据自主机端102(未绘示于图5)经由NVMe over Fabric至简单硬盘捆绑端106的RDMA网络介面控制器104上,此时,数据经由一PCIe控制器进入由FPGA虚拟成的一PCIe装置的一PCIe存储器控制器,接着,由PCIe存储器控制器复制或分割数据,并由多个虚拟存储器控制器将数据储存至一逻辑存储器,其中,储存于逻辑存储器的数据具有对应的虚拟存储器地址。最后,再由RDMA网络介面控制器104的目标端提供对应于逻辑存储器的地址的实体存储器地址到多个NVMe子系统。此外,逻辑存储器是由FPGA模拟,并且逻辑存储器可对应至PCIe存储器控制器的多个虚拟存储器控制器。
因此,由上述的实施例可知,电脑系统10通过由FPGA模拟成的实体存储器控制器、虚拟存储器控制器、DIMM、PCIe存储器控制器等,以达到虚拟NVMe的独立硬盘冗余阵列(Redundant Array of Independent Disks,RAID)的功能,并且,在NVMe over Fabric的架构下,提供数据冗余的处理方法。
当电脑系统10执行完成主机端102的写入指令时,简单硬盘捆绑端106对数据冗余的处理流程20的写入指令进行回应。请继续参考图6,图6为本发明实施例一简单硬盘捆绑端106的回应流程30的示意图。回应流程60的步骤包含有:
步骤602:开始。
步骤604:简单硬盘捆绑端106中的一NVMe子系统的一NVMe控制器将封装完成队列入口(Completion Queue Entry,CQE)传送至一NVMe回应封装。
步骤606:简单硬盘捆绑端106中的RDMA将封装传送至主机端102后,将CQE伫列至完成队列(Completion Queue,CQ)。
步骤608:主机端102的NVMe控制器将CQE伫列于常驻存储器的CQ中。
步骤610:主机端102自CQ中撷取回应。
步骤612:结束。
因此,根据回应流程60,简单硬盘捆绑端106通过点对点的方式将完成的写入指令的回应数据回传至主机端102。
由上述可知,本发明用于NVMe的数据冗余的处理方法,通过光纤通道进行端点与端点之间的数据传送以处理数据冗余,以达到低延时、高吞吐量的传输。需注意的是,前述实施例用以说明本发明的精神,本领域技术人员当可据以做适当的修饰,而不限于此。举例来说,FPGA所虚拟而成的虚拟存储器控制器、PCIe存储器控制器或逻辑存储器等,皆可根据电脑系统架构或需求调整,皆属本发明的范畴。
以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。
Claims (12)
1.一种数据冗余的处理方法,其特征在于,用于一非挥发性存储器,以通过一光纤通道自一主机端传送一数据到一远端直接记忆体存储器存取网络介面控制器及一简单硬盘捆绑端,该处理方法包含有:
虚拟化该远端直接记忆体存储器存取网络介面控制器的一现场可程序化阵列为一动态随机存取存储器,并将该数据储存于该动态随机存取存储器;
复制或分割该数据成多个数据,并且由该现场可程序化阵列回报对应于该多个数据的多个虚拟存储器地址至该远端直接记忆体存储器存取网络介面控制器;以及
根据该多个虚拟存储器地址,读取该多个数据并传送至对应的多个非挥发性存储器控制器;
其中,该现场可程序化阵列回报该远端直接记忆体存储器存取网络介面控制器,该现场可程序化阵列的存储器空间大于该动态随机存取存储器;
该处理方法另包含有:
该现场可程序化阵列根据该多个虚拟存储器地址,对应修改一目标端的一写入指令的多个数据指标值;
当该非挥发性存储器控制器根据该多个虚拟存储器地址读取该多个数据时,该现场可程序化阵列对该多个数据进行纠删码编码,并传送至该多个非挥发性存储器控制器;以及
当对应于该多个虚拟存储器地址的该多个数据皆被读取后,清除该动态随机存取存储器的所有数据。
2.如权利要求1所述的处理方法,其特征在于,该目标端用来将送往该非挥发性存储器控制器的该写入指令的该多个数据指标值,指向对应的该多个虚拟存储器地址,并且传送该写入指令至对应于该非挥发性存储器控制器的多个提交队列。
3.如权利要求1所述的处理方法,其特征在于,另包含有:
该远端直接记忆体存储器存取网络介面控制器以多个实体存储器控制器的其中之一处理该数据;以及
该现场可程序化阵列于接收到该数据后,复制或分割该数据成该多个数据,并由对应于该多个实体存储器控制器的多个虚拟存储器控制器,将该多个数据储存至该动态随机存取存储器;
其中,每一实体存储器控制器对应于多个双列直插式存储器模块的其中之一。
4.如权利要求1所述的处理方法,其特征在于,另包含有:
该数据经由一快捷外设互联标准控制器进入由该现场可程序化阵列虚拟成的一快捷外设互联标准装置的一快捷外设互联标准存储器控制器;以及
该快捷外设互联标准存储器控制器复制或分割该数据成该多个数据,并将该多个数据储存至该动态随机存取存储器;
其中,该快捷外设互联标准存储器控制器的多个虚拟存储器控制器是一对一对应于多个双列直插式存储器模块。
5.如权利要求1所述的处理方法,其特征在于,另包含有:
该数据经由一快捷外设互联标准控制器进入由该现场可程序化阵列虚拟成的一快捷外设互联标准装置的一快捷外设互联标准存储器控制器;以及
该快捷外设互联标准存储器控制器复制或分割该数据成该多个数据,并由对应于该快捷外设互联标准存储器控制器将该多个数据储存至一逻辑存储器;
其中,该快捷外设互联标准存储器控制器的多个虚拟存储器控制器对应于该现场可程序化阵列虚拟成的该逻辑存储器。
6.如权利要求1所述的处理方法,其特征在于,另包含有:
该远端直接记忆体存储器存取网络介面控制器中的一目标端传送该多个虚拟存储器地址至多个非挥发性存储器子系统。
7.一种电脑系统,其特征在于,包含有:
一主机端,用于一非挥发性存储器,以通过一光纤通道传送一数据;
一远端直接记忆体存储器存取网络介面控制器,用来接收该主机端传送的该数据,虚拟化一现场可程序化阵列为一动态随机存取存储器,并将该数据储存于该动态随机存取存储器,复制或分割该数据成多个数据,并且由该现场可程序化阵列回报对应于该多个数据的多个虚拟存储器地址至该远端直接记忆体存储器存取网络介面控制器;以及
一简单硬盘捆绑端,用来根据该多个虚拟存储器地址,读取对应的该多个数据,并传送至对应的多个非挥发性存储器控制器;
其中,该远端直接记忆体存储器存取网络介面控制器的该现场可程序化阵列根据该多个虚拟存储器地址,对应修改一目标端的一写入指令的多个数据指标值;当该非挥发性存储器控制器根据该多个虚拟存储器地址读取该多个数据时,该现场可程序化阵列对该多个数据进行纠删码编码,并传送至该多个非挥发性存储器控制器;以及当对应于该多个虚拟存储器地址的该多个数据皆被读取后,清除该动态随机存取存储器的所有数据。
8.如权利要求7所述的电脑系统,其特征在于,该目标端用来将送往该非挥发性存储器控制器的该写入指令的该多个数据指标值,指向对应的该多个虚拟存储器地址,并且传送该写入指令至对应于该非挥发性存储器控制器的多个提交队列。
9.如权利要求7所述的电脑系统,其特征在于,该远端直接记忆体存储器存取网络介面控制器以多个实体存储器控制器的其中之一处理该数据,其中每一实体存储器控制器对应于多个双列直插式存储器模块的其中之一,以及该现场可程序化阵列于接收到该数据后,复制或分割该数据成该多个数据,并由对应于该多个实体存储器控制器的多个虚拟存储器控制器,将该多个数据储存至该动态随机存取存储器。
10.如权利要求7所述的电脑系统,其特征在于,该远端直接记忆体存储器存取网络介面控制器根据该数据经由一快捷外设互联标准控制器进入由该现场可程序化阵列虚拟成的一快捷外设互联标准装置的一快捷外设互联标准存储器控制器,以及该快捷外设互联标准存储器控制器复制或分割该数据成该多个数据,并将该多个数据储存至该动态随机存取存储器,其中,该快捷外设互联标准存储器控制器的多个虚拟存储器控制器是一对一对应于多个双列直插式存储器模块。
11.如权利要求7所述的电脑系统,其特征在于,该远端直接记忆体存储器存取网络介面控制器根据该数据经由一快捷外设互联标准控制器进入由该现场可程序化阵列虚拟成的一快捷外设互联标准装置的一快捷外设互联标准存储器控制器,以及该快捷外设互联标准存储器控制器复制或分割该数据成该多个数据,并将该多个数据储存至一逻辑存储器,其中,该快捷外设互联标准存储器控制器的多个虚拟存储器控制器对应于该现场可程序化阵列虚拟成的该逻辑存储器。
12.如权利要求7所述的电脑系统,其特征在于,该远端直接记忆体存储器存取网络介面控制器中的一目标端传送该多个虚拟存储器地址至多个非挥发性存储器子系统。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106140456 | 2017-11-22 | ||
TW106140456A TWI636366B (zh) | 2017-11-22 | 2017-11-22 | 資料冗餘的處理方法及其相關電腦系統 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109815170A CN109815170A (zh) | 2019-05-28 |
CN109815170B true CN109815170B (zh) | 2022-08-19 |
Family
ID=64453162
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711210915.5A Active CN109815170B (zh) | 2017-11-22 | 2017-11-28 | 数据冗余的处理方法及其相关电脑系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10838895B2 (zh) |
CN (1) | CN109815170B (zh) |
TW (1) | TWI636366B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102289937B1 (ko) * | 2020-08-26 | 2021-08-13 | 스톤플라이코리아(주) | 가상 스토리지의 데이터 처리 방법 |
US11182221B1 (en) * | 2020-12-18 | 2021-11-23 | SambaNova Systems, Inc. | Inter-node buffer-based streaming for reconfigurable processor-as-a-service (RPaaS) |
KR102258139B1 (ko) * | 2021-01-22 | 2021-05-28 | 스톤플라이코리아 주식회사 | 가상 스토리지의 데이터를 효율적으로 처리하는 방법 및 그 시스템 |
TWI829080B (zh) * | 2021-02-03 | 2024-01-11 | 普安科技股份有限公司 | 具有雙儲存虛擬化控制器之資料儲存系統架構及其資料存取方法 |
CN113868155B (zh) * | 2021-11-30 | 2022-03-08 | 苏州浪潮智能科技有限公司 | 一种内存空间扩展方法、装置及电子设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002031647A2 (en) * | 2000-10-12 | 2002-04-18 | Celoxica Limited | System, method and article of manufacture for using a microprocessor emulation in a hardware application with non time-critical functions |
CN101657802A (zh) * | 2006-12-06 | 2010-02-24 | 弗森多系统公司(dba弗森-艾奥) | 用于远程直接存储器存取固态存储设备的装置、系统及方法 |
CN103902403A (zh) * | 2012-12-27 | 2014-07-02 | Lsi公司 | 经由冗余阵列的非易失性存储器编程故障恢复 |
CN106126448A (zh) * | 2015-05-08 | 2016-11-16 | 三星电子株式会社 | 用于灵活存储平台的多协议io基础架构 |
CN107357408A (zh) * | 2017-06-30 | 2017-11-17 | 郑州云海信息技术有限公司 | 一种NVMe JOBF节能方法、系统及数据中心 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015016832A1 (en) * | 2013-07-30 | 2015-02-05 | Hewlett-Packard Development Company, L.P. | Recovering stranded data |
WO2015138245A1 (en) * | 2014-03-08 | 2015-09-17 | Datawise Systems, Inc. | Methods and systems for converged networking and storage |
US9852779B2 (en) * | 2014-03-12 | 2017-12-26 | Futurewei Technologies, Inc. | Dual-port DDR4-DIMMs of SDRAM and NVRAM for SSD-blades and multi-CPU servers |
CN107430585B (zh) * | 2016-01-29 | 2021-04-02 | 慧与发展有限责任合伙企业 | 用于远程直接存储器访问的系统和方法 |
US10474620B2 (en) * | 2017-01-03 | 2019-11-12 | Dell Products, L.P. | System and method for improving peripheral component interface express bus performance in an information handling system |
US10275180B2 (en) * | 2017-05-08 | 2019-04-30 | Samsung Electronics Co., Ltd. | Ethernet SSD system including storage offload engine (SoE) controller and ethernet switch |
US10261699B2 (en) * | 2017-05-16 | 2019-04-16 | Dell Products L.P. | Systems and methods for hardware-based RAID acceleration |
KR102429904B1 (ko) * | 2017-09-08 | 2022-08-05 | 삼성전자주식회사 | PCIe P2P 접속의 밴드위스를 최대화할 수 있는 방법 및 시스템 |
US10754746B2 (en) * | 2017-11-15 | 2020-08-25 | General Electric Company | Virtual processor enabling unobtrusive observation of legacy systems for analytics in SoC |
-
2017
- 2017-11-22 TW TW106140456A patent/TWI636366B/zh active
- 2017-11-28 CN CN201711210915.5A patent/CN109815170B/zh active Active
-
2018
- 2018-04-11 US US15/951,117 patent/US10838895B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002031647A2 (en) * | 2000-10-12 | 2002-04-18 | Celoxica Limited | System, method and article of manufacture for using a microprocessor emulation in a hardware application with non time-critical functions |
CN101657802A (zh) * | 2006-12-06 | 2010-02-24 | 弗森多系统公司(dba弗森-艾奥) | 用于远程直接存储器存取固态存储设备的装置、系统及方法 |
CN103902403A (zh) * | 2012-12-27 | 2014-07-02 | Lsi公司 | 经由冗余阵列的非易失性存储器编程故障恢复 |
CN106126448A (zh) * | 2015-05-08 | 2016-11-16 | 三星电子株式会社 | 用于灵活存储平台的多协议io基础架构 |
CN107357408A (zh) * | 2017-06-30 | 2017-11-17 | 郑州云海信息技术有限公司 | 一种NVMe JOBF节能方法、系统及数据中心 |
Non-Patent Citations (1)
Title |
---|
基于虚拟接口的网络存储系统研究;陈俭喜;《中国优秀博硕士学位论文全文数据库(博士)信息科技辑》;20080315;I137-3 * |
Also Published As
Publication number | Publication date |
---|---|
US20190155772A1 (en) | 2019-05-23 |
TW201926056A (zh) | 2019-07-01 |
US10838895B2 (en) | 2020-11-17 |
CN109815170A (zh) | 2019-05-28 |
TWI636366B (zh) | 2018-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11500810B2 (en) | Techniques for command validation for access to a storage device by a remote client | |
CN109815170B (zh) | 数据冗余的处理方法及其相关电脑系统 | |
US10732893B2 (en) | Non-volatile memory over fabric controller with memory bypass | |
US9986028B2 (en) | Techniques to replicate data between storage servers | |
US9727503B2 (en) | Storage system and server | |
US20160259568A1 (en) | Method and apparatus for storing data | |
US9213500B2 (en) | Data processing method and device | |
KR20180010131A (ko) | 단일 포트형 스토리지 제어기들을 포함하는 이중 포트형 pci 익스프레스 기반 스토리지 카트리지 | |
US10067685B2 (en) | Identifying disk drives and processing data access requests | |
US11606429B2 (en) | Direct response to IO request in storage system having an intermediary target apparatus | |
US10901624B1 (en) | Dummy host command generation for supporting higher maximum data transfer sizes (MDTS) | |
US10275175B2 (en) | System and method to provide file system functionality over a PCIe interface | |
US20160011965A1 (en) | Pass through storage devices | |
KR102365312B1 (ko) | 스토리지 컨트롤러, 연산 스토리지 장치, 및 연산 스토리지 장치의 동작 방법 | |
US11487432B2 (en) | Direct response to IO request in storage system with remote replication | |
US10831684B1 (en) | Kernal driver extension system and method | |
US10901733B1 (en) | Open channel vector command execution | |
TWI797022B (zh) | 儲存控制器、計算儲存裝置以及計算儲存裝置的操作方法 | |
WO2017072868A1 (ja) | ストレージ装置 | |
JP6825263B2 (ja) | ストレージ制御装置、およびストレージシステム | |
US11782603B2 (en) | Optimized communicaton in storage system | |
EP4148572B1 (en) | Computational storage device and storage system including the computational storage device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |