一种NVMe网络化存储的实现方法、终端、服务器及系统技术方案

技术编号:15540425 阅读:210 留言:0更新日期:2017-06-05 10:18
本发明专利技术涉及数据传输领域,具体涉及一种NVMe网络化存储的实现方法、终端、服务器及系统。本发明专利技术实施例方法包括:终端生成非易失性存储器NVMe指令;终端通过RDMA将NVMe指令发送至服务器的SQ;当NVMe指令中指示读取数据操作时,终端通过RDMA接收服务器发送的待读取数据;或,当NVMe指令中指示写入数据操作时,终端通过RDMA向服务器发送待写入数据;终端接收服务器通过RDMA发送的NVMe完成指令;终端将NVMe完成指令写入终端的CQ。本发明专利技术实施例方案通过RDMA与NVMe的结合,将NVMe中的CQ布置在终端内,将NVMe中的SQ布置在服务器内,能减少一次NVMe操作中终端与服务器的交互次数以及降低处理CQ的复杂度,从而提高NOF的性能。

Method, terminal, server and system for realizing NVMe network storage

The invention relates to the field of data transmission, in particular to a method for realizing NVMe network storage, a terminal, a server and a system thereof. The method of the embodiment comprises a terminal generates a non-volatile memory NVMe instruction; terminal NVMe instruction will be sent to the server through the SQ RDMA; when the indicator data read operation NVMe instructions, reads the data sent through the RDMA server terminal receives the instructions; or, when NVMe refers to write data operation so that when the terminal writing data to be sent to the server through the RDMA terminal; the receiving server sent via RDMA NVMe to complete the instruction; terminal will complete NVMe instructions written to terminal CQ. Cases of solutions through a combination of RDMA and NVMe in the invention, the CQ layout in NVMe terminal, SQ layout in NVMe server, can reduce an interactive terminal and server in NVMe operation times and reduces the complexity of CQ, so as to improve the performance of NOF.

【技术实现步骤摘要】
一种NVMe网络化存储的实现方法、终端、服务器及系统
本专利技术涉及数据传输领域,具体涉及一种NVMe网络化存储的实现方法、终端、及服务器及系统。
技术介绍
传统的存储架构里,由于硬盘访问速度的局限,以往通用的串行接口(SerialAdvancedTechnologyAttachment,SATA)和串行连接小型计算机系统接口(SerialAttachedSmallComputerSystemInterface,SAS)接口完全能够满足硬盘的带宽需求,而面对闪存速度上百倍的提升,接口的带宽成为了输入输出端口(Input/Output,I/O)的最大瓶颈。AMD公司的Fusion-io的成功就直接源于其开发的专利PCIe(PeripheralComponentInterconnectExpress,PCIe)闪存卡,可以加入到服务器中进而实现对应用的加速,并达到微秒级的低访问延迟,而SATA/SAS则无论如何无法达到这个水平。因此在闪存时代,接口规范需要重大变革。从而针对PCIe接口制定的非易失性存储器(Non-volatileMemoryExpress,NVMe)标准由此应运而生。目前的NVMe是一个针对使用PCIe固态硬盘(SolidStateDrives,SSD)的企业和普通客户端系统开发的可扩展的主机控制芯片接口标准。由于基于本地存储的NVMe技术扩展比较困难,应用场景十分有限,无法发挥NVMe的高并发的优势。随着NVMe技术的进一步发展,出现了一些基于NVMe的网络化存储(NVMeoverFabric,NOF),例如将远程直接数据存取(RemoteDirectMemoryAccess,RDMA)协议与NVMe协议相结合的方式实现NOF。但是,由于仅仅将NVMe协议与RDMA协议简单进行结合,完成一次NVMe需要进行复杂的交互过程和处理过程,导致NOF的性能较差。
技术实现思路
本专利技术实施例提供了一种NVMe网络化存储的实现方法、终端、及服务器及系统,能减少一次NVMe操作中终端与服务器的交互次数以及降低处理过程复杂度,从而提高NOF的性能。有鉴于此,本专利技术实施例第一方面提供一种NVMe网络化存储的实现方法,可包括:终端生成非易失性存储器NVMe指令,NVMe指令中指示读取数据操作或写入数据操作;终端通过RDMA将NVMe指令发送至设置于服务器内的SQ;当NVMe指令中指示读取数据操作时,终端通过RDMA接收服务器发送的待读取数据;或,当NVMe指令中指示写入数据操作时,终端通过RDMA向服务器发送待写入数据;终端接收服务器通过RDMA发送的NVMe完成指令;终端将NVMe完成指令写入设置于终端内的CQ。结合第一方面,在第一方面的第一种可能的实现方式中,终端通过RDMA将NVMe指令发送至服务器的SQ可包括:终端将NVMe指令转换成RDMA支持的第一工作队列元素(WorkQueueElement,WQE);终端的第一RDMA收发模块将第一WQE发送至服务器的第二RDMA收发模块,以使得第二RDMA收发模块将第一WQE解析成NVMe指令并写入SQ。结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,若NVMe指令中指示写入数据操作,在终端通过RDMA向服务器发送待写入数据之前,该方法还可包括:终端接收服务器通过第二RDMA收发模块向第一RDMA收发模块发起的RDMA读取请求。结合第一方面的第一种可能的实现方式,在第一方面的第三种可能的实现方式中,终端接收服务器通过RDMA发送的NVMe完成指令可包括:第一RDMA收发模块接收服务器通过第二RDMA收发模块发送至第一RDMA收发模块的第二WQE;第一RDMA收发模块将第二WQE解析成NVMe完成指令。结合第一方面的第一种可能的实现方式或第一方面的第二种可能的实现方式或第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,若NVMe指令中指示读取数据操作,终端通过RDMA接收服务器发送的待读取数据具体为:第一RDMA收发模块接收第二RDMA收发模块发出的待读取数据。结合第一方面或第一方面的第一种可能的实现方式或第一方面的第二种可能的实现方式或第一方面的第三种可能的实现方式,在第一方面的第五种可能的实现方式中,所述方法还包括:所述服务器从所述SQ中读取所述NVMe指令。本专利技术实施例第二方面还提供一种NVMe网络化存储的实现方法,可包括:服务器接收终端通过RDMA发送的NVMe指令,并将该NVMe指令写入设置于服务器内的SQ,所述NVMe指令中指示读取数据操作或写入数据操作;服务器从SQ中读取该NVMe指令;当根据NVMe指令确定为读取数据操作时,服务器通过RDMA将待读取数据发送至终端;或,当根据NVMe指令确定为写入数据操作时,服务器通过RDMA接收终端发送的待写入数据;服务器生成NVMe完成指令;服务器将NVMe完成指令通过RDMA发送至终端。结合第二方面,在第二方面的第一种可能的实现方式中,服务器接收终端通过RDMA发送的NVMe指令可包括:服务器通过服务器的第二RDMA收发模块接收终端的第一RDMA收发模块发送的第一WQE;服务器将第一WQE解析成NVMe指令。结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,若根据NVMe指令确定为读取数据操作时,服务器通过RDMA将待读取数据发送至终端具体为:服务器通过第二RDMA收发模块向第一RDMA收发模块发送待读取数据。结合第二方面的第一种可能的实现方式,在第二方面的第三种可能的实现方式中,若根据NVMe指令确定为读取数据操作时,在服务器通过RDMA接收终端发送的待写入数据之前,方法还可包括:服务器通过第二RDMA收发模块向第一RDMA收发模块发起RDMA读取操作。结合第二方面的第一种可能的实现方式或第二方面的第二种可能的实现方式或第二方面的第三种可能的实现方式,在第二方面的第四种可能的实现方式中,服务器将NVMe完成指令通过RDMA发送至终端可包括:服务器将NVMe完成指令转换成RDMA支持的第二WQE;服务器通过第二RDMA收发模块将第二WQE发送至第一RDMA收发模块。本专利技术实施例第三方面还提供一种服务器,可包括:第一处理模块,用于生成非易失性存储器NVMe指令,NVMe指令中指示读取数据操作或写入数据操作;第一RDMA收发模块,用于通过RDMA将NVMe指令发送至设置于服务器内的SQ;第一RDMA收发模块还用于当NVMe指令中指示读取数据操作时,通过RDMA接收服务器发送的待读取数据;或,当NVMe指令中指示写入数据操作时,通过RDMA向服务器发送待写入数据;第一RDMA收发模块还用于接收服务器通过RDMA发送的NVMe完成指令;第一处理模块还用于将NVMe完成指令写入设置于终端内的CQ。结合第三方面,在第三方面的第一种可能的实现方式中,第一RDMA收发模块包括:第一转换单元,用于将NVMe指令转换成RDMA支持的第一工作队列元素WQE;第一收发单元,用于将第一WQE发送至服务器的第二RDMA收发模块,以第二RDMA收发模块将第一WQE解析成NVMe指令并写入SQ。结合第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中本文档来自技高网
...
一种NVMe网络化存储的实现方法、终端、服务器及系统

【技术保护点】
一种NVMe网络化存储的实现方法,其特征在于,包括:终端生成非易失性存储器NVMe指令,所述NVMe指令中指示读取数据操作或写入数据操作;所述终端通过远程直接数据存取RDMA将所述NVMe指令发送至设置于服务器内的请求队列SQ;当所述NVMe指令中指示所述读取数据操作时,所述终端通过所述RDMA接收所述服务器发送的待读取数据;或,当所述NVMe指令中指示写入数据操作时,所述终端通过所述RDMA向所述服务器发送待写入数据;所述终端接收所述服务器通过所述RDMA发送的NVMe完成指令;所述终端将所述NVMe完成指令写入设于所述终端内的完成队列CQ。

