CN105518611A - 一种远程直接数据存取方法、设备和系统 - Google Patents
一种远程直接数据存取方法、设备和系统 Download PDFInfo
- Publication number
- CN105518611A CN105518611A CN201480037832.9A CN201480037832A CN105518611A CN 105518611 A CN105518611 A CN 105518611A CN 201480037832 A CN201480037832 A CN 201480037832A CN 105518611 A CN105518611 A CN 105518611A
- Authority
- CN
- China
- Prior art keywords
- node
- memory
- rdma
- memory node
- write operation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0635—Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Human Computer Interaction (AREA)
- Bus Control (AREA)
Abstract
本发明实施例提供了一种远程直接数据存取RDMA拷贝方法、设备和系统,在计算设备的计算资源与存储资源分离的情况下,实现了分离存储资源节点之间或分离存储资源与计算设备之间的RDMA拷贝操作,以此缩短了数据流经过的路径,节省了链路资源,降低了数据传输耗时。该方法包括:第二处理节点向第一处理节点发送RDMA内存请求消息,所述RDMA内存请求消息用于向第一处理节点请求用于RDMA写操作的目标内存;第二处理节点接收来自所述第一处理节点的RDMA内存分配消息;第二处理节点封装RDMA拷贝操作消息;第二处理节点将所述RDMA拷贝操作消息发送给所述第二内存节点,指示所述第二内存节点将数据写入所述第一内存节点的存储单元。
Description
技术领域
本发明实施例涉及计算机领域,尤其涉及一种远程直接数据存取(RemoteDirectMemoryAccess,简称RDMA)拷贝方法、设备和系统。
背景技术
随着计算机网络技术的迅猛发展,网络的性能目前已经达到每秒100千兆比特级别,如何充分利用高速网络的特性是我们面对的一个重要问题。RDMA是为了解决网络传输中数据处理的延迟而产生的,RDMA使一台计算设备可以直接将信息传送到另一台计算设备的内存中,消除了外部存储器复制和文本交换操作。这项技术通过减少处理器开销和减少内存的拷贝降低了时延,提高了网络利用率。
RDMA解决了现有以计算设备为单位的数据快速交互,然而随着提高资源利用率的需求越来越受到重视,计算设备的存储资源与计算资源相互分离,形成存储资源池,RDMA方式的数据交互也被从计算设备与计算设备之间模式的数据交互引申到计算设备的分离部件之间的数据交互,由此带来的变化对RDMA带来了新的需求。即当计算设备的存储资源与计算资源分离后,当出现大量远端内存数据拷贝的需求时,如何通过RDMA技术手段完成数据拷贝。
发明内容
有鉴于此,本发明实施例提供了一种远程直接数据存取方法、设备和系统,在计算设备的计算资源与其存储资源分离的情况下,实现了分离存储资源节点部件的RDMA操作。
第一方面,本发明实施例提供了一种远程直接数据存取RDMA数据拷贝的方法,第一计算设备包括第一处理节点和第一内存节点,第二计算设备包括第二处理节点和第二内存节点,包括:
所述第二处理节点向所述第一处理节点发送RDMA内存请求消息,所述RDMA内存请求消息用于向所述第一处理节点请求用于RDMA写操作的目标内存;
所述第二处理节点接收来自所述第一处理节点的RDMA内存分配消息,所述RDMA内存分配消息携带第一节点标识和第一存储标识,所述第一节点标识用于指示所述第一内存节点,所述第一存储标识用于指示所述第一内存节点中用于接受所述RDMA写操作的存储单元;
所述第二处理节点封装RDMA拷贝操作消息,所述RDMA拷贝操作消息中携带所述第一节点标识、所述第一存储标识和第二存储标识,所述第二存储标识用于指示所述第二内存节点中用于所述RDMA写操作的数据的内存地址;
所述第二处理节点将所述RDMA拷贝操作消息发送给所述第二内存节点,指示所述第二内存节点根据所述第一节点标识确定所述第一内存节点,将所述第二存储标识指示的存储单元中的数据写入所述第一存储标识指示的第一内存节点的存储单元。
结合第一方面,在第一种可能的实现方式中,所述第二处理节点接收来自所述第一处理节点的RDMA内存分配消息之后,还包括:
所述第二处理节点生成工作队列元素WQE,并将所述WQE放入所述第二内存节点RDMA连接的队列对QP的发送队列SQ中,所述WQE携带所述第一节点标识、所述第一存储标识和所述第二存储标识,用于指示将所述第二存储标识指示的存储单元中的数据拷贝至所述第一存储标识指示的存储单元中;
则所述第二处理节点封装RDMA拷贝操作消息,包括:从所述QP的发送队列SQ中取出所述WQE,根据所述WQE,封装所述RDMA拷贝操作消息。
结合第一方面或第一方面或以上任一种可能的实现方式,在第一方面第二种可能的实现方式中,所述第一节点标识包括:
保护域编号,用于标识所述第一内存节点所在的保护域;
第一内存节点标识,用于在所述保护域中标识所述第一内存节点。
结合第一方面或第一方面或以上任一种可能的实现方式,在第一方面第三种可能的实现方式中,所述第一内存节点和所述第二内存节点在同一保护域,所述第一节点标识包括:
第一内存节点标识,用于在所述同一保护域中标识所述第一内存节点。
结合第一方面或第一方面或以上任一种可能的实现方式,在第一方面第四种可能的实现方式中,所述第一存储标识包括:
第一虚拟地址,用于标识所述第一内存节点的用于接收所述RDMA写操作的存储单元的在所述第一处理节点的虚拟地址;和
第一远端内存钥匙,用于表征访问所述第一内存节点的存储设备的权限,以及结合所述第一虚拟地址确定所述第一内存节点的用于接收RDMA写操作的存储单元的物理地址。
结合第一方面或第一方面或以上任一种可能的实现方式,在第一方面第五种可能的实现方式中,所述第二存储标识包括:
第二虚拟地址,用于标识所述第二内存节点的用于RDMA写操作的数据在所述第二处理节点中的虚拟地址;
数据长度,用于标识所述第二内存节点的用于RDMA写操作的数据的长度;和
第二远端内存钥匙,用于表征访问所述第二内存节点存储设备的权限,以及结合所述第二虚拟地址确定所述用于RDMA写操作的数据在所述第二内存节点中的物理地址。
结合第一方面或第一方面或以上任一种可能的实现方式,在第一方面第六种可能的实现方式中,所述第二处理节点将所述RDMA拷贝操作消息发送给所述第二内存节点之后,进一步包括:接收所述第二内存节点的RDMA应答消息,所述RDMA应答消息用于指示所述RDMA写操作已完成。
第二方面,本发明实施例提供了一种远程直接数据存取RDMA数据拷贝的设备,包括:处理器、存储器、总线和通信接口;
所述存储器用于存储计算机执行指令,所述处理器与所述存储器通过所述总线连接,当所述计算设备运行时,所述处理器执行所述存储器存储的所述计算机执行指令,以使所述远程直接数据存取RDMA数据拷贝的设备执行第一方面或第一方面任一种可能的实现方式的方法。
第三方面,本发明实施例提供了一种远程直接数据存取RDMA数据拷贝的方法,第一计算设备包括第一处理节点和第一内存节点,第二计算设备包括第二处理节点和第二内存节点,包括:
所述第二内存节点接收来自所述第二处理节点的RDMA拷贝操作消息,所述RDMA拷贝操作消息携带第一节点标识、第一存储标识和第二存储标识,所述第一节点标识用于指示所述第一内存节点,所述第一存储标识用于指示所述第一内存节点中用于接受RDMA写操作的存储单元,所述第二存储标识用于指示所述第二内存节点用于所述RDMA写操作的数据;
第二内存节点根据所述RDMA拷贝操作消息,取出所述第二存储标识指示的所述数据,根据所述第一存储标识,封装RDMA写操作消息,所述RDMA写操作消息中包含所述RDMA写操作的数据和所述第一存储标识;
第二内存节点将所述RDMA写操作消息发送给所述第一节点标识指示的第一内存节点,指示第一内存节点将所述数据写入所述第一存储标识指示的存储单元。
结合第三方面,在第一种可能的实现方式中,所述第一节点标识包括:
保护域编号,用于标识所述第一内存节点所在的保护域;
第一内存节点标识,用于在所述保护域中标识所述第一内存节点。
结合第三方面或第三方面或以上任一种可能的实现方式,在第三方面第二种可能的实现方式中,所述第一内存节点和所述第二内存节点在同一保护域,所述第一节点标识包括:
第一内存节点标识,用于在所述同一保护域中标识所述第一内存节点。
结合第三方面或第三方面或以上任一种可能的实现方式,在第三方面第三种可能的实现方式中,所述第一存储标识包括:
第一虚拟地址,用于标识所述第一内存节点的用于接收所述RDMA写操作的存储单元的在所述第一处理节点的虚拟地址;和
第一远端内存钥匙,用于表征访问所述第一内存节点的存储设备的权限,以及结合所述第一虚拟地址确定所述第一内存节点的用于接收RDMA写操作的存储单元的物理地址。
结合第三方面或第三方面或以上任一种可能的实现方式,在第三方面第四种可能的实现方式中,所述第二存储标识包括:
第二虚拟地址,用于标识所述第二内存节点的用于RDMA写操作的数据在所述第二处理节点中的虚拟地址;
数据长度,用于标识所述第二内存节点的用于RDMA写操作的数据的长度;和
第二远端内存钥匙,用于表征访问所述第二内存节点存储设备的权限,以及结合所述第二虚拟地址确定所述用于RDMA写操作的数据在所述第二内存节点中的物理地址。
结合第三方面或第三方面或以上任一种可能的实现方式,在第三方面第五种可能的实现方式中,还包括:接收所述第一内存节点的RDMA应答消息,所述RDMA应答消息用于指示RDMA写操作已完成。
结合第三方面或第三方面或以上任一种可能的实现方式,在第三方面第六种可能的实现方式中,还包括,将所述RDMA应答消息发送给所述第二处理节点。
第四方面,本发明实施例提供了一种远程直接数据存取RDMA数据拷贝的设备,包括:处理器、存储器、总线和通信接口;
所述存储器用于存储计算机执行指令,所述处理器与所述存储器通过所述总线连接,当所述计算设备运行时,所述处理器执行所述存储器存储的所述计算机执行指令,以使所述远程直接数据存取RDMA数据拷贝的设备执行第三方面或第三方面任一种可能的实现方式的方法。
第五方面,本发明实施例提供了一种远程直接数据存取RDMA数据拷贝的方法,第一计算设备包括第一处理节点和第一内存节点,包括:
第二计算设备向所述第一处理节点发送RDMA内存请求消息,所述RDMA内存请求消息用于向所述第一处理节点请求用于RDMA写操作的目标内存;
所述第二计算设备接收来自所述第一处理节点的RDMA内存分配消息,所述RDMA内存分配消息携带第一节点标识和第一存储标识,所述第一节点标识用于指示所述第一内存节点,所述第一存储标识用于指示所述第一内存节点中用于接受所述RDMA写操作的存储单元;
所述第二计算设备封装RDMA写操作消息,所述RDMA写操作消息中携带用于所述RDMA写操作的数据和所述第一存储标识;
所述第二计算设备将所述RDMA写操作消息发送给所述第一节点标识指示的所述第一内存节点,指示所述第一内存节点将所述数据写入所述第一存储标识指示的存储单元。
结合第五方面,在第一种可能的实现方式中,还包括:
所述第二计算设备生成工作队列元素WQE,并将所述WQE放入与所述第一处理节点建立的RDMA连接的队列对QP的发送队列SQ中,所述WQE携带所述第一节点标识、所述第一存储标识和所述第二存储标识,用于指示将所述第二存储标识指示的存储单元中的数据拷贝至所述第一存储标识指示的存储单元中,所述第二存储标识用于指示所述第二存储设备用于所述RDMA写操作的数据;
则所述第二计算设备封装RDMA写操作消息包括:所述第二计算设备从所述QP的发送队列SQ中取出所述WQE,根据所述WQE,取出所述第二存储标识指示的所述数据,根据所述第一存储标识,封装所述RDMA写操作消息。
结合第五方面或第五方面或以上任一种可能的实现方式,在第五方面第二种可能的实现方式中,所述第一节点标识包括:
保护域编号,用于标识所述第一内存节点所在的保护域;
第一内存节点标识,用于在所述保护域中标识所述第一内存节点。
结合第五方面或第五方面或以上任一种可能的实现方式,在第五方面第三种可能的实现方式中,所述第一内存节点和所述第二计算设备在同一保护域,所述第一节点标识包括:
第一内存节点标识,用于在所述同一保护域中标识所述第一内存节点。
结合第五方面或第五方面或以上任一种可能的实现方式,在第五方面第四种可能的实现方式中,所述第一存储标识包括:
第一虚拟地址,用于标识所述第一内存节点的用于接收所述RDMA写操作的存储单元的在所述第一处理节点的虚拟地址;和
第一远端内存钥匙,用于表征访问所述第一内存节点的存储设备的权限,以及结合所述第一虚拟地址确定所述第一内存节点的用于接收RDMA写操作的存储单元的物理地址。
结合第五方面或第五方面或以上任一种可能的实现方式,在第五方面第五种可能的实现方式中,所述第二计算设备将所述RDMA写操作消息发送给所述第一节点标识指示的所述第一内存节点之后,进一步包括:接收所述第一内存节点的RDMA应答消息,所述RDMA应答消息用于指示RDMA写操作已完成。
第六方面,本发明实施例提供了一种远程直接数据存取RDMA数据拷贝的设备,其特征在于,包括:处理器、存储器、总线和通信接口;
所述存储器用于存储计算机执行指令,所述处理器与所述存储器通过所述总线连接,当所述计算设备运行时,所述处理器执行所述存储器存储的所述计算机执行指令,以使所述远程直接数据存取RDMA数据拷贝的设备执行第五方面或第五方面任一种可能的实现方式的方法。
第七方面,本发明实施例提供了一种远程直接数据存取RDMA数据拷贝的装置,其特征在于,第一计算设备包括第一处理节点和第一内存节点,第二计算设备包括所述装置与第二内存节点,包括:
发送单元,所述第一处理节点发送RDMA内存请求消息,所述RDMA内存请求消息用于向所述第一处理节点请求用于RDMA写操作的目标内存;
接收单元,用于接收来自所述第一处理节点的RDMA内存分配消息,所述RDMA内存分配消息携带第一节点标识和第一存储标识,所述第一节点标识用于指示所述第一内存节点,所述第一存储标识用于指示所述第一内存节点中用于接受所述RDMA写操作的存储单元;
封装单元,用于封装RDMA拷贝操作消息,所述RDMA拷贝操作消息中携带所述第一节点标识、所述第一存储标识和第二存储标识,所述第二存储标识用于指示所述第二内存节点中用于所述RDMA写操作的数据的内存地址;
所述发送单元,还用于将所述RDMA拷贝操作消息发送给所述第二内存节点,指示所述第二内存节点根据所述第一节点标识确定所述第一内存节点,将所述第二存储标识指示的存储单元中的数据写入所述第一存储标识指示的第一内存节点的存储单元。
结合第七方面,在第一种可能的实现方式中,还包括生成单元,生成工作队列元素WQE,并将所述WQE放入所述第二内存节点RDMA连接的队列对QP的发送队列SQ中,所述WQE携带所述第一节点标识、所述第一存储标识和所述第二存储标识,用于指示将所述第二存储标识指示的存储单元中的数据拷贝至所述第一存储标识指示的存储单元中;
则所述封装单元用于封装RDMA拷贝操作消息,包括:所述封装单元从所述QP的发送队列SQ中取出所述WQE,根据所述WQE,封装所述RDMA拷贝操作消息。
结合第七方面或第七方面或以上任一种可能的实现方式,在第七方面第二种可能的实现方式中,所述第一节点标识包括:
保护域编号,用于标识所述第一内存节点所在的保护域;
第一内存节点标识,用于在所述保护域中标识所述第一内存节点。
结合第七方面或第七方面或以上任一种可能的实现方式,在第七方面第三种可能的实现方式中,所述第一内存节点和所述第二内存节点在同一保护域,所述第一节点标识包括:
第一内存节点标识,用于在所述同一保护域中标识所述第一内存节点。
结合第七方面或第七方面或以上任一种可能的实现方式,在第七方面第四种可能的实现方式中,所述第一存储标识包括:
第一虚拟地址,用于标识所述第一内存节点的用于接收所述RDMA写操作的存储单元的在所述第一处理节点的虚拟地址;和
第一远端内存钥匙,用于表征访问所述第一内存节点的存储设备的权限,以及结合所述第一虚拟地址确定所述第一内存节点的用于接收RDMA写操作的存储单元的物理地址。
结合第七方面或第七方面或以上任一种可能的实现方式,在第七方面第五种可能的实现方式中,所述第二存储标识包括:
第二虚拟地址,用于标识所述第二内存节点的用于RDMA写操作的数据在所述第二处理节点中的虚拟地址;
数据长度,用于标识所述第二内存节点的用于RDMA写操作的数据的长度;和
第二远端内存钥匙,用于表征访问所述第二内存节点存储设备的权限,以及结合所述第二虚拟地址确定所述用于RDMA写操作的数据在所述第二内存节点中的物理地址。
结合第七方面或第七方面或以上任一种可能的实现方式,在第七方面第六种可能的实现方式中,所述接收单元还用于:接收所述第二内存节点的RDMA应答消息,所述RDMA应答消息用于指示所述RDMA写操作已完成。
第八方面,本发明实施例提供了一种远程直接数据存取RDMA数据拷贝的装置,其特征在于,第一计算设备包括第一处理节点和第一内存节点,第二计算设备包括第二处理节点和所述装置,包括:
接收单元,用于接收来自所述第二处理节点的RDMA拷贝操作消息,所述RDMA拷贝操作消息携带第一节点标识、第一存储标识和第二存储标识,所述第一节点标识用于指示所述第一内存节点,所述第一存储标识用于指示所述第一内存节点中用于接受RDMA写操作的存储单元,所述第二存储标识用于指示所述第二内存节点用于所述RDMA写操作的数据;
封装单元,用于根据所述RDMA拷贝操作消息,取出所述第二存储标识指示的所述数据,根据所述第一存储标识,封装RDMA写操作消息,所述RDMA写操作消息中包含所述RDMA写操作的数据和所述第一存储标识;
发送单元,用于将所述RDMA写操作消息发送给所述第一节点标识指示的第一内存节点,指示第一内存节点将所述数据写入所述第一存储标识指示的存储单元。
结合第八方面,在第一种可能的实现方式中,所述第一节点标识包括:
保护域编号,用于标识所述第一内存节点所在的保护域;
第一内存节点标识,用于在所述保护域中标识所述第一内存节点。
结合第八方面或第八方面或以上任一种可能的实现方式,在第八方面第二种可能的实现方式中,所述第一内存节点和所述第二内存节点在同一保护域,所述第一节点标识包括:
第一内存节点标识,用于在所述同一保护域中标识所述第一内存节点。
结合第八方面或第八方面或以上任一种可能的实现方式,在第八方面第三种可能的实现方式中,所述第一存储标识包括:
第一虚拟地址,用于标识所述第一内存节点的用于接收所述RDMA写操作的存储单元的在所述第一处理节点的虚拟地址;和
第一远端内存钥匙,用于表征访问所述第一内存节点的存储设备的权限,以及结合所述第一虚拟地址确定所述第一内存节点的用于接收RDMA写操作的存储单元的物理地址。
结合第八方面或第八方面或以上任一种可能的实现方式,在第八方面第四种可能的实现方式中,所述第二存储标识包括:
第二虚拟地址,用于标识所述第二内存节点的用于RDMA写操作的数据在所述第二处理节点中的虚拟地址;
数据长度,用于标识所述第二内存节点的用于RDMA写操作的数据的长度;和
第二远端内存钥匙,用于表征访问所述第二内存节点存储设备的权限,以及结合所述第二虚拟地址确定所述用于RDMA写操作的数据在所述第二内存节点中的物理地址。
结合第八方面或第八方面或以上任一种可能的实现方式,在第八方面第五种可能的实现方式中,所述接收单元还用于:接收所述第一内存节点的RDMA应答消息,所述RDMA应答消息用于指示RDMA写操作已完成。
结合第八方面或第八方面或以上任一种可能的实现方式,在第八方面第六种可能的实现方式中,所述发送单元还用于:将所述RDMA应答消息发送给所述第二处理节点。
第九方面,本发明实施例提供了一种远程直接数据存取RDMA数据拷贝的装置,其特征在于,第一计算设备包括第一处理节点和第一内存节点,包括:
发送单元,用于向所述第一处理节点发送RDMA内存请求消息,所述RDMA内存请求消息用于向所述第一处理节点请求用于RDMA写操作的目标内存;
接收单元,用于接收来自所述第一处理节点的RDMA内存分配消息,所述RDMA内存分配消息携带第一节点标识和第一存储标识,所述第一节点标识用于指示所述第一内存节点,所述第一存储标识用于指示所述第一内存节点中用于接受所述RDMA写操作的存储单元;
封装单元,用于封装RDMA写操作消息,所述RDMA写操作消息中携带用于所述RDMA写操作的数据和所述第一存储标识;
所述发送单元还用于,将所述RDMA写操作消息发送给所述第一节点标识指示的所述第一内存节点,指示所述第一内存节点将所述数据写入所述第一存储标识指示的存储单元。
结合第九方面,在第一种可能的实现方式中,还包括生成单元,所述生成单元用于生成工作队列元素WQE,并将所述WQE放入与所述第一处理节点建立的RDMA连接的队列对QP的发送队列SQ中,所述WQE携带所述第一节点标识、所述第一存储标识和所述第二存储标识,用于指示将所述第二存储标识指示的存储单元中的数据拷贝至所述第一存储标识指示的存储单元中,所述第二存储标识用于指示所述第二存储设备用于所述RDMA写操作的数据;
所述封装单元用于封装RDMA写操作消息,包括:从所述QP的发送队列SQ中取出所述WQE,根据所述WQE,取出所述第二存储标识指示的所述数据,根据所述第一存储标识,封装所述RDMA写操作消息。
结合第九方面或第九方面或以上任一种可能的实现方式,在第九方面第二种可能的实现方式中,所述第一节点标识包括:
保护域编号,用于标识所述第一内存节点所在的保护域;
第一内存节点标识,用于在所述保护域中标识所述第一内存节点。
结合第九方面或第九方面或以上任一种可能的实现方式,在第九方面第三种可能的实现方式中,所述第一内存节点和所述第二计算设备在同一保护域,所述第一节点标识包括:
第一内存节点标识,用于在所述同一保护域中标识所述第一内存节点。
结合第九方面或第九方面或以上任一种可能的实现方式,在第九方面第四种可能的实现方式中,所述第一存储标识包括:
第一虚拟地址,用于标识所述第一内存节点的用于接收所述RDMA写操作的存储单元的在所述第一处理节点的虚拟地址;和
第一远端内存钥匙,用于表征访问所述第一内存节点的存储设备的权限,以及结合所述第一虚拟地址确定所述第一内存节点的用于接收RDMA写操作的存储单元的物理地址。
结合第九方面或第九方面或以上任一种可能的实现方式,在第九方面第五种可能的实现方式中,所述接收单元还用于:接收所述第一内存节点的RDMA应答消息,所述RDMA应答消息用于指示RDMA写操作已完成。
第十方面,本发明实施例提供了一种远程直接数据存取RDMA数据拷贝的系统,其特征在于,包括第一计算设备和第二计算设备,第一计算设备包括第一处理节点和第一内存节点,第二计算设备包括第二处理节点和第二内存节点:
所述第二处理节点,用于向所述第一处理节点发送RDMA内存请求消息,所述RDMA内存请求消息用于向第一处理节点请求用于RDMA写操作的目标内存;
所述第一处理节点,用于根据接收到的所述RDMA写操作消息,向所述第一内存节点申请接受RDMA写操作的内存,并向所述第二处理节点发送RDMA内存分配消息,所述RDMA内存分配消息携带第一节点标识和第一存储标识,所述第一节点标识用于指示所述第一内存节点,所述第一存储标识用于指示所述第一内存节点中用于接受所述RDMA写操作的存储单元;
所述第二处理节点还用于:根据接收到的所述RDMA内存分配消息,封装RDMA拷贝操作消息,并将所述RDMA拷贝操作消息发送给所述第二内存节点,所述RDMA拷贝操作消息中携带所述第一节点标识、所述第一存储标识和第二存储标识,所述第二存储标识用于指示所述第二内存节点中用于所述RDMA写操作的数据的内存地址;
所述第二内存节点,用于根据接收到的所述RDMA拷贝操作消息,取出所述第二存储标识指示的所述数据,根据所述第一存储标识,封装RDMA写操作消息,所述RDMA写操作消息中包含所述RDMA写操作的数据和所述第一存储标识,并将所述RDMA写操作消息发送给所述第一内存节点;
所述第一内存节点,用于根据接收到的所述RDMA写操作消息,将所述数据写到所述第一存储标识指示的存储单元中。
结合第十方面,在第一种可能的实现方式中,所述第二处理节点还用于:生成工作队列元素WQE,并将所述WQE放入所述第二内存节点RDMA连接的队列对QP的发送队列SQ中,所述WQE携带所述第一节点标识、所述第一存储标识和所述第二存储标识,用于指示将所述第二存储标识指示的存储单元中的数据拷贝至所述第一存储标识指示的存储单元中;
所述第二处理节点用于封装RDMA拷贝操作消息,包括:从所述QP的发送队列SQ中取出所述WQE,根据所述WQE,封装所述RDMA拷贝操作消息。
结合第十方面或第十方面或以上任一种可能的实现方式,在第十方面第二种可能的实现方式中,所述第一节点标识包括:
保护域编号,用于标识所述第一内存节点所在的保护域;
第一内存节点标识,用于在所述保护域中标识所述第一内存节点。
结合第十方面或第十方面或以上任一种可能的实现方式,在第十方面第三种可能的实现方式中,所述第一内存节点和所述第二内存节点在同一保护域,所述第一节点标识包括:
第一内存节点标识,用于在所述同一保护域中标识所述第一内存节点。
结合第十方面或第十方面或以上任一种可能的实现方式,在第十方面第四种可能的实现方式中,所述第一存储标识包括:
第一虚拟地址,用于标识所述第一内存节点的用于接收所述RDMA写操作的存储单元的在所述第一处理节点的虚拟地址;和
第一远端内存钥匙,用于表征访问所述第一内存节点的存储设备的权限,以及结合所述第一虚拟地址确定所述第一内存节点的用于接收RDMA写操作的存储单元的物理地址。
结合第十方面或第十方面或以上任一种可能的实现方式,在第十方面第五种可能的实现方式中,所述第二存储标识包括:
第二虚拟地址,用于标识所述第二内存节点的用于RDMA写操作的数据在所述第二处理节点中的虚拟地址;
数据长度,用于标识所述第二内存节点的用于RDMA写操作的数据的长度;和
第二远端内存钥匙,用于表征访问所述第二内存节点存储设备的权限,以及结合所述第二虚拟地址确定所述用于RDMA写操作的数据在所述第二内存节点中的物理地址。
结合第十方面或第十方面或以上任一种可能的实现方式,在第十方面第六种可能的实现方式中,所述第二内存节点还用于:接收所述第一内存节点的RDMA应答消息,并将所述RDMA应答消息发送给所述第二处理节点,所述RDMA应答消息用于指示所述RDMA写操作已完成。
第十一方面,本发明实施例提供了一种远程直接数据存取RDMA数据拷贝的系统,其特征在于,包括第一计算设备和第二计算设备,所述第一计算设备包括第一处理节点和第一内存节点,包括:
所述第二计算设备,用于向所述第一处理节点发送RDMA内存请求消息,所述RDMA内存请求消息用于向所述第一处理节点请求用于RDMA写操作的目标内存;
所述第一处理节点,用于根据接收到的所述RDMA写操作消息,向所述第一内存节点申请接受RDMA写操作的内存,并向所述第二处理节点发送RDMA内存分配消息,所述RDMA内存分配消息携带第一节点标识和第一存储标识,所述第一节点标识用于指示所述第一内存节点,所述第一存储标识用于指示所述第一内存节点中用于接受所述RDMA写操作的存储单元;
所述第二计算设备还用于,封装RDMA写操作消息,所述RDMA写操作消息中携带用于所述RDMA写操作的数据和所述第一存储标识,并将所述RDMA写操作消息发送给所述第一节点标识指示的第一内存节点;
所述第一内存节点,用于根据接收到的所述RDMA写操作消息,将所述数据写到所述第一存储标识指示的存储单元中。
结合第十一方面,在第一种可能的实现方式中,所述第二计算设备还用于:生成工作队列元素WQE,并将所述WQE放入与所述第一处理节点建立的RDMA连接的队列对QP的发送队列SQ中,所述WQE携带所述第一节点标识、所述第一存储标识和所述第二存储标识,用于指示将所述第二存储标识指示的存储单元中的数据拷贝至所述第一存储标识指示的存储单元中,所述第二存储标识用于指示所述第二存储设备用于所述RDMA写操作的数据;
所述第二计算设备封装RDMA写操作消息包括:所述第二计算设备从所述QP的发送队列SQ中取出所述WQE,根据所述WQE,取出所述第二存储标识指示的所述数据,根据所述第一存储标识,封装所述RDMA写操作消息。
结合第十一方面或第十一方面或以上任一种可能的实现方式,在第十一方面第二种可能的实现方式中,所述第一节点标识包括:
保护域编号,用于标识所述第一内存节点所在的保护域;
第一内存节点标识,用于在所述保护域中标识所述第一内存节点。
结合第十一方面或第十一方面或以上任一种可能的实现方式,在第十一方面第三种可能的实现方式中,所述第一内存节点和所述第二计算设备在同一保护域,所述第一节点标识包括:
第一内存节点标识,用于在所述同一保护域中标识所述第一内存节点。
结合第十一方面或第十一方面或以上任一种可能的实现方式,在第十一方面第三种可能的实现方式中,所述第一存储标识包括:
第一虚拟地址,用于标识所述第一内存节点的用于接收所述RDMA写操作的存储单元的在所述第一处理节点的虚拟地址;和
第一远端内存钥匙,用于表征访问所述第一内存节点的存储设备的权限,以及结合所述第一虚拟地址确定所述第一内存节点的用于接收RDMA写操作的存储单元的物理地址。
结合第十一方面或第十一方面或以上任一种可能的实现方式,在第十一方面第四种可能的实现方式中,所述第二计算设备还用于:接收所述第一内存节点的RDMA应答消息,所述RDMA应答消息用于指示RDMA写操作已完成。
根据本发明提供的技术方案,可以实现与处理节点分离的内存节点之间,或者与处理节点分离的内存节点与其他计算设备的内存之间的RDMA写操作。缩短了数据流经过的路径,节省了链路资源,降低了数据传输耗时,而且数据传输不再经过处理节点或计算设备的计算资源,从而大大节省了处理节点或计算设备的计算资源。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为各计算设备经由RDMA共享数据的示例性联网环境框图;
图2为本发明的示例性计算设备的示意图;
图3为一种RDMA方法的应用场景示意图;
图4为一种RDMA方法的信令图;
图5为依据本发明一实施例的RDMA拷贝方法的应用场景示意图;
图6为依据本发明一实施例的RDMA拷贝方法信令图;
图7为依据本发明一实施例的RDMA拷贝方法的应用场景示意图;
图8为依据本发明一实施例的RDMA拷贝方法信令图;
图9为依据本发明一实施例的RDMA拷贝方法的应用场景示意图;
图10为依据本发明一实施例的RDMA拷贝方法信令图;
图11为依据本发明一实施例的RDMA拷贝方法的示范性流程图;
图12为依据本发明一实施例的RDMA拷贝方法的示范性流程图;
图13为依据本发明一实施例的RDMA拷贝方法的示范性流程图;
图14为依据本发明一实施例的RDMA拷贝装置的逻辑结构示意图;
图15为依据本发明一实施例的RDMA拷贝装置的逻辑结构示意图;
图16为依据本发明一实施例的RDMA拷贝装置的逻辑结构示意图;
图17为依据本发明一实施例的计算设备硬件结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1示出了RDMA连网环境100,其中网络102连接了四个计算设备104。计算设备104使用它们的网络102连接来执行相互的RDMA传递。网络102可以是因特网,内联网,局域网(LocalAreaNetworks,简称LANs),广域网络(WirelessLocalAreaNetworks,简称WLANs),存储区域网络(StorageAreaNetworks,简称SANs)等,或者以上网络的组合。
图1仅旨在为以下讨论目的而引入RDMA参与者以及它们的相互关系。因此,所描绘的RDMA环境100被大大地简化。由于RDMA的一些方面在本领域中是公知的,因此这些方面,诸如认证方案和安全等在此不再讨论。在设置和运行成功的RDMA环境100中所涉及的复杂性对于在本领域中工作的人来说都是公知的。
图1的计算设备104可以是任意体系结构的。图2是一般化地示出支持本发明的示例性计算机系统的框图。图2的计算机系统仅是一个例子,并不试图对本发明的使用范围或功能提出任何限定。也不应当将计算设备104解释为具有与图2中所示的组件中的任何一个或其组合有关的任何依赖性或要求。本发明可与许多其他的通用或专用计算环境或配置一起工作。适于与本发明一起使用的公知计算系统、环境和配置的示例包括但不限于,个人计算机、服务器、手持式或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电器、网络PC、微型计算机、大型计算机、以及包括任意以上系统或设备的分布式计算环境。在其最基本的配置中,计算设备104通常包括至少一个处理器200和存储器202。存储器202可以被计算设备104当做内存资源使用,可以是易失性的随机存取存储器(RandomAccessMemory,简称RAM)、非易失性的只读存储器(ReadOnlyMemory,简称ROM)或闪存、或这两者的某种组合。这个最基本的配置在图2中由04例示。计算设备104可以具有外加的特征和功能。例如,它可以包括外设的存储(可移动的和不可移动的),其包括但不限于,磁盘和磁带以及光盘和光带。这样的外设存储在图2中由可移动存储206和不可移动存储208例示。计算机存储介质包括易失性和非易失性的,可移动的和不可移动的,在任何方法或技术中实现的用来存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的介质。存储器202,可移动存储206和不可移动存储208都是计算机存储介质的示例。计算机存储介质包括,但不限于,RAM、ROM、电可擦出只读存储器(ElectricallyErasableReadOnlyMemory,简称EEPROM)、闪存、其他的存储器技术,CD-ROM、数字通用盘、其他的光存储,磁卡带、磁带、磁盘存储、其他的磁存储设备,以及任何其他可以用来存储所需信息并可由计算设备104访问的介质。任何这样的计算机存储介质都可以是计算设备104的一部分。计算设备104还可以包含允许其与其他设备,包括在网络102上的设备,通信的通信信道210。通信信道210是通信介质的示例。通信介质通常在诸如载波等的已调制数据信号或其它传输机制中包含计算机可读指令、数据结构、程序模块、或其他数据,并包括任何信息传递介质。作为示例而非限定,通信介质包括光介质、诸如有线网络和直线连接等的有线介质、诸如声音、射频(RadioFrequency,简称RF)、红外线和其他无线介质等的无线介质。在此使用的术语"计算机可读介质"包括存储介质和通信介质两者。计算设备104还可以具有诸如触敏式显示屏、硬件键盘、鼠标、语音输入设备等的输入设备212。输出设备214包括设备本身,诸如触敏式显式屏、扬声器、打印机和用来驱动这些设备的呈现模块(常称之为"适配器")。所有这些设备都是本领域公知的,因此在此无需详细讨论。计算设备104具有电源216。
可选的,计算设备104的计算资源与存储资源分离,计算设备104分为处理节点和内存节点,这里的内存节点是指可以被计算设备当做内存资源使用的存储资源,也可以称作存储节点。内存节点包括存储器202和存储器控制器,存储器控制器用于控制存储器202的数据存取等操作;处理节点包括计算设备104的其他特征和功能,可选的,处理节点还包括计算设备104的除内存节点以外的其他内存资源。处理节点和内存节点之间通过网络102进行连接。
图3是远程直接数据存取RDMA方法应用场景的逻辑结构示意图,如图3所示,该系统包括第一计算设备和第二计算设备,其中第一计算设备和第二计算设备为图2所示的计算设备,图中仅示出计算设备的处理器和存储器,其他特征和功能在图3未示出。
RDMA协议允许对应用程序缓冲区进行直接访问,硬件使用所谓的工作队列与软件连接。工作队列是成对地创建的,叫做队列对(QueuePair,QP),QP包括发送队列(SendQueue,SQ)和接收队列(ReceiveQueue,RQ)。SQ用于发送操作,保存使数据在一个计算设备的存储设备和另一个计算资源的存储设备之间传输的指令;RQ用于接收操作,保存有关将从另一个计算设备接收到的数据放在哪里的指令。计算设备提交工作请求,生成要放置在适当的工作队列中的工作队列元素(WorkQueueElement,WQE)。通道适配器执行WQE,以便它们放置在工作队列中。
当第二计算设备的第二存储器需要向第一计算设备的第一存储器采用RDMA方法写数据时,其信令图如图4所示,执行步骤为:
402:第二计算设备与第一计算设备通过网络102建立基于队列对QP的RDMA连接。
404:第二计算设备接收来自第一计算设备的,属于第一计算设备的RDMA内存分配消息,RDMA内存分配消息携带第一节点标识和第一存储标识,第一节点标识用于标识第一计算设备,第一存储标识用于表征访问第一存储器的权限,和标识第一存储器接受RDMA写操作的存储单元。
可选的,第一存储标识包含虚拟地址(VirtualAddress,VA)和远端内存钥匙(RemoteKey,R_KEY)。其中,虚拟地址VA表示第一存储器用于接受RDMA写操作的存储单元的虚拟地址,远端内存钥匙R_KEY用于表征第二计算设备访问第一存储器的权限,且用于结合虚拟地址VA共同确定第一存储器用于接收RDMA写操作的存储单元的物理地址。远端内存钥匙R_KEY提供了索引的信息,可以通过索引信息找到具体的内存片,并根据VA找到具体的内存块起始地址,从而实现将虚拟地址VA映射为第一存储器的物理地址。通过VA和R-KEY实现确定要访问的第一存储器的物理地址是现有技术,具体细节此处不再赘述。
406:第二计算设备生成用于第二存储器向第一存储器RDMA写操作的工作队列元素WQE,并将该WQE放入队列对QP的发送队列SQ中,该WQE携带第一存储标识,以及第二存储标识。其中,第二存储标识用于标识第二存储器用于RDMA写操作的数据302。该WQE用于指示将第二存储器的数据302拷贝至第一存储器的内存地址。
可选的,第二存储标识包括数据302在第二存储器的首地址和数据地址长度。
408:第二计算设备的RDMA网络接口控制器(RDMANetworkInterfaceCard,RNIC)314从队列对QP的发送队列SQ中,将该WQE取出,并提取第一存储标识和第二存储标识,并根据第二存储标识,提取第二存储器用于RDMA写操作的数据302,并将数据302与第一存储标识一起封装成RDMA写操作(RDMAWRITE)消息,RDMAWRITE消息用于指示将该数据302写入第一存储标识指示的第一存储器的存储单元中。
410:根据第一计算设备与第二计算设备的RDMA连接关系,第二计算设备的RNIC将RDMAWRITE消息发送给第一计算设备的RNIC。
412:第一计算设备的RNIC根据RDMAWRITE消息指示,验证消息权限后,将数据302写入第一存储标识指示的第一存储器的存储单元中。
可选的,在步骤412之后,该方法还包括第一计算设备将RDMA写操作完成的响应消息发送给第二计算设备,用于指示RDMA写操作完成。
依据图4所示的RDMA方法,可以实现基于第一计算设备104与第二计算设备104之间的RDMA写操作,如果计算设备104的处理器与存储器相互分离,图3对应的RDMA方法无法实现分离的存储器之间的RDMA写操作。
图5为依据本发明实施例的一种远程直接数据存取方法的应用场景示意图,如图5所示,该系统包括第一计算设备和第二计算设备,其中第一计算设备和第二计算设备为图2所示的计算设备,图中仅示出计算设备的处理器、存储器和存储器控制器,其他特征和功能在图5未示出。第一计算设备的第一处理器与第一存储器分离,将第一计算设备划分为图5所示的第一处理节点502和第一内存节点504,其中第一处理节点502包括第一处理器和计算设备104的其他特征和功能(图中未示出),第一内存节点504包括第一存储器控制器506和第一存储器,第一处理节点502与第一内存节点504之间通过网络102进行通信。第二计算设备的第二处理器与第二存储器分离,将第二计算设备划分为图5所示的第二处理节点508和第二内存节点510,其中第二处理节点508包括第二处理器和计算设备104其他特征和功能(图中未示出),第二内存节点510包括第二存储器控制器512和第二存储器,第二处理节点508与第二内存节点510之间通过网络102进行通信。
可选的,第一处理节点502还包括第一计算设备104的除第一内存节点504外的其他存储资源。
可选的,第二处理节点508还包括第二计算设备104的除第二内存节点510外的其他存储资源。
当第二计算设备的第二存储器需要向第一计算设备的第一存储器采用RDMA方法写数据时,其信令图如图6所示,执行步骤为:
602:第二处理节点508向第一处理节点502通过网络102发送RDMA内存请求消息,所述RDMA内存请求消息用于向第一处理节点请求用于RDMA写操作的目标内存。
可选的,所述RDMA内存请求消息携带要进行RDMA写操作的数据大小信息,第一处理节点502根据收到的RDMA内存请求消息,向第一内存节点504申请用于接受RDMA写操作的内存。
可选的,第一内存节点504根据RDMA写操作的数据大小和物理内存使用情况,为第一处理节点502在第一存储器分配内存,并将内存分配消息发送给第一处理节点502。
可选的,第一处理节点502还生成队列对QP,并将QP与第一内存节点504分配的内存关联起来,并将队列对QP信息发送给第二处理节点508,与第二处理节点508建立基于队列对QP的RDMA连接。
可选的,第一内存节点504还生成队列对,将QP与第一内存节点504分配的内存关联起来,并将队列对QP信息发送给第一处理节点502,第一处理节点502将QP信息发送给第二处理节点508,与第二处理节点508建立基于队列对QP的RDMA连接。
可选的,第一处理节点502还生成虚拟地址(VirtualAddress,简称VA)和远端内存钥匙(RemoteKey,简称R_KEY),并将VA和R_KEY发送给第二处理节点508。VA用于表征第一内存节点504分配的用于接受RDMA写操作的内存的虚拟地址,R_KEY用于表征访问第一内存节点504分配的用于接受RDMA写操作的内存的权限,且用于结合虚拟地址VA共同确定第一内存节点用于接收RDMA写操作的存储单元的物理地址,即实现将虚拟地址映射为第一内存节点504的第一存储器的物理地址。
可选的,第一内存节点504还生成VA和R_KEY,并将VA和R_KEY发送给第一处理节点502,第一处理节点502将VA和R_KEY发送给第二处理节点508。VA用于指示第一内存节点504分配的用于接受RDMA写操作的内存的虚拟地址,R_KEY用于表征访问第一内存节点504分配的用于接受RDMA写操作的内存的权限,且用于结合虚拟地址VA共同确定第一内存节点用于接收RDMA写操作的存储单元的物理地址,即实现将虚拟地址映射为第一内存节点504的第一存储器的物理地址。
604:第二处理节点508接收来自第一处理节点502的RDMA内存分配消息,RDMA内存分配消息携带第一节点标识和第一存储标识,第一节点标识用于标识第一内存节点504,第一存储标识用于表征访问第一存储器的权限,和标识第一内存节点504的第一存储器接受RDMA写操作的存储单元。
可选的,第一节点标识包括:保护域编号,用于标识第一内存节点504所在的第一保护域,和第一内存节点标识,用于在第一保护域中确定第一内存节点504。
可选的,第一内存节点504和第二内存节点510在同一保护域,第一节点标识仅包括第一内存节点标识,用于在该保护域中确定第一内存节点504。
可选的,第一存储标识包括:第一虚拟地址,用于标识第一内存节点504的第一存储器用于接受RDMA写操作的存储单元的虚拟地址,和第一远端内存钥匙,用于表征访问第一存储器的权限,以及结合虚拟地址共同确定第一存储器用于接收RDMA写操作的存储单元的物理地址,即实现将第一虚拟地址映射到第一存储器的物理地址。
606:第二处理节点508封装RDMA拷贝操作消息,该RDMA拷贝操作消息中携带第一节点标识、第一存储标识和第二存储标识,其中,第二存储标识用于表征访问第二存储器的权限,和标识第二存储器用于RDMA写操作的数据514,该RDMA拷贝操作消息用于指示第二内存节点510将数据514拷贝至第一内存节点的第一存储器的存储单元中。
可选的,第二存储标识包括:第二虚拟地址,用于标识第二存储器用于RDMA写操作的数据514的虚拟地址;数据长度,用于标识数据514的数据地址长度;和第二远端内存钥匙,用于表征访问第二存储器的权限,以及结合虚拟地址VA共同确定第二存储器用于RDMA写操作的数据的存储单元的物理地址,即实现将第二虚拟地址映射到第二存储器的物理地址。
可选的,步骤606之前,进一步包括:第二处理节点508生成工作队列元素WQE,并将该WQE放入与第二内存节点510RDMA连接的队列对QP的发送队列SQ中,该WQE携带第一节点标识、第一存储标识和第二存储标识,该WQE用于指示将第二存储器中的数据514拷贝至第一存储器的存储单元中。
可选的,所述WQE还包括第二节点标识,用于指示第二内存节点510。
第二处理节点508的RNIC将该WQE从SQ中取出,根据该WQE指示,封装RDMA拷贝操作消息。
608:第二处理节点508的RNIC将RDMA拷贝操作消息通过网络102发送给第二内存节点510。
610:第二存储器控制器512根据RDMA拷贝操作消息指示,验证消息权限后,取出第二存储标识标识的数据514,结合第一存储标识,封装RDMAWRITE消息,该RDMAWRITE消息用于指示第一内存节点将数据514写入第一存储标识指示的第一存储器的存储单元中。
612:第二存储器控制器512将RDMA写操作消息通过网络102发送给第一节点标识指示的第一内存节点504。
614:第一存储器控制器506根据RDMAWRITE消息指示,验证消息权限后,将数据514写入第一存储标识指示的第一存储器的存储单元中。
可选的,步骤614之后,进一步包括,第一内存节点504向第二内存节点510发送RDMA响应消息,用于指示RDMA写操作完成,第二内存节点510将该RDMA响应消息发送给第二处理节点508。
可选的,步骤614之后,进一步包括,第一内存节点504向第二处理节点508发送RDMA响应消息,用于指示RDMA写操作完成。
根据本实施例公开的技术方案,计算设备的内存资源与计算资源分离,当需要将第二内存节点内的数据写入第一内存节点时,通过增加RDMA拷贝操作消息,指示第二内存节点直接向第一内存节点写数据,实现了与计算资源分离的内存资源之间的RDMA写操作。采用本方案,实现了内存节点之间的RDMA写操作,内存节点之间的RDMA写操作的数据不经过第二处理节点和第一处理节点,从而缩短了数据流经过的路径,节省了链路资源,降低了数据传输耗时,而且数据传输不再经过处理节点,从而大大节省了处理节点的计算资源。
图7为依据本发明实施例的一种远程直接数据存取方法的应用场景,如图7所示,该系统包括第一计算设备和第二计算设备,其中第一计算设备和第二计算设备为图2所示的计算设备,图中仅示出计算设备的处理器、存储器和存储器控制器,其他特征和功能在图7未示出。第一计算设备的第一处理器与第一存储器分离,将第一计算设备划分为图7所示的第一处理节点702和第一内存节点704,其中第一处理节点702包括第一处理器和其他特征和功能(图中未示出),第一内存节点704包括第一存储器控制器706和第一存储器,第一处理节点702与第一内存节点704之间通过网络102进行通信。
可选的,第一处理节点702还包括第一计算设备104的除第一内存节点704外的其他内存资源。
当第二计算设备的第二存储器需要向第一计算设备的第一存储器采用RDMA方法写数据时,其信令图如图8所示,执行步骤为:
802:第二计算设备向第一处理节点702发送RDMA内存请求消息,所述RDMA内存请求消息用于向第一处理节点请求用于RDMA写操作的目标内存。
可选的,所述RDMA内存请求消息携带要进行RDMA写操作的数据大小信息,第一处理节点702根据收到的RDMA内存请求消息,向第一内存节点704申请用于接受RDMA写操作的内存。
可选的,第一内存节点704根据RDMA写操作的数据大小和物理内存使用情况,为第一处理节点702在第一存储器分配内存,并将内存分配消息发送给第一处理节点702。
可选的,第一处理节点702还生成队列对QP,并将QP与第一内存节点704分配的内存关联起来,并将队列对QP信息发送给第二计算设备,与第二计算设备建立基于队列对QP的RDMA连接。
可选的,第一内存节点704还生成队列对,将QP与第一内存节点704分配的内存关联起来,并将队列对QP信息发送给第一处理节点702,第一处理节点702将QP信息发送给第二计算设备,与第二计算设备建立基于队列对QP的RDMA连接。
可选的,第一处理节点702还生成虚拟地址(VirtualAddress,简称VA)和远端内存钥匙(RemoteKey,简称R_KEY),并将VA和R_KEY发送给第二计算设备。VA用于表征第一内存节点704分配的用于接受RDMA写操作的内存的虚拟地址,R_KEY用于表征访问第一内存节点704分配的用于接受RDMA写操作的内存的权限,且用于结合虚拟地址VA共同确定第一内存节点用于接收RDMA写操作的存储单元的物理地址,即实现将虚拟地址映射为第一内存节点704的第一存储器的物理地址。
可选的,第一内存节点704还生成VA和R_KEY,并将VA和R_KEY发送给第一处理节点702,第一处理节点702将VA和R_KEY发送给第二计算设备。VA用于指示第一内存节点704分配的用于接受RDMA写操作的内存的虚拟地址,R_KEY用于表征访问第一内存节点704分配的用于接受RDMA写操作的内存的权限,且用于结合虚拟地址VA共同确定第一内存节点用于接收RDMA写操作的存储单元的物理地址,即实现将虚拟地址映射为第一内存节点704的第一存储器的物理地址。
804:第二处计算设备接收来自第一处理节点702的RDMA内存分配消息,RDMA内存分配消息携带第一节点标识和第一存储标识,第一节点标识用于标识第一内存节点704,第一存储标识用于表征访问第一存储器的权限,和标识第一内存节点704的第一存储器接受RDMA写操作的存储单元。
可选的,第一节点标识包括:保护域编号,用于标识第一内存节点704所在的第一保护域,和第一内存节点标识,用于在第一保护域中确定第一内存节点704。
可选的,第一内存节点704和第二计算设备在同一保护域,第一节点标识仅包括第一内存节点标识,用于在该保护域中确定第一内存节点704。
可选的,第一存储标识包括:第一虚拟地址,用于标识第一内存节点704的第一存储器用于接受RDMA写操作的存储单元的虚拟地址,和第一远端内存钥匙,用于表征访问第一存储器的权限,以及结合虚拟地址共同确定第一存储器用于接收RDMA写操作的存储单元的物理地址,即实现将第一虚拟地址映射到第一存储器的物理地址。
806:第二计算设备从第二存储器中取出用于RDMA写操作的数据708,并将数据708与第一存储标识一起封装成RDMA写操作(RDMAWRITE)消息,RDMAWRITE消息用于指示第一内存节点702将该数据708写入第一存储器的存储单元中。
可选的,在步骤806之前,进一步包括:第二计算设备生成工作队列元素WQE,并将该WQE放入与第一处理节点702RDMA连接的队列对QP的发送队列SQ中,该WQE携带第一节点标识、第一存储标识和第二存储标识,其中,第二存储标识用于标识第二存储器用于RDMA写操作的数据708,该WQE用于指示将第二存储器中的数据708拷贝至第一存储器的存储单元中。第二计算设备的RNIC将该WQE从SQ中取出,根据该WQE指示,封装RDMA写操作消息。
可选的,第二存储标识包括数据708在第二存储器的首地址和数据地址长度。
808:第二计算设备的RNIC将RDMAWRITE消息通过网络102发送给第一节点标识指示的第一内存节点704。
810:第一存储器控制器706根据RDMAWRITE消息指示,验证消息权限后,将数据708写入第一存储标识指示的第一存储器的存储单元中。
可选的,在步骤810之后,该方法还包括:第一内存节点504将RDMA写操作完成的响应消息发送给第二计算设备,用于指示RDMA写操作完成。
根据本实施例公开的技术方案,第一计算设备的内存资源与计算资源分离,当需要将第二计算设备内存中的数据写入第一内存节点时,可以让数据不经过第一处理节点,实现了第二计算设备的内存与第一内存节点之间的RDMA写操作。采用本方案,实现了第二计算设备与第一内存节点之间的RDMA写操作,且RDMA写操作的数据不经过第二计算设比的计算资源和第一处理节点,从而缩短了数据流经过的路径,节省了链路资源,降低了数据传输耗时,而且数据传输不再经过处理节点,从而大大节省了处理节点的计算资源。
图9为依据本发明实施例的一种远程直接数据存取方法的应用场景,如图9所示,该系统包括第一计算设备和第二计算设备,其中第一计算设备和第二计算设备为图2所示的计算设备,图中仅示出计算设备的处理器、存储器和存储器控制器,其他特征和功能在图9未示出。第二计算设备的第二处理器与第二存储器分离,将第二计算设备划分为图9所示的第二处理节点902和第二内存节点904,其中第二处理节点902包括第二处理器和其他特征和功能(图中未示出),第二内存节点904包括第二存储器控制器906和第二存储器,第二处理节点902与第二内存节点904之间通过网络102进行通信。
可选的,第二处理节点902还包括第二计算设备104的除第二内存节点904外的其他内存资源。
当第二计算设备的第二存储器需要向第一计算设备的第一存储器采用RDMA方法写数据时,其信令图如图10所示,执行步骤为:
1002:第二处理节点902通过网络102向第一计算设备发送RDMA内存请求消息,所述RDMA内存请求消息用于向第一计算设备请求用于RDMA写操作的目标内存。
可选的,所述RDMA内存请求消息携带要进行RDMA写操作的数据大小信息,第一计算设备根据收到的RDMA内存请求消息,为RDMA写操作在第一存储器分配内存,并将内存分配消息发送给第二处理节点902。
可选的,第一计算设备还生成队列对QP,并将QP与分配的内存关联起来,并将队列对QP信息发送给第二处理节点902,与第二处理节点902建立基于队列对QP的RDMA连接。
可选的,第一计算设备还生成虚拟地址VA和远端内存钥匙R_KEY,并将VA和R_KEY发送给第二处理节点902。VA用于表征第一计算设备分配的用于接受RDMA写操作的内存的虚拟地址,R_KEY用于表征访问第一计算设备分配的用于接受RDMA写操作的内存的权限,且用于结合虚拟地址VA共同确定第一存储器用于接收RDMA写操作的存储单元的物理地址,即实现将虚拟地址映射为第一存储器的物理地址。可选的,第一计算设备还生成队列对QP,并将QP与为RDMA内存请求消息分配的内存关联起来,并将该队列对QP信息发送给第二处理节点902,与第二处理节点902建立基于队列对QP的RDMA连接。
1004:第二处理节点902接收来自第一计算设备的,属于第一计算设备的RDMA内存分配消息,RDMA内存分配消息携带第一节点标识和第一存储标识,第一节点标识用于标识第一计算设备,第一存储标识用于表征访问第一存储器的权限,和标识第一存储器接受RDMA写操作的存储单元。
可选的,第一节点标识包括:保护域编号,用于标识第一计算设备所在的第一保护域,和第一计算设备标识,用于在第一保护域中确定第一计算设备。
可选的,第一计算设备和第二内存节点904在同一保护域,第一节点标识仅包括第一计算设备标识,用于在该保护域中确定第一计算设备。
可选的,第一存储标识包括:第一虚拟地址(VirtualAddress,VA)和第一远端内存钥匙(RemoteKey,R_KEY)。其中,第一虚拟地址VA表示第一存储器用于接受RDMA写操作的存储单元的虚拟地址,第一远端内存钥匙R_KEY用于表征访问第一存储器的权限,且用于结合虚拟地址VA共同确定第一存储器用于接收RDMA写操作的存储单元的物理地址,即实现将第一虚拟地址VA映射为第一存储器的物理地址。
1006:第二处理节点902封装RDMA拷贝操作消息,该RDMA拷贝操作消息中携带第一节点标识、第一存储标识和第二存储标识,其中,第二存储标识用于表征访问第二存储器的权限,和标识第二存储器用于RDMA写操作的数据908,该RDMA拷贝操作消息用于指示第二内存节点904将数据908拷贝至第一内存节点的第一存储器的存储单元中。
可选的,第二存储标识包括第二虚拟地址,用于标识第二存储器用于RDMA写操作的数据908的虚拟地址;数据长度,用于标识数据908的数据地址长度;和第二远端内存钥匙,用于表征访问第二存储器的权限,以及结合虚拟地址共同确定第二存储器用于RDMA写操作的数据的存储单元的物理地址,即实现将第二虚拟地址映射到第二存储器的物理地址。
可选的,在步骤1006之前,进一步包括:第二处理节点902生成工作队列元素WQE,并将该WQE放入与第二内存节点904RDMA连接的队列对QP的发送队列SQ中,该WQE携带第一节点标识、第一存储标识和第二存储标识,该WQE用于指示将第二存储器中的数据908拷贝至第一存储器的存储单元中。第二处理节点902的RNIC将该WQE从SQ中取出,根据该WQE指示,封装RDMA拷贝操作消息。
可选的,所述WQE还包括第二节点标识,用于指示第二内存节点904。
1008:第二处理节点902的RNIC将RDMA拷贝操作消息通过网络102发送给第二内存节点904。
1010:第二存储器控制器906根据RDMA拷贝操作消息指示,验证消息权限后,取出第二存储标识标识的数据908,结合第一存储标识,封装RDMAWRITE消息,该RDMAWRITE消息用于指示将数据908写入第一存储标识指示的第一存储器的存储单元中。
1012:第二存储器控制器906将RDMA写操作消息通过网络102发送给第一节点标识指示的第一计算设备。
1014:第一计算设备的RNIC根据RDMAWRITE消息指示,验证消息权限后,将数据908写入第一存储标识指示的第一存储器的存储单元中。
可选的,步骤1014之后,进一步包括,第一计算设备向第二内存节点904发送RDMA响应消息,用于指示RDMA写操作完成,第二内存节点904将该RDMA响应消息发送给第二处理节点902。
可选的,步骤1014之后,进一步包括,第一计算设备向第二处理节点902发送RDMA响应消息,用于指示RDMA写操作完成。
根据本实施例公开的技术方案,第二计算设备的内存资源与计算资源分离,当需要将第二内存节点内的数据写入第一计算设备的内存时,通过增加RDMA拷贝操作消息,指示第二内存节点直接向第一计算设备的内存写数据,实现了第二内存节点与第一计算设备之间的RDMA写操作。采用本方案,实现了第二内存节点与第一计算设备之间的RDMA写操作,且RDMA写操作的数据不经过第二处理节点和第一计算设备的计算资源,从而缩短了数据流经过的路径,节省了链路资源,降低了数据传输耗时,而且数据传输不再经过处理节点,从而大大节省了处理节点的计算资源。
图11为依据本发明一实施例的RDMA数据拷贝方法1100的示范性流程图,第一计算设备包括第一处理节点和第一内存节点,第二计算设备包括第二处理节点和第二内存节点,第二处理节点与第二内存节点分离时,用于第二内存节点对第一内存节点进行RDMA写操作,包括:
S1102:第二处理节点向第一处理节点发送RDMA内存请求消息,RDMA内存请求消息用于向所述第一处理节点请求用于RDMA写操作的目标内存。
S1104:所述第二处理节点接收来自所述第一处理节点的RDMA内存分配消息,所述RDMA内存分配消息携带第一节点标识和第一存储标识,所述第一节点标识用于指示所述第一内存节点,所述第一存储标识用于指示所述第一内存节点中用于接受所述RDMA写操作的存储单元。
S1106:所述第二处理节点封装RDMA拷贝操作消息,所述RDMA拷贝操作消息中携带所述第一节点标识、所述第一存储标识和第二存储标识,所述第二存储标识用于指示所述第二内存节点中用于所述RDMA写操作的数据的内存地址;
S1108:所述第二处理节点将所述RDMA拷贝操作消息发送给所述第二内存节点,指示所述第二内存节点根据所述第一节点标识确定所述第一内存节点,将所述第二存储标识指示的存储单元中的数据写入所述第一存储标识指示的第一内存节点的存储单元。
可选的,所述第一计算设备的第一处理节点和第一内存节点分离,第一处理节点与第一处理节点是两个分离的节点,二者通过网络进行通信。
可选的,所述第一计算设备的第一处理节点和第一内存节点不分离,第一处理节点和第一内存节点在同一计算设备节点上,二者用同一节点标识来进行指示。
可选的,方法1100还包括:所述第二处理节点生成工作队列元素WQE,并将所述WQE放入所述第二内存节点RDMA连接的队列对QP的发送队列SQ中,所述WQE携带所述第一节点标识、所述第一存储标识和所述第二存储标识,用于指示将所述第二存储标识指示的存储单元中的数据拷贝至所述第一存储标识指示的存储单元中;则所述第二处理节点封装RDMA拷贝操作消息,包括:从所述QP的发送队列SQ中取出所述WQE,根据所述WQE,封装所述RDMA拷贝操作消息。
可选的,所述第一节点标识包括:
保护域编号,用于标识所述第一内存节点所在的保护域;
第一内存节点标识,用于在所述保护域中标识所述第一内存节点。
可选的,所述第一内存节点和所述第二内存节点在同一保护域,所述第一节点标识包括:
第一内存节点标识,用于在所述同一保护域中标识所述第一内存节点。
可选的,所述第一存储标识包括:
第一虚拟地址,用于标识所述第一内存节点的用于接收所述RDMA写操作的存储单元的在所述第一处理节点的虚拟地址;和
第一远端内存钥匙,用于表征访问所述第一内存节点的存储设备的权限,以及结合所述第一虚拟地址确定所述第一内存节点的用于接收RDMA写操作的存储单元的物理地址。
可选的,所述第二存储标识包括:
第二虚拟地址,用于标识所述第二内存节点的用于RDMA写操作的数据在所述第二处理节点中的虚拟地址;
数据长度,用于标识所述第二内存节点的用于RDMA写操作的数据的长度;和
第二远端内存钥匙,用于表征访问所述第二内存节点存储设备的权限,以及结合所述第二虚拟地址确定所述用于RDMA写操作的数据在所述第二内存节点中的物理地址。
可选的,所述第二处理节点将所述RDMA拷贝操作消息发送给所述第二内存节点之后,进一步包括:接收所述第二内存节点的RDMA应答消息,所述RDMA应答消息用于指示所述RDMA写操作已完成。
采用本实施例提供的技术方案,通过RDMA拷贝操作消息的指示,可以实现分离的内存节点之间,或者分离的内存节点与其他计算设备的内存之间的RDMA写操作。缩短了数据流经过的路径,节省了链路资源,降低了数据传输耗时,而且数据传输不再经过处理节点或计算设备的计算资源,从而大大节省了处理节点或计算设备的计算资源。
图12为依据本发明一实施例的RDMA数据拷贝方法1200的示范性流程图,第一计算设备包括第一处理节点和第一内存节点,第二计算设备包括第二处理节点和第二内存节点,第二处理节点与第二内存节点分离时,用于第二内存节点对第一内存节点进行RDMA写操作,包括:
S1202:所述第二内存节点接收来自所述第二处理节点的RDMA拷贝操作消息,所述RDMA拷贝操作消息携带第一节点标识、第一存储标识和第二存储标识,所述第一节点标识用于指示所述第一内存节点,所述第一存储标识用于指示所述第一内存节点中用于接受RDMA写操作的存储单元,所述第二存储标识用于指示所述第二内存节点用于所述RDMA写操作的数据;
S1204:第二内存节点根据所述RDMA拷贝操作消息,取出所述第二存储标识指示的所述数据,根据所述第一存储标识,封装RDMA写操作消息,所述RDMA写操作消息中包含所述RDMA写操作的数据和所述第一存储标识;
S1206:第二内存节点将所述RDMA写操作消息发送给所述第一节点标识指示的第一内存节点,指示第一内存节点将所述数据写入所述第一存储标识指示的存储单元。
可选的,所述第一计算设备的第一处理节点和第一内存节点分离,第一处理节点与第一处理节点是两个分离的节点,二者通过网络进行通信。
可选的,所述第一计算设备的第一处理节点和第一内存节点不分离,第一处理节点和第一内存节点在同一计算设备节点上,二者用同一节点标识来进行指示。
可选的,所述第一节点标识包括:
保护域编号,用于标识所述第一内存节点所在的保护域;
第一内存节点标识,用于在所述保护域中标识所述第一内存节点。
可选的,所述第一内存节点和所述第二内存节点在同一保护域,所述第一节点标识包括:
第一内存节点标识,用于在所述同一保护域中标识所述第一内存节点。
可选的,所述第一存储标识包括:
第一虚拟地址,用于标识所述第一内存节点的用于接收所述RDMA写操作的存储单元的在所述第一处理节点的虚拟地址;和
第一远端内存钥匙,用于表征访问所述第一内存节点的存储设备的权限,以及结合所述第一虚拟地址确定所述第一内存节点的用于接收RDMA写操作的存储单元的物理地址。
可选的,所述第二存储标识包括:
第二虚拟地址,用于标识所述第二内存节点的用于RDMA写操作的数据在所述第二处理节点中的虚拟地址;
数据长度,用于标识所述第二内存节点的用于RDMA写操作的数据的长度;和
第二远端内存钥匙,用于表征访问所述第二内存节点存储设备的权限,以及结合所述第二虚拟地址确定所述用于RDMA写操作的数据在所述第二内存节点中的物理地址。
可选的,方法1200还包括:接收所述第一内存节点的RDMA应答消息,所述RDMA应答消息用于指示RDMA写操作已完成。
可选的,方法1200还包括,将所述RDMA应答消息发送给所述第二处理节点。
采用本实施例提供的技术方案,通过RDMA拷贝操作消息的指示,可以实现分离的内存节点之间,或者分离的内存节点与其他计算设备的内存之间的RDMA写操作。缩短了数据流经过的路径,节省了链路资源,降低了数据传输耗时,而且数据传输不再经过处理节点或计算设备的计算资源,从而大大节省了处理节点或计算设备的计算资源。
图13为依据本发明一实施例的RDMA数据拷贝方法1300的示范性流程图,第一计算设备包括第一处理节点和第一内存节点,第一处理节点与第一内存节点分离时,用于第二计算设备的第二存储设备对第一内存节点进行RDMA写操作,包括:
S1302:第二计算设备向所述第一处理节点发送RDMA内存请求消息,所述RDMA内存请求消息用于向所述第一处理节点请求用于RDMA写操作的目标内存;
S1304:所述第二计算设备接收来自所述第一处理节点的RDMA内存分配消息,所述RDMA内存分配消息携带第一节点标识和第一存储标识,所述第一节点标识用于指示所述第一内存节点,所述第一存储标识用于指示所述第一内存节点中用于接受所述RDMA写操作的存储单元;
S1306:所述第二计算设备封装RDMA写操作消息,所述RDMA写操作消息中携带用于所述RDMA写操作的数据和所述第一存储标识;
S1308:所述第二计算设备将所述RDMA写操作消息发送给所述第一节点标识指示的所述第一内存节点,指示所述第一内存节点将所述数据写入所述第一存储标识指示的存储单元。
可选的,方法1300还包括:所述第二计算设备生成工作队列元素WQE,并将所述WQE放入与所述第一处理节点建立的RDMA连接的队列对QP的发送队列SQ中,所述WQE携带所述第一节点标识、所述第一存储标识和所述第二存储标识,用于指示将所述第二存储标识指示的存储单元中的数据拷贝至所述第一存储标识指示的存储单元中,所述第二存储标识用于指示所述第二存储设备用于所述RDMA写操作的数据;则所述第二计算设备封装RDMA写操作消息包括:所述第二计算设备从所述QP的发送队列SQ中取出所述WQE,根据所述WQE,取出所述第二存储标识指示的所述数据,根据所述第一存储标识,封装所述RDMA写操作消息。
可选的,所述第一节点标识包括:
保护域编号,用于标识所述第一内存节点所在的保护域;
第一内存节点标识,用于在所述保护域中标识所述第一内存节点。
可选的,所述第一内存节点和所述第二计算设备在同一保护域,所述第一节点标识包括:
第一内存节点标识,用于在所述同一保护域中标识所述第一内存节点。
可选的,所述第一存储标识包括:
第一虚拟地址,用于标识所述第一内存节点的用于接收所述RDMA写操作的存储单元的在所述第一处理节点的虚拟地址;和
第一远端内存钥匙,用于表征访问所述第一内存节点的存储设备的权限,以及结合所述第一虚拟地址确定所述第一内存节点的用于接收RDMA写操作的存储单元的物理地址。
可选的,所述第二计算设备将所述RDMA写操作消息发送给所述第一节点标识指示的所述第一内存节点之后,进一步包括:接收所述第一内存节点的RDMA应答消息,所述RDMA应答消息用于指示RDMA写操作已完成。
采用本实施例提供的技术方案,可以实现计算设备与内存节点之间的RDMA写操作。缩短了数据流经过的路径,节省了链路资源,降低了数据传输耗时,而且数据传输不再经过处理节点或计算设备的计算资源,从而大大节省了处理节点和计算设备的计算资源。
图14为依据本发明一实施例的RDMA拷贝装置1400的逻辑结构示意图,第一计算设备包括第一处理节点和第一内存节点,装置1400与装置1400的第二内存节点分离时,用于控制第二内存节点对第一内存节点进行RDMA写操作,包括:
发送单元1402,所述第一处理节点发送RDMA内存请求消息,所述RDMA内存请求消息用于向所述第一处理节点请求用于RDMA写操作的目标内存;
接收单元1404,用于接收来自所述第一处理节点的RDMA内存分配消息,所述RDMA内存分配消息携带第一节点标识和第一存储标识,所述第一节点标识用于指示所述第一内存节点,所述第一存储标识用于指示所述第一内存节点中用于接受所述RDMA写操作的存储单元;
封装单元1406,用于封装RDMA拷贝操作消息,所述RDMA拷贝操作消息中携带所述第一节点标识、所述第一存储标识和第二存储标识,所述第二存储标识用于指示所述第二内存节点中用于所述RDMA写操作的数据的内存地址;
发送单元1402,还用于将所述RDMA拷贝操作消息发送给所述第二内存节点,指示所述第二内存节点根据所述第一节点标识确定所述第一内存节点,将所述第二存储标识指示的存储单元中的数据写入所述第一存储标识指示的第一内存节点的存储单元。
可选的,所述第一计算设备的第一处理节点和第一内存节点分离,第一处理节点与第一处理节点是两个分离的节点,二者通过网络进行通信。
可选的,所述第一计算设备的第一处理节点和第一内存节点不分离,第一处理节点和第一内存节点在同一计算设备节点上,二者用同一节点标识来进行指示。
可选的,装置1400还包括生成单元,用于生成工作队列元素WQE,并将所述WQE放入所述第二内存节点RDMA连接的队列对QP的发送队列SQ中,所述WQE携带所述第一节点标识、所述第一存储标识和所述第二存储标识,用于指示将所述第二存储标识指示的存储单元中的数据拷贝至所述第一存储标识指示的存储单元中;则所述封装单元1406用于封装RDMA拷贝操作消息,包括:所述封装单元1406从所述QP的发送队列SQ中取出所述WQE,根据所述WQE,封装所述RDMA拷贝操作消息。
可选的,所述第一节点标识包括:
保护域编号,用于标识所述第一内存节点所在的保护域;
第一内存节点标识,用于在所述保护域中标识所述第一内存节点。
可选的,所述第一内存节点和所述第二内存节点在同一保护域,所述第一节点标识包括:
第一内存节点标识,用于在所述同一保护域中标识所述第一内存节点。
可选的,所述第一存储标识包括:
第一虚拟地址,用于标识所述第一内存节点的用于接收所述RDMA写操作的存储单元的在所述第一处理节点的虚拟地址;和
第一远端内存钥匙,用于表征访问所述第一内存节点的存储设备的权限,以及结合所述第一虚拟地址确定所述第一内存节点的用于接收RDMA写操作的存储单元的物理地址。
可选的,所述第二存储标识包括:
第二虚拟地址,用于标识所述第二内存节点的用于RDMA写操作的数据在所述第二处理节点中的虚拟地址;
数据长度,用于标识所述第二内存节点的用于RDMA写操作的数据的长度;和
第二远端内存钥匙,用于表征访问所述第二内存节点存储设备的权限,以及结合所述第二虚拟地址确定所述用于RDMA写操作的数据在所述第二内存节点中的物理地址。
可选的,接收单元1404还用于:接收所述第二内存节点的RDMA应答消息,所述RDMA应答消息用于指示所述RDMA写操作已完成。
采用本实施例提供的技术方案,通过RDMA拷贝操作消息的指示,可以实现分离的内存节点之间,或者分离的内存节点与其他计算设备的内存之间的RDMA写操作。缩短了数据流经过的路径,节省了链路资源,降低了数据传输耗时,而且数据传输不再经过处理节点或计算设备的计算资源,从而大大节省了处理节点或计算设备的计算资源。
图15为依据本发明一实施例的RDMA拷贝装置1500的逻辑结构示意图,第一计算设备包括第一处理节点和第一内存节点,装置1500与装置1500的第二处理节点分离时,用于对第一内存节点进行RDMA写操作,包括:
接收单元1502,用于接收来自所述第二处理节点的RDMA拷贝操作消息,所述RDMA拷贝操作消息携带第一节点标识、第一存储标识和第二存储标识,所述第一节点标识用于指示所述第一内存节点,所述第一存储标识用于指示所述第一内存节点中用于接受RDMA写操作的存储单元,所述第二存储标识用于指示所述第二内存节点用于所述RDMA写操作的数据;
封装单元1504,用于根据所述RDMA拷贝操作消息,取出所述第二存储标识指示的所述数据,根据所述第一存储标识,封装RDMA写操作消息,所述RDMA写操作消息中包含所述RDMA写操作的数据和所述第一存储标识;
发送单元1506,用于将所述RDMA写操作消息发送给所述第一节点标识指示的第一内存节点,指示第一内存节点将所述数据写入所述第一存储标识指示的存储单元。
可选的,所述第一计算设备的第一处理节点和第一内存节点分离,第一处理节点与第一处理节点是两个分离的节点,二者通过网络进行通信。
可选的,所述第一计算设备的第一处理节点和第一内存节点不分离,第一处理节点和第一内存节点在同一计算设备节点上,二者用同一节点标识来进行指示。
可选的,所述第一节点标识包括:
保护域编号,用于标识所述第一内存节点所在的保护域;
第一内存节点标识,用于在所述保护域中标识所述第一内存节点。
可选的,所述第一内存节点和所述第二内存节点在同一保护域,所述第一节点标识包括:
第一内存节点标识,用于在所述同一保护域中标识所述第一内存节点。
可选的,所述第一存储标识包括:
第一虚拟地址,用于标识所述第一内存节点的用于接收所述RDMA写操作的存储单元的在所述第一处理节点的虚拟地址;和
第一远端内存钥匙,用于表征访问所述第一内存节点的存储设备的权限,以及结合所述第一虚拟地址确定所述第一内存节点的用于接收RDMA写操作的存储单元的物理地址。
可选的,所述第二存储标识包括:
第二虚拟地址,用于标识所述第二内存节点的用于RDMA写操作的数据在所述第二处理节点中的虚拟地址;
数据长度,用于标识所述第二内存节点的用于RDMA写操作的数据的长度;和
第二远端内存钥匙,用于表征访问所述第二内存节点存储设备的权限,以及结合所述第二虚拟地址确定所述用于RDMA写操作的数据在所述第二内存节点中的物理地址。
可选的,接收单元1502还用于:接收所述第一内存节点的RDMA应答消息,所述RDMA应答消息用于指示RDMA写操作已完成。
可选的,发送单元1506还用于:将所述RDMA应答消息发送给所述第二处理节点。
采用本实施例提供的技术方案,通过RDMA拷贝操作消息的指示,可以实现分离的内存节点之间,或者分离的内存节点与其他计算设备的内存之间的RDMA写操作。缩短了数据流经过的路径,节省了链路资源,降低了数据传输耗时,而且数据传输不再经过处理节点或计算设备的计算资源,从而大大节省了处理节点或计算设备的计算资源。
图16为依据本发明一实施例的RDMA拷贝装置1600的逻辑结构示意图,第一计算设备包括第一处理节点和第一内存节点,第一处理节点与第一内存节点分离时,用于所属装置1600的第二存储设备对第一内存节点进行RDMA写操作,包括:
发送单元1602,用于向所述第一处理节点发送RDMA内存请求消息,所述RDMA内存请求消息用于向所述第一处理节点请求用于RDMA写操作的目标内存;
接收单元1604,用于接收来自所述第一处理节点的RDMA内存分配消息,所述RDMA内存分配消息携带第一节点标识和第一存储标识,所述第一节点标识用于指示所述第一内存节点,所述第一存储标识用于指示所述第一内存节点中用于接受所述RDMA写操作的存储单元;
封装单元1606,用于封装RDMA写操作消息,所述RDMA写操作消息中携带用于所述RDMA写操作的数据和所述第一存储标识;
所述发送单元1602还用于,将所述RDMA写操作消息发送给所述第一节点标识指示的所述第一内存节点,指示所述第一内存节点将所述数据写入所述第一存储标识指示的存储单元。
可选的,装置1600还包括生成单元,用于生成工作队列元素WQE,并将所述WQE放入与所述第一处理节点建立的RDMA连接的队列对QP的发送队列SQ中,所述WQE携带所述第一节点标识、所述第一存储标识和所述第二存储标识,用于指示将所述第二存储标识指示的存储单元中的数据拷贝至所述第一存储标识指示的存储单元中,所述第二存储标识用于指示所述第二存储设备用于所述RDMA写操作的数据;所述封装单元1606用于封装RDMA写操作消息,包括:从所述QP的发送队列SQ中取出所述WQE,根据所述WQE,取出所述第二存储标识指示的所述数据,根据所述第一存储标识,封装所述RDMA写操作消息。
可选的,所述第一节点标识包括:
保护域编号,用于标识所述第一内存节点所在的保护域;
第一内存节点标识,用于在所述保护域中标识所述第一内存节点。
可选的,所述第一内存节点和所述第二计算设备在同一保护域,所述第一节点标识包括:
第一内存节点标识,用于在所述同一保护域中标识所述第一内存节点。
可选的,所述第一存储标识包括:
第一虚拟地址,用于标识所述第一内存节点的用于接收所述RDMA写操作的存储单元的在所述第一处理节点的虚拟地址;和
第一远端内存钥匙,用于表征访问所述第一内存节点的存储设备的权限,以及结合所述第一虚拟地址确定所述第一内存节点的用于接收RDMA写操作的存储单元的物理地址。
可选的,所述接收单元1604还用于:接收所述第一内存节点的RDMA应答消息,所述RDMA应答消息用于指示RDMA写操作已完成。
采用本实施例提供的技术方案,可以实现计算设备与内存节点之间的RDMA写操作。缩短了数据流经过的路径,节省了链路资源,降低了数据传输耗时,而且数据传输不再经过处理节点或计算设备的计算资源,从而大大节省了处理节点和计算设备的计算资源。
图17是依据本发明一实施例的计算设备设备1700的硬件结构示意图。如图17所示,计算设备1700包括处理器1702、内存器1704、输入/输出接口1706、通信接口1708和总线1710。其中,处理器1702、内存器1704、输入/输出接口1706和通信接口1708通过总线1710实现彼此之间的通信连接。
处理器1702可以采用通用的中央处理器(CentralProcessingUnit,CPU),微处理器,应用专用集成电路(ApplicationSpecificIntegratedCircuit,ASIC),或者一个或多个集成电路,用于执行相关程序,以实现本发明实施例所提供的技术方案。
内存器1704可以是只读内存器(ReadOnlyMemory,ROM),静态内存设备,动态内存设备或者随机存取内存器(RandomAccessMemory,RAM)。内存器1704可以内存操作系统和其他应用程序。在通过软件或者固件来实现本发明实施例提供的技术方案时,用于实现本发明实施例提供的技术方案的程序代码保存在内存器1704中,并由处理器1702来执行。
输入/输出接口1706用于接收输入的数据和信息,输出操作结果等数据。
通信接口1708使用例如但不限于收发器一类的收发装置,来实现计算设备1700与其他设备或通信网络之间的通信。
总线1710可包括一通路,在计算设备1700各个部件(例如处理器1702、内存器1704、输入/输出接口1706和通信接口1708)之间传送信息。
应注意,尽管图17所示的计计算设备1700仅仅示出了处理器1702、内存器1704、输入/输出接口1706、通信接口1708以及总线1710,但是在具体实现过程中,本领域的技术人员应当明白,计算设备1700还包含实现正常运行所必须的其他器件。同时,根据具体需要,本领域的技术人员应当明白,计算设备1700还可包含实现其他附加功能的硬件器件。此外,本领域的技术人员应当明白,计算设备1700也可仅仅包含实现本发明实施例所必须的器件,而不必包含图17中所示的全部器件。
图17所示的硬件结构以及上述描述适用于本发明实施例所提供的各种RDMA拷贝方法、设备和系统,适用于执行本发明实施例所提供的各种虚拟数据中心方法。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,设备和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
上述以软件功能模块的形式实现的集成的模块,可以内存在一个计算机可读取内存介质中。上述软件功能模块内存在一个内存介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的部分步骤。而前述的内存介质包括:移动硬盘、只读内存器(英文:Read-OnlyMemory,简称ROM)、随机存取内存器(英文:RandomAccessMemory,简称RAM)、磁碟或者光盘等各种可以内存程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的保护范围。
Claims (56)
1.一种远程直接数据存取RDMA数据拷贝的方法,其特征在于,第一计算设备包括第一处理节点和第一内存节点,第二计算设备包括第二处理节点和第二内存节点,包括:
所述第二处理节点向所述第一处理节点发送RDMA内存请求消息,所述RDMA内存请求消息用于向所述第一处理节点请求用于RDMA写操作的目标内存;
所述第二处理节点接收来自所述第一处理节点的RDMA内存分配消息,所述RDMA内存分配消息携带第一节点标识和第一存储标识,所述第一节点标识用于指示所述第一内存节点,所述第一存储标识用于指示所述第一内存节点中用于接受所述RDMA写操作的存储单元;
所述第二处理节点封装RDMA拷贝操作消息,所述RDMA拷贝操作消息中携带所述第一节点标识、所述第一存储标识和第二存储标识,所述第二存储标识用于指示所述第二内存节点中用于所述RDMA写操作的数据的内存地址;
所述第二处理节点将所述RDMA拷贝操作消息发送给所述第二内存节点,指示所述第二内存节点根据所述第一节点标识确定所述第一内存节点,将所述第二存储标识指示的存储单元中的数据写入所述第一存储标识指示的第一内存节点的存储单元。
2.根据权利要求1所述的方法,其特征在于,所述第二处理节点接收来自所述第一处理节点的RDMA内存分配消息之后,还包括:
所述第二处理节点生成工作队列元素WQE,并将所述WQE放入所述第二内存节点RDMA连接的队列对QP的发送队列SQ中,所述WQE携带所述第一节点标识、所述第一存储标识和所述第二存储标识,用于指示将所述第二存储标识指示的存储单元中的数据拷贝至所述第一存储标识指示的存储单元中;
则所述第二处理节点封装RDMA拷贝操作消息,包括:从所述QP的发送队列SQ中取出所述WQE,根据所述WQE,封装所述RDMA拷贝操作消息。
3.根据权利要求1或2所述的方法,其特征在于,所述第一节点标识包括:
保护域编号,用于标识所述第一内存节点所在的保护域;
第一内存节点标识,用于在所述保护域中标识所述第一内存节点。
4.根据权利要求1或2所述的方法,其特征在于,所述第一内存节点和所述第二内存节点在同一保护域,所述第一节点标识包括:
第一内存节点标识,用于在所述同一保护域中标识所述第一内存节点。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述第一存储标识包括:
第一虚拟地址,用于标识所述第一内存节点的用于接收所述RDMA写操作的存储单元的在所述第一处理节点的虚拟地址;和
第一远端内存钥匙,用于表征访问所述第一内存节点的存储设备的权限,以及结合所述第一虚拟地址确定所述第一内存节点的用于接收RDMA写操作的存储单元的物理地址。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述第二存储标识包括:
第二虚拟地址,用于标识所述第二内存节点的用于RDMA写操作的数据在所述第二处理节点中的虚拟地址;
数据长度,用于标识所述第二内存节点的用于RDMA写操作的数据的长度;和
第二远端内存钥匙,用于表征访问所述第二内存节点存储设备的权限,以及结合所述第二虚拟地址确定所述用于RDMA写操作的数据在所述第二内存节点中的物理地址。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述第二处理节点将所述RDMA拷贝操作消息发送给所述第二内存节点之后,进一步包括:接收所述第二内存节点的RDMA应答消息,所述RDMA应答消息用于指示所述RDMA写操作已完成。
8.一种远程直接数据存取RDMA数据拷贝的设备,其特征在于,包括:处理器、存储器、总线和通信接口;
所述存储器用于存储计算机执行指令,所述处理器与所述存储器通过所述总线连接,当所述计算设备运行时,所述处理器执行所述存储器存储的所述计算机执行指令,以使所述远程直接数据存取RDMA数据拷贝的设备执行权利要求1-7任一项所述的方法。
9.一种远程直接数据存取RDMA数据拷贝的方法,其特征在于,第一计算设备包括第一处理节点和第一内存节点,第二计算设备包括第二处理节点和第二内存节点,包括:
所述第二内存节点接收来自所述第二处理节点的RDMA拷贝操作消息,所述RDMA拷贝操作消息携带第一节点标识、第一存储标识和第二存储标识,所述第一节点标识用于指示所述第一内存节点,所述第一存储标识用于指示所述第一内存节点中用于接受RDMA写操作的存储单元,所述第二存储标识用于指示所述第二内存节点用于所述RDMA写操作的数据;
第二内存节点根据所述RDMA拷贝操作消息,取出所述第二存储标识指示的所述数据,根据所述第一存储标识,封装RDMA写操作消息,所述RDMA写操作消息中包含所述RDMA写操作的数据和所述第一存储标识;
第二内存节点将所述RDMA写操作消息发送给所述第一节点标识指示的第一内存节点,指示第一内存节点将所述数据写入所述第一存储标识指示的存储单元。
10.根据权利要求9所述的方法,其特征在于,所述第一节点标识包括:
保护域编号,用于标识所述第一内存节点所在的保护域;
第一内存节点标识,用于在所述保护域中标识所述第一内存节点。
11.根据权利要求9所述的方法,其特征在于,所述第一内存节点和所述第二内存节点在同一保护域,所述第一节点标识包括:
第一内存节点标识,用于在所述同一保护域中标识所述第一内存节点。
12.根据权利要求9-11任一项所述的方法,其特征在于,所述第一存储标识包括:
第一虚拟地址,用于标识所述第一内存节点的用于接收所述RDMA写操作的存储单元的在所述第一处理节点的虚拟地址;和
第一远端内存钥匙,用于表征访问所述第一内存节点的存储设备的权限,以及结合所述第一虚拟地址确定所述第一内存节点的用于接收RDMA写操作的存储单元的物理地址。
13.根据权利要求9-12任一项所述的方法,其特征在于,所述第二存储标识包括:
第二虚拟地址,用于标识所述第二内存节点的用于RDMA写操作的数据在所述第二处理节点中的虚拟地址;
数据长度,用于标识所述第二内存节点的用于RDMA写操作的数据的长度;和
第二远端内存钥匙,用于表征访问所述第二内存节点存储设备的权限,以及结合所述第二虚拟地址确定所述用于RDMA写操作的数据在所述第二内存节点中的物理地址。
14.根据权利要求9-13任一项所述的方法,其特征在于,还包括:接收所述第一内存节点的RDMA应答消息,所述RDMA应答消息用于指示RDMA写操作已完成。
15.根据权利要求14所述的方法,其特征在于,还包括,将所述RDMA应答消息发送给所述第二处理节点。
16.一种远程直接数据存取RDMA数据拷贝的设备,其特征在于,包括:处理器、存储器、总线和通信接口;
所述存储器用于存储计算机执行指令,所述处理器与所述存储器通过所述总线连接,当所述计算设备运行时,所述处理器执行所述存储器存储的所述计算机执行指令,以使所述远程直接数据存取RDMA数据拷贝的设备执行权利要求9-15任一项所述的方法。
17.一种远程直接数据存取RDMA数据拷贝的方法,其特征在于,第一计算设备包括第一处理节点和第一内存节点,包括:
第二计算设备向所述第一处理节点发送RDMA内存请求消息,所述RDMA内存请求消息用于向所述第一处理节点请求用于RDMA写操作的目标内存;
所述第二计算设备接收来自所述第一处理节点的RDMA内存分配消息,所述RDMA内存分配消息携带第一节点标识和第一存储标识,所述第一节点标识用于指示所述第一内存节点,所述第一存储标识用于指示所述第一内存节点中用于接受所述RDMA写操作的存储单元;
所述第二计算设备封装RDMA写操作消息,所述RDMA写操作消息中携带用于所述RDMA写操作的数据和所述第一存储标识;
所述第二计算设备将所述RDMA写操作消息发送给所述第一节点标识指示的所述第一内存节点,指示所述第一内存节点将所述数据写入所述第一存储标识指示的存储单元。
18.根据权利要求17所述的方法,其特征在于,还包括:
所述第二计算设备生成工作队列元素WQE,并将所述WQE放入与所述第一处理节点建立的RDMA连接的队列对QP的发送队列SQ中,所述WQE携带所述第一节点标识、所述第一存储标识和所述第二存储标识,用于指示将所述第二存储标识指示的存储单元中的数据拷贝至所述第一存储标识指示的存储单元中,所述第二存储标识用于指示所述第二存储设备用于所述RDMA写操作的数据;
则所述第二计算设备封装RDMA写操作消息包括:所述第二计算设备从所述QP的发送队列SQ中取出所述WQE,根据所述WQE,取出所述第二存储标识指示的所述数据,根据所述第一存储标识,封装所述RDMA写操作消息。
19.根据权利要求17或18所述的方法,其特征在于,所述第一节点标识包括:
保护域编号,用于标识所述第一内存节点所在的保护域;
第一内存节点标识,用于在所述保护域中标识所述第一内存节点。
20.根据权利要求17或18所述的方法,其特征在于,所述第一内存节点和所述第二计算设备在同一保护域,所述第一节点标识包括:
第一内存节点标识,用于在所述同一保护域中标识所述第一内存节点。
21.根据权利要求17-20任一项所述的方法,其特征在于,所述第一存储标识包括:
第一虚拟地址,用于标识所述第一内存节点的用于接收所述RDMA写操作的存储单元的在所述第一处理节点的虚拟地址;和
第一远端内存钥匙,用于表征访问所述第一内存节点的存储设备的权限,以及结合所述第一虚拟地址确定所述第一内存节点的用于接收RDMA写操作的存储单元的物理地址。
22.根据权利要求17-21任一项的方法,其特征在于,所述第二计算设备将所述RDMA写操作消息发送给所述第一节点标识指示的所述第一内存节点之后,进一步包括:接收所述第一内存节点的RDMA应答消息,所述RDMA应答消息用于指示RDMA写操作已完成。
23.一种远程直接数据存取RDMA数据拷贝的设备,其特征在于,包括:处理器、存储器、总线和通信接口;
所述存储器用于存储计算机执行指令,所述处理器与所述存储器通过所述总线连接,当所述计算设备运行时,所述处理器执行所述存储器存储的所述计算机执行指令,以使所述远程直接数据存取RDMA数据拷贝的设备执行权利要求17-22任一项所述的方法。
24.一种远程直接数据存取RDMA数据拷贝的装置,其特征在于,第一计算设备包括第一处理节点和第一内存节点,第二计算设备包括所述装置与第二内存节点,包括:
发送单元,所述第一处理节点发送RDMA内存请求消息,所述RDMA内存请求消息用于向所述第一处理节点请求用于RDMA写操作的目标内存;
接收单元,用于接收来自所述第一处理节点的RDMA内存分配消息,所述RDMA内存分配消息携带第一节点标识和第一存储标识,所述第一节点标识用于指示所述第一内存节点,所述第一存储标识用于指示所述第一内存节点中用于接受所述RDMA写操作的存储单元;
封装单元,用于封装RDMA拷贝操作消息,所述RDMA拷贝操作消息中携带所述第一节点标识、所述第一存储标识和第二存储标识,所述第二存储标识用于指示所述第二内存节点中用于所述RDMA写操作的数据的内存地址;
所述发送单元,还用于将所述RDMA拷贝操作消息发送给所述第二内存节点,指示所述第二内存节点根据所述第一节点标识确定所述第一内存节点,将所述第二存储标识指示的存储单元中的数据写入所述第一存储标识指示的第一内存节点的存储单元。
25.根据权利要求24所述的装置,其特征在于,还包括生成单元,生成工作队列元素WQE,并将所述WQE放入所述第二内存节点RDMA连接的队列对QP的发送队列SQ中,所述WQE携带所述第一节点标识、所述第一存储标识和所述第二存储标识,用于指示将所述第二存储标识指示的存储单元中的数据拷贝至所述第一存储标识指示的存储单元中;
则所述封装单元用于封装RDMA拷贝操作消息,包括:所述封装单元从所述QP的发送队列SQ中取出所述WQE,根据所述WQE,封装所述RDMA拷贝操作消息。
26.根据权利要求24或25所述的装置,其特征在于,所述第一节点标识包括:
保护域编号,用于标识所述第一内存节点所在的保护域;
第一内存节点标识,用于在所述保护域中标识所述第一内存节点。
27.根据权利要求24或25所述的装置,其特征在于,所述第一内存节点和所述第二内存节点在同一保护域,所述第一节点标识包括:
第一内存节点标识,用于在所述同一保护域中标识所述第一内存节点。
28.根据权利要求24-27任一项所述的装置,其特征在于,所述第一存储标识包括:
第一虚拟地址,用于标识所述第一内存节点的用于接收所述RDMA写操作的存储单元的在所述第一处理节点的虚拟地址;和
第一远端内存钥匙,用于表征访问所述第一内存节点的存储设备的权限,以及结合所述第一虚拟地址确定所述第一内存节点的用于接收RDMA写操作的存储单元的物理地址。
29.根据权利要求24-28任一项所述的装置,其特征在于,所述第二存储标识包括:
第二虚拟地址,用于标识所述第二内存节点的用于RDMA写操作的数据在所述第二处理节点中的虚拟地址;
数据长度,用于标识所述第二内存节点的用于RDMA写操作的数据的长度;和
第二远端内存钥匙,用于表征访问所述第二内存节点存储设备的权限,以及结合所述第二虚拟地址确定所述用于RDMA写操作的数据在所述第二内存节点中的物理地址。
30.根据权利要求24-29任一项所述的装置,其特征在于,所述接收单元还用于:接收所述第二内存节点的RDMA应答消息,所述RDMA应答消息用于指示所述RDMA写操作已完成。
31.一种远程直接数据存取RDMA数据拷贝的装置,其特征在于,第一计算设备包括第一处理节点和第一内存节点,第二计算设备包括第二处理节点和所述装置,包括:
接收单元,用于接收来自所述第二处理节点的RDMA拷贝操作消息,所述RDMA拷贝操作消息携带第一节点标识、第一存储标识和第二存储标识,所述第一节点标识用于指示所述第一内存节点,所述第一存储标识用于指示所述第一内存节点中用于接受RDMA写操作的存储单元,所述第二存储标识用于指示所述第二内存节点用于所述RDMA写操作的数据;
封装单元,用于根据所述RDMA拷贝操作消息,取出所述第二存储标识指示的所述数据,根据所述第一存储标识,封装RDMA写操作消息,所述RDMA写操作消息中包含所述RDMA写操作的数据和所述第一存储标识;
发送单元,用于将所述RDMA写操作消息发送给所述第一节点标识指示的第一内存节点,指示第一内存节点将所述数据写入所述第一存储标识指示的存储单元。
32.根据权利要求31所述的装置,其特征在于,所述第一节点标识包括:
保护域编号,用于标识所述第一内存节点所在的保护域;
第一内存节点标识,用于在所述保护域中标识所述第一内存节点。
33.根据权利要求31所述的装置,其特征在于,所述第一内存节点和所述第二内存节点在同一保护域,所述第一节点标识包括:
第一内存节点标识,用于在所述同一保护域中标识所述第一内存节点。
34.根据权利要求31-33任一项所述的装置,其特征在于,所述第一存储标识包括:
第一虚拟地址,用于标识所述第一内存节点的用于接收所述RDMA写操作的存储单元的在所述第一处理节点的虚拟地址;和
第一远端内存钥匙,用于表征访问所述第一内存节点的存储设备的权限,以及结合所述第一虚拟地址确定所述第一内存节点的用于接收RDMA写操作的存储单元的物理地址。
35.根据权利要求31-34任一项所述的装置,其特征在于,所述第二存储标识包括:
第二虚拟地址,用于标识所述第二内存节点的用于RDMA写操作的数据在所述第二处理节点中的虚拟地址;
数据长度,用于标识所述第二内存节点的用于RDMA写操作的数据的长度;和
第二远端内存钥匙,用于表征访问所述第二内存节点存储设备的权限,以及结合所述第二虚拟地址确定所述用于RDMA写操作的数据在所述第二内存节点中的物理地址。
36.根据权利要求31-35任一项所述的装置,其特征在于,所述接收单元还用于:接收所述第一内存节点的RDMA应答消息,所述RDMA应答消息用于指示RDMA写操作已完成。
37.根据权利要求36所述的装置,其特征在于,所述发送单元还用于:将所述RDMA应答消息发送给所述第二处理节点。
38.一种远程直接数据存取RDMA数据拷贝的装置,其特征在于,第一计算设备包括第一处理节点和第一内存节点,包括:
发送单元,用于向所述第一处理节点发送RDMA内存请求消息,所述RDMA内存请求消息用于向所述第一处理节点请求用于RDMA写操作的目标内存;
接收单元,用于接收来自所述第一处理节点的RDMA内存分配消息,所述RDMA内存分配消息携带第一节点标识和第一存储标识,所述第一节点标识用于指示所述第一内存节点,所述第一存储标识用于指示所述第一内存节点中用于接受所述RDMA写操作的存储单元;
封装单元,用于封装RDMA写操作消息,所述RDMA写操作消息中携带用于所述RDMA写操作的数据和所述第一存储标识;
所述发送单元还用于,将所述RDMA写操作消息发送给所述第一节点标识指示的所述第一内存节点,指示所述第一内存节点将所述数据写入所述第一存储标识指示的存储单元。
39.根据权利要求38所述的装置,其特征在于,还包括生成单元,所述生成单元用于生成工作队列元素WQE,并将所述WQE放入与所述第一处理节点建立的RDMA连接的队列对QP的发送队列SQ中,所述WQE携带所述第一节点标识、所述第一存储标识和所述第二存储标识,用于指示将所述第二存储标识指示的存储单元中的数据拷贝至所述第一存储标识指示的存储单元中,所述第二存储标识用于指示所述第二存储设备用于所述RDMA写操作的数据;
所述封装单元用于封装RDMA写操作消息,包括:从所述QP的发送队列SQ中取出所述WQE,根据所述WQE,取出所述第二存储标识指示的所述数据,根据所述第一存储标识,封装所述RDMA写操作消息。
40.根据权利要求38或39所述的装置,其特征在于,所述第一节点标识包括:
保护域编号,用于标识所述第一内存节点所在的保护域;
第一内存节点标识,用于在所述保护域中标识所述第一内存节点。
41.根据权利要求38或39所述的装置,其特征在于,所述第一内存节点和所述第二计算设备在同一保护域,所述第一节点标识包括:
第一内存节点标识,用于在所述同一保护域中标识所述第一内存节点。
42.根据权利要求38-41任一项所述的装置,其特征在于,所述第一存储标识包括:
第一虚拟地址,用于标识所述第一内存节点的用于接收所述RDMA写操作的存储单元的在所述第一处理节点的虚拟地址;和
第一远端内存钥匙,用于表征访问所述第一内存节点的存储设备的权限,以及结合所述第一虚拟地址确定所述第一内存节点的用于接收RDMA写操作的存储单元的物理地址。
43.根据权利要求38-42任一项所述的装置,其特征在于,所述接收单元还用于:接收所述第一内存节点的RDMA应答消息,所述RDMA应答消息用于指示RDMA写操作已完成。
44.一种远程直接数据存取RDMA数据拷贝的系统,其特征在于,包括第一计算设备和第二计算设备,第一计算设备包括第一处理节点和第一内存节点,第二计算设备包括第二处理节点和第二内存节点:
所述第二处理节点,用于向所述第一处理节点发送RDMA内存请求消息,所述RDMA内存请求消息用于向第一处理节点请求用于RDMA写操作的目标内存;
所述第一处理节点,用于根据接收到的所述RDMA写操作消息,向所述第一内存节点申请接受RDMA写操作的内存,并向所述第二处理节点发送RDMA内存分配消息,所述RDMA内存分配消息携带第一节点标识和第一存储标识,所述第一节点标识用于指示所述第一内存节点,所述第一存储标识用于指示所述第一内存节点中用于接受所述RDMA写操作的存储单元;
所述第二处理节点还用于:根据接收到的所述RDMA内存分配消息,封装RDMA拷贝操作消息,并将所述RDMA拷贝操作消息发送给所述第二内存节点,所述RDMA拷贝操作消息中携带所述第一节点标识、所述第一存储标识和第二存储标识,所述第二存储标识用于指示所述第二内存节点中用于所述RDMA写操作的数据的内存地址;
所述第二内存节点,用于根据接收到的所述RDMA拷贝操作消息,取出所述第二存储标识指示的所述数据,根据所述第一存储标识,封装RDMA写操作消息,所述RDMA写操作消息中包含所述RDMA写操作的数据和所述第一存储标识,并将所述RDMA写操作消息发送给所述第一内存节点;
所述第一内存节点,用于根据接收到的所述RDMA写操作消息,将所述数据写到所述第一存储标识指示的存储单元中。
45.根据权利要求44所述的系统,其特征在于,所述第二处理节点还用于:生成工作队列元素WQE,并将所述WQE放入所述第二内存节点RDMA连接的队列对QP的发送队列SQ中,所述WQE携带所述第一节点标识、所述第一存储标识和所述第二存储标识,用于指示将所述第二存储标识指示的存储单元中的数据拷贝至所述第一存储标识指示的存储单元中;
所述第二处理节点用于封装RDMA拷贝操作消息,包括:从所述QP的发送队列SQ中取出所述WQE,根据所述WQE,封装所述RDMA拷贝操作消息。
46.根据权利要求44或45所述的系统,其特征在于,所述第一节点标识包括:
保护域编号,用于标识所述第一内存节点所在的保护域;
第一内存节点标识,用于在所述保护域中标识所述第一内存节点。
47.根据权利要求44或45所述的系统,其特征在于,所述第一内存节点和所述第二内存节点在同一保护域,所述第一节点标识包括:
第一内存节点标识,用于在所述同一保护域中标识所述第一内存节点。
48.根据权利要求44-47任一项所述的系统,其特征在于,所述第一存储标识包括:
第一虚拟地址,用于标识所述第一内存节点的用于接收所述RDMA写操作的存储单元的在所述第一处理节点的虚拟地址;和
第一远端内存钥匙,用于表征访问所述第一内存节点的存储设备的权限,以及结合所述第一虚拟地址确定所述第一内存节点的用于接收RDMA写操作的存储单元的物理地址。
49.根据权利要求44-48任一项所述的系统,其特征在于,所述第二存储标识包括:
第二虚拟地址,用于标识所述第二内存节点的用于RDMA写操作的数据在所述第二处理节点中的虚拟地址;
数据长度,用于标识所述第二内存节点的用于RDMA写操作的数据的长度;和
第二远端内存钥匙,用于表征访问所述第二内存节点存储设备的权限,以及结合所述第二虚拟地址确定所述用于RDMA写操作的数据在所述第二内存节点中的物理地址。
50.根据权利要求44-49所述的系统,其特征在于,所述第二内存节点还用于:接收所述第一内存节点的RDMA应答消息,并将所述RDMA应答消息发送给所述第二处理节点,所述RDMA应答消息用于指示所述RDMA写操作已完成。
51.一种远程直接数据存取RDMA数据拷贝的系统,其特征在于,包括第一计算设备和第二计算设备,所述第一计算设备包括第一处理节点和第一内存节点,包括:
所述第二计算设备,用于向所述第一处理节点发送RDMA内存请求消息,所述RDMA内存请求消息用于向所述第一处理节点请求用于RDMA写操作的目标内存;
所述第一处理节点,用于根据接收到的所述RDMA写操作消息,向所述第一内存节点申请接受RDMA写操作的内存,并向所述第二处理节点发送RDMA内存分配消息,所述RDMA内存分配消息携带第一节点标识和第一存储标识,所述第一节点标识用于指示所述第一内存节点,所述第一存储标识用于指示所述第一内存节点中用于接受所述RDMA写操作的存储单元;
所述第二计算设备还用于,封装RDMA写操作消息,所述RDMA写操作消息中携带用于所述RDMA写操作的数据和所述第一存储标识,并将所述RDMA写操作消息发送给所述第一节点标识指示的第一内存节点;
所述第一内存节点,用于根据接收到的所述RDMA写操作消息,将所述数据写到所述第一存储标识指示的存储单元中。
52.根据权利要求51所述的系统,其特征在于,所述第二计算设备还用于:生成工作队列元素WQE,并将所述WQE放入与所述第一处理节点建立的RDMA连接的队列对QP的发送队列SQ中,所述WQE携带所述第一节点标识、所述第一存储标识和所述第二存储标识,用于指示将所述第二存储标识指示的存储单元中的数据拷贝至所述第一存储标识指示的存储单元中,所述第二存储标识用于指示所述第二存储设备用于所述RDMA写操作的数据;
所述第二计算设备封装RDMA写操作消息包括:所述第二计算设备从所述QP的发送队列SQ中取出所述WQE,根据所述WQE,取出所述第二存储标识指示的所述数据,根据所述第一存储标识,封装所述RDMA写操作消息。
53.根据权利要求51或52所述的系统,其特征在于,所述第一节点标识包括:
保护域编号,用于标识所述第一内存节点所在的保护域;
第一内存节点标识,用于在所述保护域中标识所述第一内存节点。
54.根据权利要求51或52所述的系统,其特征在于,所述第一内存节点和所述第二计算设备在同一保护域,所述第一节点标识包括:
第一内存节点标识,用于在所述同一保护域中标识所述第一内存节点。
55.根据权利要求51-54任一项所述的系统,其特征在于,所述第一存储标识包括:
第一虚拟地址,用于标识所述第一内存节点的用于接收所述RDMA写操作的存储单元的在所述第一处理节点的虚拟地址;和
第一远端内存钥匙,用于表征访问所述第一内存节点的存储设备的权限,以及结合所述第一虚拟地址确定所述第一内存节点的用于接收RDMA写操作的存储单元的物理地址。
56.根据权利要求51-55任一项所述的系统,其特征在于,所述第二计算设备还用于:接收所述第一内存节点的RDMA应答消息,所述RDMA应答消息用于指示RDMA写操作已完成。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2014/095232 WO2016101288A1 (zh) | 2014-12-27 | 2014-12-27 | 一种远程直接数据存取方法、设备和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105518611A true CN105518611A (zh) | 2016-04-20 |
CN105518611B CN105518611B (zh) | 2019-10-25 |
Family
ID=55725008
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480037832.9A Active CN105518611B (zh) | 2014-12-27 | 2014-12-27 | 一种远程直接数据存取方法、设备和系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN105518611B (zh) |
WO (1) | WO2016101288A1 (zh) |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106487896A (zh) * | 2016-10-14 | 2017-03-08 | 北京百度网讯科技有限公司 | 用于处理远程直接内存访问请求的方法和装置 |
CN108228476A (zh) * | 2017-12-22 | 2018-06-29 | 新华三技术有限公司 | 一种数据获取方法及装置 |
WO2018119738A1 (en) * | 2016-12-28 | 2018-07-05 | Intel Corporation | Speculative read mechanism for distributed storage system |
CN108494817A (zh) * | 2018-02-08 | 2018-09-04 | 华为技术有限公司 | 数据传输方法、相关装置及系统 |
CN108984465A (zh) * | 2018-06-06 | 2018-12-11 | 华为技术有限公司 | 一种消息传输方法及设备 |
CN109144972A (zh) * | 2017-06-26 | 2019-01-04 | 华为技术有限公司 | 一种数据迁移的方法以及数据节点 |
CN109426632A (zh) * | 2018-02-01 | 2019-03-05 | 新华三技术有限公司 | 内存访问方法和装置 |
CN109582592A (zh) * | 2018-10-26 | 2019-04-05 | 华为技术有限公司 | 资源管理的方法和装置 |
CN111277616A (zh) * | 2018-12-04 | 2020-06-12 | 中兴通讯股份有限公司 | 一种基于rdma的数据传输方法和分布式共享内存系统 |
CN111274176A (zh) * | 2020-01-15 | 2020-06-12 | 联想(北京)有限公司 | 一种信息处理方法、电子设备、系统及存储介质 |
CN113326154A (zh) * | 2021-06-28 | 2021-08-31 | 深信服科技股份有限公司 | 连接管理方法、装置、电子设备和存储介质 |
CN113407357A (zh) * | 2020-03-17 | 2021-09-17 | 华为技术有限公司 | 进程间数据搬移的方法及装置 |
CN113760798A (zh) * | 2021-08-05 | 2021-12-07 | 阿里巴巴新加坡控股有限公司 | Rdma设备的分配方法、计算设备及存储介质 |
WO2022001417A1 (zh) * | 2020-06-28 | 2022-01-06 | 华为技术有限公司 | 一种数据传输方法、处理器系统及内存访问系统 |
WO2022021988A1 (zh) * | 2020-07-31 | 2022-02-03 | 华为技术有限公司 | 网络接口卡、存储装置、报文接收方法和发送方法 |
CN114827234A (zh) * | 2022-04-29 | 2022-07-29 | 广东浪潮智慧计算技术有限公司 | 一种数据传输方法、系统、装置及存储介质 |
CN114979001A (zh) * | 2022-05-20 | 2022-08-30 | 北京百度网讯科技有限公司 | 基于远程直接数据存取的数据传输方法、装置以及设备 |
CN116361037A (zh) * | 2023-05-18 | 2023-06-30 | 之江实验室 | 一种分布式通信系统及方法 |
WO2023125524A1 (zh) * | 2021-12-30 | 2023-07-06 | 华为技术有限公司 | 数据存储方法、系统、存储访问配置方法及相关设备 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111654519B (zh) * | 2017-09-06 | 2024-04-30 | 华为技术有限公司 | 用于传输数据处理请求的方法和装置 |
CN111352578A (zh) * | 2018-12-24 | 2020-06-30 | 深圳先进技术研究院 | 一种全新服务器之间的内存借用策略 |
US12093748B2 (en) | 2020-09-25 | 2024-09-17 | Intel Corporation | Disaggregated computing for distributed confidential computing environment |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040049600A1 (en) * | 2002-09-05 | 2004-03-11 | International Business Machines Corporation | Memory management offload for RDMA enabled network adapters |
CN101095125A (zh) * | 2005-01-21 | 2007-12-26 | 国际商业机器公司 | 基于RNIC的iSCSI目标方数据移动功能卸载 |
US20130254435A1 (en) * | 2012-03-23 | 2013-09-26 | DSSD, Inc. | Storage system with multicast dma and unified address space |
CN103440202A (zh) * | 2013-08-07 | 2013-12-11 | 华为技术有限公司 | 一种基于rdma的通信方法、系统及通信设备 |
CN104166597A (zh) * | 2013-05-17 | 2014-11-26 | 华为技术有限公司 | 一种分配远程内存的方法及装置 |
CN104202391A (zh) * | 2014-08-28 | 2014-12-10 | 浪潮(北京)电子信息产业有限公司 | 共享系统地址空间的非紧耦合系统间的rdma通信方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7406481B2 (en) * | 2002-12-17 | 2008-07-29 | Oracle International Corporation | Using direct memory access for performing database operations between two or more machines |
CN103607428B (zh) * | 2013-10-30 | 2017-11-17 | 华为技术有限公司 | 一种访问共享内存的方法和装置 |
-
2014
- 2014-12-27 CN CN201480037832.9A patent/CN105518611B/zh active Active
- 2014-12-27 WO PCT/CN2014/095232 patent/WO2016101288A1/zh active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040049600A1 (en) * | 2002-09-05 | 2004-03-11 | International Business Machines Corporation | Memory management offload for RDMA enabled network adapters |
CN101095125A (zh) * | 2005-01-21 | 2007-12-26 | 国际商业机器公司 | 基于RNIC的iSCSI目标方数据移动功能卸载 |
US20130254435A1 (en) * | 2012-03-23 | 2013-09-26 | DSSD, Inc. | Storage system with multicast dma and unified address space |
CN104166597A (zh) * | 2013-05-17 | 2014-11-26 | 华为技术有限公司 | 一种分配远程内存的方法及装置 |
CN103440202A (zh) * | 2013-08-07 | 2013-12-11 | 华为技术有限公司 | 一种基于rdma的通信方法、系统及通信设备 |
CN104202391A (zh) * | 2014-08-28 | 2014-12-10 | 浪潮(北京)电子信息产业有限公司 | 共享系统地址空间的非紧耦合系统间的rdma通信方法 |
Cited By (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106487896B (zh) * | 2016-10-14 | 2019-10-08 | 北京百度网讯科技有限公司 | 用于处理远程直接内存访问请求的方法和装置 |
CN106487896A (zh) * | 2016-10-14 | 2017-03-08 | 北京百度网讯科技有限公司 | 用于处理远程直接内存访问请求的方法和装置 |
WO2018119738A1 (en) * | 2016-12-28 | 2018-07-05 | Intel Corporation | Speculative read mechanism for distributed storage system |
CN109144972B (zh) * | 2017-06-26 | 2022-07-12 | 华为技术有限公司 | 一种数据迁移的方法以及数据节点 |
CN109144972A (zh) * | 2017-06-26 | 2019-01-04 | 华为技术有限公司 | 一种数据迁移的方法以及数据节点 |
CN108228476A (zh) * | 2017-12-22 | 2018-06-29 | 新华三技术有限公司 | 一种数据获取方法及装置 |
CN108228476B (zh) * | 2017-12-22 | 2021-02-09 | 新华三技术有限公司 | 一种数据获取方法及装置 |
CN109426632B (zh) * | 2018-02-01 | 2021-09-21 | 新华三技术有限公司 | 内存访问方法和装置 |
CN109426632A (zh) * | 2018-02-01 | 2019-03-05 | 新华三技术有限公司 | 内存访问方法和装置 |
CN108494817A (zh) * | 2018-02-08 | 2018-09-04 | 华为技术有限公司 | 数据传输方法、相关装置及系统 |
CN108984465A (zh) * | 2018-06-06 | 2018-12-11 | 华为技术有限公司 | 一种消息传输方法及设备 |
CN110809760B (zh) * | 2018-06-06 | 2022-09-02 | 华为技术有限公司 | 资源池的管理方法、装置、资源池控制单元和通信设备 |
US11507426B2 (en) | 2018-06-06 | 2022-11-22 | Huawei Technologies Co., Ltd. | Resource pool management method and apparatus, resource pool control unit, and communications device |
CN108984465B (zh) * | 2018-06-06 | 2021-08-20 | 华为技术有限公司 | 一种消息传输方法及设备 |
CN110809760A (zh) * | 2018-06-06 | 2020-02-18 | 华为技术有限公司 | 资源池的管理方法、装置、资源池控制单元和通信设备 |
CN109582592A (zh) * | 2018-10-26 | 2019-04-05 | 华为技术有限公司 | 资源管理的方法和装置 |
CN111277616B (zh) * | 2018-12-04 | 2023-11-03 | 中兴通讯股份有限公司 | 一种基于rdma的数据传输方法和分布式共享内存系统 |
CN111277616A (zh) * | 2018-12-04 | 2020-06-12 | 中兴通讯股份有限公司 | 一种基于rdma的数据传输方法和分布式共享内存系统 |
CN111274176A (zh) * | 2020-01-15 | 2020-06-12 | 联想(北京)有限公司 | 一种信息处理方法、电子设备、系统及存储介质 |
CN111274176B (zh) * | 2020-01-15 | 2022-04-22 | 联想(北京)有限公司 | 一种信息处理方法、电子设备、系统及存储介质 |
CN113407357A (zh) * | 2020-03-17 | 2021-09-17 | 华为技术有限公司 | 进程间数据搬移的方法及装置 |
CN113407357B (zh) * | 2020-03-17 | 2023-08-22 | 华为技术有限公司 | 进程间数据搬移的方法及装置 |
WO2022001417A1 (zh) * | 2020-06-28 | 2022-01-06 | 华为技术有限公司 | 一种数据传输方法、处理器系统及内存访问系统 |
WO2022021988A1 (zh) * | 2020-07-31 | 2022-02-03 | 华为技术有限公司 | 网络接口卡、存储装置、报文接收方法和发送方法 |
CN113326154A (zh) * | 2021-06-28 | 2021-08-31 | 深信服科技股份有限公司 | 连接管理方法、装置、电子设备和存储介质 |
CN113760798A (zh) * | 2021-08-05 | 2021-12-07 | 阿里巴巴新加坡控股有限公司 | Rdma设备的分配方法、计算设备及存储介质 |
WO2023125524A1 (zh) * | 2021-12-30 | 2023-07-06 | 华为技术有限公司 | 数据存储方法、系统、存储访问配置方法及相关设备 |
CN114827234A (zh) * | 2022-04-29 | 2022-07-29 | 广东浪潮智慧计算技术有限公司 | 一种数据传输方法、系统、装置及存储介质 |
CN114827234B (zh) * | 2022-04-29 | 2024-09-06 | 广东浪潮智慧计算技术有限公司 | 一种数据传输方法、系统、装置及存储介质 |
CN114979001A (zh) * | 2022-05-20 | 2022-08-30 | 北京百度网讯科技有限公司 | 基于远程直接数据存取的数据传输方法、装置以及设备 |
CN116361037A (zh) * | 2023-05-18 | 2023-06-30 | 之江实验室 | 一种分布式通信系统及方法 |
CN116361037B (zh) * | 2023-05-18 | 2023-08-18 | 之江实验室 | 一种分布式通信系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2016101288A1 (zh) | 2016-06-30 |
CN105518611B (zh) | 2019-10-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105518611A (zh) | 一种远程直接数据存取方法、设备和系统 | |
CN110417726B (zh) | 一种密钥管理方法及相关设备 | |
US10572290B2 (en) | Method and apparatus for allocating a physical resource to a virtual machine | |
US8898665B2 (en) | System, method and computer program product for inviting other virtual machine to access a memory space allocated to a virtual machine | |
US11397820B2 (en) | Method and apparatus for processing data, computer device and storage medium | |
KR101465966B1 (ko) | 클라우드 환경에서의 데이터 암호화 처리 장치 및 방법 | |
US9215251B2 (en) | Apparatus, systems, and methods for managing data security | |
CN105550576A (zh) | 容器间通信的方法与装置 | |
US11201836B2 (en) | Method and device for managing stateful application on server | |
US10048975B2 (en) | Scalable policy management in an edge virtual bridging (EVB) environment | |
CN107622207B (zh) | 加密系统级数据结构 | |
US20150169894A1 (en) | Network encrypted data object stored on an encrypted file system | |
CN114297692A (zh) | 基于数据处理系统的隐私数据处理方法 | |
KR20200034572A (ko) | 요청 처리 방법 및 장치 | |
US11503000B2 (en) | Technologies for establishing secure channel between I/O subsystem and trusted application for secure I/O data transfer | |
US9686100B2 (en) | Packet encapsulation with redirected DMA for software defined networks | |
US20200004969A1 (en) | Secure operations on encrypted data | |
US20150163205A1 (en) | Dynamic device allocation apparatus, dynamic device allocation system, dynamic device allocation method and storage medium storing dynamic device allocation program | |
CN116628717A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN115859386A (zh) | 芯片加速器、加解密方法、装置、计算机设备和存储介质 | |
US10353735B2 (en) | Computing system including independent coupling facilities maintaining equivalency based on sequence values | |
US8918559B2 (en) | Partitioning of a variable length scatter gather list | |
US11824984B2 (en) | Storage encryption for a trusted execution environment | |
US20240028774A1 (en) | System and Method for Fabric-Independent In-Band Privacy for Security Commands on Non-volatile Memory Express Over Fabrics (NVMe-oF) | |
JP6509475B1 (ja) | 管理装置、管理方法及び管理プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |