一种远程直接存储器存取的方法及装置的制造方法_3

文档序号:9711590阅读:来源:国知局
在该实施例中两个电子设备协商标志地址的方式可以包括多种,以下提供一种可实现的方式;当第一电子设备和第二电子设备协商建立RDMA连接时,实现具体包括:
[0060]A,第一电子设备接收到第二电子设备发起的RDMA建链请求报文,在响应报文中携带第一电子设备的属性标志;其中,该属性标志用于标示所述第一电子设备对于接收到的RDMA写请求报文直接处理不进行缓存;
[0061 ]在该实施例中,如果响应报文中携带有第一电子设备的属性标志,贝表明第一电子设备对于建链成功后的RDMA业务报文可直接处理后返回给第二电子设备,不需要进行缓存;
[0062]B,接收第二电子设备反馈的所述标志地址;其中,所述标志地址是所述第二电子设备根据所述响应报文中的属性标志构造的地址;
[0063]对于接收到响应报文的第二电子设备,如果从响应报文中获取到携带的第一电子设备的特殊属性标志,则构造标志地址,并将该标志地址通过RDMA建链协商报文发给第一电子设备;在本发明实施例中,第一地址和标识地址可以是相同的两个地址,另外可以是具有对应关系的两个地址。
[0064]C,将所述标志地址记录在建立地RDMA连接对应的上下文信息中。
[0065]进一步,当第一电子设备在收到第二电子设备发送的第一RDMA写请求报文后,可以通过以下方式去获取该第一 RDMA写请求报文对应的标志地址,具体方法包括:
[0066]从所述第一 RDMA写请求报文中获取所述RDMA连接对应的连接号;
[0067]利用所属连接号查询所述RDMA连接对应的上下文信息,从所述上下文信息中获取所述标志地址。
[0068]为了更详细的说明本发明实施例所提供的方法,以下结合具体的应用场景对本发明的方案进一步的说明,具体应用场景,该方法主要应用于设备(即第一电子设备)和主机(即第二电子设备)之间通信的应用场景,其中报文交互都是有主机发给设备进行处理,并且设备处理完成后直接返回给主机的通信场景中。该方法具体包括(方法具体实现流程如图4所示):
[0069]步骤401,主机根据属性标志构造虚假地址V,通过建链过程中建链协商报文传给设备端,并在建立RDMA链路成功后,主机和设备分别在RDMA链路上下文中记录该虚假地址V(该虚假地址V对应图3所示实施例的标志地址);
[0070]如果主机请求使用设备的硬件处理引擎,表示设备端只是作为从设备,对主机发送的数据进行处理后反馈给主机;则会在建链请求中携带属性标志,属性标志用于指示设备只是作为主机的从设备进行数据处理。
[0071]步骤402,主机端每次向设备端发送RDMA写请求报文的时候,都首先申请本地空闲地址A,地址A用于设备处理完RDMA写请求报文后返回主机的存储地址;
[0072]步骤403,主机构造RDMA写请求报文,RDMA写请求报文RDMA的协议头中对端地址用虚假地址V填充,本地空闲地址A填充在扩展头中,主机端将构造好的RDMA写请求报文发送到设备;
[0073]步骤404,设备接收到RDMA写请求报文后,根据RDMA写请求报文中携带的连接号查询RDMA连接对应的上下文,确定虚假地址V是否与本地存的虚假地址相同;若相同,则从该报文的协议扩展头中获取主机端的空闲地址;完成协议校验后,给主机发送响应信息,表示设备已经正常接收到RDMA写请求报文;
[0074]如果虚假地址V是否与本地存的虚假地址相同,则说明链路对应的设备只是主机的从设备,RDMA写请求报文协议头中地址为虚假地址不与具体的缓存空间对应;同时报文含有协议扩展头,该协议扩展头含有主机端的空闲地址A。
[0075]步骤405,设备解析RDMA写请求报文,将报文净荷进行处理;
[0076]本步骤中,假设前面只解析了报文头,则本步骤继续进行解析,解析出报文净荷;
[0077]步骤406,设备用地址A构造新的RDMA写报文,将新的RDMA写报文写到主机地址A中;
[0078]步骤407,主机在接收到新的RDMA写报文后给设备发送响应信息,表示主机已经正确接收到处理完成后的报文。
[0079]如图5所示,本发明实施例还提供一种远程直接存储器存取的装置,该装置应用于第一电子设备中,第一电子设备与第二电子设备之间建立有远程直接存储器存取RDMA连接,该装置包括:
[0080]获取模块501,用于通过所述RDMA连接接收到第二电子设备发送的第一RDMA写请求报文后,从该第一 RDMA写请求报文的RDMA协议头中获取第一地址;
[0081]数据处理模块502,用于将所述第一地址与预存的标志地址进行比较,如果第一地址与所述标志地址相同,则从所述第一RDMA写请求报文的协议扩展头中获取第二地址,对第一 RDMA写请求报文的净荷进行处理得到处理后得到的结果数据;
[0082]反馈模块503,用于利用所述第二地址和所述结果数据构造第二RDMA写请求报文,并利用所述第二地址将所述第二 RDMA写请求报文写到所述第二电子设备中所述第二地址对应的存储区域中。
[0083]进一步,在具体实现标志地址的协商时候,该装置还可以包括:
[0084]标志地址获取模块,用于当第一电子设备和第二电子设备协商建立RDMA连接时,接收到第二电子设备发起的RDMA建链请求报文,在响应报文中携带第一电子设备的属性标志;其中,该属性标志用于标示所述第一电子设备对于接收到的RDMA写请求报文直接处理不进行缓存;接收第二电子设备反馈的所述标志地址;其中,所述标志地址是所述第二电子设备根据所述响应报文中的属性标志构造的地址;将所述标志地址记录在建立地RDMA连接对应的上下文信息中。
[0085]更优化的,该装置还包括:
[0086]标识地址获取模块,用于从所述第一RDMA写请求报文中获取所述RDMA连接对应的连接号;利用所属连接号查询所述RDMA连接对应的上下文信息,从所述上下文信息中获取所述标志地址。
[0087]如图6所示,本发明还提供另一种远程直接存储器存取装置,用于执行前述各个实施例中的远程直接存储器存取方法,该装置设置于第一或第二电子设备中,第一电子设备与第二电子设备之间建有RDMA连接,该装置包括至少一个处理器601 (例如CPU),至少一个网络接口 602或者其他通信接口,存储器603,和至少一个通信总线604,用于实现这些装置之间的连接通信。处理器601用于执行存储器603中存储的可执行模块,例如计算机程序。存储器603可能包含高速随机存取存储器(RAM: Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个网络接口602(可以是有线或者无线)实现该系统网关与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等;该服务器中还设置有文件系统;该文件系统用于管理目录和文件,并且每个目录对应一个目录存储对象,该目录存储对象中包括对应的目录中所包括的文件或目录的属性列表,所述属性列表中包括所述文件或目
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1