远程直接内存访问方法、分布式存储系统及电子设备与流程

文档序号:36392995发布日期:2023-12-15 12:09阅读:29来源:国知局
远程直接内存访问方法与流程

本发明涉及分布式存储,具体涉及一种远程直接内存访问方法、分布式存储系统及电子设备。


背景技术:

1、rdma(remote direct memory access)意为远程直接内存访问,通过rdma客户端节点可以“直接”访问服务端节点的内存。所谓直接,指的是可以像访问本地内存一样,绕过传统以太网复杂的tcp/ip网络协议栈,直接读写内存。如图1,应用rdma技术,客户端数据绕过内核直接发送到服务端的用户态内存中。

2、rdma技术具有零拷贝、内核旁路、cpu卸载等性能优势,同时也有一些弊端。在应用过程中,客户端内存可能被服务端意外修改,从而导致数据不一致、内存越界,甚至是系统异常和崩溃等。一些相关技术中,通常的处理方法是客户端不断使用新的注册内存,即客户端申请一块内存,把内存使用权限rkey发送给服务端,由服务端访问数据,当数据访问完成后,客户端解除注册内存,收回rkey权限。此时,服务端无法再次访问该内存。当客户端、服务端再次通讯时,重复上述循环。该方法不断注册内存,不断生成rkey,对系统整体运行性能造成很大影响。


技术实现思路

1、有鉴于此,本说明书实施例提供了一种远程直接内存访问方法、分布式存储系统、电子设备及存储介质,能够有效减少内存注册申请频次,优化系统性能。

2、在第一方面,本说明书实施例提供了一种远程直接内存访问方法,所述方法应用于分布式存储系统,所述分布式存储系统包括客户端、服务端以及设置在客户端内的内存域,在所述内存域中设置有至少一个内存。所述方法,包括:

3、所述客户端通过所述内存域从所述内存域中选定目标内存,针对所述目标内存生成客户端命令并将所述客户端命令发送至所述服务端;

4、所述服务端基于所述客户端命令针对所述目标内存进行数据访问,并在数据访问后向所述客户端反馈访问完成命令;

5、所述客户端在接收到所述访问完成命令后,将所述目标内存返回给所述内存域;

6、其中,所述客户端在接收到所述访问完成命令之前进行命令监测,以确定是否重复生成针对所述目标内存的客户端命令;

7、响应于确定重复生成针对所述目标内存的客户端命令,所述客户端将所述目标内存标记为不可靠内存;

8、在所述客户端将所述目标内存返回给所述内存域后,所述内存域确定所述目标内存是否为不可靠内存;

9、响应于确定所述目标内存为不可靠内存,所述内存域针对所述目标内存进行解注册,并重新注册申请新的内存设置在所述内存域中。

10、本说明书实施例还提供了一种分布式存储系统。所述分布式存储系统包括客户端、服务端以及设置在客户端的内存管理模块,所述内存管理模块用于维护内存域,并在所述内存域中设置有至少一个内存。

11、所述客户端,用于通过所述内存管理模块从所述内存域中选定目标内存,针对所述目标内存生成客户端命令并将所述客户端命令发送至所述服务端;

12、所述服务端,用于基于所述客户端命令针对所述目标内存进行数据访问,并在数据访问后向所述客户端反馈访问完成命令;

13、所述客户端在接收到所述访问完成命令后,还用于将所述目标内存返回给所述内存管理模块;

14、所述客户端在接收到所述访问完成命令之前,还用于进行命令监测,以确定是否重复生成针对所述目标内存的客户端命令,并在确定重复生成针对所述目标内存的客户端命令的情况下,将所述目标内存标记为不可靠内存;

15、所述内存管理模块在所述客户端将所述目标内存返回给所述内存管理模块后,还用于确定所述目标内存是否为不可靠内存,并在确定所述目标内存为不可靠内存的情况下,针对所述目标内存进行解注册,并重新注册申请新的内存设置在所述内存域中。

16、本说明书实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所述的远程直接内存访问方法。

17、从上面可以看出,本说明书实施例所提供的一种远程直接内存访问方法、分布式系统及电子设备,具有如下有益技术效果:

18、客户端在与服务端交互过程中对服务端所访问内存的可靠性进行判定,将可能存在异常修改风险的内存判定为不可靠,内存管理模块仅对不可靠的内存进行解注册并重新申请注册新的内存,而可靠内存可以多次重复响应数据访问操作,这样的方式大大降低客户端中内存申请注册与解注册的工作量,能够优化系统运行性能。



技术特征:

1.一种远程直接内存访问方法,其特征在于,所述方法应用于分布式存储系统,所述分布式存储系统包括客户端、服务端以及设置在客户端内的内存域,在所述内存域中设置有至少一个内存;所述方法,包括:

2.根据权利要求1所述的方法,其特征在于,针对所述目标内存生成客户端命令,包括:

3.根据权利要求2所述的方法,其特征在于,所述服务端基于所述客户端命令针对所述目标内存进行数据访问,包括:

4.根据权利要求3所述的方法,其特征在于,所述客户端命令还包括访问操作指令,所述访问操作指令为数据写入访问指令或数据拉取访问指令,所述数据写入访问指令表示所述客户端向所述服务端写入数据,所述数据拉取访问指令表示所述客户端从所述服务端拉取数据。

5.根据权利要求1所述的方法,其特征在于,所述客户端在接收到所述访问完成命令之前进行命令监测,以确定是否重复生成针对所述目标内存的客户端命令,包括:

6.根据权利要求2所述的方法,其特征在于,所述内存域针对所述目标内存进行解注册,包括:

7.根据权利要求4所述的方法,其特征在于,响应于所述访问操作指令为所述数据写入访问指令,所述服务端基于所述内存使用权限信息针对所述内存地址进行数据访问操作,包括:

8.根据权利要求7所述的方法,其特征在于,所述服务端获取所述目标内存中的数据作为目标数据后,所述服务端还针对所述目标数据进行数据验证;

9.根据权利要求8所述的方法,其特征在于,在确定所述目标数据传输错误后,还包括:

10.根据权利要求8所述的方法,其特征在于,在确定所述第二验证信息与所述第一验证信息核验未通过后,还包括:

11.根据权利要求8所述的方法,其特征在于,所述第一验证信息的计算方法包括:

12.根据权利要求8所述的方法,其特征在于,所述第一验证信息的计算方法包括:

13.根据权利要求4所述的方法,其特征在于,响应于所述访问操作指令为所述数据拉取访问指令,基于所述内存使用权限信息针对所述内存地址进行数据访问操作,包括:

14.根据权利要求13所述的方法,其特征在于,在所述服务端将从所述存储磁盘中读取的所述目标数据传输至所述客户端后,所述客户端还针对所述目标数据进行数据验证;

15.根据权利要求14所述的方法,其特征在于,在确定所述目标数据传输错误后,还包括所述客户端将所述目标内存标记为不可靠内存。

16.根据权利要求14所述的方法,其特征在于,在确定所述第二验证信息与所述第一验证信息核验未通过后,还包括:

17.根据权利要求14所述的方法,其特征在于,所述第一验证信息的计算方法包括:

18.根据权利要求8所述的方法,其特征在于,所述第一验证信息的验证方法包括:

19.一种分布式存储系统,其特征在于,所述分布式存储系统包括客户端、服务端以及设置在客户端的内存管理模块,所述内存管理模块用于维护内存域,并在所述内存域中设置有至少一个内存;

20.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至18任意一项所述的方法。

21.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,其特征在于,所述计算机指令用于使计算机执行权利要求1至18任一所述方法。


技术总结
本说明书实施例提供了一种远程直接内存访问方法、分布式存储系统及电子设备,能够有效减少内存注册申请频次,优化系统性能。所述方法包括:所述客户端选定目标内存,生成客户端命令;所述服务端基于所述客户端命令针对所述目标内存进行数据访问,并反馈访问完成命令;所述客户端进行命令监测,以确定是否重复生成针对所述目标内存的客户端命令;响应于确定重复生成针对所述目标内存的客户端命令,所述客户端将所述目标内存标记为不可靠内存;针对不可靠的所述目标内存进行解注册,并重新注册申请新的内存设置在所述内存域中。

技术研发人员:徐成智
受保护的技术使用者:苏州元脑智能科技有限公司
技术研发日:
技术公布日:2024/1/15
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1