CN104202391A - 共享系统地址空间的非紧耦合系统间的rdma通信方法 - Google Patents
共享系统地址空间的非紧耦合系统间的rdma通信方法 Download PDFInfo
- Publication number
- CN104202391A CN104202391A CN201410432369.XA CN201410432369A CN104202391A CN 104202391 A CN104202391 A CN 104202391A CN 201410432369 A CN201410432369 A CN 201410432369A CN 104202391 A CN104202391 A CN 104202391A
- Authority
- CN
- China
- Prior art keywords
- node
- rdma
- destination node
- address
- message
- 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
Abstract
提出一种基于共享地址空间的非紧耦合系统间的RDMA通信方法,源节点通过直接内存存取指令远程访问目的节点,在源节点和目的节点之间建立远程直接内存存取RDMA连接;在建立所述RDMA连接后,在源节点与目的节点之间执行数据传递;数据传递完毕后释放所述RDMA连接;其中,远程目的节点的共享内存资源与I/O资源被映射在源节点本地的内存映射I/O(MMIO)地址空间当中。所述方法能够实现非紧耦合节点之间的快速、稳定的数据传输。
Description
技术领域
本发明涉及分布式计算技术领域,具体涉及一种基于共享系统地址空间的非紧耦合系统间的RDMA通信方法。
背景技术
传统的TCP/IP技术在数据包处理过程中,要经过整个系统协议栈,占用大量的服务器资源。所传输的数据要在应用缓存、系统缓存以及网络控制器缓存之间来回复制移动。一次普通的网络传输过程如下:首先,网卡驱动程序要把数据包缓存在系统缓冲区,数据经过处理以后与一个TCP连接相关联;然后,接收系统将TCP数据与相应的应用程序关联,并将数据从系统缓冲区拷贝到目标应用存储地址。如此,在网络通信频繁的系统中,大量的CPU时间被浪费在网络通信中的数据移动。
RDMA(远程直接内存存取)技术是通过网络把资料直接传入远程计算机的内存,将数据从一个系统快速移动到远程系统主存中,而不对系统造成任何影响,这样就不会浪费CPU的计算能力。它消除了外部存储器复制与文本交换操作,因而能腾出总线空间与CPU周期用于改进应用系统性能。
面对爆炸式的数据增长,数据中心的可扩展性面临了极大的挑战。Scale-up(纵向扩容)与Scale-out(横向扩展)是目前数据中心扩容的两种主要形式。其中,Scale-out则是通过分布式算法将一个个独立的低成本服务器节点组成一个大而强的系统。
然而采用Scale-out体系结构的数据中心,服务器节点之间采用松耦合的组织形式,相互之间独立,不能共享计算资源、存储资源与I/O资源。因此,现有技术还无法实现在非紧耦合系统间实现基于RDMA技术的通信。
发明内容
本发明的目的在于提出一种基于共享系统地址空间的非紧耦合系统间的远程直接内存存取RDMA通信方法,在非紧耦合系统间实现基于RDMA技术的通信。所述方法包括:
S1.源节点通过直接内存存取指令远程访问目的节点,在源节点和目的节点之间建立远程直接内存存取RDMA连接;
S2.在建立所述RDMA连接后,在源节点与目的节点之间执行数据传递;
S3.数据传递完毕后释放所述RDMA连接;
其中,远程目的节点的共享内存资源与I/O资源被映射在源节点本地的内存映射I/O(MMIO)地址空间当中。
特别地,所述步骤S1具体为:
S11.源节点初始化本地RDMA传输的发送上下文数据结构,包括目的节点的内存映射I/O(MMIO)地址、状态、发送字节总数以及当前已发送字节数;
S12.源节点构造向远程目的节点申请RDMA连接的请求消息,消息内容包括目的节点的MMIO地址、源节点的MMIO地址,然后基于全局共享系统地址空间的映射关系通过非紧耦合系统中的节点间控制器发送到远程节点;
S13.所述目的节点接收到源节点发送的所述申请RDMA连接的请求消息后,构造接收上下文数据结构,包括源节点的MMIO地址、状态、接收字节总数以及当前已接收字节数;
S14.目的节点回复确认消息,源节点收所述确认消息,完成RDMA连接的建立过程。
特别地,所述步骤S12中,非紧耦合系统中的节点间控制器的处理过程为:根据所述请求消息中的目的节点的MMIO地址与全局共享系统地址空间映射关系,将目的节点的MMIO地址翻译成目的节点号与逻辑地址,并基于所述目的节点号和逻辑地址将所述请求消息发送到目的节点。
特别地,所述步骤S2具体为:
S21.源节点以DMA方式从源节点内主机内存中读取数据,并封装成RDMA消息,所述RDMA消息中包括目的节点的MMIO地址;
S22.非紧耦合系统中的节点间控制器,根据所述RDMA消息中的目标地址与全局共享系统地址空间映射关系,将目标节点的MMIO地址翻译成目标节点号和逻辑地址,并基于所述目标节点号和逻辑地址将所述RDMA消息发送到目的节点;
S23.目的节点收到RDMA消息以后,根据节点内地址映射关系,将逻辑地址翻译成节点内的内存物理地址,拷贝数据到相应的内存地址当中;
S24.目的节点构造传输完成消息,通知源节点。
特别地,所述RDMA消息中还包括一个序列号,用来标识当前缓冲区传送的消息号,以便检测消息丢失的情况。
特别地,所述步骤S23中,在目的节点收到RDMA消息之后,将逻辑地址翻译成节点内的内存物理地址之前,还包括基于硬件执行CRC校验。
本发明的有益效果是:公开的一种基于共享地址空间的非紧耦合系统间的RDMA通信方法,能够实现非紧耦合节点之间的快速、稳定的数据传输。
附图说明
图1为基于共享系统地址空间的非紧耦合系统的结构示意图。
图2为本发明提出的基于共享系统地址空间的非紧耦合系统的RDMA通信方法流程图。
图3为本发明提出的非紧耦合系统间RDMA连接建立流程图。
图4为本发明提出的非紧耦合系统间RDMA的数据传输流程图。
具体实施方式
为了使本发明的目的、技术方案更加清楚明白,下面给出本发明的具体实施方式,结合附图及实施例对本发明进行详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明。
图1给出了非紧耦合的分布式计算系统结构图。在图中,节点内部通过节点内控制器INC(Intra Node Controller)相连,每个INC可以连接至少一个CPU,节点之间通过节点间控制器ENC(External Node Controller)相连。每个节点是一个独立的整体,拥有独立的计算资源、内存资源与I/O资源,可以运行独立的操作系统。节点之间采用非紧耦合形式组织,相互之间独立,不支持内存资源与I/O资源的共享。
参见图2,为了实现本发明的目的,提出的一种基于共享系统地址空间的非紧耦合系统间的RDMA通信方法,包括如下步骤:
1.源节点通过直接内存存取指令远程访问目的节点,在源节点和目的节点之间建立远程直接内存存取RDMA连接。
2.在建立所述RDMA连接后,在源节点与目的节点之间执行数据传递。
3.数据传递完毕后释放所述RDMA连接。
其中,在上述操作步中,源节点与目的节点之间的数据通信,是基于全局共享系统地址空间的映射关系。在该通信方式中,远程目的节点的共享内存资源与I/O资源被映射在源节点本地的内存映射I/O(MMIO)地址空间当中,通过处理器的Load/Store指令就可以直接访问远程目的节点的共享内存资源和I/O资源。
图3给示出了前述步骤1中所述通过直接内存存取建立所述RDMA连接的详细过程:
1.1.源节点初始化本地RDMA传输的发送上下文数据结构,包括目的节点的内存映射I/O(MMIO)地址、状态、发送字节总数以及当前已发送字节数等。
1.2.源节点构造向远程目的节点申请RDMA连接的请求消息,消息内容包括目的节点的MMIO地址、源节点的MMIO地址,然后基于全局共享系统地址空间的映射关系通过非紧耦合系统中的节点间控制器发送到远程节点。
上述步骤中,非紧耦合系统中的节点间控制器的处理过程为:根据所述请求消息中的目的节点的MMIO地址与全局共享系统地址空间映射关系,将目的节点的MMIO地址翻译成目的节点号与逻辑地址,并基于所述目的节点号和逻辑地址将所述请求消息发送到目的节点。
1.3.所述目的节点接收到源节点的申请RDMA连接的请求消息,构造接收上下文数据结构,包括源节点的MMIO地址、状态、接收字节总数以及当前已接收字节数等。
1.4.目的节点根据请求消息回复确认消息,源节点收到所述确认消息,完成RDMA连接的建立过程。
图4给出了在建立连接后,基于全局共享系统地址空间的映射关系,在源节点与目标节点之间执行数据传递的详细过程:
2.1源节点以DMA方式从源节点内主机内存中读取数据,并封装成RDMA消息,所述RDMA消息中包括目的节点的MMIO地址和一个序列号,用来标识当前缓冲区传送的消息号,以便检测消息丢失的情况。
远程节点的地址被映射在了本地的MMIO地址空间当中,本地系统为了将本地的消息发送到远程节点,系统固件(System Firmware)需要在桥设备的寄存器中,将系统中用于共享的MMIO地址空间注册成节点间控制器的地址空间,如此,本地系统会将访问这部分MMIO地址的请求,经过桥设备,转发到节点间控制器。
2.2非紧耦合系统中的节点间控制器,根据RDMA消息中的目标地址与全局共享系统地址空间映射关系,将目标节点的MMIO地址翻译成目标节点号与逻辑地址,并基于目标节点号和逻辑地址将所述RDMA消息发送到目的节点。
2.3目的节点收到RDMA消息以后,基于硬件执行CRC校验。然后根据节点内地址映射关系,将逻辑地址翻译成节点内的内存物理地址,拷贝数据到相应的内存地址当中。
在上述步骤2.1和2.3中,源节点的RDMA控制器根据全局地址空间映射关系,将RDMA消息中的目的节点的MMIO地址翻译成一个逻辑地址,包括:目的节点号与目的节点逻辑地址。当目的节点收到RDMA消息以后,目的节点的RDMA控制器根据节点内地址映射关系,将逻辑地址翻译成节点内的内存物理地址,然后执行数据移动。
2.4目的节点构造传输完成消息,通知源节点。
当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明的权利要求的保护范围。
Claims (6)
1.一种基于共享系统地址空间的非紧耦合系统间的RDMA通信方法,其特征在于,包括如下步骤:
S1.源节点通过直接内存存取指令远程访问目的节点,在源节点和目的节点之间建立远程直接内存存取RDMA连接;
S2.在建立所述RDMA连接后,在源节点与目的节点之间执行数据传递;
S3.数据传递完毕后释放所述RDMA连接;
其中,远程目的节点的共享内存资源与I/O资源被映射在源节点本地的内存映射I/O(MMIO)地址空间当中。
2.如权利要求1所述的方法,其特征在于:
所述步骤S1具体为:
S11.源节点初始化本地RDMA传输的发送上下文数据结构,包括目的节点的内存映射I/O(MMIO)地址、状态、发送字节总数以及当前已发送字节数;
S12.源节点构造向远程目的节点申请RDMA连接的请求消息,消息内容包括目的节点的MMIO地址、源节点的MMIO地址,然后基于全局共享系统地址空间的映射关系通过非紧耦合系统中的节点间控制器发送到远程节点;
S13.所述目的节点接收到源节点发送的所述申请RDMA连接的请求消息后,构造接收上下文数据结构,包括源节点的MMIO地址、状态、接收字节总数以及当前已接收字节数;
S14.目的节点回复确认消息,源节点收所述确认消息,完成RDMA连接的建立过程。
3.如权利要求2所述的方法,其特征在于:
所述步骤S12中,非紧耦合系统中的节点间控制器的处理过程为:根据所述请求消息中的目的节点的MMIO地址与全局共享系统地址空间映射关系,将目的节点的MMIO地址翻译成目的节点号与逻辑地址,并基于所述目的节点号和逻辑地址将所述请求消息发送到目的节点。
4.如权利要求1或2所述的方法,其特征在于,所述步骤S2具体为:
S21.源节点以DMA方式从源节点内主机内存中读取数据,并封装成RDMA消息,所述RDMA消息中包括目的节点的MMIO地址;
S22.非紧耦合系统中的节点间控制器,根据所述RDMA消息中的目标地址与全局共享系统地址空间映射关系,将目标节点的MMIO地址翻译成目标节点号和逻辑地址,并基于所述目标节点号和逻辑地址将所述RDMA消息发送到目的节点;
S23.目的节点收到RDMA消息以后,根据节点内地址映射关系,将逻辑地址翻译成节点内的内存物理地址,拷贝数据到相应的内存地址当中;
S24.目的节点构造传输完成消息,通知源节点。
5.如权利要求4所述的方法,其特征在于:
所述RDMA消息中还包括一个序列号,用来标识当前缓冲区传送的消息号,以便检测消息丢失的情况。
6.如权利要去4所述的方法,其特征在于:
所述步骤S23中,在目的节点收到RDMA消息之后,将逻辑地址翻译成节点内的内存物理地址之前,还包括基于硬件执行CRC校验。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410432369.XA CN104202391B (zh) | 2014-08-28 | 2014-08-28 | 共享系统地址空间的非紧耦合系统间的rdma通信方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410432369.XA CN104202391B (zh) | 2014-08-28 | 2014-08-28 | 共享系统地址空间的非紧耦合系统间的rdma通信方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104202391A true CN104202391A (zh) | 2014-12-10 |
CN104202391B CN104202391B (zh) | 2018-09-25 |
Family
ID=52087616
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410432369.XA Active CN104202391B (zh) | 2014-08-28 | 2014-08-28 | 共享系统地址空间的非紧耦合系统间的rdma通信方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104202391B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105518611A (zh) * | 2014-12-27 | 2016-04-20 | 华为技术有限公司 | 一种远程直接数据存取方法、设备和系统 |
CN106844048A (zh) * | 2017-01-13 | 2017-06-13 | 上海交通大学 | 基于硬件特性的分布式共享内存方法及系统 |
WO2017124917A1 (zh) * | 2016-01-18 | 2017-07-27 | 中兴通讯股份有限公司 | 数据处理方法和装置 |
CN108494817A (zh) * | 2018-02-08 | 2018-09-04 | 华为技术有限公司 | 数据传输方法、相关装置及系统 |
CN108845966A (zh) * | 2018-06-25 | 2018-11-20 | 首都师范大学 | 一种cps节点功能参数存取方法 |
CN110191194A (zh) * | 2019-06-13 | 2019-08-30 | 华中科技大学 | 一种基于rdma网络的分布式文件系统数据传输方法和系统 |
CN113014631A (zh) * | 2021-02-19 | 2021-06-22 | 浙江曲速科技有限公司 | 基于Hlink的设备缓存推送系统及方法 |
CN113287286A (zh) * | 2019-01-30 | 2021-08-20 | 华为技术有限公司 | 通过rdma进行分布式存储节点中的输入/输出处理 |
CN113297097A (zh) * | 2021-05-27 | 2021-08-24 | 中国电子科技集团公司第五十八研究所 | 一种面向封装级多处理器的混合地址编程方法 |
WO2022241718A1 (zh) * | 2021-05-20 | 2022-11-24 | 华为技术有限公司 | 一种数据存取方法、互联系统及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1705269A (zh) * | 2004-05-25 | 2005-12-07 | 中国科学院计算技术研究所 | 一种用于虚拟共享存储系统的远程取页方法及网络接口卡 |
CN1771495A (zh) * | 2003-05-07 | 2006-05-10 | 国际商业机器公司 | 分布式文件服务体系结构系统 |
CN101375263A (zh) * | 2003-12-31 | 2009-02-25 | 微软公司 | 轻型输入/输出协议 |
US20090083392A1 (en) * | 2007-09-25 | 2009-03-26 | Sun Microsystems, Inc. | Simple, efficient rdma mechanism |
-
2014
- 2014-08-28 CN CN201410432369.XA patent/CN104202391B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1771495A (zh) * | 2003-05-07 | 2006-05-10 | 国际商业机器公司 | 分布式文件服务体系结构系统 |
CN101375263A (zh) * | 2003-12-31 | 2009-02-25 | 微软公司 | 轻型输入/输出协议 |
CN1705269A (zh) * | 2004-05-25 | 2005-12-07 | 中国科学院计算技术研究所 | 一种用于虚拟共享存储系统的远程取页方法及网络接口卡 |
US20090083392A1 (en) * | 2007-09-25 | 2009-03-26 | Sun Microsystems, Inc. | Simple, efficient rdma mechanism |
Non-Patent Citations (2)
Title |
---|
史岗: "支持软件分布式共享存储系统的机群通信技术", 《中国博士学位论文全文数据库(信息科技辑)》 * |
胡明昌: "共享虚拟存储机群高速互连网络研究", 《中国博士学位论文全文数据库(信息科技辑)》 * |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105518611B (zh) * | 2014-12-27 | 2019-10-25 | 华为技术有限公司 | 一种远程直接数据存取方法、设备和系统 |
CN105518611A (zh) * | 2014-12-27 | 2016-04-20 | 华为技术有限公司 | 一种远程直接数据存取方法、设备和系统 |
WO2017124917A1 (zh) * | 2016-01-18 | 2017-07-27 | 中兴通讯股份有限公司 | 数据处理方法和装置 |
CN106844048A (zh) * | 2017-01-13 | 2017-06-13 | 上海交通大学 | 基于硬件特性的分布式共享内存方法及系统 |
CN106844048B (zh) * | 2017-01-13 | 2020-11-06 | 上海交通大学 | 基于硬件特性的分布式共享内存方法及系统 |
CN108494817A (zh) * | 2018-02-08 | 2018-09-04 | 华为技术有限公司 | 数据传输方法、相关装置及系统 |
CN108845966B (zh) * | 2018-06-25 | 2021-04-06 | 首都师范大学 | 一种cps节点功能参数存取方法 |
CN108845966A (zh) * | 2018-06-25 | 2018-11-20 | 首都师范大学 | 一种cps节点功能参数存取方法 |
CN113287286A (zh) * | 2019-01-30 | 2021-08-20 | 华为技术有限公司 | 通过rdma进行分布式存储节点中的输入/输出处理 |
CN113287286B (zh) * | 2019-01-30 | 2022-12-27 | 华为技术有限公司 | 通过rdma进行分布式存储节点中的输入/输出处理 |
US11681441B2 (en) | 2019-01-30 | 2023-06-20 | Huawei Technologies Co., Ltd. | Input/output processing in a distributed storage node with RDMA |
CN110191194A (zh) * | 2019-06-13 | 2019-08-30 | 华中科技大学 | 一种基于rdma网络的分布式文件系统数据传输方法和系统 |
CN113014631A (zh) * | 2021-02-19 | 2021-06-22 | 浙江曲速科技有限公司 | 基于Hlink的设备缓存推送系统及方法 |
WO2022241718A1 (zh) * | 2021-05-20 | 2022-11-24 | 华为技术有限公司 | 一种数据存取方法、互联系统及装置 |
CN113297097A (zh) * | 2021-05-27 | 2021-08-24 | 中国电子科技集团公司第五十八研究所 | 一种面向封装级多处理器的混合地址编程方法 |
CN113297097B (zh) * | 2021-05-27 | 2022-09-02 | 中国电子科技集团公司第五十八研究所 | 一种面向封装级多处理器的混合地址编程方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104202391B (zh) | 2018-09-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104202391A (zh) | 共享系统地址空间的非紧耦合系统间的rdma通信方法 | |
US10788992B2 (en) | System and method for efficient access for remote storage devices | |
US20200358857A1 (en) | Data transmission method, system and proxy server | |
US8255475B2 (en) | Network interface device with memory management capabilities | |
JP4722157B2 (ja) | ネットワークトラフィックのインテリジェントロードバランシング及びフェイルオーバー | |
JP4840943B2 (ja) | ネットワークトラフィックのインテリジェントロードバランシング及びフェイルオーバー | |
US20070162619A1 (en) | Method and System for Zero Copy in a Virtualized Network Environment | |
JP6312842B2 (ja) | 異機種環境においてデータ通信を支援するためのシステム及び方法、並びにプログラム | |
US10609125B2 (en) | Method and system for transmitting communication data | |
JP2014528107A5 (zh) | ||
WO2016197848A1 (zh) | 一种管理网卡的方法、装置及系统 | |
WO2021013046A1 (zh) | 通信方法和网卡 | |
US20180109456A1 (en) | System, method, and device for network load balance processing | |
JP2005044353A (ja) | 複数のnicrdma対応デバイスにおける状態の移行 | |
CN113490927A (zh) | 具有硬件集成和乱序放置的rdma输送 | |
US11886940B2 (en) | Network interface card, storage apparatus, and packet receiving method and sending method | |
JP2016510929A5 (zh) | ||
JP2010183450A (ja) | ネットワークインターフェース装置 | |
US20170230330A1 (en) | Source-destination network address translation (sdnat) proxy and method thereof | |
JP2009080584A (ja) | プロトコル処理装置及び制御方法 | |
CN104782081B (zh) | 用于转移套接字状态的系统以及用于迁移tcp连接的方法 | |
US9231909B2 (en) | Communication system employing subnet or prefix to determine connection to same network segment | |
US20220124046A1 (en) | System for storage of received messages | |
KR101541349B1 (ko) | 고성능 네트워크 장비의 패킷 전달 시스템 및 그 전달 방법 | |
WO2022151475A1 (zh) | 报文缓存方法、内存分配器及报文转发系统 |
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 |