存储系统的数据处理方法、装置、存储系统、设备及介质与流程

1.本发明涉及计算机技术领域,具体涉及存储系统的数据处理方法、装置、存储系统、设备及介质。
背景技术:
2.分布式存储系统是由网络和存储节点组成的系统,其在客户端和服务器之间数据传输上,可以分为客户端到存储节点的网络交互,和存储节点内部网络到后端存储介质交互两个阶段。对于存储节点内部的数据流,传统的读写方法都是直接依赖主机内存,写的数据搬迁流程是网络包到主机内存,经过存储软件处理,再从主机内存写入到存储后端介质,读数据搬迁流程是从后端介质,先读入到主机内存,经过存储软件处理后,再从主机内存到网络包,发送到客户主机。
3.由于在存储系统的数据处理过程中,无法避免的需要数据从网络、主机内存、介质之间进行数据搬迁。随着介质的带宽越来越高,在高带宽负载下,数据搬迁的带宽开销,也是越来也越大,从而影响整个存储系统的性能。
技术实现要素:
4.有鉴于此,本发明提供了存储系统的数据处理方法、装置、存储系统、设备及介质,以解决现有的存储系统在数据处理过程中需要数据从网络、主机内存、介质之间进行数据搬迁,导致带宽开销大而影响存储系统性能的问题。
5.第一方面,本发明提供了一种存储系统的数据处理方法,应用于存储节点,所述存储节点包括:网卡及若干支持nvme的存储设备,所述方法包括:接收客户端发送的未携带目标数据的数据处理控制流;基于所述数据处理控制流确定所述目标数据对应的目标存储设备的逻辑地址;基于目标存储设备的逻辑地址向网卡发送所述数据处理控制流对应的数据处理指令,以控制所述网卡基于所述数据处理指令确定所述目标存储设备注册至所述网卡的缓存地址,通过所述缓存地址完成所述目标数据在所述目标存储设备的读写。
6.从而通过将用户的数据处理请求分为控制流和数据流,由存储节点中执行控制流,确定数据流对应的目标存储设备及其逻辑地址,然后存储节点通过控制流向网卡发送对应的数据处理指令引导网卡对数据流的执行,数据流通过目标存储设备的缓存地址进行目标数据的迁移,简化了传统需要依赖主机内存的数据迁移路径,实现流量网络直接到存储设备的数据迁移,通过减少内存数据搬迁对带宽资源的使用,提升存储系统的带宽性能。
7.在一种可选的实施方式中,所述基于所述数据处理控制流确定所述目标数据对应的目标存储设备的逻辑地址,包括:对所述数据处理控制流进行解析,得到所述目标数据在所述存储节点中对应的磁盘全局统计标识;基于所述磁盘全局统计标识确定目标存储设备;
获取所述目标存储设备已注册至所述网卡的逻辑地址。
8.从而通过对用户发送控制流内容的解析,确定目标数据对应的磁盘全局统计标识,并利用磁盘全局统计标识与存储设备间的对应关系确定目标存储设备,进而查询到该存储设备在网卡注册的逻辑地址,实现了存储设备及其逻辑地址的快速查询,有助于提升存储设备的读写效率。
9.在一种可选的实施方式中,在所述数据处理控制流对应写请求时,所述数据处理指令包括:目标数据的客户端写入地址及所述目标存储设备的逻辑地址,所述基于目标存储设备的逻辑地址向网卡发送所述数据处理控制流对应的数据处理指令,以控制所述网卡基于所述数据处理指令确定所述目标存储设备注册至所述网卡的缓存地址,通过所述缓存地址完成所述目标数据在所述目标存储设备的读写,包括:基于目标存储设备的逻辑地址向网卡发送所述数据处理控制流对应的数据处理指令,以控制所述网卡从所述客户端写入地址对应的空间中拉取所述目标数据,并通过直接内存访问将所述目标数据存储至所述缓存地址对应的空间;在接收到所述网卡完成所述目标数据拉取的反馈后,将所述缓存地址对应的空间中的所述目标数据写入所述逻辑地址对应的空间,完成所述目标数据在所述目标存储设备的写请求。
10.在处理用户的写操作请求时,存储节点通过控制流直接引导网卡将客户端的数据直接内存访问至目标存储设备的缓存空间,并在数据拉取完成后由存储节点通过控制流下刷缓存空间的数据到目标存储设备指定的存储位置,通过将写请求分为控制流和写数据流,实现了数据和控制的分离,在整个写处理过程中无需主机内存进行数据迁移,仅需利用存储设备设定的缓存地址,按照控制流的指引直接将用户的目标数据写入目标存储设备,简化了写操作数据迁移路径,提升了写操作的处理效率,进一步提升了存储系统的带宽性能。
11.在一种可选的实施方式中,在将所述缓存地址中的所述目标数据写入所述逻辑地址对应的空间之后,所述方法还包括:向所述客户端反馈写请求完成的应答,以使所述客户端向用户进行写完成应答,并释放客户端的写缓存。
12.从而通过存储节点在完成写操作后向客户端反馈完成结果的方式,能够有助于客户端向用户反馈写操作完成情况,并及时释放相应的写缓存,在提升客户端缓存利用率的同时,进一步提升了用户的使用体验。
13.在一种可选的实施方式中,所述数据处理指令还包括所述目标数据的数据长度,所述控制所述网卡从所述客户端写入地址对应的空间中拉取所述目标数据,包括:控制所述网卡按照所述数据长度从所述客户端写入地址对应的空间中拉取所述目标数据。
14.从而存储节点通过控制网卡通过利用目标数据的数据长度进行数据拉取,能够有效保障拉取数据的准确性。
15.在一种可选的实施方式中,在所述数据处理控制流对应读请求时,所述数据处理指令包括:目标数据的客户端读取地址及所述目标存储设备的逻辑地址,所述基于目标存储设备的逻辑地址向网卡发送所述数据处理控制流对应的数据处理指令,以控制所述网卡
基于所述数据处理指令确定所述目标存储设备注册至所述网卡的缓存地址,通过所述缓存地址完成所述目标数据在所述目标存储设备的读写,包括:从所述逻辑地址对应的空间中将所述目标数据读取到所述缓存地址对应的空间;基于目标存储设备的逻辑地址向网卡发送所述数据处理控制流对应的数据处理指令,以控制所述网卡将所述缓存地址对应的空间中的所述目标数据直接内存访问至所述网卡,并通过所述网卡将所述目标数据推送至所述客户端读取地址对应的空间,完成所述目标数据在所述目标存储设备的读请求。
16.在处理用户的读操作请求时,通过存储节点将存储设备中用户需要读取的数据先读取至存储设备对应的缓存空间中,然后通过控制流引导网卡直接将缓存空间中的目标数据推送至客户端,通过将读请求分为控制流和写数据流,实现了数据和控制的分离,在整个读处理过程中无需主机内存进行数据迁移,仅需利用存储设备设定的缓存地址,按照控制流的指引直接将目标存储设备中用户需要读取的目标数据推送至客户端,简化了读操作数据迁移路径,提升了读操作的处理效率,进一步提升了存储系统的带宽性能。
17.在一种可选的实施方式中,所述方法还包括:在接收到所述网卡完成所述目标数据推送的反馈后,向所述客户端反馈读请求完成的应答,以使所述客户端将所述目标数据返回给用户,并向用户进行读完成应答,释放客户端的读缓存。
18.从而通过存储节点在完成读操作后向客户端反馈完成结果的方式,能够有助于客户端向用户反馈读操作完成情况,并及时释放相应的读缓存,在提升客户端缓存利用率的同时,进一步提升了用户的使用体验。
19.在一种可选的实施方式中,所述数据处理指令还包括所述目标数据的数据长度,所述从所述逻辑地址对应的空间中将所述目标数据读取到所述缓存地址对应的空间,包括:按照所述数据长度从所述逻辑地址对应的空间中将所述目标数据读取到所述缓存地址对应的空间。
20.从而存储节点通过利用目标数据的数据长度进行数据读取,能够有效保障拉取数据的准确性。
21.在一种可选的实施方式中,所述方法还包括:获取所有存储设备的内存,并将每个存储设备的内存映射到地址空间,确定每个存储设备的逻辑地址;分别将每个存储设备的逻辑地址中的部分逻辑地址配置为该存储设备的缓存地址;将每个存储设备的逻辑地址和缓存地址注册至所述网卡,以使所述网卡基于存储设备的逻辑地址查询其对应的缓存地址。
22.从而存储节点通过对所有存储设备的内存进行地址空间映射的方式完成存储设备内存共享池的初始化,并为每一个存储设备配置相应的缓存地址,完成存储设备共享缓存空间的初始化,通过将存储设备逻辑地址和缓存地址在网卡主进行注册,使得网卡建立存储设备与设备内存及缓存空间的映射,以便于实现网卡与存储设备缓存空间之间的数据搬迁。
23.在一种可选的实施方式中,在基于目标存储设备的逻辑地址向网卡发送所述数据处理控制流对应的数据处理指令之前,所述方法还包括:获取所述目标存储设备的缓存地址对应的当前剩余空间;判断所述当前剩余空间是否满足所述目标数据的存储空间需求;在所述当前剩余空间满足所述目标数据的存储空间需求时,执行基于目标存储设备的逻辑地址向网卡发送所述数据处理控制流对应的数据处理指令的步骤。
24.从而通过在执行用户的读写操作时,通过判断目标存储设备的剩余缓存空间是否可以完成目标数据的存储要求,如果满足则可以直接进相应的读写操作,保障了目标数据在搬迁过程中的完整性。
25.在一种可选的实施方式中,所述方法还包括:在所述当前剩余空间不满足所述目标数据的存储空间需求时,进行等待,并返回获取所述目标存储设备的缓存地址中当前剩余空间的步骤,直至所述目标存储设备的缓存地址中当前剩余空间释放至满足所述目标数据的存储空间需求。
26.当在执行用户的读写操作时,如果目标存储设备的剩余缓存空间无法满足目标数据的存储要求,则进行等待,直至目标设备的缓存空间释放至可以完整存储目标数据时,再执行对该目标数据的读写操作,保证目标数据在数据搬迁过程中的完整性。
27.第二方面,本发明提供了一种存储系统的数据处理方法,应用于存储节点中的网卡,所述存储节点包括:网卡及若干支持nvme的存储设备,所述方法包括:接收存储节点发送的数据处理指令,所述数据处理指令为所述存储节点在接收到客户端发送的未携带目标数据的数据处理控制流后,基于所述数据处理控制流确定所述目标数据对应的目标存储设备的逻辑地址,并基于目标存储设备的逻辑地址生成的所述数据处理控制流对应的数据处理指令;基于所述数据处理指令确定所述目标存储设备注册的缓存地址,通过所述缓存地址完成所述目标数据在所述目标存储设备的读写。
28.从而通过将用户的数据处理请求分为控制流和数据流,网卡在存储节点控制流的引导下,通过利用目标存储设备对应的缓存空间,执行数据流的数据搬迁,简化了传统需要依赖主机内存的数据迁移路径,实现流量网络直接到存储设备的数据迁移,通过减少内存数据搬迁对带宽资源的使用,提升存储系统的带宽性能。
29.在一种可选的实施方式中,在所述数据处理控制流对应写请求时,所述数据处理指令包括:目标数据的客户端写入地址及所述目标存储设备的逻辑地址,所述基于所述数据处理指令确定所述目标存储设备注册的缓存地址,通过所述缓存地址完成所述目标数据在所述目标存储设备的读写,包括:对所述数据处理指令进行解析,确定所述目标存储设备的逻辑地址,并基于所述逻辑地址确定所述目标存储设备注册的缓存地址;从所述客户端写入地址对应的空间中拉取所述目标数据,并通过直接内存访问将所述目标数据存储至所述缓存地址对应的空间;向所述存储节点发送完成所述目标数据拉取的反馈,以使所述存储节点将所述缓存地址对应的空间中的所述目标数据写入所述逻辑地址对应的空间,完成所述目标数据在所述目标存储设备的写请求。
30.在处理用户的写操作请求时,网卡在存储节点控制流的引导下通过利用目标存储设备在网卡上注册的缓存地址,将客户端的数据直接内存访问至目标存储设备的缓存空间,并在数据拉取完成后向存储节点进行反馈,以便于存储节点将缓存空间的数据下刷至目标存储设备的指定存储位置,通过将写请求分为控制流和写数据流,实现了数据和控制的分离,在整个写处理过程中无需主机内存进行数据迁移,仅需利用存储设备设定的缓存地址,网卡按照控制流的指引直接将用户的目标数据写入目标存储设备,简化了写操作数据迁移路径,提升了写操作的处理效率,进一步提升了存储系统的带宽性能。
31.在一种可选的实施方式中,所述数据处理指令还包括所述目标数据的数据长度,所述从所述客户端写入地址对应的空间中拉取所述目标数据,包括:按照所述数据长度从所述客户端写入地址对应的空间中拉取所述目标数据。
32.从而网卡通过利用目标数据的数据长度进行数据拉取,能够有效保障拉取数据的准确性。
33.在一种可选的实施方式中,在所述数据处理控制流对应读请求时,所述数据处理指令包括:目标数据的客户端读取地址及所述目标存储设备的逻辑地址,所述基于所述数据处理指令确定所述目标存储设备注册的缓存地址,通过所述缓存地址完成所述目标数据在所述目标存储设备的读写,包括:对所述数据处理指令进行解析,确定所述目标存储设备的逻辑地址,并基于所述逻辑地址确定所述目标存储设备注册的缓存地址;将所述缓存地址对应的空间中的目标数据直接内存访问至网卡,并将所述目标数据推送至所述客户端读取地址对应的空间,所述目标数据为所述存储节点从所述逻辑地址对应的空间中读取到所述缓存地址对应的空间的目标数据,完成所述目标数据在所述目标存储设备的读请求。
34.在处理用户的读操作请求时,网卡在存储节点控制流的引导下通过利用目标存储设备在网卡上注册的缓存地址,将存储节点从目标存储设备中读取至缓存空间的目标数据推送至客户端,通过将读请求分为控制流和写数据流,实现了数据和控制的分离,在整个读处理过程中无需主机内存进行数据迁移,仅需利用存储设备设定的缓存地址,网卡按照控制流的指引直接将目标存储设备中用户需要读取的目标数据推送至客户端,简化了读操作数据迁移路径,提升了读操作的处理效率,进一步提升了存储系统的带宽性能。
35.在一种可选的实施方式中,所述基于所述逻辑地址确定所述目标存储设备注册的缓存地址,包括:查询所述逻辑地址对应的目标存储设备,并获取所述目标存储设备已注册的缓存地址。
36.网卡通过存储设备逻辑地址与设备的映射关系,确定目标存储设备,然后查询目标存储设备在网卡上对应注册的缓存地址,通过利用网卡上事先注册的存储设备缓存地址,以便于实现网卡与存储设备缓存空间之间的数据搬迁,有助于提高读写效率。
37.在一种可选的实施方式中,在将所述目标数据推送至所述客户端读取地址对应的空间后,所述方法还包括:向所述存储节点发送完成所述目标数据推送的反馈,以使所述存储节点在接收到该反馈后,向所述客户端反馈读请求完成的应答。
38.从而网卡在完成用户读操作对应数据的推送后,通过向存储节点进行完成结果反馈的方式,便于存储节点向客户端反馈读操作执行情况,便于客户端进行后续操作,提升用户的使用体验。
39.第三方面,本发明提供了一种存储系统的数据处理装置,应用于存储节点,所述存储节点包括:网卡及若干支持nvme的存储设备,所述装置包括:第一接收模块,用于接收客户端发送的未携带目标数据的数据处理控制流;第一处理模块,用于基于所述数据处理控制流确定所述目标数据对应的目标存储设备的逻辑地址;第二处理模块,用于基于目标存储设备的逻辑地址向网卡发送所述数据处理控制流对应的数据处理指令,以控制所述网卡基于所述数据处理指令确定所述目标存储设备注册至所述网卡的缓存地址,通过所述缓存地址完成所述目标数据在所述目标存储设备的读写。
40.第四方面,本发明提供了一种存储系统的数据处理装置,应用于存储节点中的网卡,所述存储节点包括:网卡及若干支持nvme的存储设备,所述装置包括:第二接收模块,用于接收存储节点发送的数据处理指令,所述数据处理指令为所述存储节点在接收到客户端发送的未携带目标数据的数据处理控制流后,基于所述数据处理控制流确定所述目标数据对应的目标存储设备的逻辑地址,并基于目标存储设备的逻辑地址生成的所述数据处理控制流对应的数据处理指令;第三处理模块,用于基于所述数据处理指令确定所述目标存储设备注册的缓存地址,通过所述缓存地址完成所述目标数据在所述目标存储设备的读写。
41.第五方面,本发明提供了.一种存储系统,所述存储系统包括:至少一存储节点,每个存储节点包括:网卡及若干支持nvme的存储设备,所述存储节点用于接收客户端发送的未携带目标数据的数据处理控制流,基于所述数据处理控制流确定所述目标数据对应的目标存储设备的逻辑地址,并基于目标存储设备的逻辑地址向网卡发送所述数据处理控制流对应的数据处理指令;所述网卡用于接收所述存储节点发送的数据处理指令,并基于所述数据处理指令确定所述目标存储设备注册的缓存地址;所述存储节点和所述网卡通过所述缓存地址完成所述目标数据在所述目标存储设备的读写。
42.从而通过将用户的数据处理请求分为控制流和数据流,由存储节点执行控制流,确定数据流对应的目标存储设备及其逻辑地址,然后存储节点通过控制流向网卡发送对应的数据处理指令引导网卡对数据流的执行,网卡执行的数据流通过目标存储设备的缓存地址进行目标数据的迁移,简化了传统需要依赖主机内存的数据迁移路径,实现流量网络直接到存储设备的数据迁移,通过减少内存数据搬迁对带宽资源的使用,提升存储系统的带宽性能。
43.第六方面,本发明提供了一种电子设备,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述第一方面或其任意一种可选实施方式的存储系统的数据处理方法,或者,执行上述第二方面或其任意一种可选实施方式的存储系统的数据处理方法。
44.第七方面,本发明提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,计算机指令用于使计算机执行上述第一方面或其任意一种可选实施方式的存储系统的数据处理方法,或者,执行上述第二方面或其任意一种可选实施方式的存储系统的数据处理方法。
附图说明
45.为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
46.图1a是现有技术中存储节点的数据读写过程示意图;图1b是现有技术中存储节点的另一数据读写过程示意图;图2是根据本发明实施例的存储系统的结构示意图;图3是根据本发明实施例的存储节点实现数据读写的过程示意图;图4是根据本发明实施例的存储节点与客户端的交互流程示意图;图5是根据本发明实施例的存储节点与客户端的另一交互流程的流程示意图;图6是根据本发明实施例的存储节点与客户端的又一交互流程的流程示意图;图7是根据本发明实施例的基于数控分离的写流程的应用示例图;图8是根据本发明实施例的基于数控分离的读流程的应用示例图;图9是根据本发明实施例的存储系统的数据处理装置的结构框图;图10是根据本发明实施例的另一存储系统的数据处理装置的结构框图;图11是本发明实施例的电子设备的硬件结构示意图。
具体实施方式
47.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
48.首先,对本发明实施例所使用到的部分专业术语进行解释:dma,直接内存访问(direct memory access)是一些计算机总线架构提供的功能,它能使数据从附加设备(如磁盘驱动器)直接发送到计算机主板的内存上。
49.rdma,是remote direct memory access的缩写,意思是远程直接数据存取。
50.lba,是logical block addresss的缩写,意思是逻辑区块地址简称逻辑地址。
51.东西向流量,不同服务器之间的流量与数据中心或不同数据中心之间的网络流被称为东西流量。简而言之,东西流量是server-server流量,在分布式存储系统里是指跨节点的数据流。
52.南北向流量,客户端和服务器之间的流量被称为南北流量。简而言之,南北流量是server-client流量。
53.nvm控制器,主机和非易失性存储器(non-volatile memory,简称nvm)子系统的接
口。
54.主机内存,主机存储器可以在主机内部或外部实现(例如,由既不是主机也不是控制器的设备的存储器区域),由主机和控制器读取和写入并且不由控制器的存储器(即,控制器存储器缓冲区或持久存储器区域)。
55.kernel bypass:内核旁路是一种绕过linux内核(tcpip协议栈)的技术,不使用linux内核子系统的功能,从用户空间直接访问和控制设备内存,避免数据从设备拷贝到内核,再从内核拷贝到用户空间。
56.存储设备,是指支持非易失性内存主机控制器接口规范(nonvolatile memory express,简称nvme)的存储固态盘、磁盘等存储设备。
57.分布式存储系统是由网络和存储节点组成的系统,其在南北向io栈上,可以分为客户端到存储节点的网络交互,和存储节点内部网络接受到后端存储介质两个阶段。存储节点内部的数据流,传统的读写方法,都是直接依赖主机内存,简单说写的数据搬迁流程是网络包到主机内存,经过软件处理,再从主机内存写入到存储后端介质,例如nvme ssd; 读数据搬迁流程是从后端介质,先读入到主机内存,经过处理后,再从主机内存到网络包,发送到客户主机。
58.业内存储系统多使用rdma、roce等网络技术,虽然可以减少网络数据在os内核和用户态切换的开销,也就是经常说的内核旁路(kernel bypass),但其数据流还是网络到主机内存的数据迁移,在存储系统的数据处理过程,无法避免的需要数据从网络、主机内存、介质之间进行数据搬迁。
59.如图1a所示,在现有技术中存储节点进行数据读写的实现过程为:(1)网络数据接受,网卡将网络报文数据dma到主机内核态内存空间。
60.(2)存储软件收取用户请求和数据,从内核态地址空间拷贝迁移数据到存储软件进程的地址空间。
61.(3)存储软件进程进行io的处理,基于用户请求进行寻址、io等处理;将用户数据从用户态空间迁移到存储设备内存空间(缓存)。
62.(4)用户请求应答。
63.如图1b所示,在现有技术中存储节点进行数据读写的另一实现过程为:(1)网络数据接受,网卡将网络报文数据rdma到存储软件进程的内存空间(网络到内存)。
64.(2)存储软件进程进行io的处理,基于用户请求进行寻址、io等处理;将用户数据从用户态空间迁移到存储设备内存空间(内核到设备缓存)。
65.(3)用户请求应答。
66.随着pcie和介质的带宽越来越高,高带宽负载下,数据搬迁的开销,也是越来也成为资源瓶颈,针对存储节点内部的网络交互,由于传统的存储系统无法避免网络、主机内存和介质的之间的数据搬迁,本发明通过将用户请求,分为控制流和数据流,控制流由存储软件执行,数据流由网卡执行,存储软件通过控制流引导网卡执行数据流,数据流简化了传统的数据迁移路径,实现了网络直接到存储设备,本发明这种数控分离的读写方案,通过减少数据搬迁路径和内存数据搬迁,提升存储系统的性能。
67.图2为本发明实施例的存储系统的结构示意图,如图2所示,该存储系统包括:多个
存储节点201,每个存储节点201包括:网卡22及若干支持nvme的存储设备23。需要说明的是,在本发明实施例中是以存储系统包括两个存储节点201为例进行的说明,在实际应用中,存储系统的存储节点201数量可以是一个也可两个及以上,可根据具体存储系统的设计方案进行灵活设置,另外,每个存储节点201中包括存储设备23的数量也可以根据存储节点201的设计需要进行灵活的设置,本发明并不以此为限。
68.示例性地,本发明实施例中所提到的存储系统为分布式存储系统,在实际应用中,该存储系统也可以是集中式存储系统。存储节点201为服务器等具有网卡22以及若干存储设备23的设备,在实际应用中,如图2所示,存储节点201还包括进程21,进程21用于实现存储节点201的数据处理功能,下文中所提到的存储节点的数据处理过程均由进程21执行,通过进程21通过与网卡22进行交互执行数据处理过程。此外,需要说明的是,在本发明实施例中,所提到的存储软件是存储节点201上进程21的简称,在本发明实施例中,存储软件、进程以及存储节点三者描述含义相同。上述存储设备23包括:支持nvme的存储固态盘、磁盘等,本发明并不以此为限。
69.对于在同一存储节点201进程21和网卡22,二者执行数据处理过程如下:存储节点201上的进程21用于接收客户端发送的未携带目标数据的数据处理控制流,基于数据处理控制流确定目标数据对应的目标存储设备的逻辑地址,并基于目标存储设备的逻辑地址向网卡22发送数据处理控制流对应的数据处理指令。
70.网卡22用于接收进程21发送的数据处理指令,并基于数据处理指令确定目标存储设备23注册的缓存地址。
71.进程21和网卡22通过缓存地址完成目标数据在目标存储设备的读写。
72.如图3所示,本发明实施例的存储节点201实现数据读写的实现过程为:(1)进程21即存储软件接收到用户控制流请求,基于用户请求进行寻址、io等处理。
73.(2)控制流请求(不带数据)完成后,基于(1)的处理结构,触发数据流。
74.(3)在存储软件控制流的引导下数据流直接将数据从网卡22写入到存储设备23。
75.(4)数据流完成后,触发控制流的用户请求应答。
76.(5)用户请求应答。
77.关于进程21和网卡22进行数据处理的具体工作过程参见下文实施例的描述,在此不再进行赘述。
78.从而通过将用户的数据处理请求分为控制流和数据流,由存储软件执行控制流,确定数据流对应的目标存储设备及其逻辑地址,然后存储软件通过控制流向网卡发送对应的数据处理指令引导网卡对数据流的执行,网卡执行的数据流通过目标存储设备的缓存地址进行目标数据的迁移,简化了传统需要依赖主机内存的数据迁移路径,实现流量网络直接到存储设备的数据迁移,通过减少内存数据搬迁对带宽资源的使用,提升存储系统的带宽性能。
79.根据本发明实施例,提供了一种存储系统的数据处理方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
80.在本实施例中提供了一种存储系统的数据处理方法,该存储系统的数据处理方法应用于如图2所示的存储节点201中的进程21和网卡22,图4是根据本发明实施例的存储节点201与客户端202的交互流程示意图,其中,进程21用于执行步骤s101至步骤s103,网卡22用于执行步骤s201至步骤s202,存储节点201与客户端202的具体交互过程如下:步骤s101,接收客户端发送的未携带目标数据的数据处理控制流。
81.具体地,通过将用户的数据处理请求分为数据面和控制面,数据面io流和控制面io流,分开传输,走不通的逻辑和路径,简称数控分离。存储软件接收的数据处理控制流即为控制面io流也称为控制流,客户端通过网络将不带数据的控制流以报文的形式发送至存储软件,在控制流中包括:请求中的目的逻辑地址、数据地址、数据长度,计算目的设备,以及多个请求的互斥和请求合并等与存储软件相关的控制信息。
82.在本发明实施例中,客户写io控制流请求(不带数据)由客户端通过网卡22传输到存储软件,数据处理控制流包括:写控制流和读控制流,分别对应用户的写请求和读请求。
83.步骤s102,基于数据处理控制流确定目标数据对应的目标存储设备的逻辑地址。
84.具体地,存储软件执行控制流通过分布计算得到数据的目标存储设备及其对应的lba,简单说就是数据将要落入哪个存储设备或者数据将要从哪个存储设备读取。
85.步骤s103,基于目标存储设备的逻辑地址向网卡发送数据处理控制流对应的数据处理指令。
86.具体地,该数据处理指令包括:数据地址、数据长度、目标存储设备逻辑地址等信息,其中当用户的数据处理请求为写请求时,该数据地址为待写入数据的存储地址,当用户的数据处理请求为读请求时,该数据地址为待读取数据读取后在客户端的存储地址,以引导网卡根据数据处理指令进行数据流操作。
87.步骤s201,接收存储节点发送的数据处理指令。
88.步骤s202,基于数据处理指令确定目标存储设备注册的缓存地址,通过缓存地址完成目标数据在目标存储设备的读写。
89.具体地,网卡在存储软件的控制流引导下利用直接与存储设备的缓存空间的数据搬迁,无需使用主机内存,避免了数据流需要从主机内存进行中转。
90.从而通过将用户的数据处理请求分为控制流和数据流,由存储软件执行控制流,确定数据流对应的目标存储设备及其逻辑地址,然后存储软件通过控制流向网卡发送对应的数据处理指令引导网卡对数据流的执行,数据流通过目标存储设备的缓存地址进行目标数据的迁移,简化了传统需要依赖主机内存的数据迁移路径,实现流量网络直接到存储设备的数据迁移,通过减少内存数据搬迁对带宽资源的使用,提升存储系统的带宽性能。
91.在本实施例中还提供了一种存储系统的数据处理方法,该存储系统的数据处理方法应用于如图2所示的存储节点201中的进程21和网卡22,图5是根据本发明实施例的存储节点201与客户端202的交互流程示意图,其中,进程21用于执行步骤s301至步骤s305,网卡22用于执行步骤s401至步骤s404,存储节点201与客户端202的具体交互过程如下:步骤s301,接收客户端发送的未携带目标数据的数据处理控制流。详细内存参见如图4所示步骤s101的相关描述,在此不再进行赘述。
92.其中,在本发明实施例中是以该数据处理控制流对应写请求为例进行的说明。
93.步骤s302,基于数据处理控制流确定目标数据对应的目标存储设备的逻辑地址。
94.具体地,上述步骤s302包括:步骤a1,对数据处理控制流进行解析,得到目标数据在存储节点中对应的磁盘全局统计标识。
95.其中,磁盘全局统计标识为数据在存储节点中对应的读取或写入的位置标识,此为现有技术,在此不再进行赘述。
96.步骤a2,基于磁盘全局统计标识确定目标存储设备。
97.具体地,不同存储设备对应的磁盘全局统计标识不同,因此可以通过查询磁盘全局统计标识确定用户读写请求中数据对应的目标存储设备。
98.步骤a3,获取目标存储设备已注册至网卡的逻辑地址。
99.具体地,存储软件事先将存储节点中的各个存储设备在网卡进行逻辑地址的注册,以通过网卡的网络实现存储设备与外部设备的数据交互,存储软件将存储设备的逻辑地址注册至网卡本身为现有技术,在此不再进行赘述。
100.从而通过对用户发送控制流内容的解析,确定目标数据对应的磁盘全局统计标识,并利用磁盘全局统计标识与存储设备间的对应关系确定目标存储设备,进而查询到该存储设备在网卡注册的逻辑地址,实现了存储设备及其逻辑地址的快速查询,有助于提升存储设备的读写效率。
101.步骤s303,基于目标存储设备的逻辑地址向网卡发送数据处理控制流对应的数据处理指令。
102.具体地,在数据处理控制流对应写请求时,数据处理指令包括:目标数据的客户端写入地址及目标存储设备的逻辑地址。此外,在实际应用中,上述数据处理指令还包括目标数据的数据长度,以控制网卡按照数据长度从客户端写入地址对应的空间中拉取目标数据。从而存储软件通过控制网卡通过利用目标数据的数据长度进行数据拉取,能够有效保障拉取数据的准确性。
103.步骤s401,接收存储节点发送的数据处理指令。
104.步骤s402,对数据处理指令进行解析,确定目标存储设备的逻辑地址,并基于逻辑地址确定目标存储设备注册的缓存地址。
105.具体地,由于数据处理指令在存储软件和网关之间是以报文的形式传递的,因此,网关可以通过对数据处理指令报文进行解析的方式得到目标存储设备的逻辑地址。查询逻辑地址对应的目标存储设备,并获取目标存储设备已注册的缓存地址。每个存储设备在网卡上均注册有相应的缓存地址,基于网卡上注册的存储设备逻辑地址与设备及其对应缓存地址的映射关系,即可查询到目标设备在网卡注册的缓存地址。
106.步骤s403,从客户端写入地址对应的空间中拉取目标数据,并通过直接内存访问将目标数据存储至缓存地址对应的空间。
107.具体地,上述数据处理指令还包括目标数据的数据长度,网卡可按照数据长度从客户端写入地址对应的空间中拉取目标数据。从而网卡通过利用目标数据的数据长度进行数据拉取,能够有效保障拉取数据的准确性。网卡可直接使用peer2peer dma将从客户端拉取的网络数据dma到存储设备的缓存。
108.网卡通过对用户发送控制流内容的解析,确定目标数据对应的磁盘全局统计标识,并利用磁盘全局统计标识与存储设备间的对应关系确定目标存储设备,进而查询到该
存储设备在网卡注册的逻辑地址,实现了存储设备及其逻辑地址的快速查询,有助于提升存储设备的读写效率。
109.步骤s404,向存储节点发送完成目标数据拉取的反馈。
110.具体地,网卡可通过向存储软件发送指定的应答报文的方式,来告知存储软件写操作对应的数据已经存储至存储设备的缓存空间,从而便于存储软件将缓存空间的数据下刷至目标存储设备的指定存储位置,完成写操作。
111.步骤s304,在接收到网卡完成目标数据拉取的反馈后,将缓存地址对应的空间中的目标数据写入逻辑地址对应的空间,完成目标数据在目标存储设备的写请求。
112.具体地,在控制流启动网络收数据流。 以控制流中的数据地址为源数据,网卡从远端客户缓存直接将数据写入目的存储设备的缓存地址空间,数据流完成拉取数据后,通过调用nvme 写指令,将缓存数据下刷到目标存储设备持久化保存。nvme指令写,使用了该nvme设备的共享缓存,不需要进行数据的迁移。
113.在处理用户的写操作请求时,存储软件通过控制流直接引导网卡将客户端的数据直接内存访问至目标存储设备的缓存空间,并在数据拉取完成后由存储软件通过控制流下刷缓存空间的数据到目标存储设备指定的存储位置,通过将写请求分为控制流和写数据流,实现了数据和控制的分离,在整个写处理过程中无需主机内存进行数据迁移,仅需利用存储设备设定的缓存地址,按照控制流的指引直接将用户的目标数据写入目标存储设备,简化了写操作数据迁移路径,提升了写操作的处理效率,进一步提升了存储系统的带宽性能。
114.步骤s305,向客户端反馈写请求完成的应答,以使客户端向用户进行写完成应答,并释放客户端的写缓存。
115.具体地,存储软件的控制流通过报文的形式向客户端返回写入成功。
116.从而通过存储软件在完成写操作后向客户端反馈完成结果的方式,能够有助于客户端向用户反馈写操作完成情况,并及时释放相应的写缓存,在提升客户端缓存利用率的同时,进一步提升了用户的使用体验。
117.在本实施例中还提供了一种存储系统的数据处理方法,该存储系统的数据处理方法应用于如图2所示的存储节点201中的进程21和网卡22,图6是根据本发明实施例的存储节点201与客户端202的交互流程示意图,其中,进程21用于执行步骤s501至步骤s505,网卡22用于执行步骤s601至步骤s604,存储节点201与客户端202的具体交互过程如下:步骤s501,接收客户端发送的未携带目标数据的数据处理控制流。详细内存参见如图5所示步骤s301的相关描述,在此不再进行赘述。
118.其中,在本发明实施例中是以该数据处理控制流对应读请求为例进行的说明。
119.步骤s502,基于数据处理控制流确定目标数据对应的目标存储设备的逻辑地址。详细内存参见如图5所示步骤s302的相关描述,在此不再进行赘述。
120.步骤s503,从逻辑地址对应的空间中将目标数据读取到缓存地址对应的空间。
121.具体地,存储软件按照数据长度从逻辑地址对应的空间中将目标数据读取到缓存地址对应的空间。从而存储软件通过利用目标数据的数据长度进行数据读取,能够有效保障拉取数据的准确性。
122.步骤s504,基于目标存储设备的逻辑地址向网卡发送数据处理控制流对应的数据
处理指令。
123.具体地,在数据处理控制流对应读请求时,数据处理指令包括:目标数据的客户端读取地址及目标存储设备的逻辑地址。此外,在实际应用中,上述数据处理指令还包括目标数据的数据长度。步骤s601,接收存储节点发送的数据处理指令。
124.步骤s602,对数据处理指令进行解析,确定目标存储设备的逻辑地址,并基于逻辑地址确定目标存储设备注册的缓存地址。
125.具体地,网卡通过查询逻辑地址对应的目标存储设备,并获取目标存储设备已注册的缓存地址。详细内容参加如图5所示步骤s402的相关描述,在此不再进行赘述。
126.步骤s603,将缓存地址对应的空间中的目标数据直接内存访问至网卡,并将目标数据推送至客户端读取地址对应的空间。
127.具体地,网卡直接使用peer2peer dma将存储设备缓存中的数据dma到网卡。
128.在处理用户的读操作请求时,网卡在存储软件控制流的引导下通过利用目标存储设备在网卡上注册的缓存地址,将存储软件从目标存储设备中读取至缓存空间的目标数据推送至客户端,通过将读请求分为控制流和写数据流,实现了数据和控制的分离,在整个读处理过程中无需主机内存进行数据迁移,仅需利用存储设备设定的缓存地址,网卡按照控制流的指引直接将目标存储设备中用户需要读取的目标数据推送至客户端,简化了读操作数据迁移路径,提升了读操作的处理效率,进一步提升了存储系统的带宽性能。
129.步骤s604,向存储节点发送完成目标数据推送的反馈,以使存储软件在接收到该反馈后,向客户端反馈读请求完成的应答。
130.具体地,网卡可通过报文的形式向存储软件发送数据推送完成的应答报文。
131.步骤s505,在接收到网卡完成目标数据推送的反馈后,向客户端反馈读请求完成的应答,以使客户端将目标数据返回给用户,并向用户进行读完成应答,释放客户端的读缓存。
132.具体地,可通过应答报文的方式将完成写请求的结果发送给客户端。客户端直接将客户端读取地址即客户端的读缓存中的目标数据返回给用户app,并通过用户app提示用户数据读取完成,进而对客户端的读缓存进行释放,以解除客户端缓存的占用。
133.从而通过存储软件在完成读操作后向客户端反馈完成结果的方式,能够有助于客户端向用户反馈读操作完成情况,并及时释放相应的读缓存,在提升客户端缓存利用率的同时,进一步提升了用户的使用体验。
134.综上,存储节点在实现用户io的读处理的整体过程为:客户读io的控制流请求通过客户端传输到存储软件,存储软件接收到某nvme设备的读控制流,在共享缓存申请指定设备的空闲缓存地址,并使用申请的共享缓存地址向网卡下发nvme设备的读指令,将存储设备中的数据放入缓存,由于读缓存为共享缓存,控制流启动网卡推送数据流,可以直接被网卡读取。以控制流中的目的数据地址为目标,将存储设备缓存数据,直接推向远端客户端缓存。在数据流推送完成后,向客户端返回控制流读成功。
135.在一些可选的实施方式中,存储软件在接收客户端的读写控制流之前,还用于执行如下步骤:步骤b1,获取所有存储设备的内存,并将每个存储设备的内存映射到地址空间,确
定每个存储设备的逻辑地址。
136.具体地,存储软件通过把nvme 设备的内存,通过mmap映射到用户态存储软件进程的一段地址,确定每个存储设备的逻辑地址。
137.步骤b2,分别将每个存储设备的逻辑地址中的部分逻辑地址配置为该存储设备的缓存地址。
138.具体地,通过将存储设备的逻辑地址中当前空闲的部分地址作为缓存地址,也称为共享缓存地址,用于与网卡之间进行数据搬迁。
139.步骤b3,将每个存储设备的逻辑地址和缓存地址注册至网卡,以使网卡基于存储设备的逻辑地址查询其对应的缓存地址。具体注册过程为现有技术,在此不再进行赘述。
140.从而存储软件通过对所有存储设备的内存进行地址空间映射的方式完成存储设备内存共享池的初始化,并为每一个存储设备配置相应的缓存地址,完成存储设备共享缓存空间的初始化,通过将存储设备逻辑地址和缓存地址在网卡主进行注册,使得网卡建立存储设备与设备内存及缓存空间的映射,以便于实现网卡与存储设备缓存空间之间的数据搬迁。
141.在一些可选的实施方式中,存储软件在基于目标存储设备的逻辑地址向网卡发送数据处理控制流对应的数据处理指令之前,还包括如下步骤:步骤c1,获取目标存储设备的缓存地址对应的当前剩余空间。
142.步骤c2,判断当前剩余空间是否满足目标数据的存储空间需求。
143.具体地,通过判断目标存储设备缓存空间的剩余空间是否大于目标数据量所占存储空间的大小。
144.步骤c3,在当前剩余空间满足目标数据的存储空间需求时,执行基于目标存储设备的逻辑地址向网卡发送数据处理控制流对应的数据处理指令的步骤。
145.从而通过在执行用户的读写操作时,通过判断目标存储设备的剩余缓存空间是否可以完成目标数据的存储要求,如果满足则可以直接进相应的读写操作,保障了目标数据在搬迁过程中的完整性。
146.步骤c4,在当前剩余空间不满足目标数据的存储空间需求时,进行等待,并返回获取目标存储设备的缓存地址中当前剩余空间的步骤,直至目标存储设备的缓存地址中当前剩余空间释放至满足目标数据的存储空间需求。
147.当在执行用户的读写操作时,如果目标存储设备的剩余缓存空间无法满足目标数据的存储要求,则进行等待,直至目标设备的缓存空间释放至可以完整存储目标数据时,再执行对该目标数据的读写操作,保证目标数据在数据搬迁过程中的完整性。
148.下面将结合具体应用示例,对本发明实施例提供的存储系统的数据处理方法的工作原理及工作过程进行详细的说明。
149.应用本发明实施例提供的存储系统的数据处理方法建立一种数控分离存储系统的读写方案,通过将用户请求分为控制流和数据流,控制流引导数据流实现网络到存储设备内存的数据迁移,减少网络、主机内存和介质的之间的数据搬迁。
150.本发明通过将存储系统处理io的持久化到存储设备的流程分成控制面和数据面,通过不同的路径,数据流减少数据搬迁,具体过程如下:(1)客户io请求分为数据面和控制面,数据面io流和控制面io流,分开传输,走不
通的逻辑和路径,简称数控分离。
151.(2)控制面io流,简称控制流,是指用户数据请求(不带数据),为了实现存储软件功能,实现寻址、存储设备缓存分配、存储io处理、原子操作等控制指令;控制流引导数据流实现数据的搬迁。
152.(3)存储数据流,通过peer2peer dma的技术,实现了网卡到存储设备缓存,存储设备到网卡的数据搬迁,避免了数据流需要从主机内存进行中转。
153.示例性地,在分布式存储系统中,实施读写存储设备的数控分离的方案在进行数据读写前,需要完成系统初始化的过程,具体包括:(1)存储节点包含多个存储设备,存储软件将每个存储设备内的缓存注册到存储节点的操作系统的内存地址。
154.初始化内存共享池,将所有nvme存储设备的内存共享给存储软件,映射到地址空间a1
…
an;存储软件将a1
…
an注册给网卡,注册过程是把nvme 设备的内存,通过mmap映射到用户态存储软件进程的一段地址(即上述逻辑地址),可以理解为:进程内有一段逻辑地址的物理内存在nvme存储设备里。存储软件的缓存管理按照每个存储设备管理在网卡注册共享缓存即上述缓存地址;需要说明的是共享缓存为注册至网卡中内存中的一部分,注册到网卡的内存仅为存储设备的部分内存。
155.(2)将第(1)步中的设备缓存地址空间,配置给网卡的dma。
156.分布式存储系统分为客户端和存储节点,由客户端向存储节点发起io请求。
157.如图7所示,存储系统的存储节点实现基于数控分离的写流程主要包括:(1)将客户端的用户写请求,分为写控制流和写数据流,两种报文。其中控制流带数据地址、数据长度,以及写入的全局标识(存储的逻辑地址),以及分布式存储软件相关的控制信息。数据流包含用户写数据。
158.(2)客户端的用户写请求,首先发送的控制流到存储节点,存储软件根据全局标识分配要写入的存储设备lba(逻辑地址)。
159.(3)存储软件的控制流,引导启动数据流的接收。根据控制流中包含的数据地址和长度,以及分配的存储设备的lba,发起网卡的收数据。
160.(4)数据流的接收过程,网卡直接使用peer2peer dma将网络数据dma到存储设备的缓存。
161.(5)数据流完成数据接收后,控制流下刷存储设备的数据到指定的设备lba对应的空间。
162.(6)控制流完成用户写请求的应答。
163.如图8所示,存储系统的存储节点实现基于数控分离的读流程主要包括:(1)将客户端的用户读请求,分为读控制流和读数据流,两种报文。其中控制流带读缓存地址、数据长度,以及写入的全局标识(存储的逻辑地址),以及分布式存储软件相关的控制信息。数据流包含用户读数据。
164.(2)客户端的用户读请求,首先发送的控制流到存储节点,存储软件根据全局标识寻址找到存储设备lba(逻辑地址),并将数据读取到设备缓存。
165.(3)存储软件的控制流,引导启动数据流的发送。根据控制流中包含的数据地址和长度,以及设备缓存的数据地址,发起网卡的发数据。
(4)数据流的发送过程,网卡直接使用peer2peer dma将设备缓存数据dma到网卡。
166.(5)网卡执行数据流完成数据推送后,存储软件根据控制流完成用户读请求的应答。
167.通过上述示例可以看出,本发明所提出的存储系统数控分离的读写方案,减少的存储系统io处理过程中网络、主机内存和介质的之间的数据搬迁的数据量,减少读写io路径对内存带宽的使用,提升存储的性能。尤其在全闪存储系统,带宽越来越高,高带宽的数据处理io流,数据搬迁的开销大,越来越成为资源瓶颈,本发明通过减少内存数据搬迁带宽资源的使用,提升存储系统的带宽性能。
168.在本实施例中还提供了一种存储系统的数据处理装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
169.本实施例提供一种存储系统的数据处理装置,应用于如图2所示的存储节点201中的进程21,如图9所示,该存储系统的数据处理装置包括:第一接收模块901,用于接收客户端发送的未携带目标数据的数据处理控制流;第一处理模块902,用于基于数据处理控制流确定目标数据对应的目标存储设备的逻辑地址;第二处理模块903,用于基于目标存储设备的逻辑地址向网卡发送数据处理控制流对应的数据处理指令,以控制网卡基于数据处理指令确定目标存储设备注册至网卡的缓存地址,通过缓存地址完成目标数据在目标存储设备的读写。
170.在一些可选的实施方式中,第一处理模块902包括:第一处理单元,用于对所述数据处理控制流进行解析,得到所述目标数据在所述存储节点中对应的磁盘全局统计标识;第二处理单元,用于基于所述磁盘全局统计标识确定目标存储设备;第一获取单元,用于获取所述目标存储设备已注册至所述网卡的逻辑地址。
171.在一些可选的实施方式中,在所述数据处理控制流对应写请求时,所述数据处理指令包括:目标数据的客户端写入地址及所述目标存储设备的逻辑地址,第二处理模块903,包括:第三处理单元,用于基于目标存储设备的逻辑地址向网卡发送所述数据处理控制流对应的数据处理指令,以控制所述网卡从所述客户端写入地址对应的空间中拉取所述目标数据,并通过直接内存访问将所述目标数据存储至所述缓存地址对应的空间;第四处理单元,用于在接收到所述网卡完成所述目标数据拉取的反馈后,将所述缓存地址对应的空间中的所述目标数据写入所述逻辑地址对应的空间,完成所述目标数据在所述目标存储设备的写请求。
172.在一些可选的实施方式中,存储系统的数据处理装置还包括:第四处理模块,用于向所述客户端反馈写请求完成的应答,以使所述客户端向用户进行写完成应答,并释放客户端的写缓存。
173.在一些可选的实施方式中,所述数据处理指令还包括所述目标数据的数据长度,第三处理单元具体用于控制所述网卡按照所述数据长度从所述客户端写入地址对应的空
间中拉取所述目标数据。
174.在一些可选的实施方式中,在所述数据处理控制流对应读请求时,所述数据处理指令包括:目标数据的客户端读取地址及所述目标存储设备的逻辑地址,第二处理模块903,包括:第五处理单元,用于从所述逻辑地址对应的空间中将所述目标数据读取到所述缓存地址对应的空间;第六处理单元,用于基于目标存储设备的逻辑地址向网卡发送所述数据处理控制流对应的数据处理指令,以控制所述网卡将所述缓存地址对应的空间中的所述目标数据直接内存访问至所述网卡,并通过所述网卡将所述目标数据推送至所述客户端读取地址对应的空间,完成所述目标数据在所述目标存储设备的读请求。
175.在一些可选的实施方式中,存储系统的数据处理装置还包括:第五处理模块,用于在接收到所述网卡完成所述目标数据推送的反馈后,向所述客户端反馈读请求完成的应答,以使所述客户端将所述目标数据返回给用户,并向用户进行读完成应答,释放客户端的读缓存。
176.在一些可选的实施方式中,所述数据处理指令还包括所述目标数据的数据长度,第五处理单元,具体用于按照所述数据长度从所述逻辑地址对应的空间中将所述目标数据读取到所述缓存地址对应的空间。
177.在一些可选的实施方式中,存储系统的数据处理装置还包括:第六处理模块,用于获取所有存储设备的内存,并将每个存储设备的内存映射到地址空间,确定每个存储设备的逻辑地址;第七处理模块,用于分别将每个存储设备的逻辑地址中的部分逻辑地址配置为该存储设备的缓存地址;第八处理模块,用于将每个存储设备的逻辑地址和缓存地址注册至所述网卡,以使所述网卡基于存储设备的逻辑地址查询其对应的缓存地址。
178.在一些可选的实施方式中,存储系统的数据处理装置还包括:第九处理模块,用于获取所述目标存储设备的缓存地址对应的当前剩余空间;第十处理模块,用于判断所述当前剩余空间是否满足所述目标数据的存储空间需求;第十一处理模块,用于在所述当前剩余空间满足所述目标数据的存储空间需求时,执行基于目标存储设备的逻辑地址向网卡发送所述数据处理控制流对应的数据处理指令的步骤。
179.在一些可选的实施方式中,存储系统的数据处理装置还包括:第十二处理模块,用于在所述当前剩余空间不满足所述目标数据的存储空间需求时,进行等待,并返回获取所述目标存储设备的缓存地址中当前剩余空间的步骤,直至所述目标存储设备的缓存地址中当前剩余空间释放至满足所述目标数据的存储空间需求。
180.本实施例中的存储系统的数据处理装置是以功能单元的形式来呈现,这里的单元是指asic电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
181.上述各个模块和单元的更进一步的功能描述与上述对应方法实施例相同,在此不
再赘述。
182.在本实施例中还提供了一种存储系统的数据处理装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
183.本实施例提供一种存储系统的数据处理装置,应用于如图2所示的存储节点201中的网卡22,如图10所示,该存储系统的数据处理装置包括:第二接收模块1001,用于接收存储节点发送的数据处理指令,数据处理指令为存储节点在接收到客户端发送的未携带目标数据的数据处理控制流后,基于数据处理控制流确定目标数据对应的目标存储设备的逻辑地址,并基于目标存储设备的逻辑地址生成的数据处理控制流对应的数据处理指令;第三处理模块1002,用于基于数据处理指令确定目标存储设备注册的缓存地址,通过缓存地址完成目标数据在目标存储设备的读写。
184.在一些可选的实施方式中,在所述数据处理控制流对应写请求时,所述数据处理指令包括:目标数据的客户端写入地址及所述目标存储设备的逻辑地址,第三处理模块1002,包括:第七处理单元,用于对所述数据处理指令进行解析,确定所述目标存储设备的逻辑地址,并基于所述逻辑地址确定所述目标存储设备注册的缓存地址;第八处理单元,用于从所述客户端写入地址对应的空间中拉取所述目标数据,并通过直接内存访问将所述目标数据存储至所述缓存地址对应的空间;第九处理单元,用于向所述存储节点发送完成所述目标数据拉取的反馈,以使所述存储节点将所述缓存地址对应的空间中的所述目标数据写入所述逻辑地址对应的空间,完成所述目标数据在所述目标存储设备的写请求。
185.在一些可选的实施方式中,所述数据处理指令还包括所述目标数据的数据长度,第八处理单元,具体用于按照所述数据长度从所述客户端写入地址对应的空间中拉取所述目标数据。
186.在一些可选的实施方式中,在所述数据处理控制流对应读请求时,所述数据处理指令包括:目标数据的客户端读取地址及所述目标存储设备的逻辑地址,第三处理模块1002,包括:第十处理单元,用于对所述数据处理指令进行解析,确定所述目标存储设备的逻辑地址,并基于所述逻辑地址确定所述目标存储设备注册的缓存地址;第十一处理单元,用于将所述缓存地址对应的空间中的目标数据直接内存访问至网卡,并将所述目标数据推送至所述客户端读取地址对应的空间,所述目标数据为所述存储节点从所述逻辑地址对应的空间中读取到所述缓存地址对应的空间的目标数据,完成所述目标数据在所述目标存储设备的读请求。
187.在一些可选的实施方式中,第七处理单元,具体用于查询所述逻辑地址对应的目标存储设备,并获取所述目标存储设备已注册的缓存地址。
188.在一些可选的实施方式中,存储系统的数据处理装置还包括:反馈模块,用于向所述存储节点发送完成所述目标数据推送的反馈,以使所述存
储节点在接收到该反馈后,向所述客户端反馈读请求完成的应答。
189.本实施例中的存储系统的数据处理装置是以功能单元的形式来呈现,这里的单元是指asic电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
190.上述各个模块和单元的更进一步的功能描述与上述对应方法实施例相同,在此不再赘述。
191.本发明实施例还提供一种电子设备,具有上述图9和图10所示的存储系统的数据处理装置。
192.请参阅图11,图11是本发明可选实施例提供的一种电子设备的结构示意图,如图11所示,该电子设备包括:一个或多个处理器10、存储器20,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相通信连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在计算机设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示gui的图形信息的指令。在一些可选的实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个计算机设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图11中以一个处理器10为例。
193.处理器10可以是中央处理器,网络处理器或其组合。其中,处理器10还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路,可编程逻辑器件或其组合。上述可编程逻辑器件可以是复杂可编程逻辑器件,现场可编程逻辑门阵列,通用阵列逻辑或其任意组合。
194.其中,存储器20存储有可由至少一个处理器10执行的指令,以使至少一个处理器10执行实现上述实施例示出的方法。
195.存储器20可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据一种小程序落地页的展现的计算机设备的使用所创建的数据等。此外,存储器20可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些可选的实施方式中,存储器20可选包括相对于处理器10远程设置的存储器,这些远程存储器可以通过网络连接至该计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
196.存储器20可以包括易失性存储器,例如,随机存取存储器;存储器也可以包括非易失性存储器,例如,快闪存储器,硬盘或固态硬盘;存储器20还可以包括上述种类的存储器的组合。
197.该电子设备还包括通信接口30,用于该基板管理控制器与其他设备或通信网络通信。
198.本发明实施例还提供了一种计算机可读存储介质,上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可记录在存储介质,或者被实现通过网络下载的原始存储在远程存储介质或非暂时机器可读存储介质中并将被存储在本地存储介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用
硬件的存储介质上的这样的软件处理。其中,存储介质可为磁碟、光盘、只读存储记忆体、随机存储记忆体、快闪存储器、硬盘或固态硬盘等;进一步地,存储介质还可以包括上述种类的存储器的组合。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件,当软件或计算机代码被计算机、处理器或硬件访问且执行时,实现上述实施例示出的方法。
199.虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
技术特征:
1.一种存储系统的数据处理方法,应用于存储节点,所述存储节点包括:网卡及若干支持nvme的存储设备,其特征在于,所述方法包括:接收客户端发送的未携带目标数据的数据处理控制流;基于所述数据处理控制流确定所述目标数据对应的目标存储设备的逻辑地址;基于目标存储设备的逻辑地址向网卡发送所述数据处理控制流对应的数据处理指令,以控制所述网卡基于所述数据处理指令确定所述目标存储设备注册至所述网卡的缓存地址,通过所述缓存地址完成所述目标数据在所述目标存储设备的读写。2.根据权利要求1所述的方法,其特征在于,所述基于所述数据处理控制流确定所述目标数据对应的目标存储设备的逻辑地址,包括:对所述数据处理控制流进行解析,得到所述目标数据在所述存储节点中对应的磁盘全局统计标识;基于所述磁盘全局统计标识确定目标存储设备;获取所述目标存储设备已注册至所述网卡的逻辑地址。3.根据权利要求1所述的方法,其特征在于,在所述数据处理控制流对应写请求时,所述数据处理指令包括:目标数据的客户端写入地址及所述目标存储设备的逻辑地址,所述基于目标存储设备的逻辑地址向网卡发送所述数据处理控制流对应的数据处理指令,以控制所述网卡基于所述数据处理指令确定所述目标存储设备注册至所述网卡的缓存地址,通过所述缓存地址完成所述目标数据在所述目标存储设备的读写,包括:基于目标存储设备的逻辑地址向网卡发送所述数据处理控制流对应的数据处理指令,以控制所述网卡从所述客户端写入地址对应的空间中拉取所述目标数据,并通过直接内存访问将所述目标数据存储至所述缓存地址对应的空间;在接收到所述网卡完成所述目标数据拉取的反馈后,将所述缓存地址对应的空间中的所述目标数据写入所述逻辑地址对应的空间,完成所述目标数据在所述目标存储设备的写请求。4.根据权利要求3所述的方法,其特征在于,在将所述缓存地址中的所述目标数据写入所述逻辑地址对应的空间之后,所述方法还包括:向所述客户端反馈写请求完成的应答,以使所述客户端向用户进行写完成应答,并释放客户端的写缓存。5.根据权利要求3所述的方法,其特征在于,所述数据处理指令还包括所述目标数据的数据长度,所述控制所述网卡从所述客户端写入地址对应的空间中拉取所述目标数据,包括:控制所述网卡按照所述数据长度从所述客户端写入地址对应的空间中拉取所述目标数据。6.根据权利要求1所述的方法,其特征在于,在所述数据处理控制流对应读请求时,所述数据处理指令包括:目标数据的客户端读取地址及所述目标存储设备的逻辑地址,所述基于目标存储设备的逻辑地址向网卡发送所述数据处理控制流对应的数据处理指令,以控制所述网卡基于所述数据处理指令确定所述目标存储设备注册至所述网卡的缓存地址,通过所述缓存地址完成所述目标数据在所述目标存储设备的读写,包括:从所述逻辑地址对应的空间中将所述目标数据读取到所述缓存地址对应的空间;
基于目标存储设备的逻辑地址向网卡发送所述数据处理控制流对应的数据处理指令,以控制所述网卡将所述缓存地址对应的空间中的所述目标数据直接内存访问至所述网卡,并通过所述网卡将所述目标数据推送至所述客户端读取地址对应的空间,完成所述目标数据在所述目标存储设备的读请求。7.根据权利要求6所述的方法,其特征在于,还包括:在接收到所述网卡完成所述目标数据推送的反馈后,向所述客户端反馈读请求完成的应答,以使所述客户端将所述目标数据返回给用户,并向用户进行读完成应答,释放客户端的读缓存。8.根据权利要求6所述的方法,其特征在于,所述数据处理指令还包括所述目标数据的数据长度,所述从所述逻辑地址对应的空间中将所述目标数据读取到所述缓存地址对应的空间,包括:按照所述数据长度从所述逻辑地址对应的空间中将所述目标数据读取到所述缓存地址对应的空间。9.根据权利要求1-8任一项所述的方法,其特征在于,所述方法还包括:获取所有存储设备的内存,并将每个存储设备的内存映射到地址空间,确定每个存储设备的逻辑地址;分别将每个存储设备的逻辑地址中的部分逻辑地址配置为该存储设备的缓存地址;将每个存储设备的逻辑地址和缓存地址注册至所述网卡,以使所述网卡基于存储设备的逻辑地址查询其对应的缓存地址。10.根据权利要求1-8任一项所述的方法,其特征在于,在基于目标存储设备的逻辑地址向网卡发送所述数据处理控制流对应的数据处理指令之前,所述方法还包括:获取所述目标存储设备的缓存地址对应的当前剩余空间;判断所述当前剩余空间是否满足所述目标数据的存储空间需求;在所述当前剩余空间满足所述目标数据的存储空间需求时,执行基于目标存储设备的逻辑地址向网卡发送所述数据处理控制流对应的数据处理指令的步骤。11.根据权利要求10所述的方法,其特征在于,还包括:在所述当前剩余空间不满足所述目标数据的存储空间需求时,进行等待,并返回获取所述目标存储设备的缓存地址中当前剩余空间的步骤,直至所述目标存储设备的缓存地址中当前剩余空间释放至满足所述目标数据的存储空间需求。12.一种存储系统的数据处理方法,应用于存储节点中的网卡,所述存储节点包括:网卡及若干支持nvme的存储设备,其特征在于,所述方法包括:接收存储节点发送的数据处理指令,所述数据处理指令为所述存储节点在接收到客户端发送的未携带目标数据的数据处理控制流后,基于所述数据处理控制流确定所述目标数据对应的目标存储设备的逻辑地址,并基于目标存储设备的逻辑地址生成的所述数据处理控制流对应的数据处理指令;基于所述数据处理指令确定所述目标存储设备注册的缓存地址,通过所述缓存地址完成所述目标数据在所述目标存储设备的读写。13.根据权利要求12所述的方法,其特征在于,在所述数据处理控制流对应写请求时,所述数据处理指令包括:目标数据的客户端写入地址及所述目标存储设备的逻辑地址,所
述基于所述数据处理指令确定所述目标存储设备注册的缓存地址,通过所述缓存地址完成所述目标数据在所述目标存储设备的读写,包括:对所述数据处理指令进行解析,确定所述目标存储设备的逻辑地址,并基于所述逻辑地址确定所述目标存储设备注册的缓存地址;从所述客户端写入地址对应的空间中拉取所述目标数据,并通过直接内存访问将所述目标数据存储至所述缓存地址对应的空间;向所述存储节点发送完成所述目标数据拉取的反馈,以使所述存储节点将所述缓存地址对应的空间中的所述目标数据写入所述逻辑地址对应的空间,完成所述目标数据在所述目标存储设备的写请求。14.根据权利要求13所述的方法,其特征在于,所述数据处理指令还包括所述目标数据的数据长度,所述从所述客户端写入地址对应的空间中拉取所述目标数据,包括:按照所述数据长度从所述客户端写入地址对应的空间中拉取所述目标数据。15.根据权利要求12所述的方法,其特征在于,在所述数据处理控制流对应读请求时,所述数据处理指令包括:目标数据的客户端读取地址及所述目标存储设备的逻辑地址,所述基于所述数据处理指令确定所述目标存储设备注册的缓存地址,通过所述缓存地址完成所述目标数据在所述目标存储设备的读写,包括:对所述数据处理指令进行解析,确定所述目标存储设备的逻辑地址,并基于所述逻辑地址确定所述目标存储设备注册的缓存地址;将所述缓存地址对应的空间中的目标数据直接内存访问至网卡,并将所述目标数据推送至所述客户端读取地址对应的空间,所述目标数据为所述存储节点从所述逻辑地址对应的空间中读取到所述缓存地址对应的空间的目标数据,完成所述目标数据在所述目标存储设备的读请求。16.根据权利要求13或15所述的方法,其特征在于,所述基于所述逻辑地址确定所述目标存储设备注册的缓存地址,包括:查询所述逻辑地址对应的目标存储设备,并获取所述目标存储设备已注册的缓存地址。17.根据权利要求15所述的方法,其特征在于,在将所述目标数据推送至所述客户端读取地址对应的空间后,所述方法还包括:向所述存储节点发送完成所述目标数据推送的反馈,以使所述存储节点在接收到该反馈后,向所述客户端反馈读请求完成的应答。18.一种存储系统的数据处理装置,应用于存储节点,所述存储节点包括:网卡及若干支持nvme的存储设备,其特征在于,所述装置包括:第一接收模块,用于接收客户端发送的未携带目标数据的数据处理控制流;第一处理模块,用于基于所述数据处理控制流确定所述目标数据对应的目标存储设备的逻辑地址;第二处理模块,用于基于目标存储设备的逻辑地址向网卡发送所述数据处理控制流对应的数据处理指令,以控制所述网卡基于所述数据处理指令确定所述目标存储设备注册至所述网卡的缓存地址,通过所述缓存地址完成所述目标数据在所述目标存储设备的读写。19.一种存储系统的数据处理装置,应用于存储节点中的网卡,所述存储节点包括:网
卡及若干支持nvme的存储设备,其特征在于,所述装置包括:第二接收模块,用于接收存储节点发送的数据处理指令,所述数据处理指令为所述存储节点在接收到客户端发送的未携带目标数据的数据处理控制流后,基于所述数据处理控制流确定所述目标数据对应的目标存储设备的逻辑地址,并基于目标存储设备的逻辑地址生成的所述数据处理控制流对应的数据处理指令;第三处理模块,用于基于所述数据处理指令确定所述目标存储设备注册的缓存地址,通过所述缓存地址完成所述目标数据在所述目标存储设备的读写。20.一种存储系统,其特征在于,所述存储系统包括:至少一存储节点,每个存储节点包括:网卡及若干支持nvme的存储设备,其特征在于,所述存储节点用于接收客户端发送的未携带目标数据的数据处理控制流,基于所述数据处理控制流确定所述目标数据对应的目标存储设备的逻辑地址,并基于目标存储设备的逻辑地址向网卡发送所述数据处理控制流对应的数据处理指令;所述网卡用于接收所述存储节点发送的数据处理指令,并基于所述数据处理指令确定所述目标存储设备注册的缓存地址;所述存储节点和所述网卡通过所述缓存地址完成所述目标数据在所述目标存储设备的读写。21.一种电子设备,其特征在于,包括:存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1至11中任一项所述的方法,或者,执行权利要求12-17任一项所述的方法。22.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,所述计算机指令用于使计算机执行权利要求1至11中任一项所述的方法,或者执行权利要求12-17任一项所述的方法。
技术总结
本发明涉及计算机技术领域,公开了存储系统的数据处理方法、装置、存储系统、设备及介质,该方法包括:接收客户端发送的未携带目标数据的数据处理控制流;基于数据处理控制流确定目标数据对应的目标存储设备的逻辑地址;基于目标存储设备的逻辑地址向网卡发送数据处理控制流对应的数据处理指令,以控制网卡基于数据处理指令确定目标存储设备注册至网卡的缓存地址,通过缓存地址完成目标数据在目标存储设备的读写。存储节点通过控制流向网卡发送对应的数据处理指令引导网卡对数据流的执行,通过存储设备的缓存空间进行数据迁移,实现流量网络直接到存储设备的数据迁移,通过减少内存数据搬迁对带宽资源的使用,提升存储系统的带宽性能。带宽性能。带宽性能。
技术研发人员:李雪生 张凯 张在贵
受保护的技术使用者:苏州浪潮智能科技有限公司
技术研发日:2023.09.05
技术公布日:2023/10/15
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/