本发明涉及存储,具体而言,涉及一种数据访问方法、装置、服务器和计算机可读存储介质。
背景技术:
1、当前的高性能计算、大数据分析、人工智能以及物联网等场景,在业务中越来越多的数据需要从网络中获取,对数据访问的时延要求越来越高,为了降低数据访问的时延,通常采用更高性能的cpu以期提高处理效率,降低数据访问的时延,由此导致成本增加,同时还需要消耗大量的设备内存。
技术实现思路
1、本发明的目的在于提供了一种数据访问方法、装置、服务器和计算机可读存储介质,其能够无需采用更高性能的cpu即可降低数据访问的时延,同时也无需大量的服务器内存。
2、本发明的实施例可以这样实现:
3、第一方面,本发明提供一种数据访问方法,应用于服务器,所述服务器与客户端通信连接,所述服务器包括rdma缓存层和ssd,所述方法包括:
4、接收所述客户端发送的写请求,所述写请求包括待写数据的写入长度和待写地址;
5、根据所述写入长度和所述待写地址,从所述rdma缓存层确定用于暂存所述待写数据的待写空间,并将所述待写空间的起始地址返回至所述客户端;
6、通过rdma方式接收所述客户端基于接收到待写空间的起始地址发送的写请求报文,所述写请求报文包括所述待写数据,所述写请求报文中的目的地址为所述待写空间的起始地址;
7、根据所述写请求报文中的目的地址,将所述待写数据暂存至所述待写空间,以根据所述待写地址将所述待写空间中写入的数据存储至所述ssd的闪存区。
8、在可选的实施方式中,所述ssd为多个,每一所述ssd还包括dram区,所述rdma缓存层的存储空间包括多个所述ssd的dram区,所述根据所述写入长度和所述待写地址,从所述rdma缓存层确定用于暂存所述待写数据的待写空间的步骤包括:
9、根据所述待写地址确定所述待写数据需要写入的待写ssd;
10、若所述待写ssd的dram区的可用空间的大小大于或者等于所述写入长度,则从所述待写ssd的dram区中确定所述待写空间。
11、在可选的实施方式中,所述服务器的dram网卡中存在自带dram区,所述rdma缓存层的存储空间还包括所述自带dram区,所述根据所述写入长度和所述待写地址,从所述rdma缓存层确定用于暂存所述待写数据的待写空间的步骤还包括:
12、若所述待写ssd的dram区的可用空间的大小小于所述写入长度、且所述自带dram区的可用空间的大小大于或者等于所述写入长度,则从所述自带dram区中确定所述待写空间。
13、在可选的实施方式中,所述根据所述写入长度和所述待写地址,从所述rdma缓存层确定用于暂存所述待写数据的待写空间的步骤还包括:
14、若所述待写ssd的dram区的可用空间的大小小于所述写入长度、且所述自带dram区的可用空间的大小小于所述写入长度,且所述多个ssd中除所述待写ssd之外存在可用空间的大小大于或者等于所述写入长度的可用ssd,则从所述可用ssd的dram区中确定所述待写空间。
15、在可选的实施方式中,所述根据所述待写地址将所述待写空间中写入的数据存储至所述ssd的闪存区的步骤包括:
16、将所述待写空间的起始地址作为源地址、将所述待写地址对应的物理地址作为目的地址,采用dma方式将所述待写空间中写入的数据存储至与所述待写地址对应的所述ssd的闪存区。
17、在可选的实施方式中,所述方法还包括:
18、接收所述客户端发送的读请求,所述读请求包括待读数据的读取长度和表征所述待读数据存储位置的待读地址;
19、根据所述读取长度和所述待读地址,从所述rdma缓存层确定用于暂存所述待读数据的待读空间;
20、根据所述待读地址将读取的所述待读数据暂存至所述待读空间、并向所述客户端反馈读响应请求;
21、接收所述客户端基于所述读响应请求发送的控制请求,所述控制请求包括所述客户端用于接收所述待读数据的接收地址;
22、基于所述控制请求,通过rdma方式向所述客户端发送的读响应报文,所述读响应报文包括所述待读数据,所述读响应报文的目的地址为所述接收地址,所述读响应报文的源地址为所述待读空间的起始地址。
23、在可选的实施方式中,所述根据所述待读地址将读取的所述待读数据暂存至所述待读空间的步骤包括:
24、将所述待读地址对应的物理地址作为源地址、将所述待读空间的起始地址作为目的地址,采用dma方式将读取的所述待读数据暂存至所述待读空间。
25、第二方面,本发明提供一种数据访问装置,应用于服务器,所述服务器与客户端通信连接,所述服务器包括rdma缓存层和ssd,所述装置包括:
26、接收模块,用于接收所述客户端发送的写请求,所述写请求包括待写数据的写入长度和待写地址;
27、确定模块,用于根据所述写入长度和所述待写地址,从所述rdma缓存层确定用于暂存所述待写数据的待写空间,并将所述待写空间的起始地址返回至所述客户端;
28、写入模块,用于通过rdma方式接收所述客户端基于接收到待写空间的起始地址发送的写请求报文,所述写请求报文包括所述待写数据,所述写请求报文中的目的地址为所述待写空间的起始地址;
29、所述写入模块,还用于根据所述写请求报文中的目的地址,将所述待写数据暂存至所述待写空间,以根据所述待写地址将所述待写空间中写入的数据存储至所述ssd的闪存区。
30、第三方面,本发明提供一种服务器,包括处理器和存储器,所述存储器用于存储程序,所述处理器用于在执行所述程序时,实现前述实施方式中任一项所述的数据访问方法。
31、第四方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,实现前述实施方式中任一项所述的数据访问方法。
32、本发明实施例在服务器中引入rdma缓存层,客户端需要向服务器写数据时,服务器首先从rdma缓存层确定用于暂存待写数据的待写空间,并将待写空间的起始地址返回客户端,客户端基于待写空间的起始地址利用rdma方式向服务器发送写请求报文、将待写空间的起始地址添加在写请求报文中,以将写请求报文中的待写数据暂存至待写空间中,服务器根据待写数据的待写地址再将待写空间中写入的数据存储至ssd的闪存区。由于写请求报文中的待写数据是通过rdma方式进行传输的,传输过程中无需cpu参与,且由于rdma缓存层的数据访问性能比较高,因此实现了无需采用更高性能的cpu、同时也无需大量的服务器内存即可降低数据访问的时延的技术效果。
1.一种数据访问方法,其特征在于,应用于服务器,所述服务器与客户端通信连接,所述服务器包括rdma缓存层和ssd,所述方法包括:
2.如权利要求1所述的数据访问方法,其特征在于,所述ssd为多个,每一所述ssd还包括dram区,所述rdma缓存层的存储空间包括多个所述ssd的dram区,所述根据所述写入长度和所述待写地址,从所述rdma缓存层确定用于暂存所述待写数据的待写空间的步骤包括:
3.如权利要求2所述的数据访问方法,其特征在于,所述服务器的dram网卡中存在自带dram区,所述rdma缓存层的存储空间还包括所述自带dram区,所述根据所述写入长度和所述待写地址,从所述rdma缓存层确定用于暂存所述待写数据的待写空间的步骤还包括:
4.如权利要求3所述的数据访问方法,其特征在于,所述根据所述写入长度和所述待写地址,从所述rdma缓存层确定用于暂存所述待写数据的待写空间的步骤还包括:
5.如权利要求3所述的数据访问方法,其特征在于,所述根据所述待写地址将所述待写空间中写入的数据存储至所述ssd的闪存区的步骤包括:
6.如权利要求1所述的数据访问方法,其特征在于,所述方法还包括:
7.如权利要求6所述的数据访问方法,其特征在于,所述根据所述待读地址将读取的所述待读数据暂存至所述待读空间的步骤包括:
8.一种数据访问装置,其特征在于,应用于服务器,所述服务器与客户端通信连接,所述服务器包括rdma缓存层和ssd,所述装置包括:
9.一种服务器,其特征在于,包括处理器和存储器,所述存储器用于存储程序,所述处理器用于在执行所述程序时,实现权利要求1-7中任一项所述的数据访问方法。
10.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,该计算机程序被处理器执行时,实现权利要求1-7中任一项所述的数据访问方法。