数据处理方法及基于NVMe-oF协议的存储系统技术方案

技术编号:28987590 阅读:23 留言:0更新日期:2021-06-23 09:39
本公开涉及一种数据处理方法及基于NVMe‑oF协议的存储系统,应用于存储系统中的第一节点的数据处理方法包括:接收第一读写请求,其中,所述第一读写请求携带有待读写的目标数据的读写控制信息,所述读写控制信息用于确定所述目标数据的目标存储节点;确定所述第二节点为所述目标存储节点;向所述第二节点发送第二读写请求,其中,所述第二读写请求中携带有第二客户端标识信息,所述第二客户端标识信息用于对所述第二节点进行读写操作,将所述目标数据写入所述第二节点或从所述第二节点读取所述目标数据。本公开提供的方法在进行数据读写时,能够大大减少了各存储节点之间传输的数据量,降低了各存储节点间的带宽,同时也减少了数据读写的延迟。

【技术实现步骤摘要】
数据处理方法及基于NVMe-oF协议的存储系统
本公开涉及分布式文件存储
,具体涉及一种数据处理方法及基于NVMe-oF协议的存储系统。
技术介绍
在分布式存储以及双控、多控的存储中,通常通过NVMeoverFabrics(NVMe-oF)方式导出卷(划定的存储空间)给客户端,以供客户端使用。客户端可以同时从多个存储节点(简称节点)挂载同一个卷,即客户端可以访问到存储系统中的任何一个节点,并且使用多路径(multipath)实现应用的高可用性,也就是当一个节点停止工作时,其他节点仍然可以提供服务。而多路径工作模式主要分为轮询(roundrobin)、故障转移(failover)等模式。轮询可以执行存储器空间的读取以确定新的I/O(数据的写入或读取)是否可用于处理。当采用轮询模式时,客户端会根据自身需要依次将不同的I/O发送给连接到的节点,在标准协议中,客户端并不清楚数据块在什么位置,因此会产生节点间的数据转发,从而造成额外的带宽损失和延迟增加。例如,客户端同时通过NVMeoverFabricsoverRDMA连接到两个节点时,客户端通过multipath策略将数据写入到节点1,而数据块在节点2或者需要复制到节点2的情况下,需要将数据从节点1转发至节点2,由于数据需要在不同的节点间进行转发,使得各节点之间需要较多的带宽,会造成带宽损失;同时,数据在各节点之间的转发也使得数据的写入或读取存在延迟。
技术实现思路
本公开实施例提供了一种数据处理方法及基于NVMe-oF协议的存储系统,能够解决现有技术中的上述问题。根据本公开的方案之一,提供一种数据处理方法,应用于基于NVMe-oF协议的存储系统中的第一节点,所述存储系统还包括不同于所述第一节点的第二节点,所述第一节点和所述第二节点连接,所述方法包括:接收第一读写请求,其中,所述第一读写请求携带有待读写的目标数据的读写控制信息,所述读写控制信息用于确定所述目标数据的目标存储节点;确定所述第二节点为所述目标存储节点;向所述第二节点发送第二读写请求,其中,所述第二读写请求中携带有第二客户端标识信息,所述第二客户端标识信息用于对所述第二节点进行读写操作,将所述目标数据写入所述第二节点或从所述第二节点读取所述目标数据。在一些实施例中,所述读写控制信息包括待读写的所述目标数据的读写位置信息、内存密钥、内存长度、目标写入或读取偏移、数据块的类型或数据块的数量中的至少一种。在一些实施例中,确定所述第二节点为所述目标存储节点,包括:根据所述读写控制信息从预设的节点-数据块映射表中查找所述第二节点,其中,所述节点-数据块映射表包括所述存储系统中的各存储节点及对应的数据块信息;将查找出的与所述读写控制信息中的第二控制信息对应的所述第二节点确定为所述目标存储节点。在一些实施例中,所述方法还包括:基于确定的所述第二节点获取所述第二客户端标识信息;将所述第二客户端标识信息和所述读写控制信息中与所述第二节点对应的第二控制信息进行封装,生成所述第二读写请求。在一些实施例中,所述方法还包括:接收所述第二节点返回的所述目标数据的读写执行结果,其中,所述读写执行结果在所述读写操作完成后生成;将所述读写执行结果发送至客户端。在一些实施例中,所述第二节点为多个,向所述第二节点发送第二读写请求,包括:向每个所述第二节点分别发送对应的所述第二读写请求,其中,所述第二读写请求中携带有与所述第二节点对应的第二客户端标识信息以及与所述第二节点对应的第二控制信息,所述第二控制信息从所述第一读写请求携带的所述读写控制信息中获取。在一些实施例中,所述方法还包括:确定所述第一节点为所述目标存储节点;获取与所述第一节点对应的第一客户端标识信息;基于所述第一客户端标识信息,对所述第一节点进行读写操作,将所述目标数据写入所述第一节点或从所述第一节点读取目标数据。根据本公开的方案之一,还提供一种数据处理方法,应用于基于NVMe-oF协议的存储系统中的第二节点,所述存储系统还包括不同于所述第二节点的第一节点,所述第一节点和所述第二节点连接,所述方法包括:接收所述第一节点发送的第二读写请求,其中,所述第二读写请求中携带有第二客户端标识信息;基于所述第二客户端标识信息,对所述第二节点进行读写操作,将目标数据写入所述第二节点或从所述第二节点读取目标数据;其中,所述第二读写请求基于发送至所述第一节点的第一读写请求确定,所述第一读写请求中携带有待读写的目标数据的读写控制信息,所述读写控制信息用于确定所述目标数据的目标存储节点。在一些实施例中,所述方法还包括:在所述读写操作完成后,将所述目标数据的读写执行结果发送至所述第一节点。根据本公开的方案之一,还提供一种基于NVMe-oF协议的存储系统,包括第一节点和第二节点,所述第一节点与所述第二节点连接,其中,所述第一节点用于:接收第一读写请求,其中,所述第一读写请求携带有待读写的目标数据的读写控制信息,所述读写控制信息用于确定所述目标数据的目标存储节点;确定所述第二节点为所述目标存储节点;向所述第二节点发送第二读写请求,其中,所述第二读写请求中携带有第二客户端标识信息,所述第二客户端标识信息用于对所述第二节点进行读写操作,将所述目标数据写入所述第二节点或从所述第二节点读取所述目标数据;所述第二节点用于:接收所述第一节点发送的第二读写请求,其中,所述第二读写请求中携带有第二客户端标识信息;基于所述第二客户端标识信息,对所述第二节点进行读写操作,将目标数据写入所述第二节点或从所述第二节点读取目标数据;其中,所述第二读写请求基于发送至所述第一节点的第一读写请求确定,所述第一读写请求中携带有待读写的目标数据的读写控制信息,所述读写控制信息用于确定所述目标数据的目标存储节点。根据本公开的方案之一,还提供一种计算机可读存储介质,其上存储有计算机可执行指令,所述计算机可执行指令由处理器执行时,实现上述的数据处理方法。本公开的各种实施例提供的数据处理方法及基于NVMe-oF协议的存储系统,在进行数据读写时,第一节点可以基于接收的第一读写请求,在确定第二节点为目标存储节点的情况下,将用于使第二节点和客户端之间进行数据传输的第二客户端标识信息发送至第二节点,使得第二节点能够直接根据该第二客户端标识信息将客户端的目标数据写入第二节点或从第二节点读取目标数据后发送至客户端,实现目标数据在存储系统中对应节点上的快速读取。数据量较大的目标数据无需在各存储节点之间进行转发,大大减少了各存储节点之间传输的数据量,降低了各存储节点间的带宽,同时也减少了数据读写的延迟。附图说明图1示出本公开实施例的分布式存储的系统架构示意图;图2示出本公开实施例的数据处理方法的流程图;图3为本公开实施例的数据处理方法的数据(包括请求数据本文档来自技高网...

【技术保护点】
1.一种数据处理方法,应用于基于NVMe-oF协议的存储系统中的第一节点,所述存储系统还包括不同于所述第一节点的第二节点,所述第一节点和所述第二节点连接,所述方法包括:/n接收第一读写请求,其中,所述第一读写请求携带有待读写的目标数据的读写控制信息,所述读写控制信息用于确定所述目标数据的目标存储节点;/n确定所述第二节点为所述目标存储节点;/n向所述第二节点发送第二读写请求,其中,所述第二读写请求中携带有第二客户端标识信息,所述第二客户端标识信息用于对所述第二节点进行读写操作,将所述目标数据写入所述第二节点或从所述第二节点读取所述目标数据。/n

【技术特征摘要】
1.一种数据处理方法,应用于基于NVMe-oF协议的存储系统中的第一节点,所述存储系统还包括不同于所述第一节点的第二节点,所述第一节点和所述第二节点连接,所述方法包括:
接收第一读写请求,其中,所述第一读写请求携带有待读写的目标数据的读写控制信息,所述读写控制信息用于确定所述目标数据的目标存储节点;
确定所述第二节点为所述目标存储节点;
向所述第二节点发送第二读写请求,其中,所述第二读写请求中携带有第二客户端标识信息,所述第二客户端标识信息用于对所述第二节点进行读写操作,将所述目标数据写入所述第二节点或从所述第二节点读取所述目标数据。


2.根据权利要求1所述的方法,其中,所述读写控制信息包括待读写的所述目标数据的读写位置信息、内存密钥、内存长度、目标写入或读取偏移、数据块的类型或数据块的数量中的至少一种。


3.根据权利要求1所述的方法,其中,确定所述第二节点为所述目标存储节点,包括:
根据所述读写控制信息从预设的节点-数据块映射表中查找所述第二节点,其中,所述节点-数据块映射表包括所述存储系统中的各存储节点及对应的数据块信息;
将查找出的与所述读写控制信息中的第二控制信息对应的所述第二节点确定为所述目标存储节点。


4.根据权利要求3所述的方法,其中,所述方法还包括:
基于确定的所述第二节点获取所述第二客户端标识信息;
将所述第二客户端标识信息和所述读写控制信息中与所述第二节点对应的第二控制信息进行封装,生成所述第二读写请求。


5.根据权利要求1所述的方法,其中,所述方法还包括:
接收所述第二节点返回的所述目标数据的读写执行结果,其中,所述读写执行结果在所述读写操作完成后生成;
将所述读写执行结果发送至客户端。


6.根据权利要求1所述的方法,其中,所述第二节点为多个,向所述第二节点发送第二读写请求,包括:
向每个所述第二节点分别发送对应的所述第二读写请求,其中,所述第二读写请求中携带有与所述第二节点对应的第二客户端标识信息以及与所述第二节点对应的第二控制信息,所述第二控制信息从所述第一读写请求携带的所述读写控制信息中获取。


7.根据权利要求...

【专利技术属性】
技术研发人员:张胜玉
申请(专利权)人:联想北京有限公司
类型:发明
国别省市:北京;11

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

1