【技术特征摘要】
1.一种NVMe网络化存储的实现方法,其特征在于,包括:终端生成非易失性存储器NVMe指令,所述NVMe指令中指示读取数据操作或写入数据操作;所述终端通过远程直接数据存取RDMA将所述NVMe指令发送至设置于服务器内的请求队列SQ;当所述NVMe指令中指示所述读取数据操作时,所述终端通过所述RDMA接收所述服务器发送的待读取数据;或,当所述NVMe指令中指示写入数据操作时,所述终端通过所述RDMA向所述服务器发送待写入数据;所述终端接收所述服务器通过所述RDMA发送的NVMe完成指令;所述终端将所述NVMe完成指令写入设于所述终端内的完成队列CQ。2.根据权利要求1所述的NVMe网络化存储的实现方法,其特征在于,所述终端通过所述RDMA将所述NVMe指令发送至服务器的SQ包括:所述终端将所述NVMe指令转换成所述RDMA支持的第一工作队列元素WQE;所述终端的第一RDMA收发模块将所述第一WQE发送至所述服务器的第二RDMA收发模块,以使得所述第二RDMA收发模块将所述第一WQE解析成NVMe指令并写入SQ。3.根据权利要求2所述的NVMe网络化存储的实现方法,其特征在于,若所述NVMe指令中指示写入数据操作,在所述终端通过RDMA向所述服务器发送待写入数据之前,所述方法还包括:所述终端接收所述服务器通过所述第二RDMA收发模块向所述第一RDMA收发模块发起的RDMA读取请求。4.根据权利要求2所述的NVMe网络化存储的实现方法,其特征在于,所述终端接收所述服务器通过所述RDMA发送的NVMe完成指令包括:所述第一RDMA收发模块接收所述服务器通过所述第二RDMA收发模块发送至所述第一RDMA收发模块的第二WQE;所述第一RDMA收发模块将所述第二WQE解析成所述NVMe完成指令。5.根据权利要求2至4中任一项所述的NVMe网络化存储的实现方法,其特征在于,若所述NVMe指令中指示读取数据操作,所述终端通过RDMA接收所述服务器发送的待读取数据具体为:所述第一RDMA收发模块接收所述第二RDMA收发模块发出的所述待读取数据。6.根据权利要求1至4中任一项所述的NVMe网络化存储的实现方法,其特征在于:所述方法还包括:所述服务器从所述SQ中读取所述NVMe指令。7.一种NVMe网络化存储的实现方法,其特征在于,包括:服务器接收终端通过远程直接数据存取RDMA发送的NVMe指令,并将所述NVMe指令写入设置于所述服务器内的请求队列SQ,所述NVMe指令中指示读取数据操作或写入数据操作;所述服务器从所述SQ中读取所述NVMe指令;当根据所述NVMe指令确定为读取数据操作时,所述服务器通过所述RDMA将所述待读取数据发送至所述终端;或,当根据所述NVMe指令确定为写入数据操作时,所述服务器通过所述RDMA接收所述终端发送的待写入数据;所述服务器生成NVMe完成指令;所述服务器将所述NVMe完成指令通过所述RDMA发送至设置于所述终端的CQ。8.根据权利要求7所述的NVMe网络化存储的实现方法,其特征在于,所述服务器接收终端通过远程直接数据存取RDMA发送的NVMe指令包括:所述服务器通过所述服务器的第二RDMA收发模块接收所述终端的第一RDMA收发模块发送的第一WQE;所述服务器将所述第一WQE解析成所述NVMe指令。9.根据权利要求8所述的NVMe网络化存储的实现方法,其特征在于,若根据所述NVMe指令确定为读取数据操作时,所述服务器通过所述RDMA将所述待读取数据发送至所述终端具体为:所述服务器通过所述第二RDMA收发模块向所述第一RDMA收发模块发送待读取数据。10.根据权利要求8所述的NVMe网络化存储的实现方法,其特征在于,若根据所述NVMe指令确定为写入数据操作时,在所述服务器通过所述RDMA接收所述终端发送的待写入数据之前,所述方法还包括:所述服务器通过所述第二RDMA收发模块向所述第一RDMA收发模块发起RDMA读取操作。11.根据权利要求8至10中任一项所述的NOF的实现方法,其特征在于,所述服务器将所述NVMe完成指令通过所述RDMA发送至所述终端包括:所述服务器将所述NVMe完成指令转换成RDMA支持的第二WQE;所述服务器通过所述第二RDMA收发模块将所述第二WQE发送至所述第一RDMA收发模块。12.一种终端,其特征在于,包括:第一处理模块,用于生成非易失性存储器NVMe指令,所述NVM...

【专利技术属性】
技术研发人员:邓师平刘洪广郭海涛邱鑫
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1