一种远程直接数据存取方法、设备和系统的制作方法_4

文档序号:9756851阅读:来源:国知局
息用于向第一计算设备请求用于RDMA写操作的目标内存。
[0247]可选的,所述RDMA内存请求消息携带要进行RDMA写操作的数据大小信息,第一计算设备根据收到的RDMA内存请求消息,为RDMA写操作在第一存储器分配内存,并将内存分配消息发送给第二处理节点902。
[0248]可选的,第一计算设备还生成队列对QP,并将QP与分配的内存关联起来,并将队列对QP信息发送给第二处理节点902,与第二处理节点902建立基于队列对QP的RDMA连接。
[0249]可选的,第一计算设备还生成虚拟地址VA和远端内存钥匙R_KEY,并将VA和R_KEY发送给第二处理节点902。VA用于表征第一计算设备分配的用于接受RDMA写操作的内存的虚拟地址,R_KEY用于表征访问第一计算设备分配的用于接受RDMA写操作的内存的权限,且用于结合虚拟地址VA共同确定第一存储器用于接收RDMA写操作的存储单元的物理地址,即实现将虚拟地址映射为第一存储器的物理地址。可选的,第一计算设备还生成队列对QP,并将QP与为RDMA内存请求消息分配的内存关联起来,并将该队列对QP信息发送给第二处理节点902,与第二处理节点902建立基于队列对QP的RDMA连接。
[0250]1004:第二处理节点902接收来自第一计算设备的,属于第一计算设备的RDMA内存分配消息,RDMA内存分配消息携带第一节点标识和第一存储标识,第一节点标识用于标识第一计算设备,第一存储标识用于表征访问第一存储器的权限,和标识第一存储器接受RDMA写操作的存储单元。
[0251]可选的,第一节点标识包括:保护域编号,用于标识第一计算设备所在的第一保护域,和第一计算设备标识,用于在第一保护域中确定第一计算设备。
[0252]可选的,第一计算设备和第二内存节点904在同一保护域,第一节点标识仅包括第一计算设备标识,用于在该保护域中确定第一计算设备。
[0253]可选的,第一存储标识包括:第一虚拟地址(Virtual Address, VA)和第一远端内存钥匙(Remote Key, R_KEY)。其中,第一虚拟地址VA表示第一存储器用于接受RDMA写操作的存储单元的虚拟地址,第一远端内存钥匙R_KEY用于表征访问第一存储器的权限,且用于结合虚拟地址VA共同确定第一存储器用于接收RDMA写操作的存储单元的物理地址,即实现将第一虚拟地址VA映射为第一存储器的物理地址。
[0254]1006:第二处理节点902封装RDMA拷贝操作消息,该RDMA拷贝操作消息中携带第一节点标识、第一存储标识和第二存储标识,其中,第二存储标识用于表征访问第二存储器的权限,和标识第二存储器用于RDMA写操作的数据908,该RDMA拷贝操作消息用于指示第二内存节点904将数据908拷贝至第一内存节点的第一存储器的存储单元中。
[0255]可选的,第二存储标识包括第二虚拟地址,用于标识第二存储器用于RDMA写操作的数据908的虚拟地址;数据长度,用于标识数据908的数据地址长度;和第二远端内存钥匙,用于表征访问第二存储器的权限,以及结合虚拟地址共同确定第二存储器用于RDMA写操作的数据的存储单元的物理地址,即实现将第二虚拟地址映射到第二存储器的物理地址。
[0256]可选的,在步骤1006之前,进一步包括:第二处理节点902生成工作队列元素WQE,并将该WQE放入与第二内存节点904RDMA连接的队列对QP的发送队列SQ中,该WQE携带第一节点标识、第一存储标识和第二存储标识,该WQE用于指示将第二存储器中的数据908拷贝至第一存储器的存储单元中。第二处理节点902的RNIC将该WQE从SQ中取出,根据该WQE指示,封装RDMA拷贝操作消息。
[0257]可选的,所述WQE还包括第二节点标识,用于指示第二内存节点904。
[0258]1008:第二处理节点902的RNIC将RDMA拷贝操作消息通过网络102发送给第二内存节点904。
[0259]1010:第二存储器控制器906根据RDMA拷贝操作消息指示,验证消息权限后,取出第二存储标识标识的数据908,结合第一存储标识,封装RDMA WRITE消息,该RDMA WRITE消息用于指示将数据908写入第一存储标识指示的第一存储器的存储单元中。
[0260]1012:第二存储器控制器906将RDMA写操作消息通过网络102发送给第一节点标识指示的第一计算设备。
[0261]1014:第一计算设备的RNIC根据RDMA WRITE消息指示,验证消息权限后,将数据908写入第一存储标识指示的第一存储器的存储单元中。
[0262]可选的,步骤1014之后,进一步包括,第一计算设备向第二内存节点904发送RDMA响应消息,用于指示RDMA写操作完成,第二内存节点904将该RDMA响应消息发送给第二处理节点902。
[0263]可选的,步骤1014之后,进一步包括,第一计算设备向第二处理节点902发送RDMA响应消息,用于指示RDMA写操作完成。
[0264]根据本实施例公开的技术方案,第二计算设备的内存资源与计算资源分离,当需要将第二内存节点内的数据写入第一计算设备的内存时,通过增加RDMA拷贝操作消息,指示第二内存节点直接向第一计算设备的内存写数据,实现了第二内存节点与第一计算设备之间的RDMA写操作。采用本方案,实现了第二内存节点与第一计算设备之间的RDMA写操作,且RDMA写操作的数据不经过第二处理节点和第一计算设备的计算资源,从而缩短了数据流经过的路径,节省了链路资源,降低了数据传输耗时,而且数据传输不再经过处理节点,从而大大节省了处理节点的计算资源。
[0265]图11为依据本发明一实施例的RDMA数据拷贝方法1100的示范性流程图,第一计算设备包括第一处理节点和第一内存节点,第二计算设备包括第二处理节点和第二内存节点,第二处理节点与第二内存节点分离时,用于第二内存节点对第一内存节点进行RDMA写操作,包括:
[0266]S1102:第二处理节点向第一处理节点发送RDMA内存请求消息,RDMA内存请求消息用于向所述第一处理节点请求用于RDMA写操作的目标内存。
[0267]S1104:所述第二处理节点接收来自所述第一处理节点的RDMA内存分配消息,所述RDMA内存分配消息携带第一节点标识和第一存储标识,所述第一节点标识用于指示所述第一内存节点,所述第一存储标识用于指示所述第一内存节点中用于接受所述RDMA写操作的存储单元。
[0268]S1106:所述第二处理节点封装RDMA拷贝操作消息,所述RDMA拷贝操作消息中携带所述第一节点标识、所述第一存储标识和第二存储标识,所述第二存储标识用于指示所述第二内存节点中用于所述RDMA写操作的数据的内存地址;
[0269]S1108:所述第二处理节点将所述RDMA拷贝操作消息发送给所述第二内存节点,指示所述第二内存节点根据所述第一节点标识确定所述第一内存节点,将所述第二存储标识指示的存储单元中的数据写入所述第一存储标识指示的第一内存节点的存储单元。
[0270]可选的,所述第一计算设备的第一处理节点和第一内存节点分离,第一处理节点与第一处理节点是两个分离的节点,二者通过网络进行通信。
[0271]可选的,所述第一计算设备的第一处理节点和第一内存节点不分离,第一处理节点和第一内存节点在同一计算设备节点上,二者用同一节点标识来进行指示。
[0272]可选的,方法1100还包括:所述第二处理节点生成工作队列元素WQE,并将所述WQE放入所述第二内存节点RDMA连接的队列对QP的发送队列SQ中,所述WQE携带所述第一节点标识、所述第一存储标识和所述第二存储标识,用于指示将所述第二存储标识指示的存储单元中的数据拷贝至所述第一存储标识指示的存储单元中;则所述第二处理节点封装RDMA拷贝操作消息,包括:从所述QP的发送队列SQ中取出所述WQE,根据所述WQE,封装所述RDMA拷贝操作消息。
[0273]可选的,所述第一节点标识包括:
[0274]保护域编号,用于标识所述第一内存节点所在的保护域;
[0275]第一内存节点标识,用于在所述保护域中标识所述第一内存节点。
[0276]可选的,所述第一内存节点和所述第二内存节点在同一保护域,所述第一节点标识包括:
[0277]第一内存节点标识,用于在所述同一保护域中标识所述第一内存节点。
[0278]可选的,所述第一存储标识包括:
[0279]第一虚拟地址,用于标识所述第一内存节点的用于接收所述RDMA写操作的存储单元的在所述第一处理节点的虚拟地址;和
[0280]第一远端内存钥匙,用于表征访问所述第一内存节点的存储设备的权限,以及结合所述第一虚拟地址确定所述第一内存节点的用于接收RDMA写操作的存储单元的物理地址。
[0281]可选的,所述第二存储标识包括:
[0282]第二虚拟地址,用于标识所述第二内存节点的用于RDMA写操作的数据在所述第二处理节点中的虚拟地址;
[0283]数据长度,用于标识所述第二内存节点的用于RDMA写操作的数据的长度;和
[0284]第二远端内存钥匙,用于表征访问所述第二内存节点存储设备的权限,以及结合所述第二虚拟地址确定所述用于RDMA写操作的数据在所述第二内存节点中的物理地址。
[0285]可选的,所述第二处理节点将所述RDMA拷贝操作消息发送给所述第二内存节点之后,进一步包括:接收所述第二内存节点的RDMA应答消息,所述RDMA应答消息用于指示所述RDMA写操作已完成。
[0286]采用本实施例提供的技术方案,通过RDMA拷贝操作消息的指示,可以实现分离的内存节点之间,或者分离的内存节点与其他计算设备的内存之间的RDMA写操作。缩短了数据流经过的路径,节省了链路资源,降低了数据传输耗时,而且数据传输不再经过处理节点或计算设备的计算资源,从而大大节省了处理节点或计算设备的计算资源。
[0287]图12为依据本发明一实施例的RDMA数据拷贝方法1200的示范性流程图,第一计算设备包括第一处理节点和第一内存节点,第二计算设备包括第二处理节点和第二内存节点,第二处理节点与第二内存节点分离时,用于第二内存节点对第一内存节点进行RDMA写操作,包括:
[0288]S1202:所述第二内存节点接收来自所述第二处理节点的RDMA拷贝操作消息,所述RDMA拷贝操作消息携带第一节点标识、第一存储标识和第二存储标识,所述第一节点标识用于指示所述第一内存节点,所述第一存储标识用于指示所述第一内存节点中用于接受RDMA写操作的存储单元,所述第二存储标识用于指示所述第二内存节点用于所述RDMA写操作的数据;
[0289]S1204:第二内存节点根据所述RDMA拷贝操作消息,取出所述第二存储标识指示的所述数据,根据所述第一存储标识,封装RDMA写操作消息,所述RDMA写操作消息中包含所述RDMA写操作的数据和所述第一存储标识;
[0290]S1206:第二内存节点将所述RDMA写操作消息发送给所述第一节点标识指示的第一内存节点,指示第一内存节点将所述数据写入所述第一存储标识指示的存储单元。
[0291]可选的,所述第一计算设备的第一处理节点和第一内存节点分离,第一处理节点与第一处理节点是两个分离的节点,二者通过网络进行通信。
[0292]可选的,所述第一计算设备的第一处理节点和第一内存节点不分离,第一处理节点和第一内存节点在同一计算设备节点上,二者用同一节点标识来进行指示。
[0293]可选的,所述第一节点标识包括:
[0294]保护域编号,用于标识所述第一内存节点所在的保护域;
[0295]第一内存节点标识,用于在所述保护域中标识所述第一内存节点。
[0296]可选的,所述第一内存节点和所述第二内存节点在同一保护域,所述第一节点标识包括:
[0297]第一内存节点标识,用于在所述同一保护域中标识所述第一内存节点。
[0298]可选的,所述第一存储标识包括:
[0299]第一虚拟地址,用于标识所述第一内存节点的用于接收所述RDMA写操作的存储单元的在所述第一处理节点的虚拟地址;和
[0300]第一远端内存钥匙,用于表征访问所述第一内存节点的存储设备的权限,以及结合所述第一虚拟地址确定所述第一内存节点的用于接收RDMA写操作的存储单元的物理地址。
[0301]可选的,所述第二存储标识包括:
[0302]第二虚拟地址,用于标识所述第二内存节点的用于RDMA写操作的数据在所述第二处理节点中的虚拟地址;
[0303]数据长度,用于标识所述第二内存节点的用于RDMA写操作的数据的长度;和
[0304]第二远端内存钥匙,用于表征访问所述第二内存节点存储设备的权限,以及结合所述第二虚拟地址确定所述用于RDMA写操作的数据在所述第二内存节点中的物理地址。
[0305]可选的,方法1200还包括:接收所述第一内存节点的RDMA应答消息,所述RDMA应答消息用于指示RDMA写操作已完成。
[0306]可选的,方法1200还包括,将所述RDMA应答消息发送给所述第二处理节点。
[0307]采用本实施例提供的技术方案,通过RDMA拷贝操作消息的指示,可以实现分离的内存节点之间,或者分离的内存节点与其他计算设备的内存之间的RDMA写操作。缩短了数据流经过的路径,节省了链路资源,降低了数据传输耗时,而且数据传输不再经过处理节点或计算设备的计算资源,从而大大节省了处理节点或计算设备的计算资源。
[0308]图13为依据本发明一实施例的RDMA数据拷贝方法1300的示范性流程图,第一计算设备包括第一处理节点和第一内存节点,第一处理节点与第一内存节点分离时,用于第二计算设备的第二存储设备对第一内存节点进行RDMA写操作,包括:
[0309]S1302:第二计算设备向所述第一处理节点发送RDMA内存请求消息,所述RDMA内存请求消息用于向所述第一处理节点请求用于RDMA写操作的目标内存;
[0310]S1304:所述第二计算设备接收来自所述第一处理节点的RDMA内存分配消息,所述RDMA内存分配消息携带第一节点标识和第一存储标识,所述第一节点标识用于指示所述第一内存节点,所述第一存储标识用于指示所述第一内存节点中用于接受所述RDMA写操作的存储单元;
[0311]S1306:所述第二计算设备封装RDMA写操作消息,所述RDMA写操作消息中携带用于所述RDMA写操作的数据和所述第一存储标识;
[0312]S1308:所述第二计算设备将所述RDMA写操作消息发送给所述第一节点标识指示的所述第一内存节点,指示所述第一内存节点将所述数据写入所述第一存储标识指示的存储单元。
[0313]可选的,方法1300还包括:所述第二计算设备生成工作队列元素WQE,并将所述WQE放入与所述第一处理节点建立的RDMA连接的队列对QP的发送队列SQ中,所述WQE携带所述第一节点标识、所述第一存储标识和所述第二存储标识,用于指示将所述第二存储标识指示的存储单元中的数据拷贝至所述第一存储标识指示的存储单元中,所述第二存储标识用于指示所述第二存储设备用于所述RDMA写操作的数据;则所述第二计算设备封装RDMA写操作消息包括:所述第二计算设备从所述QP的发送队列SQ中取出所述WQE,根据所述WQE,取出所述第二存储标识指示的所述数据,根据所述第一存储标识,封装所述RDMA写操作消息。
[0314]可选的,所述第一节点标识包括:
[0315]保护域编号,用于标识所述第一内存节点所在的保护域;
[0316]第一内存节点标识,用于在所述保护域中标识所述第一内存节点。
[0317]可选的,所述第一内存节点和所述第二计算设备在同一保护域,所述第一节点标识包括:
[0318]第一内存节点标识,用于在所述同一保护域中标识所述第一内存节点。
[0319]可选的,所述第一存储标识包括:
[0320]第一虚拟地址,用于标识所述第一内存节点的用于接收所述RDMA写操作的存储单元的在所述第一处理节点的虚拟地址;和
[0321]第一远端内存钥匙,用于表征访问所述第一内存节点的存储设备的权限,以及结合所述第一虚拟地址确定所述第一内存节点的用于接收RDMA写操作的存储单元的物理地址。
[0322]可选的,所述第二计算设备将所述RDMA写操作消息发送给所述第一节点标识指示的所述第一内存节点之后,进一步包括:接收所述第一内存节点的RDMA应答消息,所述RDMA应答消息用于指示RDMA写操作已完成。
[0323]采用本实施例提供的技术方案,可以实现计算设备与内存节点之间的RDMA写操作。缩短了数据流经过的路径,节省了链路资源,降低了数据传输耗时,而且数据传输不再经过处理节点或计算设备的计算资源,从而大大节省了处理节点和计算设备的计算资源。
[0324]图14为依据本发明一实施例的RDMA拷贝装置1400的逻辑结构示意图,第一计算设备包括第一处理节点和第一内存节点,装置1400与装置1400的第二内存节点分离时,用于控制第二内存节点对第一内存节点进行RDMA写操作,包括:
[0325]发送单元1402,所述第一处理节点发送RDMA内存请求消息,所述RDMA内存请求消息用于向所述第一处理节点请求用于RDMA写操作的目标内存;
[0326]接收单元1404,用于接收来自所述第一处理节点的RDMA内存分配消息,所述RDMA内存分配消息携带第一节点标识和第一存储标识,所述第一节点标识用于指示所述第一内存节点,所述第一存储标识用于指示所述第一内存节点中用于接受所述RDMA写操作的存储单元;
[0327]封装单元1406,用于封装RDMA拷贝操作消息,所述RDMA拷贝操作消息中携带所述第一节点标识、所述第一存储标识和第二存储标识,所述第二存储标识用于指示所述第二内存节点中用于所述RDMA写操作的数据的内存地址;
[0328]发送单元1402,还用于将所述RDMA拷贝操作消息发送给所述第二内存节点,指示所述第二内存节点根据所述第一节点标识确定所述第一内存节点,将所述第二存储标识指示的存储单元中的数据写入所述第一存储标识指示的第一内存节点的存储单元。
[0329]可选的,所述第一计算设备的第一处理节点和第一内存节点分离,第一处理节点与第一处理节点是两个分离的节点,二者通过网络进行通信。
[0330]可选的,所述第一计算设备的第一处理节点和第一内存节点不分离,第一处理节点和第一内存节点在同一计算设备节点上,二者用同一节点标识来进行指示。
[0331]可选的,装置1400还包括生成单元,用于生成工作队列元素WQE,并将所述WQE放入所述第二内存节点RDMA连接的队列对QP的发送队列SQ中,所述WQE携带所述第一节点标识、所述第一存储标识和所述第二存储标识,用于指示将所述第二存储标识指示的存储单元中的数据拷贝至所述第一存储标识指示的存储单元中;则所述封装单元1406用于封装RDMA拷贝操作消息,包括:所述封装单元1406从所述QP的发送队列SQ中取出所述WQE,根据所述WQE,封装所述RDMA拷贝操作消息。
[0332]可选的,所述第一节点标识包括:
[0333]保护域编号,用于标识所述第一内存节点所在的保护域;
[0334]第一内存节点标识,用于在所述保护域中标识所述第一内存节点。
[
当前第4页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1