CN113395359A - 基于远程直接内存访问的文件币集群数据传输方法、系统 - Google Patents
基于远程直接内存访问的文件币集群数据传输方法、系统 Download PDFInfo
- Publication number
- CN113395359A CN113395359A CN202110940079.6A CN202110940079A CN113395359A CN 113395359 A CN113395359 A CN 113395359A CN 202110940079 A CN202110940079 A CN 202110940079A CN 113395359 A CN113395359 A CN 113395359A
- Authority
- CN
- China
- Prior art keywords
- node
- sector data
- packaging
- card
- data
- 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
- 238000000034 method Methods 0.000 title claims abstract description 64
- 230000005540 biological transmission Effects 0.000 title claims abstract description 47
- 238000004806 packaging method and process Methods 0.000 claims abstract description 79
- 238000005538 encapsulation Methods 0.000 claims abstract description 50
- 230000010076 replication Effects 0.000 claims description 5
- 238000012858 packaging process Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 238000007789 sealing Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 238000013500 data storage Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000006467 substitution reaction Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000005284 excitation Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17306—Intercommunication techniques
- G06F15/17331—Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种基于远程直接内存访问的文件币集群数据传输方法、系统,所述方法包括如下步骤:在文件币集群的数据传输接口设置基于RDMA协议的RDMA接口;第一个封装节点接收客户发送的扇区数据进行封装,封装完成后,调用RDMA接口,将扇区数据串行发送至下一个封装节点进行封装;最后一个封装节点的HCA卡接收到上一个封装节点发送的扇区数据,调用RDMA接口直接将扇区数据发送至本封装节点用户态内存进行封装;封装完成后,调用RDMA接口,将封装完成的扇区数据串行发回至最后一个封装节点的HCA卡,并通过HCA卡将扇区数据发送至分布式存储。RDMA接口进行数据传输,不需要内存多次复制,提高了数据传输效率。
Description
技术领域
本发明涉及文件币集群节点间数据传输技术领域,具体涉及一种基于远程直接内存访问的文件币集群数据传输方法、系统。
背景技术
Web 1.0出现于20世纪90年代和21世纪初,当时的互联网是静态、只读的HTML页面。用户之间的互联也相当有限。Web2.0也被称为读写网络,开始于2004年左右,至今也仍然处于Web2.0时代。它由社交媒体网站、博客和在线社区组成,终端用户可以在任何时间实时地交互和协作。Web3.0在无中介的读写网络中提供更好的以用户为中心的体验。技术使得个人在缺省情况下能控制数据隐私和所有权。Web3.0引入去中心化互联网,本质上,Web3.0技术为P2P通信、支付、服务和市场提供了基础。
IPFS是为实现 Web3.0推出的去中心化存储解决方案。作为一种面向全球的点对点分布式版本文件系统,IPFS凭借去中心化、开放、安全性与透明性高等优势,已经成为一个流行的网络存储协议。它是一个类似 HTTP 协议的互联网底层协议,已被成功应用于数据存储、文件传输、网络视频、社交媒体、去中心化交易等各个领域。在这些技术趋势的推动下,基于 IPFS 网络的相关Filecoin(FIL,文件币)产业也在不断壮大。Filecoin 是一个将云存储转变为算法市场的去中心化存储网络,矿工通过提供存储、分发和检索数据服务获得奖励,而客户则需要付费获得这些服务。目前全球IPFS 项目逐渐增加,数据存储市场的需求也在逐步加大,Filecoin 作为激励层,成为市场为IPFS 保驾护航的迫切需求。Filecoin 是帮用户存储数据来获取奖励的过程,分为数据封存和共识证明两个过程。
RDMA是一种新的直接内存访问技术,RDMA让计算机可以直接存取其他计算机的内存,而不需要经过处理器的处理。在实现上,RDMA实际上是一种智能网卡与软件架构充分优化的远端内存直接高速访问技术,通过将RDMA协议固化于硬件(即网卡)上,以及支持Zero-copy和Kernel bypass这两种途径来达到其高性能的远程直接数据存取的目标。
当前Filecoin集群节点之间基于主流TCP/IP协议,实现节点之间数据传输,数据在每个节点内部封装过程需要多次复制,由网卡内存,复制到操作系统内存,再复制到封装进程内存;过多的内存复制导致巨大的数据量传输效率低下。另外,集群节点间数据传输使用TCP/IP协议,TCP在建立链接需要进行多次“握手”,当前基于TCP/IP协议的数据处理流程也影响了集群内数据传输的效率。
发明内容
针对当前Filecoin集群节点之间基于主流TCP/IP协议,实现节点之间数据传输,数据在每个节点内部封装过程需要多次复制,由网卡内存,复制到操作系统内存,再复制到封装进程内存;过多的内存复制导致巨大的数据量传输效率低下。另外,集群节点间数据传输使用TCP/IP协议,TCP在建立链接需要进行多次“握手”,当前基于TCP/IP协议的数据处理流程也影响了集群内数据传输的效率的问题,本发明提供一种基于远程直接内存访问的文件币集群数据传输方法、系统。
本发明的技术方案是:
一方面,本发明技术方案提供一种基于远程直接内存访问的文件币集群数据传输方法,文件币集群封装节点包括多个,所述方法包括如下步骤:
在文件币集群的数据传输接口设置基于RDMA协议的RDMA接口;
第一个封装节点接收客户发送的扇区数据进行封装,封装完成后,调用RDMA接口,将封装完成的扇区数据发送至本封装节点的HCA卡,并通过HCA卡将扇区数据串行发送至下一个封装节点的HCA卡;
HCA卡接收到上一个封装节点发送的扇区数据后,调用RDMA接口直接将扇区数据发送至HCA卡所在的封装节点用户态内存进行封装;封装完成后,调用RDMA接口,将封装完成的扇区数据串行发回至HCA卡,并通过HCA卡将扇区数据发送至下一个封装节点的HCA卡;
最后一个封装节点的HCA卡接收到上一个封装节点发送的扇区数据,调用RDMA接口直接将扇区数据发送至本封装节点用户态内存进行封装;封装完成后,调用RDMA接口,将封装完成的扇区数据串行发回至最后一个封装节点的HCA卡,并通过HCA卡将扇区数据发送至分布式存储。
在数据传输接口中增加基于RDMA协议的接口;封装完成的数据通过调用RDMA接口进行数据传输,省去在封装节点内部将封装完成的数据逐步复制到网卡的过程。
不需要内存多次复制,提升数据传输效率。完成封装的扇区数据先后顺序串行发送,并且设置RDMA接口将数据能够被直接发送到缓冲区或者能够直接从缓冲区里接收,而不需要被复制到网络层,不需要在内核态与用户态之间做上下文切换。
在文件币集群中使用支持RDMA协议的HCA卡替换常规网卡,打通封装节点网络通道。
优选地,文件币集群封装节点包括三个,分别为P1节点、P2节点和C1&C2节点;所述方法封装数据传输过程如下:
P1节点接收客户发送的扇区数据进行封装,封装完成后,调用RDMA接口,将封装完成的扇区数据发送至P1节点的HCA卡,并通过HCA卡将扇区数据串行发送至P2节点;
P2节点的HCA卡接收扇区数据,调用RDMA接口直接将扇区数据发送至P2节点用户态内存进行封装;封装完成后,调用RDMA接口,将封装完成的扇区数据串行发回至P2节点的HCA卡,并通过HCA卡将扇区数据发送至C1&C2节点;
C1&C2节点的HCA卡接收扇区数据,调用RDMA接口直接将扇区数据发送至C1&C2节点用户态内存进行封装;封装完成后,调用RDMA接口,将封装完成的扇区数据串行发回至C1&C2节点的HCA卡,并通过HCA卡将扇区数据发送至分布式存储。
通过设置RDMA接口以及RDMA协议的HCA卡,节省了原有的将扇区数据由P1节点网卡发送至P2节点网卡过程中的复制过程;以及扇区数据由P2节点网卡发送至C1&C2节点网卡过程中的复制过程;由于过多的内存复制以及低效率的TCP/IP协议导致巨大的数据量传输效率低下,本发明的设置提高了集群内数据传输的效率。
优选地,所述P1节点接收客户发送的扇区数据进行封装,封装完成后,调用RDMA接口,将封装完成的扇区数据发送至P1节点的HCA卡,并通过HCA卡将扇区数据串行发送至P2节点的步骤中,P1节点接收客户发送的扇区数据进行封装的步骤具体包括:
P1节点的网卡接收客户发送的扇区数据;
将接收到的扇区数据逐步复制到P1节点用户态内存进行封装。
优选地,所述的将接收到的扇区数据逐步复制到P1节点用户态内存进行封装的步骤包括:
将扇区数据由P1节点的网卡内存复制到网卡对应的内核态内存中;
将扇区数据从网卡对应的内核态内存中复制到P1节点进程对应的内核态内存中;
将扇区数据从P1节点进程对应的内核态内存中复制到P1节点进程对应的用户态内存中;
扇区数据在P1节点的用户态内存中完成封装。
优选地,所述封装完成后,调用RDMA接口的步骤具体包括:
检测扇区数据是否完成封装;
将完成封装的扇区数据按照先后顺序排成队列;
按队列顺序调用RDMA接口。保证完成封装的扇区数据在抢占网卡时按先后顺序串行发送。
优选地,该方法还包括:
在第一个封装节点安装网卡及HCA卡、在文件币集群的其他封装节点均安装HCA卡。
优选地,所述的第一个封装节点的网卡接收客户发送的扇区数据的步骤中,第一个封装节点的网卡通过TCP/IP协议接收客户发送的扇区数据。
另一方面,本发明技术方案还提供一种基于远程直接内存访问的文件币集群数据传输系统,包括扇区数据依次封装传输的若干个封装节点;
每个封装节点均设置有RDMA接口、HCA卡、用户态内存,封装节点之间通过HCA网卡进行数据传输;
所述系统包括封装模块、调用模块;
第一个封装节点还设置有网卡,用于接收客户发送的扇区数据;
封装模块,用于将扇区数据在用户态内存进行封装;
调用模块,用于调用RDMA接口将封装完成的数据进行传输;
最后一个封装节点的HCA卡,还用于将扇区数据发送至分布式存储。
优选地,封装节点包括三个,分别为P1节点、P2节点和C1&C2节点;P1节点为第一个封装节点,C1&C2节点为最后一个封装节点;所述系统还包括复制模块;
复制模块,用于将接收到的扇区数据逐步复制至P1节点用户态内存;
调用模块,用于调用RDMA接口,将P1节点用户态内存中封装完成的扇区数据通过RDMA接口发送至P1节点的HCA卡;还用于调用RDMA接口直接将扇区数据发送至P2节点用户态内存;还用于调用RDMA接口,将P2节点用户态内存中封装完成的扇区数据串行发送至P2节点的HCA卡;还用于调用RDMA接口直接将扇区数据发送至C1&C2节点用户态内存;还用于调用RDMA接口将C1&C2节点用户态内存中封装完成的扇区数据串行发送至C1&C2节点的HCA卡;
P1节点的HCA卡,用于将扇区数据串行发送至P2节点;
P2节点的HCA卡,用于接收P1节点发送的扇区数据;还用于将P2节点用户态内存中封装完成的扇区数据发送C1&C2节点;
C1&C2节点的HCA卡,用于接收P2节点发送的扇区数据,还用于将C1&C2节点用户态内存中封装完成的扇区数据发送至分布式存储。
优选地,P1节点还设置有内核态内存;
复制模块,具体用于将扇区数据由P1节点的网卡内存复制到网卡对应的内核态内存中;将扇区数据从网卡对应的内核态内存中复制到P1节点进程对应的内核态内存中;将扇区数据从P1节点进程对应的内核态内存中复制到P1节点进程对应的用户态内存中。
从以上技术方案可以看出,本发明具有以下优点:数据在封装节点的用户态内存直接传输到用户态RDMA缓存,不需要内核态用户态的内存多次复制,提升数据传输效率。
此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
由此可见,本发明与现有技术相比,具有突出的实质性特点和显著地进步,其实施的有益效果也是显而易见的。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例的方法的示意性流程图。
图2是本发明一个实施例方法的基于RDMA的数据传输逻辑流程。
图3为本发明一个实施例提供系统的连接框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
下面对本发明中出现的关键术语进行解释。
RDMA(Remote Direct Memory Access) 远程直接内存访问;
HCA(Host Channel Adapter) 主机通道适配器;
IPFS(Inter Planetary File System)星际文件系统,是一个面向全球的、点对点的分布式版本文件系统,是一个分布式的web, 点到点超媒体协议. 可以让我们的互联网速度更快, 更加安全, 并且更加开放;
Filecoin 是星际文件系统上唯一的激励层,本申请定义为:文件币,是帮用户存储数据来获取奖励的过程,分为数据封存和共识证明两个过程。
如图1所示,本发明实施例提供一种基于远程直接内存访问的文件币集群数据传输方法,文件币集群封装节点包括多个,所述方法包括如下步骤:
步骤11:在第一个封装节点设置安装网卡及HCA卡、在文件币集群的其他封装节点均设置安装HCA卡;
步骤12:在文件币集群的数据传输接口设置基于RDMA协议的RDMA接口;
步骤13:第一个封装节点接收客户发送的扇区数据进行封装,封装完成后,调用RDMA接口,将封装完成的扇区数据发送至本封装节点的HCA卡,并通过HCA卡将扇区数据串行发送至下一个封装节点的HCA卡;
步骤14:HCA卡接收到上一个封装节点发送的扇区数据后,调用RDMA接口直接将扇区数据发送至HCA卡所在的封装节点用户态内存进行封装;封装完成后,调用RDMA接口,将封装完成的扇区数据串行发回至HCA卡,并通过HCA卡将扇区数据发送至下一个封装节点的HCA卡;
步骤15:最后一个封装节点的HCA卡接收到上一个封装节点发送的扇区数据,调用RDMA接口直接将扇区数据发送至本封装节点用户态内存进行封装;封装完成后,调用RDMA接口,将封装完成的扇区数据串行发回至最后一个封装节点的HCA卡,并通过HCA卡将扇区数据发送至分布式存储。
在数据传输接口中增加基于RDMA协议的接口;封装完成的数据通过调用RDMA接口进行数据传输,省去在封装节点内部将封装完成的数据逐步复制到网卡的过程。
不需要内存多次复制,提升数据传输效率。完成封装的扇区数据先后顺序串行发送,并且设置RDMA接口将数据能够被直接发送到缓冲区或者能够直接从缓冲区里接收,而不需要被复制到网络层,不需要在内核态与用户态之间做上下文切换。
需要说明的是,第一个封装节点的网卡通过TCP/IP协议接收客户发送的扇区数据。
在文件币集群中使用支持RDMA协议的HCA卡替换常规网卡,打通封装节点网络通道。
本领域技术人员知道,Filecoin 是帮用户存储数据来获取奖励的过程,分为数据封存和共识证明两个过程。本发明关注数据封存阶段,数据封存阶段主要涉及Precommit1,Precommit 2,Commit 1,Commit 2四个小阶段。简称P1、P2、C1、C2阶段,数据依次完成4个阶段封装,无法并行;
Precommit1 阶段(下文简称 P1 阶段):
将用户需要存储的文件分成一个个大小为 32GB或者64GB的扇区(sector),P1 阶段就是矿工先对扇区数据进行进一步的拆分,然后再按顺序进行存储,中间需要进行 11层计算,且无法并行计算;在该阶段,通过大容量内存的方式,就有可能同时存储多个扇区数据,并通过软件优化存储一个扇区数据占用的内存的大小来提高P1阶段的速度,该阶段只能使用CPU计算;
Precommit2 阶段(下文简称 P2 阶段):
P2 阶段即就是计算 Column Hash 以及生成 Replica,并构造相应的 Merkle树,相当于解题并做出答案的过程,该阶段采用 GPU 计算。
Commit1 阶段(下文简称 C1 阶段):
C1 阶段主要是为 Sector 证明准备所需要的数据。这个时间很短,一般在一分钟以内。
Commit2 阶段(下文简称 C2 阶段):
C2 阶段是零知识证明的数据处理以及生成零知识证明的过程。相当于确认答案是否正确的阶段,该阶段采用 GPU计算。
传统的数据传输过程: Filecoin集群数据节点之间基于主流TCP/IP协议,实现集群之间数据传输,其技术方案如下:1、客户数据按32GB或者64GB为一个数据块,称为一个扇区,该扇区数据由TCP/IP协议传至P1节点网卡。2、该扇区数据由P1节点本地网卡缓存复制到网卡对应的内核态内存中;3、该扇区数据从网卡对应的内核态内存中复制到P1进程对应的内核态内存中;4、该扇区数据从P1进程对应的内核态内存中复制到P1进程对应的用户态内存中;5、该扇区数据在用户态内存中完成P1阶段封装;6、完成封装的扇区数据写会P1进程对应的用户态内存中;7、由P1进程对应的用户态内存复制到P1进程对应的内核态内存中;8、由P1进程对应的内核态内存中复制到网卡对应的内核态内存中;9、扇区数据由P1节点网卡发送至P2节点网卡,完成1到8步;10、扇区数据由P2节点网卡发送至C1&C2节点网卡,完成1到8步;11、扇区数据由C1&C2节点网卡发送至分布式存储。数据在每个封装节点内部需要实现最少3次复制,由网卡内存,复制到操作系统内存,再复制到封装进程内存;集群节点间数据传输使用TCP/IP协议,TCP在建立链接需要进行三次“握手”。当前基于TCP/IP协议的数据处理流程影响了集群内数据传输的效率。
通过上述,在有些实施例中,文件币集群封装节点包括三个,分别为P1节点、P2节点和C1&C2节点;如图2所示,所述方法封装数据传输过程如下:
步骤21:P1节点接收客户发送的扇区数据进行封装,封装完成后,调用RDMA接口,将封装完成的扇区数据发送至P1节点的HCA卡,并通过HCA卡将扇区数据串行发送至P2节点;在P1节点完成P1 阶段的封装;
步骤22:P2节点的HCA卡接收扇区数据,调用RDMA接口直接将扇区数据发送至P2节点用户态内存进行封装;封装完成后,调用RDMA接口,将封装完成的扇区数据串行发回至P2节点的HCA卡,并通过HCA卡将扇区数据发送至C1&C2节点;在P2节点完成P2阶段的封装;
步骤23:C1&C2节点的HCA卡接收扇区数据,调用RDMA接口直接将扇区数据发送至C1&C2节点用户态内存进行封装;封装完成后,调用RDMA接口,将封装完成的扇区数据串行发回至C1&C2节点的HCA卡,并通过HCA卡将扇区数据发送至分布式存储。在C1&C2节点完成C1&C2阶段的封装。
使用RDMA协议,应用程序能够直接执行数据传输,在不涉及到网络软件栈的情况下。数据能够被直接发送到缓冲区或者能够直接从缓冲区里接收,而不需要被复制到网络层。应用程序可以直接在用户态执行数据传输,不需要在内核态与用户态之间做上下文切换。应用程序可以访问远程主机内存而不消耗远程主机中的任何CPU。远程主机内存能够被读取而不需要远程主机上的进程(或CPU)参与。远程主机的CPU的缓存(cache)不会被访问的内存内容所填充。例如,P1节点可同时进行2T扇区数据(30个P1进程并行封装64GB)的封装,在封装完成时2TB数据全部通过网卡传输至P2节点,过多的内存复制以及低效率的TCP/IP协议导致巨大的数据量传输效率低下。
通过设置RDMA接口以及RDMA协议的HCA卡,节省了原有的将扇区数据由P1节点网卡发送至P2节点网卡过程中的复制过程;以及扇区数据由P2节点网卡发送至C1&C2节点网卡过程中的复制过程;由于过多的内存复制以及低效率的TCP/IP协议导致巨大的数据量传输效率低下,本发明的设置提高了集群内数据传输的效率。
在有些实施例中,所述P1节点接收客户发送的扇区数据进行封装,封装完成后,调用RDMA接口,将封装完成的扇区数据发送至P1节点的HCA卡,并通过HCA卡将扇区数据串行发送至P2节点的步骤中,P1节点接收客户发送的扇区数据进行封装的步骤具体包括:
步骤111:P1节点的网卡接收客户发送的扇区数据;
步骤112:将扇区数据由P1节点的网卡内存复制到网卡对应的内核态内存中;
步骤113:将扇区数据从网卡对应的内核态内存中复制到P1节点进程对应的内核态内存中;
步骤114:将扇区数据从P1节点进程对应的内核态内存中复制到P1节点进程对应的用户态内存中;
步骤115:扇区数据在P1节点的用户态内存中完成封装。
在有些实施例中,所述的封装完成后,调用RDMA接口的步骤具体包括:
步骤331:检测扇区数据是否完成封装;
步骤332:将完成封装的扇区数据按照先后顺序排成队列;
步骤333:按队列顺序调用RDMA接口。保证完成封装的扇区数据在抢占网卡时按先后顺序串行发送。
在调用RDMA接口时,RDMA接口接受请求后,发送扇区数据。
本发明实施例还提供一种基于远程直接内存访问的文件币集群数据传输系统,包括扇区数据依次封装传输的若干个封装节点;
每个封装节点均设置有RDMA接口、HCA卡、用户态内存,封装节点之间通过HCA网卡进行数据传输;
所述系统包括封装模块、调用模块;
第一个封装节点还设置有网卡,用于接收客户发送的扇区数据;
封装模块,用于将扇区数据在用户态内存进行封装;
调用模块,用于调用RDMA接口将封装完成的数据进行传输;
最后一个封装节点的HCA卡,还用于将扇区数据发送至分布式存储。
在有些实施例中,如图3所示,封装节点包括三个,分别为P1节点、P2节点和C1&C2节点;P1节点为第一个封装节点,C1&C2节点为最后一个封装节点;所述系统还包括复制模块;
复制模块,用于将接收到的扇区数据逐步复制至P1节点用户态内存;
调用模块,用于调用RDMA接口,将P1节点用户态内存中封装完成的扇区数据通过RDMA接口发送至P1节点的HCA卡;还用于调用RDMA接口直接将扇区数据发送至P2节点用户态内存;还用于调用RDMA接口,将P2节点用户态内存中封装完成的扇区数据串行发送至P2节点的HCA卡;还用于调用RDMA接口直接将扇区数据发送至C1&C2节点用户态内存;还用于调用RDMA接口将C1&C2节点用户态内存中封装完成的扇区数据串行发送至C1&C2节点的HCA卡;
P1节点的HCA卡,用于将扇区数据串行发送至P2节点;
P2节点的HCA卡,用于接收P1节点发送的扇区数据;还用于将P2节点用户态内存中封装完成的扇区数据发送C1&C2节点;
C1&C2节点的HCA卡,用于接收P2节点发送的扇区数据,还用于将C1&C2节点用户态内存中封装完成的扇区数据发送至分布式存储。
在有些实施例中,P1节点还设置有内核态内存;
复制模块,具体用于将扇区数据由P1节点的网卡内存复制到网卡对应的内核态内存中;将扇区数据从网卡对应的内核态内存中复制到P1节点进程对应的内核态内存中;将扇区数据从P1节点进程对应的内核态内存中复制到P1节点进程对应的用户态内存中。
尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种基于远程直接内存访问的文件币集群数据传输方法,其特征在于,文件币集群封装节点包括多个,所述方法包括如下步骤:
在文件币集群的数据传输接口设置基于RDMA协议的RDMA接口;
第一个封装节点接收客户发送的扇区数据进行封装,封装完成后,调用RDMA接口,将封装完成的扇区数据发送至本封装节点的HCA卡,并通过HCA卡将扇区数据串行发送至下一个封装节点的HCA卡;
HCA卡接收到上一个封装节点发送的扇区数据后,调用RDMA接口直接将扇区数据发送至HCA卡所在的封装节点用户态内存进行封装;封装完成后,调用RDMA接口,将封装完成的扇区数据串行发回至HCA卡,并通过HCA卡将扇区数据发送至下一个封装节点的HCA卡;
最后一个封装节点的HCA卡接收到上一个封装节点发送的扇区数据,调用RDMA接口直接将扇区数据发送至本封装节点用户态内存进行封装;封装完成后,调用RDMA接口,将封装完成的扇区数据串行发回至最后一个封装节点的HCA卡,并通过HCA卡将扇区数据发送至分布式存储。
2.根据权利要求1所述的基于远程直接内存访问的文件币集群数据传输方法,其特征在于,文件币集群封装节点包括三个,分别为P1节点、P2节点和C1&C2节点;所述方法封装数据传输过程如下:
P1节点接收客户发送的扇区数据进行封装,封装完成后,调用RDMA接口,将封装完成的扇区数据发送至P1节点的HCA卡,并通过HCA卡将扇区数据串行发送至P2节点;
P2节点的HCA卡接收扇区数据,调用RDMA接口直接将扇区数据发送至P2节点用户态内存进行封装;封装完成后,调用RDMA接口,将封装完成的扇区数据串行发回至P2节点的HCA卡,并通过HCA卡将扇区数据发送至C1&C2节点;
C1&C2节点的HCA卡接收扇区数据,调用RDMA接口直接将扇区数据发送至C1&C2节点用户态内存进行封装;封装完成后,调用RDMA接口,将封装完成的扇区数据串行发回至C1&C2节点的HCA卡,并通过HCA卡将扇区数据发送至分布式存储。
3.根据权利要求2所述的基于远程直接内存访问的文件币集群数据传输方法,其特征在于,所述P1节点接收客户发送的扇区数据进行封装,封装完成后,调用RDMA接口,将封装完成的扇区数据发送至P1节点的HCA卡,并通过HCA卡将扇区数据串行发送至P2节点的步骤中,P1节点接收客户发送的扇区数据进行封装的步骤具体包括:
P1节点的网卡接收客户发送的扇区数据;
将接收到的扇区数据逐步复制到P1节点用户态内存进行封装。
4.根据权利要求3所述的基于远程直接内存访问的文件币集群数据传输方法,其特征在于,所述将接收到的扇区数据逐步复制到P1节点用户态内存进行封装的步骤包括:
将扇区数据由P1节点的网卡内存复制到网卡对应的内核态内存中;
将扇区数据从网卡对应的内核态内存中复制到P1节点进程对应的内核态内存中;
将扇区数据从P1节点进程对应的内核态内存中复制到P1节点进程对应的用户态内存中;
扇区数据在P1节点的用户态内存中完成封装。
5.根据权利要求1所述的基于远程直接内存访问的文件币集群数据传输方法,其特征在于,所述封装完成后,调用RDMA接口的步骤具体包括:
检测扇区数据是否完成封装;
将完成封装的扇区数据按照先后顺序排成队列;
按队列顺序调用RDMA接口。
6.根据权利要求1所述的基于远程直接内存访问的文件币集群数据传输方法,其特征在于,所述的第一个封装节点的网卡接收客户发送的扇区数据的步骤中,第一个封装节点的网卡通过TCP/IP协议接收客户发送的扇区数据。
7.一种基于远程直接内存访问的文件币集群数据传输系统,其特征在于,包括扇区数据依次封装传输的若干个封装节点;
每个封装节点均设置有RDMA接口、HCA卡、用户态内存,封装节点之间通过HCA网卡进行数据传输;
所述系统包括封装模块、调用模块;
第一个封装节点还设置有网卡,用于接收客户发送的扇区数据;
封装模块,用于将扇区数据在用户态内存进行封装;
调用模块,用于调用RDMA接口将封装完成的数据进行传输;
最后一个封装节点的HCA卡,还用于将扇区数据发送至分布式存储。
8.根据权利要求7所述的基于远程直接内存访问的文件币集群数据传输系统,其特征在于,封装节点包括三个,分别为P1节点、P2节点和C1&C2节点;P1节点为第一个封装节点,C1&C2节点为最后一个封装节点;
P1节点的HCA卡,用于将扇区数据串行发送至P2节点;
P2节点的HCA卡,用于接收P1节点发送的扇区数据;还用于将P2节点用户态内存中封装完成的扇区数据发送C1&C2节点;
C1&C2节点的HCA卡,用于接收P2节点发送的扇区数据,还用于将C1&C2节点用户态内存中封装完成的扇区数据发送至分布式存储。
9.根据权利要求8所述的基于远程直接内存访问的文件币集群数据传输系统,其特征在于,所述系统还包括复制模块;
复制模块,用于将接收到的扇区数据逐步复制至P1节点用户态内存;
调用模块,用于调用RDMA接口,将P1节点用户态内存中封装完成的扇区数据通过RDMA接口发送至P1节点的HCA卡;还用于调用RDMA接口直接将扇区数据发送至P2节点用户态内存;还用于调用RDMA接口,将P2节点用户态内存中封装完成的扇区数据串行发送至P2节点的HCA卡;还用于调用RDMA接口直接将扇区数据发送至C1&C2节点用户态内存;还用于调用RDMA接口将C1&C2节点用户态内存中封装完成的扇区数据串行发送至C1&C2节点的HCA卡。
10.根据权利要求9所述的基于远程直接内存访问的文件币集群数据传输系统,其特征在于, P1节点还设置有内核态内存;
复制模块,具体用于将扇区数据由P1节点的网卡内存复制到网卡对应的内核态内存中;将扇区数据从网卡对应的内核态内存中复制到P1节点进程对应的内核态内存中;将扇区数据从P1节点进程对应的内核态内存中复制到P1节点进程对应的用户态内存中。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110940079.6A CN113395359B (zh) | 2021-08-17 | 2021-08-17 | 基于远程直接内存访问的文件币集群数据传输方法、系统 |
US18/270,209 US20240106893A1 (en) | 2021-08-17 | 2021-11-30 | Filecoin cluster data transmission method and system based on remote direct memory access |
PCT/CN2021/134196 WO2023019800A1 (zh) | 2021-08-17 | 2021-11-30 | 基于远程直接内存访问的文件币集群数据传输方法、系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110940079.6A CN113395359B (zh) | 2021-08-17 | 2021-08-17 | 基于远程直接内存访问的文件币集群数据传输方法、系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113395359A true CN113395359A (zh) | 2021-09-14 |
CN113395359B CN113395359B (zh) | 2021-10-29 |
Family
ID=77622855
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110940079.6A Active CN113395359B (zh) | 2021-08-17 | 2021-08-17 | 基于远程直接内存访问的文件币集群数据传输方法、系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20240106893A1 (zh) |
CN (1) | CN113395359B (zh) |
WO (1) | WO2023019800A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114138468A (zh) * | 2021-11-15 | 2022-03-04 | 苏州浪潮智能科技有限公司 | 一种封装任务量自适应分配方法、装置及存储介质 |
CN114328364A (zh) * | 2021-11-30 | 2022-04-12 | 苏州浪潮智能科技有限公司 | 全文检索引擎中的数据传输方法、装置及设备和存储介质 |
WO2023019800A1 (zh) * | 2021-08-17 | 2023-02-23 | 苏州浪潮智能科技有限公司 | 基于远程直接内存访问的文件币集群数据传输方法、系统 |
CN115878586A (zh) * | 2023-03-08 | 2023-03-31 | 深圳市迈科龙电子有限公司 | Ipfs存储封装方法、装置、电子设备及可读存储介质 |
Citations (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1581875A2 (en) * | 2002-12-17 | 2005-10-05 | Oracle International Corporation | Using direct memory access for performing database operations between two or more machines |
JP2008217214A (ja) * | 2007-03-01 | 2008-09-18 | Nec Corp | コンピュータシステム、ホストコンピュータ |
CN101599991A (zh) * | 2009-07-07 | 2009-12-09 | 浪潮电子信息产业股份有限公司 | 一种基于高速通信协议的提升网络文件系统性能的方法 |
US20100281201A1 (en) * | 2009-04-30 | 2010-11-04 | Sun Microsystems, Inc. | Protocol translation in a data storage system |
US20130054726A1 (en) * | 2011-08-31 | 2013-02-28 | Oracle International Corporation | Method and system for conditional remote direct memory access write |
CN103440202A (zh) * | 2013-08-07 | 2013-12-11 | 华为技术有限公司 | 一种基于rdma的通信方法、系统及通信设备 |
US20140222945A1 (en) * | 2013-02-01 | 2014-08-07 | International Business Machines Corporation | Boosting Remote Direct Memory Access Performance Using Cryptographic Hash Based Approach |
CN104539679A (zh) * | 2014-12-22 | 2015-04-22 | 国网信通亿力科技有限责任公司 | 基于分布式闪存技术的集群数据库系统及其数据传输方法 |
CN104639596A (zh) * | 2013-11-08 | 2015-05-20 | 塔塔咨询服务有限公司 | 用于使用rdma的低等待时间fifo消息收发中支持多个发送器的系统和方法 |
US20150286414A1 (en) * | 2014-04-03 | 2015-10-08 | Strato Scale Ltd. | Scanning memory for de-duplication using rdma |
CN105550085A (zh) * | 2015-12-10 | 2016-05-04 | 浪潮电子信息产业股份有限公司 | 一种基于GPUDerict RDMA测试方法 |
US20170147518A1 (en) * | 2014-04-03 | 2017-05-25 | Strato Scale Ltd. | Scanning memory for de-duplication using rdma |
CN107193699A (zh) * | 2017-05-22 | 2017-09-22 | 郑州云海信息技术有限公司 | 一种通过rdma方式自动测试hca卡带宽延时方法 |
CN108268208A (zh) * | 2016-12-30 | 2018-07-10 | 清华大学 | 一种基于rdma的分布式内存文件系统 |
CN109981480A (zh) * | 2017-12-27 | 2019-07-05 | 华为技术有限公司 | 一种数据传输方法及第一设备 |
CN110071900A (zh) * | 2018-01-23 | 2019-07-30 | 华为技术有限公司 | 数据发送的方法及设备 |
CN110191194A (zh) * | 2019-06-13 | 2019-08-30 | 华中科技大学 | 一种基于rdma网络的分布式文件系统数据传输方法和系统 |
CN111400212A (zh) * | 2019-09-29 | 2020-07-10 | 杭州海康威视系统技术有限公司 | 一种基于远程直接数据存取的传输方法、设备 |
CN112817887A (zh) * | 2021-02-24 | 2021-05-18 | 上海交通大学 | 分离可组合式架构下的远内存访问优化方法及系统 |
CN112948318A (zh) * | 2021-03-09 | 2021-06-11 | 西安奥卡云数据科技有限公司 | 一种Linux操作系统下基于RDMA的数据传输方法及装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7921178B2 (en) * | 2008-12-04 | 2011-04-05 | Voltaire Ltd. | Device, system, and method of accessing storage |
WO2019236638A1 (en) * | 2018-06-06 | 2019-12-12 | Argosoperem Llc | Method and system for data storage and retrieval |
CN113395359B (zh) * | 2021-08-17 | 2021-10-29 | 苏州浪潮智能科技有限公司 | 基于远程直接内存访问的文件币集群数据传输方法、系统 |
-
2021
- 2021-08-17 CN CN202110940079.6A patent/CN113395359B/zh active Active
- 2021-11-30 WO PCT/CN2021/134196 patent/WO2023019800A1/zh active Application Filing
- 2021-11-30 US US18/270,209 patent/US20240106893A1/en active Pending
Patent Citations (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1581875A2 (en) * | 2002-12-17 | 2005-10-05 | Oracle International Corporation | Using direct memory access for performing database operations between two or more machines |
JP2008217214A (ja) * | 2007-03-01 | 2008-09-18 | Nec Corp | コンピュータシステム、ホストコンピュータ |
US20100281201A1 (en) * | 2009-04-30 | 2010-11-04 | Sun Microsystems, Inc. | Protocol translation in a data storage system |
CN101599991A (zh) * | 2009-07-07 | 2009-12-09 | 浪潮电子信息产业股份有限公司 | 一种基于高速通信协议的提升网络文件系统性能的方法 |
US20130054726A1 (en) * | 2011-08-31 | 2013-02-28 | Oracle International Corporation | Method and system for conditional remote direct memory access write |
US20160080386A1 (en) * | 2013-02-01 | 2016-03-17 | International Business Machines Corporation | Boosting Remote Direct Memory Access Performance Using Cryptographic Hash Based Approach |
US20140222945A1 (en) * | 2013-02-01 | 2014-08-07 | International Business Machines Corporation | Boosting Remote Direct Memory Access Performance Using Cryptographic Hash Based Approach |
CN103440202A (zh) * | 2013-08-07 | 2013-12-11 | 华为技术有限公司 | 一种基于rdma的通信方法、系统及通信设备 |
CN104639596A (zh) * | 2013-11-08 | 2015-05-20 | 塔塔咨询服务有限公司 | 用于使用rdma的低等待时间fifo消息收发中支持多个发送器的系统和方法 |
US20150286414A1 (en) * | 2014-04-03 | 2015-10-08 | Strato Scale Ltd. | Scanning memory for de-duplication using rdma |
US20170147518A1 (en) * | 2014-04-03 | 2017-05-25 | Strato Scale Ltd. | Scanning memory for de-duplication using rdma |
CN104539679A (zh) * | 2014-12-22 | 2015-04-22 | 国网信通亿力科技有限责任公司 | 基于分布式闪存技术的集群数据库系统及其数据传输方法 |
CN105550085A (zh) * | 2015-12-10 | 2016-05-04 | 浪潮电子信息产业股份有限公司 | 一种基于GPUDerict RDMA测试方法 |
CN108268208A (zh) * | 2016-12-30 | 2018-07-10 | 清华大学 | 一种基于rdma的分布式内存文件系统 |
CN107193699A (zh) * | 2017-05-22 | 2017-09-22 | 郑州云海信息技术有限公司 | 一种通过rdma方式自动测试hca卡带宽延时方法 |
CN109981480A (zh) * | 2017-12-27 | 2019-07-05 | 华为技术有限公司 | 一种数据传输方法及第一设备 |
CN110071900A (zh) * | 2018-01-23 | 2019-07-30 | 华为技术有限公司 | 数据发送的方法及设备 |
CN112398817A (zh) * | 2018-01-23 | 2021-02-23 | 华为技术有限公司 | 数据发送的方法及设备 |
CN110191194A (zh) * | 2019-06-13 | 2019-08-30 | 华中科技大学 | 一种基于rdma网络的分布式文件系统数据传输方法和系统 |
CN111400212A (zh) * | 2019-09-29 | 2020-07-10 | 杭州海康威视系统技术有限公司 | 一种基于远程直接数据存取的传输方法、设备 |
CN112817887A (zh) * | 2021-02-24 | 2021-05-18 | 上海交通大学 | 分离可组合式架构下的远内存访问优化方法及系统 |
CN112948318A (zh) * | 2021-03-09 | 2021-06-11 | 西安奥卡云数据科技有限公司 | 一种Linux操作系统下基于RDMA的数据传输方法及装置 |
Non-Patent Citations (3)
Title |
---|
KAMINSKY A K M: "Design guidelines for high performance RDMA systems", 《PROC OF THE 25TH USENIN ANNUAL TECHNICAL CONF》 * |
李波 等: "多核下基于远程直接内存访问的高效远程过程调用研究", 《高技术通讯》 * |
陈游旻 等: "基于RDMA的分布式存储系统研究综述", 《计算机研究与进展》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023019800A1 (zh) * | 2021-08-17 | 2023-02-23 | 苏州浪潮智能科技有限公司 | 基于远程直接内存访问的文件币集群数据传输方法、系统 |
CN114138468A (zh) * | 2021-11-15 | 2022-03-04 | 苏州浪潮智能科技有限公司 | 一种封装任务量自适应分配方法、装置及存储介质 |
CN114138468B (zh) * | 2021-11-15 | 2024-01-12 | 苏州浪潮智能科技有限公司 | 一种封装任务量自适应分配方法、装置及存储介质 |
CN114328364A (zh) * | 2021-11-30 | 2022-04-12 | 苏州浪潮智能科技有限公司 | 全文检索引擎中的数据传输方法、装置及设备和存储介质 |
CN114328364B (zh) * | 2021-11-30 | 2023-11-07 | 苏州浪潮智能科技有限公司 | 全文检索引擎中的数据传输方法、装置及设备和存储介质 |
CN115878586A (zh) * | 2023-03-08 | 2023-03-31 | 深圳市迈科龙电子有限公司 | Ipfs存储封装方法、装置、电子设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2023019800A1 (zh) | 2023-02-23 |
CN113395359B (zh) | 2021-10-29 |
US20240106893A1 (en) | 2024-03-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113395359B (zh) | 基于远程直接内存访问的文件币集群数据传输方法、系统 | |
CN110945550B (zh) | 在可信执行环境下处理和存储区块链数据 | |
EP3438903B1 (en) | Hierarchical network system, and node and program used in same | |
KR102289612B1 (ko) | 분산 원장 시스템에서 트랜잭션들의 병렬 실행 수행 | |
US20200026699A1 (en) | Highly Performant Decentralized Public Ledger with Hybrid Consensus | |
CN113570466B (zh) | 一种交易数据处理方法、装置以及可读存储介质 | |
EP4202694A1 (en) | Node memory-based data processing method and apparatus, device, and medium | |
CN113168652B (zh) | 区块链交易处理系统和方法 | |
US20230289782A1 (en) | Smart contract-based data processing | |
US11100094B2 (en) | Taking snapshots of blockchain data | |
US20090150556A1 (en) | Memory to storage communication for hybrid systems | |
WO2022016886A1 (zh) | 交易验证的方法、装置 | |
CN110018878A (zh) | 一种分布式系统数据加载方法以及装置 | |
CN111226209A (zh) | 在基于区块链的系统中执行映射迭代 | |
US11194792B2 (en) | Taking snapshots of blockchain data | |
CN111552991A (zh) | 一种区块链交易方法及装置 | |
EP4066438A1 (en) | Blockchain system having efficient world state data structures | |
CN113037824B (zh) | 一种面向云计算的高性能区块链的构建方法 | |
CN113132459B (zh) | 分布式存储方法、系统、存储介质、信息数据处理终端 | |
CN116701452A (zh) | 数据处理方法、相关设备、存储介质及程序产品 | |
CN117376366A (zh) | 区块链交易处理方法、装置、介质及电子设备 | |
EP3970009B1 (en) | Blockchain transaction processing systems and methods | |
Guo | Application of blockchain based on deep learning algorithm in enterprise Internet of Things system | |
KR102193822B1 (ko) | 블록체인 보상을 통한 분산 컴파일 시스템 | |
Li et al. | Research and implementation of blockchain warehouse receipt trading platform based on BFT |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |