CN112732166A - 访问固态硬盘的方法及装置 - Google Patents
访问固态硬盘的方法及装置 Download PDFInfo
- Publication number
- CN112732166A CN112732166A CN201911031211.0A CN201911031211A CN112732166A CN 112732166 A CN112732166 A CN 112732166A CN 201911031211 A CN201911031211 A CN 201911031211A CN 112732166 A CN112732166 A CN 112732166A
- Authority
- CN
- China
- Prior art keywords
- queue
- ssd
- data
- network card
- nvme
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 66
- 239000007787 solid Substances 0.000 title claims abstract description 29
- 230000004044 response Effects 0.000 claims description 33
- 238000012217 deletion Methods 0.000 description 9
- 230000037430 deletion Effects 0.000 description 9
- 230000003993 interaction Effects 0.000 description 9
- 238000013461 design Methods 0.000 description 7
- 238000013500 data storage Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
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/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
-
- 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/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/0656—Data buffering arrangements
-
- 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/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/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Abstract
本申请提供一种访问固态硬盘的方法及装置。该方法应用于存储节点,所述存储节点包括网卡和固态硬盘SSD,网卡包括内存,该方法包括:网卡接收客户端发送的数据存盘请求,数据存盘请求包括待写入数据;网卡将待写入数据写入网卡的内存;SSD从网卡的内存获取待写入数据,并写入SSD中。
Description
技术领域
本申请涉及存储领域,尤其涉及一种访问固态硬盘的方法及装置。
背景技术
目前多数存储场景下,磁盘与主机很多情况不在同一机框内,而是通过网络被拉远。在被拉远的固态硬盘(Solid StateDisk,SSD)存储背景下,对SSD的访问方式,是由网卡(network interface card,NIC)先将数据写到主机,然后主机再将数据写入SSD。很明显,一方面,每一次输入/输出(Input/Output,I/O)操作,主机中央处理器(CentralProcessing Unit,CPU)都必须参与其中,会消耗主机内存及内存带宽;另一方面,数据从NIC写到主机,再由主机将数据写入SSD,经过多次并行快捷外围部件互连标准(PeripheralComponent Interconnect Express,PCIe)交互操作,PCIe交互次数较多,时延较大。
发明内容
本申请提供一种访问固态硬盘的方法及装置,可减少PCIe交互次数,降低时延。
第一方面,本申请提供一种访问固态硬盘的方法,所述方法应用于存储节点,所述存储节点包括网卡和固态硬盘SSD,所述网卡包括内存,所述方法包括:
所述网卡接收客户端发送的数据存盘请求,所述数据存盘请求包括待写入数据;
所述网卡将所述待写入数据写入所述网卡的内存;
所述SSD从所述网卡的内存获取所述待写入数据,并写入所述SSD中。
通过第一方面提供的访问固态硬盘的方法,通过NIC接收客户端发送的数据存盘请求,数据存盘请求包括待写入数据,NIC将待写入数据写入NIC的内存,SSD从NIC的内存获取待写入数据,并写入SSD中。由于NIC将待写入数据写入NIC的内存,SSD可从NIC的内存获取待写入数据,并写入SSD中,因此,数据不经过CPU和内存,只需要一次DMA即可完成,避免消耗内存及内存带宽,对CPU和内存的配置要求更小一点,且减少PCIe交互次数,降低时延。
在一种可能的设计中,所述网卡的内存中具有I/O队列,所述SSD中具有NVMe I/O队列,所述数据存盘请求还包括SSD写命令;在所述SSD从所述网卡的内存获取所述待写入数据之前,所述方法还包括:
所述网卡根据所述NVMe I/O队列的队列信息将所述SSD写命令写入所述NVMe I/O队列,并通知所述SSD所述NVMe I/O队列中有待处理的所述SSD写命令。
通过该实施方式提供的访问固态硬盘的方法,由于NIC将待写入数据写入NIC的内存,将SSD写命令写入SSD的NVMeI/O队列,并通知SSD NVMeI/O队列中有待处理的SSD写命令,最后SSD将待写入数据从NIC的内存写入SSD,因此,数据不经过CPU和内存,只需要一次DMA即可完成,避免消耗内存及内存带宽,对CPU和内存的配置要求更小一点,且减少PCIe交互次数,降低时延。
在一种可能的设计中,在所述待写入数据写入所述SSD之后,所述方法还包括:
所述SSD根据所述I/O队列的队列信息将写响应消息写入所述网卡的I/O队列中,并通知所述网卡所述I/O队列中有所述写响应消息,所述写响应消息用于指示所述SSD写命令是否成功完成;
所述网卡将所述写响应消息发送给客户端。
在一种可能的设计中,所述方法还包括:
所述网卡接收所述NVMe I/O队列的队列信息,所述NVMe I/O队列的队列信息包括所述NVMe I/O队列的首地址和深度;
所述SSD接收所述I/O队列的队列信息,所述I/O队列的队列信息包括所述I/O队列的首地址和深度。
通过该实施方式提供的访问固态硬盘的方法,SSD接收NIC的I/O队列的队列信息,NIC接收SSD的NVMe I/O队列的队列信息,后续NIC在接收到数据存盘请求后,可根据SSD的NVMe I/O队列的队列信息将数据存盘请求中的SSD写命令写入SSD的NVMe I/O队列。NIC在接收到数据读盘请求后,可根据SSD的NVMe I/O队列的队列信息将读盘指令写入SSD的NVMeI/O队列。
第二方面,本申请提供一种存储节点,存储节点包括网卡和固态硬盘SSD,所述网卡包括内存,其中:
所述网卡用于接收客户端发送的数据存盘请求,所述数据存盘请求包括待写入数据;
所述网卡还用于将所述待写入数据写入所述网卡的内存;
所述SSD用于从所述网卡的内存获取所述待写入数据,并写入所述SSD中。
在一种可能的设计中,所述网卡的内存中具有I/O队列,所述SSD中具有NVMe I/O队列,所述数据存盘请求还包括SSD写命令;
所述网卡还用于:根据所述NVMe I/O队列的队列信息将所述SSD写命令写入所述NVMe I/O队列,并通知所述SSD所述NVMe I/O队列中有待处理的所述SSD写命令。
在一种可能的设计中,所述SSD还用于:在所述待写入数据写入所述SSD之后,根据所述I/O队列的队列信息将写响应消息写入所述网卡的I/O队列中,并通知所述网卡所述I/O队列中有所述写响应消息,所述写响应消息用于指示所述SSD写命令是否成功完成;
所述网卡还用于:将所述写响应消息发送给客户端。
在一种可能的设计中,所述网卡还用于:接收所述NVMe I/O队列的队列信息,所述NVMe I/O队列的队列信息包括所述NVMe I/O队列的首地址和深度;
所述SSD还用于:接收所述I/O队列的队列信息,所述I/O队列的队列信息包括所述I/O队列的首地址和深度。
上述第二方面以及上述第二方面的各可能的设计中所提供的数据访问装置,其有益效果可以参见上述第一方面和第一方面的各可能的实施方式所带来的有益效果,在此不再赘述。
附图说明
图1为本申请应用的一种系统结构示意图;
图2为本申请实施例提供的访问固态硬盘的方法初始化过程的流程示意图;
图3为本申请提供的一种访问固态硬盘的方法实施例的流程图;
图4为本申请提供的一种访问固态硬盘的方法实施例的流程图;
图5为本申请提供的一种访问固态硬盘的方法实施例的流程图;
图6为队列删除过程示意图。
具体实施方式
本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明,本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或方案不应被解释为比其它实施例或方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
相关技术中,SSD与中央处理器(Central Processing Unit,CPU)不在同一机框内时,对SSD的访问方式,是由NIC先将数据写到存储节点的内存(如动态随机存取存储器(Dynamic Random Access Memory,DRAM)),然后存储节点的CPU再将数据写入SSD,每一次I/O操作CPU都必须参与其中,会消耗存储节点内存及内存带宽,而且数据从NIC写到CPU,再由CPU将数据写入SSD,经过多次PCIe交互操作,PCIe交互次数较多,时延较大。为解决这一问题,本申请提供一种访问固态硬盘的方法及装置,应用于一种存储节点,存储节点包括CPU、内存、NIC和SSD,通过初始化过程中NIC接收SSD的非易失性高速传输总线(Non-Volatile Memory Express,NVMe)I/O队列的队列信息,SSD接收NIC的I/O队列的队列信息,从而NIC可根据NVMeI/O队列的队列信息将NVMeI/O命令由NIC直接写入SSD的NVMeI/O队列中,NVMe I/O命令中的数据地址将直接使用NIC的内存的物理地址,因此,数据不经过CPU和内存,只需要一次数据搬移(Data migration,DMA)即可完成,避免消耗内存及内存带宽,对CPU和内存的配置要求更小一点,且减少PCIe交互次数,降低时延。下面结合附图详细说明本申请提供的访问固态硬盘的方法的具体过程。
图1为本申请应用的一种系统结构示意图,如图1所示,本申请的系统包括客户端和存储节点,客户端可以为用户侧的主机,存储节点包括CPU11、内存12、NIC13和SSD14,CPU11和NIC13之间通过PCIe总线连接,CPU11和SSD14之间也通过PCIe总线连接,NIC13和SSD14之间也通过PCIe总线连接,NIC13的内存为片内双倍速率同步动态随机存储器(On-chipDouble Data Rate SDRAM,DDR),SSD14的内存包括片内DDR和闪存。如图1中所示,本申请中访问固态硬盘的方法流程为:客户端向NIC13发起NVMeI/O命令,NIC13可根据初始化过程中获知的NVMe I/O队列的队列信息将NVMeI/O命令直接写入SSD的NVMeI/O队列中,NVMeI/O命令中的数据地址将直接使用NIC的内存的物理地址,因此,数据不经过CPU和内存,只需要一次DMA即可完成,避免消耗内存及内存带宽,对CPU和内存的配置要求更小一点,且减少PCIe交互次数,降低时延。下面结合附图详细说明具体的过程。
图2为本申请实施例提供的访问固态硬盘的方法初始化过程的流程示意图,如图2所示,本实施例的方法可以包括:
S101、NIC接收CPU发送的SSD的NVMe I/O队列的队列信息,NVMe I/O队列的队列信息包括NVMe I/O队列的首地址和深度。
S102、NIC根据NVMe I/O队列的队列信息确定NVMe I/O队列。
具体地,NIC得到NVMe I/O队列的队列信息后,可确定SSD的NVMe I/O队列,当NIC在接收到NVMe I/O指令后,根据NVMe I/O队列的首地址将NVMe I/O指令写入NVMe I/O队列,并通知SSD NVMe I/O队列中有待处理的NVMe I/O指令,根据NVMe I/O队列的深度可确定NVMe I/O队列是否已被写满。
S103、SSD接收CPU发送的NIC的I/O队列信息,NIC的I/O队列信息包括I/O队列的首地址和深度。
S104、SSD根据I/O队列的队列信息确定I/O队列。
具体地,SSD得到NIC的I/O队列信息后,可确定NIC的I/O队列信息,当SSD在接收到I/O指令后,根I/O队列的首地址将I/O指令写入I/O队列,并通知NIC I/O队列中有待处理的I/O指令,根据I/O队列的深度可确定I/O队列是否已被写满。
其中,SSD的NVMe I/O队列由CPU创建,NIC的I/O队列由CPU内的远程数据搬移(Remote Direct Memory Access,RDMA)驱动来创建。本实施例中,通过初始化过程SSD接收NIC的I/O队列的队列信息,NIC接收SSD的NVMe I/O队列的队列信息,后续NIC在接收到数据存盘请求后,可根据SSD的NVMe I/O队列的队列信息将数据存盘请求中的SSD写命令写入SSD的NVMeI/O队列。NIC在接收到数据读盘请求后,可根据SSD的NVMe I/O队列的队列信息将读盘指令写入SSD的NVMe I/O队列。
图3为本申请提供的一种访问固态硬盘的方法实施例的流程图,本实施例的方法应用于存储节点,该存储节点包括CPU、内存、NIC和SSD,如图3所示,本实施例的方法可以包括:
S201、NIC接收客户端通过RDMA方式发送的数据存盘请求,数据存盘请求包括待写入数据。
S202、NIC将待写入数据写入NIC的内存。
S203、SSD从NIC的内存获取待写入数据,并写入SSD中。
进一步地,本实施例中,NIC的内存中具有I/O队列,SSD中具有NVMe I/O队列,数据存盘请求还包括SSD写命令,在S203中SSD从NIC的内存获取待写入数据之前,本实施例的方法还可以包括:
S204、NIC根据NVMe I/O队列的队列信息将SSD写命令写入SSD的NVMe I/O队列,并通知SSD NVMe I/O队列中有待处理的SSD写命令。
进一步地,在S203中将待写入数据写入SSD之后,本实施例的方法还可以包括:
S206、SSD根据NIC的所述I/O队列的队列信息将写响应消息写入NIC的I/O队列中,并通知NICI/O队列中有写响应消息,写响应消息用于指示SSD写命令是否成功完成。
S207、NIC将写响应消息发送给客户端。
以上是数据写入SSD的过程,本实施例的方法还可以包括读取SSD中的数据的过程,进一步地,本实施例的方法还可以包括:
S208、NIC接收客户端发送的数据读盘请求,数据读盘请求包括待读取数据信息和SSD读命令,待读取数据信息包括待读取数据所在的命名空间(Namespace,NS)、逻辑块地址(Logical Block Address,LBA)和待读取数据的长度。
S209、NIC根据所述NVMe I/O队列的队列信息将读盘指令写入SSD的NVMe I/O队列,读盘指令携带SSD读命令和待读取数据信息,并通知SSDNVMeI/O队列中有待处理的读盘指令。
S210、SSD根据待读取数据信息读取数据,并将读取的数据写入到NIC的内存。
可选的,本实施例的方法在S210之后,还可以包括:
S211、SSD根据所述I/O队列的队列信息将读响应消息写入NIC的I/O队列中,并通知NICI/O队列中有读响应消息,读响应消息用于指示SSD读命令是否成功完成。
S212、NIC将读取的数据发送给客户端。
S213、NIC将I/O成功状态信息发送给客户端。
本实施例提供的访问固态硬盘的方法,通过NIC接收客户端发送的数据存盘请求,数据存盘请求包括待写入数据,NIC将待写入数据写入NIC的内存,SSD从NIC的内存获取待写入数据,并写入SSD中。由于NIC将待写入数据写入NIC的内存,SSD可从NIC的内存获取待写入数据,并写入SSD中,因此,数据不经过CPU和内存,只需要一次DMA即可完成,避免消耗内存及内存带宽,对CPU和内存的配置要求更小一点,且减少PCIe交互次数,降低时延。
下面采用具体的实施例,对图3所示方法实施例的技术方案进行详细说明。
图4为本申请提供的一种访问固态硬盘的方法实施例的流程图,本实施例的方法应用于图1所示的存储节点中,如图4所示,本实施例中详细说明数据写入过程,本实施例的方法可以包括:
S301、客户端向NIC发送数据存盘请求,数据存盘请求包括待写入数据和SSD写命令。
S302、NIC记录该数据存盘请求,并将待写入数据以DMA方式写入NIC的内存(即片内DDR)。
S303、NIC根据NVMe I/O队列的队列信息将SSD写命令写入SSD的NVMeI/O队列,并通知SSD NVMeI/O队列中有待处理的SSD写命令。
具体地,可由NIC的引擎敲SSD处的NVMeI/O队列的门铃来通知SSDI/O队列中有待处理的SSD写命令。
S304、SSD收到SSD写命令后,将待写入数据从NIC的内存写入SSD。
S305、SSD根据所述I/O队列的队列信息将写响应消息写入NIC的I/O队列中,并通知NICI/O队列中有写响应消息,写响应消息用于指示SSD写命令是否成功完成。
具体地,写响应消息写入NIC的I/O队列中,NIC并不知道,需要敲NIC侧I/O队列的门铃来通知NIC处理SSD返回给NIC的数据。
S306、NIC处理完SSD的写响应消息后,将该写响应消息发送给客户端。
本实施例中,NIC接收客户端发送的数据存盘请求后,由于NIC将待写入数据写入NIC的内存,将SSD写命令写入SSD的NVMeI/O队列,并通知SSD NVMeI/O队列中有待处理的SSD写命令,最后SSD将待写入数据从NIC的内存写入SSD,因此,数据不经过CPU和内存,只需要一次DMA即可完成,避免消耗内存及内存带宽,对CPU和内存的配置要求更小一点,且减少PCIe交互次数,降低时延。
图5为本申请提供的一种访问固态硬盘的方法实施例的流程图,本实施例的方法应用于图1所示的存储节点中,如图5所示,本实施例中详细说明数据读取过程,本实施例的方法可以包括:
S401、客户端向NIC发送数据读盘请求,数据读盘请求包括待读取数据信息和SSD读命令,待读取数据信息包括待读取数据所在的NS、LBA和待读取数据的长度。
S402、NIC接收到数据读盘请求后,获取待读取数据信息。
S403、NIC根据所述NVMe I/O队列的队列信息将读盘指令写入SSD的NVMe I/O队列,读盘指令携带SSD读命令和待读取数据信息,并通知SSDNVMeI/O队列中有待处理的读盘指令。
S404、SSD根据待读取数据信息读取数据,并将读取的数据以DMA方式写入到NIC的内存。
S405、SSD写入完成后,根据所述I/O队列的队列信息将读响应消息写入NIC的I/O队列中,并通知NICI/O队列中有读响应消息,读响应消息用于指示SSD读命令是否成功完成,以通知NIC做后续处理。
S406、NIC收到读响应消息,得知已成功通过直通方式读完数据,NIC将读取的数据发送给客户端。
S407、NIC将I/O成功状态信息发送给客户端。
图6为队列删除过程示意图,如图6所示,本实施例的方法可以包括:
S501、NIC接收CPU发送的NVMe I/O队列删除请求,NVMe I/O队列删除请求中携带NVMe I/O队列的标识。
S502、NIC根据NVMe I/O队列删除请求将与NVMe I/O队列的标识对应的NVMe I/O队列标记为非使能。
具体地,CPU在NVMe I/O队列删除的时候,获取该NVMe I/O队列的标识,将NVMe I/O队列删除请求发送给NIC,NVMe I/O队列删除请求中携带NVMe I/O队列的标识,由NIC将与NVMe I/O队列的标识对应的NVMe I/O队列标记为非使能(disabled),表示后续不再使用此NVMe I/O队列进行数据传输,直至NVMeI/O队列被再次创建。
本实施例中,CPU可以是在网络故障、NIC故障或盘故障时向NIC发送NVMe I/O队列删除请求。
S503、SSD接收CPU发送的I/O队列删除请求,I/O队列删除请求中携带I/O队列的标识。
S504、SSD根据I/O队列删除请求将与I/O队列的标识对应的I/O队列标记为非使能。
同样地,CPU将I/O队列删除请求发送给SSD,I/O队列删除请求中携带I/O队列的标识,SSD根据I/O队列删除请求将与I/O队列的标识对应的I/O队列标记为非使能。表示后续不再使用此I/O队列进行数据传输。
本实施例中,CPU可以是在网络故障、NIC故障或盘故障时向SSD发送I/O队列删除请求。
本领域普通技术人员可以理解:在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
Claims (8)
1.一种访问固态硬盘的方法,其特征在于,所述方法应用于存储节点,所述存储节点包括网卡和固态硬盘SSD,所述网卡包括内存,所述方法包括:
所述网卡接收客户端发送的数据存盘请求,所述数据存盘请求包括待写入数据;
所述网卡将所述待写入数据写入所述网卡的内存;
所述SSD从所述网卡的内存获取所述待写入数据,并写入所述SSD中。
2.根据权利要求1所述的方法,其特征在于,所述网卡的内存中具有I/O队列,所述SSD中具有NVMe I/O队列,所述数据存盘请求还包括SSD写命令;在所述SSD从所述网卡的内存获取所述待写入数据之前,所述方法还包括:
所述网卡根据所述NVMe I/O队列的队列信息将所述SSD写命令写入所述NVMe I/O队列,并通知所述SSD所述NVMeI/O队列中有待处理的所述SSD写命令。
3.根据权利要求2所述的方法,其特征在于,在所述待写入数据写入所述SSD之后,所述方法还包括:
所述SSD根据所述I/O队列的队列信息将写响应消息写入所述网卡的I/O队列中,并通知所述网卡所述I/O队列中有所述写响应消息,所述写响应消息用于指示所述SSD写命令是否成功完成;
所述网卡将所述写响应消息发送给客户端。
4.根据权利要求2所述的方法,其特征在于,所述方法还包括:
所述网卡接收所述NVMe I/O队列的队列信息,所述NVMe I/O队列的队列信息包括所述NVMe I/O队列的首地址和深度;
所述SSD接收所述I/O队列的队列信息,所述I/O队列的队列信息包括所述I/O队列的首地址和深度。
5.一种存储节点,其特征在于,所述存储节点包括网卡和固态硬盘SSD,所述网卡包括内存,其中:
所述网卡用于接收客户端发送的数据存盘请求,所述数据存盘请求包括待写入数据;
所述网卡还用于将所述待写入数据写入所述网卡的内存;
所述SSD用于从所述网卡的内存获取所述待写入数据,并写入所述SSD中。
6.根据权利要求5所述的存储节点,其特征在于,所述网卡的内存中具有I/O队列,所述SSD中具有NVMe I/O队列,所述数据存盘请求还包括SSD写命令;
所述网卡还用于:根据所述NVMe I/O队列的队列信息将所述SSD写命令写入所述NVMeI/O队列,并通知所述SSD所述NVMe I/O队列中有待处理的所述SSD写命令。
7.根据权利要求6所述的存储节点,其特征在于,
所述SSD还用于:在所述待写入数据写入所述SSD之后,根据所述I/O队列的队列信息将写响应消息写入所述网卡的I/O队列中,并通知所述网卡所述I/O队列中有所述写响应消息,所述写响应消息用于指示所述SSD写命令是否成功完成;
所述网卡还用于:将所述写响应消息发送给客户端。
8.根据权利要求6所述的存储节点,其特征在于,
所述网卡还用于:接收所述NVMe I/O队列的队列信息,所述NVMe I/O队列的队列信息包括所述NVMe I/O队列的首地址和深度;
所述SSD还用于:接收所述I/O队列的队列信息,所述I/O队列的队列信息包括所述I/O队列的首地址和深度。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911031211.0A CN112732166A (zh) | 2019-10-28 | 2019-10-28 | 访问固态硬盘的方法及装置 |
EP20881444.2A EP4040279A4 (en) | 2019-10-28 | 2020-10-07 | METHOD AND APPARATUS FOR ACCESSING A STATIC SEMICONDUCTOR DISK |
PCT/CN2020/119841 WO2021082877A1 (zh) | 2019-10-28 | 2020-10-07 | 访问固态硬盘的方法及装置 |
US17/730,798 US20220253238A1 (en) | 2019-10-28 | 2022-04-27 | Method and apparatus for accessing solid state disk |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911031211.0A CN112732166A (zh) | 2019-10-28 | 2019-10-28 | 访问固态硬盘的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112732166A true CN112732166A (zh) | 2021-04-30 |
Family
ID=75589097
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911031211.0A Pending CN112732166A (zh) | 2019-10-28 | 2019-10-28 | 访问固态硬盘的方法及装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20220253238A1 (zh) |
EP (1) | EP4040279A4 (zh) |
CN (1) | CN112732166A (zh) |
WO (1) | WO2021082877A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116909484A (zh) * | 2023-08-02 | 2023-10-20 | 中科驭数(北京)科技有限公司 | 数据处理方法、装置、设备及计算机可读存储介质 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103678201A (zh) * | 2012-09-21 | 2014-03-26 | Plx科技公司 | 具有逻辑设备能力的pci express切换器 |
CN106210041A (zh) * | 2016-07-05 | 2016-12-07 | 杭州华为数字技术有限公司 | 一种数据写入方法及服务器端网卡 |
CN106688217A (zh) * | 2014-03-08 | 2017-05-17 | 狄亚曼提公司 | 用于融合联网和存储的方法和系统 |
US20170149920A1 (en) * | 2015-07-08 | 2017-05-25 | Samsung Electronics Co., Ltd. | Method to implement rdma nvme device |
CN107003943A (zh) * | 2016-12-05 | 2017-08-01 | 华为技术有限公司 | NVMe over Fabric架构中数据读写命令的控制方法、存储设备和系统 |
CN107077426A (zh) * | 2016-12-05 | 2017-08-18 | 华为技术有限公司 | NVMe over Fabric架构中数据读写命令的控制方法、设备和系统 |
CN107145459A (zh) * | 2016-03-01 | 2017-09-08 | 华为技术有限公司 | 一种级联板、ssd远程共享访问的系统和方法 |
CN108369530A (zh) * | 2016-12-05 | 2018-08-03 | 华为技术有限公司 | 非易失性高速传输总线架构中数据读写命令的控制方法、设备和系统 |
CN109117386A (zh) * | 2018-07-12 | 2019-01-01 | 中国科学院计算技术研究所 | 一种网络远程读写二级存储的系统及方法 |
CN109491809A (zh) * | 2018-11-12 | 2019-03-19 | 西安微电子技术研究所 | 一种降低高速总线延迟的通信方法 |
US20190278701A1 (en) * | 2018-03-07 | 2019-09-12 | Exten Technologies, Inc. | Systems and methods for accessing non-volatile memory and write acceleration cache |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6246682B1 (en) * | 1999-03-05 | 2001-06-12 | Transwitch Corp. | Method and apparatus for managing multiple ATM cell queues |
US6831916B1 (en) * | 2000-09-28 | 2004-12-14 | Balaji Parthasarathy | Host-fabric adapter and method of connecting a host system to a channel-based switched fabric in a data network |
US7353301B2 (en) * | 2004-10-29 | 2008-04-01 | Intel Corporation | Methodology and apparatus for implementing write combining |
US7921178B2 (en) * | 2008-12-04 | 2011-04-05 | Voltaire Ltd. | Device, system, and method of accessing storage |
US9263102B2 (en) * | 2010-09-28 | 2016-02-16 | SanDisk Technologies, Inc. | Apparatus, system, and method for data transformations within a data storage device |
US9934177B2 (en) * | 2014-11-04 | 2018-04-03 | Cavium, Inc. | Methods and systems for accessing storage using a network interface card |
KR102255216B1 (ko) * | 2014-11-20 | 2021-05-24 | 삼성전자주식회사 | Pci 장치와 이를 포함하는 pci 시스템 |
US20190310964A1 (en) * | 2016-12-28 | 2019-10-10 | Intel Corporation | Speculative read mechanism for distributed storage system |
US10761752B1 (en) * | 2017-05-23 | 2020-09-01 | Kmesh, Inc. | Memory pool configuration for allocating memory in a distributed network |
CN110896406A (zh) * | 2018-09-13 | 2020-03-20 | 华为技术有限公司 | 数据存储方法、装置及服务器 |
US10592447B1 (en) * | 2018-12-28 | 2020-03-17 | EMC IP Holding Company LLC | Accelerated data handling in cloud data storage system |
CN109936513A (zh) * | 2019-02-18 | 2019-06-25 | 网宿科技股份有限公司 | 基于fpga的数据报文处理方法、智能网卡和cdn服务器 |
US10860223B1 (en) * | 2019-07-18 | 2020-12-08 | Alibaba Group Holding Limited | Method and system for enhancing a distributed storage system by decoupling computation and network tasks |
CN110908600B (zh) * | 2019-10-18 | 2021-07-20 | 华为技术有限公司 | 数据访问方法、装置和第一计算设备 |
-
2019
- 2019-10-28 CN CN201911031211.0A patent/CN112732166A/zh active Pending
-
2020
- 2020-10-07 WO PCT/CN2020/119841 patent/WO2021082877A1/zh unknown
- 2020-10-07 EP EP20881444.2A patent/EP4040279A4/en active Pending
-
2022
- 2022-04-27 US US17/730,798 patent/US20220253238A1/en active Pending
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103678201A (zh) * | 2012-09-21 | 2014-03-26 | Plx科技公司 | 具有逻辑设备能力的pci express切换器 |
CN106688217A (zh) * | 2014-03-08 | 2017-05-17 | 狄亚曼提公司 | 用于融合联网和存储的方法和系统 |
US20170149920A1 (en) * | 2015-07-08 | 2017-05-25 | Samsung Electronics Co., Ltd. | Method to implement rdma nvme device |
CN107145459A (zh) * | 2016-03-01 | 2017-09-08 | 华为技术有限公司 | 一种级联板、ssd远程共享访问的系统和方法 |
CN106210041A (zh) * | 2016-07-05 | 2016-12-07 | 杭州华为数字技术有限公司 | 一种数据写入方法及服务器端网卡 |
CN107003943A (zh) * | 2016-12-05 | 2017-08-01 | 华为技术有限公司 | NVMe over Fabric架构中数据读写命令的控制方法、存储设备和系统 |
CN107077426A (zh) * | 2016-12-05 | 2017-08-18 | 华为技术有限公司 | NVMe over Fabric架构中数据读写命令的控制方法、设备和系统 |
CN108369530A (zh) * | 2016-12-05 | 2018-08-03 | 华为技术有限公司 | 非易失性高速传输总线架构中数据读写命令的控制方法、设备和系统 |
US20190278701A1 (en) * | 2018-03-07 | 2019-09-12 | Exten Technologies, Inc. | Systems and methods for accessing non-volatile memory and write acceleration cache |
CN109117386A (zh) * | 2018-07-12 | 2019-01-01 | 中国科学院计算技术研究所 | 一种网络远程读写二级存储的系统及方法 |
CN109491809A (zh) * | 2018-11-12 | 2019-03-19 | 西安微电子技术研究所 | 一种降低高速总线延迟的通信方法 |
Also Published As
Publication number | Publication date |
---|---|
EP4040279A1 (en) | 2022-08-10 |
WO2021082877A1 (zh) | 2021-05-06 |
US20220253238A1 (en) | 2022-08-11 |
EP4040279A4 (en) | 2022-12-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107111452B (zh) | 应用于计算机系统的数据迁移方法和装置、计算机系统 | |
EP3826267B1 (en) | File sending method, file receiving method and file transceiving apparatus | |
US20160274820A1 (en) | Signal transfer device, information processing apparatus, signal transfer method, and non-transitory recording medium | |
US11314571B2 (en) | Multi-processor system with distributed mailbox architecture and communication method thereof | |
US8806071B2 (en) | Continuous read burst support at high clock rates | |
WO2015196378A1 (zh) | 读写闪存中数据的方法、装置及用户设备 | |
CN113360098A (zh) | 一种数据写入方法、装置、系统、电子设备及存储介质 | |
WO2014153931A1 (zh) | 文件存储方法、装置、访问客户端及元数据服务器系统 | |
JP2015158910A (ja) | ラップ読出しから連続読出しを行うメモリサブシステム | |
CN112817899B (zh) | 基于pcie的数据传输方法、装置、存储介质和电子设备 | |
US20220253238A1 (en) | Method and apparatus for accessing solid state disk | |
US11550504B2 (en) | System including an application processor and a data storage device providing data | |
EP4044015A1 (en) | Data processing method and apparatus | |
CN116431080B (zh) | 一种数据落盘方法、系统、设备及计算机可读存储介质 | |
US10733118B2 (en) | Computer system, communication device, and storage control method with DMA transfer of data | |
US11960419B2 (en) | Systems and methods for data prefetching for low latency data read from a remote server | |
CN109285580B (zh) | 数据预处理装置、方法及异步双端随机存取存储器系统 | |
US20140310458A1 (en) | Data transferring method and apparatus and storage system | |
CN116601616A (zh) | 一种数据处理装置、方法及相关设备 | |
CN114327248A (zh) | 存储节点、存储设备及网络芯片 | |
KR20200143922A (ko) | 메모리 카드 및 이를 이용한 데이터 처리 방법 | |
CN117312201B (zh) | 一种数据传输方法、装置及加速器设备、主机和存储介质 | |
CN113986134B (zh) | 存储数据的方法、读取数据的方法和装置 | |
JP7117674B2 (ja) | データ転送システム、及びシステムホスト | |
JP5455945B2 (ja) | 調停装置、記憶装置、情報処理装置およびプログラム |
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 |