CN114710515B - 一种通信方法及相关组件 - Google Patents
一种通信方法及相关组件 Download PDFInfo
- Publication number
- CN114710515B CN114710515B CN202210627358.1A CN202210627358A CN114710515B CN 114710515 B CN114710515 B CN 114710515B CN 202210627358 A CN202210627358 A CN 202210627358A CN 114710515 B CN114710515 B CN 114710515B
- Authority
- CN
- China
- Prior art keywords
- client
- server node
- connection
- network stack
- server
- 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.)
- Active
Links
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/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]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (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)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Multi Processors (AREA)
Abstract
本申请公开了一种通信方法及相关组件,应用于通信领域。该方案中,首先建立了两个网络栈,然后对客户端与每个服务器节点之间及任意两个服务器节点的进程之间的全部连接关系进行划分,得到两种连接关系。其中,两种连接关系是分别基于两个网络栈构建的,且两种连接关系中的一个的个数与QP的数量相关。因此,相比于现有技术中的方案而言,本申请通过使用两个网络栈实现客户端与每个服务器节点之间及任意两个服务器节点的进程之间的通信,对于整个分布式存储系统而言,可以在一定程度上减少QP的数量,进而可以提高分布式存储系统的性能及通信效率。
Description
技术领域
本申请涉及通信领域,特别涉及一种通信方法及相关组件。
背景技术
RDMA(Remote Direct Memory Access,远程直接数据存取)技术目前主要应用于IB(information button,既信息钮)卡和分布式存储系统中。但是,RDMA技术对应的QP(quantization parameter,量化参数)数量的局限性限制了其在通信设计上的应用。具体地,RDMA技术应用于单个IB卡时,单个IB卡创建的QP的数量存在一个上限,如果QP创建的数量过多IB卡的性能会存在一定的衰减。而将RDMA技术应用于现有的分布式存储系统中,由于分布式存储系统大多采用多进程并发的方式,且不同服务器节点(服务器节点指可以进行数据通信的服务器节点)之间的连接是完全交叉连接的方式(具体为:每个服务器节点中的进程与其他服务器节点的进程之间几乎都会建立连接),且这种连接的数目和QP的数量呈正相关,此时,随着服务器节点数的增加,连接数增加,导致QP的数量很容易达到上限,而分布式存储系统的优点就是具备很好的扩展性,但QP的数量限制又限制了分布式存储系统的扩展性,形成了冲突。
现有技术中的解决上述问题的主要核心为降低连接数,降低连接数主要采用以下两种方式:
其一,采用单进程多线程的方式,但是与目前使用的多进程的方式相比,架构变动较大,此外,如果进程崩溃,则导致整个服务器节点无法对外提供服务,稳定性较差。
其二,保留目前多进程的方式,在客户端和各个服务器节点之间增加一个网络代理层,所有客户端和各个服务器节点之间的数据全部通过网络代理层进行传输,但是使用此种方式,增加了IO(Input/Output,输入/输出)栈的长度,可能会消耗RDMA技术带来的收益,如使得分布式存储系统性能降低、或使得通信的效率降低等。
发明内容
本申请的目的是提供一种通信方法及相关组件,通过使用两个网络栈实现客户端与每个服务器节点之间及任意两个服务器节点的进程之间的通信,对于整个分布式存储系统而言,可以在一定程度上减少QP的数量,进而可以提高分布式存储系统的性能及通信效率。
为解决上述技术问题,本申请提供了一种通信方法,应用于分布式存储系统,所述分布式存储系统包括客户端及多个服务器节点,所述方法包括:
建立第一网络栈和第二网络栈;
对所述客户端与每个所述服务器节点之间及任意两个服务器节点的进程之间的全部连接关系进行划分,得到第一连接关系和第二连接关系,以使所述客户端与每个所述服务器节点之间及任意两个服务器节点的进程之间通过相应的连接关系进行通信;
所述第一连接关系基于所述第一网络栈建立构建,所述第二连接关系基于所述第二网络栈建立构建;
所述第一连接关系或所述第一连接关系的个数与量化参数QP的数量有关。
优选地,对所述客户端与每个所述服务器节点之间及任意两个服务器节点的进程之间的全部连接关系进行划分,得到第一连接关系和第二连接关系,以使所述客户端与每个所述服务器节点之间及任意两个服务器节点的进程之间通过相应的连接关系进行通信,包括:
将所述客户端与每个所述服务器节点之间的连接关系划分为所述第一连接关系,以使所述客户端与每个所述服务器节点之间通过所述第一连接关系进行通信;
将任意两个服务器节点的进程之间的连接关系划分为所述第二连接关系,以使任意两个所述服务器节点的进程之间通过所述第二连接关系进行通信。
优选地,基于所述第一网络栈建立的第一连接关系的个数与所述QP的数量有关,基于所述第二网络栈建立的第二连接关系的个数与所述QP的数量无关。
优选地,所述第一网络栈为RDMA网络栈,所述第二网络栈为Posix网络栈。
优选地,所述分布式存储系统还包括用于对每个所述服务器节点的工作状态进行监测的监测端;所述方法还包括:
将所述监测端与每个所述服务器节点之间的连接关系划分为所述第一连接关系,以使所述监测端通过所述第一连接关系对每个所述服务器节点进行监测。
优选地,所述监测端为显示器。
优选地,所述第一网络栈为RDMA网络栈;
将所述客户端与每个所述服务器节点之间的连接关系划分为所述第一连接关系,以使所述客户端与每个所述服务器节点之间通过所述第一连接关系进行通信之后,还包括:
确定所述客户端与所述服务器节点之间传输数据的数据量;
确定所述数据量是否在预设范围内;
若是,则控制所述客户端通过双边原语的方式与各个服务器节点之间进行数据传输;
若否,则控制所述客户端通过单边原语的方式与所有所述服务器节点进行数据传输。
优选地,所述服务器节点包括主服务器节点和若干个子服务器节点;
控制所述客户端通过双边原语的方式与各个服务器节点之间进行数据传输,包括:
控制所述客户端通过双边原语的方式将所述数据传输至所述主服务器节点,再控制所述主服务器节点将所述数据传输至所述子服务器节点。
优选地,控制所述客户端通过单边原语的方式与所有所述服务器节点进行数据传输之前,还包括:
控制所述客户端通过双边原语的方式将自身的内存地址和秘钥发送至各个服务器节点;
控制各个服务器节点根据所述内存地址和秘钥从所述客户端对应的内存地址中拉取数据,以实现所述客户端和所述服务器节点的数据传输。
优选地,控制各个服务器节点根据所述内存地址和秘钥从所述客户端对应的内存地址中拉取数据之后,还包括:
将拉取到的数据存储在自身与所述数据对应的内存地址中。
优选地,所述第一网络栈为RDMA网络栈;
将所述客户端与每个所述服务器节点之间的连接关系划分为所述第一连接关系,以使所述客户端与每个所述服务器节点之间通过所述第一连接关系进行通信之后,还包括:
确定所述客户端向所述服务器节点传输的数据的类型;
确定所述数据是否为预设类型;
若是,则控制所述客户端通过双边原语的方式与所述服务器节点之间进行数据传输;
若否,则控制所述客户端通过单边原语的方式与所有所述服务器节点进行预设类型的数据传输。
为解决上述技术问题,本申请还提供了一种通信系统,应用于分布式存储系统,所述分布式存储系统包括客户端及多个服务器节点,所述系统包括:
建立单元,用于建立第一网络栈和第二网络栈;
划分单元,用于对所述客户端与每个所述服务器节点之间及任意两个服务器节点的进程之间的全部连接关系进行划分,得到第一连接关系和第二连接关系,以使所述客户端与每个所述服务器节点之间及任意两个服务器节点的进程之间通过相应的连接关系进行通信;
所述第一连接关系基于所述第一网络栈建立构建,所述第二连接关系基于所述第二网络栈建立构建;
所述第一连接关系或所述第一连接关系的个数与量化参数QP的数量有关。
为解决上述技术问题,本申请还提供了一种通信装置,包括:
存储器,用于存储计算机程序;
处理器,用于在存储计算机程序时,实现上述所述的通信方法的步骤。
为解决上述技术问题,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述所述的通信方法的步骤。
为解决上述技术问题,本申请还提供了一种分布式存储系统,包括客户端、多个服务器节点及上述所述的通信方法装置。
本申请提供了一种通信方法,应用于通信领域。该方案中,首先建立了两个网络栈,然后对客户端与每个服务器节点之间及任意两个服务器节点的进程之间的全部连接关系进行划分,得到两种连接关系。其中,两种连接关系是分别基于两个网络栈构建的,且两种连接关系中的一个的个数与QP的数量相关。因此,相比于现有技术中的方案而言,本申请通过使用两个网络栈实现客户端与每个服务器节点之间及任意两个服务器节点的进程之间的通信,对于整个分布式存储系统而言,可以在一定程度上减少QP的数量,进而可以提高分布式存储系统的性能及通信效率。
本申请还提供了一种通信系统、装置、计算机可读存储介质及分布式存储系统,与上述描述的通信方法具有相同的有益效果。
附图说明
为了更清楚地说明本申请实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请所提供的一种通信方法的流程示意图;
图2为现有技术中的一种分布式存储系统的连接示意图;
图3为本申请所提供的一种双网络栈的结构示意图;
图4为本申请所提供的一种双边原语传输的结构示意图;
图5为本申请所提供的一种单边原语传输的结构示意图;
图6为本申请所提供的一种通信系统的结构框图;
图7为本申请所提供的一种通信装置的结构框图;
图8为本申请所提供的一种分布式存储系统的结构框图。
具体实施方式
本申请的核心是提供一种通信方法及相关组件,通过使用两个网络栈实现客户端与每个服务器节点之间及任意两个服务器节点的进程之间的通信,对于整个分布式存储系统而言,可以在一定程度上减少QP的数量,进而可以提高分布式存储系统的性能及通信效率。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参照图1,图1为本申请所提供的一种通信方法的流程示意图,该方法应用于分布式存储系统,分布式存储系统包括客户端及多个服务器节点,方法包括:
S11:建立第一网络栈和第二网络栈;
S12:对客户端与每个服务器节点之间及任意两个服务器节点的进程之间的全部连接关系进行划分,得到第一连接关系和第二连接关系,以使客户端与每个服务器节点之间及任意两个服务器节点的进程之间通过相应的连接关系进行通信;
第一连接关系基于第一网络栈建立构建,第二连接关系基于第二网络栈建立构建;
第一连接关系或第一连接关系的个数与量化参数QP的数量有关。
具体地,针对现有技术中分布式存储系统中QP数量过多的问题,本申请中解决方式为:预先建立两个不同的网络栈,并将分布式存储系统中全部的连接关系划分为两类,具体将其划分为第一连接关系和第二连接关系。其中,由于第一连接关系基于第一网络栈构建的,第二连接关系基于第二网络栈构建的,因此,分布式存储系统中的全部连接关系为分别基于两个网络栈建立的第一连接关系和第二连接关系。进一步的,由于本申请中的第一连接关系和第二连接关系中的一个与QP的数量相关,另一个与QP的数量无关。假设第一连接关系与QP的数量相关,第二连接关系与QP的数据无关,此时,客户端与每个服务器节点之间及任意两个服务器节点的进程之间只有使用第一连接关系的连接方式才会对QP的数量产生影响,在一定程度上减少了与QP的数量相关的连接关系,进而可以减少QP的数量,进而在一定程度上可以提高分布式存储系统的扩展性以及性能等,也可以提高分布式存储系统的性能。
进一步的,本申请中的第一网络栈和第二网络栈分别对应的第一连接关系和第二连接关系,具体是哪个与QP的数量相关,哪个与QP的数量无关,本申请在此不做特别的限定。
进一步的,无论本申请中是采样何种方式建立的连接关系,均需满足使得客户端和各个服务器节点之间,以及各个服务器节点的进程之间可以进行正常通信即可。
需要说明的是,本申请中与服务器节点之间进行通信的除了可以为客户端之外,还可以为监测端(如显示器等)。
综上,本申请中的通信方法通过使用两个网络栈实现客户端与每个服务器节点之间及任意两个服务器节点的进程之间的通信,对于整个分布式存储系统而言,可以在一定程度上减少QP的数量,进而可以提高分布式存储系统的性能及通信效率。
在上述实施例的基础上:
作为一种优选的实施例,对客户端与每个服务器节点之间及任意两个服务器节点的进程之间的全部连接关系进行划分,得到第一连接关系和第二连接关系,以使客户端与每个服务器节点之间及任意两个服务器节点的进程之间通过相应的连接关系进行通信,包括:
将客户端与每个服务器节点之间的连接关系划分为第一连接关系,以使客户端与每个服务器节点之间通过第一连接关系进行通信;
将任意两个服务器节点的进程之间的连接关系划分为第二连接关系,以使任意两个服务器节点的进程之间通过第二连接关系进行通信。
进一步的,在对分布式存储系统中的全部连接关系进行划分时,为了便于划分,以及为了提高划分的条理性和清晰性。本实施例中提供的划分方式为:将客户端和各个服务器节点之间的连接关系划分为第一连接关系,将各个服务器节点的进程之间的连接关系划分为第二连接关系,从而实现分布式存储系统中客户端与每个服务器节点之间的通信,以及实现每个服务器节点的进程之间的通信。
当然,上述只是本实施例中的一种具体实现方式,也可以是其他的划分关系,本申请在此不做特别的限定。
作为一种优选的实施例,基于第一网络栈建立的第一连接关系的个数与QP的数量有关,基于第二网络栈建立的第二连接关系的个数与QP的数量无关。
具体地,请参照图2,图2为现有技术中的一种分布式存储系统的连接示意图。其中,三个服务器节点(例如为三个IB网卡),进程1、进程2和进程3分别为是每个服务器节点中的三个进程。假设客户端和各个服务器节点之间的连接称为外部连接,各个服务器节点的进程之间的连接称为内部连接,服务器节点数为N,每个服务器节点中进程数为P,则分布式存储系统中的外部连接数To=N *P,内部连接数Ti=P*(N-1)*P=(N-1)*P2,总连接数T= N*P+(N-1)*P2。可见,内部连接数随着服务器节点和服务器节点内的进程数的增加呈现指数级增长,从而导致QP的数量大大增长。也可以说,内部连接数与QP的数量呈直接关系。
因此,本实施例中,为了能有效的减少分布式存储系统中的QP的数量,本实施例中将各个服务器节点的进程之间的第二连接关系限定为与QP数量无关的连接关系,此时,使用上述方式建立分布式存储系统中的各个连接关系时,只有客户端与各个服务器节点之间的第一连接关系与QP的数量相关,各个服务器节点的进程之间的第二连接关系与QP的数量无关,即使服务器节点的数量增多或者服务器节点内的进程增多,也只有增加的第一连接关系数与QP的数量相关,增加的第二连接关系数与QP的数量无关,且在服务器节点的个数增加时,第一连接关系增加的个数与第二连接关系增加的个数相比相对较少,因此,即便第一连接关系增加的个数相对较多,增多的QP的数量也不会过大,与现有技术相比可以较大程度的减少QP的数量。
综上,通过本实施例中将各个服务器节点的进程之间的连接关系限定为与QP的数量无关的连接关系,可以大大减少QP的数量,进而可以进一步提高分布式存储系统的性能和扩展性。
作为一种优选的实施例,分布式存储系统还包括用于对每个服务器节点的工作状态进行监测的监测端;方法还包括:
将监测端与每个服务器节点之间的连接关系划分为第一连接关系,以使监测端通过第一连接关系对每个服务器节点进行监测。
优选地,监测端为显示器。
进一步的,为了方便对每个服务器节点的工作状态的监测,本申请在服务器系统中还社设置了监测端,与每个服务器节点之间通过第一连接关系进行通信,以实现对各个服务器节点的监测,便于工作人员了解各个服务器节点的工作状态。具体地,监测端的具体实现方式可以但不限于为显示器。
作为一种优选的实施例,第一网络栈为RDMA网络栈,第二网络栈为Posix网络栈。
进一步的,本实施例旨在限定第一网络栈及第二网络栈的具体实现方式,具体地,第一网络栈可以但不限于为RDMA网络栈,第二网络栈可以但不限于为Posix网络栈。具体请参照图3,图3为本申请所提供的一种双网络栈的结构示意图。图3中表示的是不同服务器节点中的不同进程之间建立的连接关系(例如A服务器节点中的进程1和B服务器节点中的进程1之间建立的连接关系)。其中,监测端的进程可以但不限于为显示器等。
具体地,在分布式存储系统启动时,进程启动时初始化时启动两个网络栈,每个网络栈有自己独立的工作线程组。对于RDMA网络栈需要初始化本地设备、端口、内存、注册等相关动作。Posix网络栈的初始化与传统以太网的初始化过程一致,在此不再赘述。
进一步的,在建立连接关系的阶段,网络栈中的每个线程组的第一个线程组进行检测,根据接入或者发起的网段(网段是通过传输的IP中若干个bit位确定的)判断走哪个网络栈,进程之间的通信通过Posix网络栈,客户端与各个服务器节点之间的通信通过RDMA网络栈。具体地,如果能找到相同网段则走对应网段所归属的网络栈;如果找不到相同网段则走public所用网络栈(这里public所用网络栈指客户端和各个服务器节点之间的的RDMA网络栈);其中,Posix网络栈建连方式与传统TCP创建socket连接方式一致;RDMA网络栈先通过TCP(Transmission Control Protocol,传输控制协议)方式交互元数据(这里的元数据指与QP相关的参数或数据),然后通过QP进行通信。在建立上述连接关系之后,上层虚拟连接封装下层所有通信细节(下层所有通信细节指的是第一网络栈及第二网络栈分别对应的第一连接关系及第二连接关系),上层业务逻辑对不同网络栈无感知,上层只需应用下层的连接关系以实现通信即可。
其中,通过Posix网络栈通信的方式是传统的以太网TCP通信方式,本申请在此不多做介绍。
作为一种优选的实施例,第一网络栈为RDMA网络栈;
将客户端与每个服务器节点之间的连接关系划分为第一连接关系,以使客户端与每个服务器节点之间通过第一连接关系进行通信之后,还包括:
确定客户端与服务器节点之间传输数据的数据量;
确定数据量是否在预设范围内;
若是,则控制客户端通过双边原语的方式与各个服务器节点之间进行数据传输;
若否,则控制客户端通过单边原语的方式与所有服务器节点进行数据传输。
进一步的,在上述限定客户端与各个服务器节点之间通过RDMA网络栈建立第一连接关系的基础上,本实施例旨在对客户端和各个服务器节点之间进行通信的具体过程进行描述。
具体地,考虑到RDMA的通信方式分为单边和双边两种原语,其中,双边原语的交互少,无法减少服务器中CPU的参与,更加适用于小消息的传输。单边原语则可以完全避免CPU的参与,可以减少数据拷贝,适用于大块数据的传输。因此,本申请中根据传输的数据的大小(数据量)使用不同的通信方式。
具体地,首先判断客户端与服务器节点之间需要传输的数据的数据量,若其在预设范围内(可以但不限于为判断数据量是否小于64kb,若小于64kb),则判断其为小消息,此时,控制客户端通过双边原语的方式与各个服务器节点进行数据传输。
作为一种优选的实施例,服务器节点包括主服务器节点和若干个子服务器节点;
控制客户端通过双边原语的方式与各个服务器节点之间进行数据传输,包括:
控制客户端通过双边原语的方式将数据传输至主服务器节点,再控制主服务器节点将数据传输至子服务器节点
进一步的,在服务器节点中分为主服务器节点和子服务器节点时,客户端和各个服务器节点之间通过双边原语传输数据的具体方式为:首先客户端将所有的数据传输至主服务器,在主服务器接收到数据之后,在将数据传输至子服务器,在一具体实施例中,若不是所有的子服务器均需要接受此数据,则主服务器在接收到客户端传输的数据之后,只将数据传输至部分子服务器即可(也即是需要接收此数据的子服务器)。
具体地,可参照图4,图4为本申请所提供的一种双边原语传输的结构示意图。其中,主进程、子进程1及子进程2分别代表三个不同的服务器节点中的进程,客户端将消息发送至主进程,然后主进程再将消息发送至其余的子进程中,以实现客户端和各个服务器节点之间数据的传输。此时,数据传输过程中可能会存在副本复制或者纠删计算的步骤,需要占用CPU执行复制或者计算的步骤,因此,可以对小消息进行传输,但是若传输大消息,则会极大增加CPU的消耗。
具体地,在其不在预设范围内(可以但不限于为判断数据量是否小于64kb,若不小于64kb),则判断其为大块消息,此时,控制客户端通过单边原语的方式与服务器节点进行数据传输。具体地,可参照图5,图5为本申请所提供的一种单边原语传输的结构示意图。其中,主进程、子进程1及子进程2分别代表三个不同服务器节点中的不同进程,此时,客户端与各个服务器节点之间进行数据传输的具体方式为:各个服务器节点从客户端拉取数据,并不是客户端将消息发送至各个服务器节点,此时拉取数据的过程不需要占用CPU,减少了CPU的消耗。此外,通过双边原语的方式传输大块数据还可以加快数据的传输速度和传输效率。
作为一种优选的实施例,控制客户端通过单边原语的方式与所有服务器节点进行数据传输之前,还包括:
控制客户端通过双边原语的方式将自身的内存地址和秘钥发送至各个服务器节点;
控制各个服务器节点根据内存地址和秘钥从客户端对应的内存地址中拉取数据,以实现客户端和服务器节点的数据传输。
进一步的,本实施例旨在限定客户端和各个服务器节点之间使用单边原语进行数据传输的具体实现方式。具体地,在通过单边原语传输数据之前,首先将客户端的内存地址及秘钥通过双边原语的方式传输至各个服务器节点(其中,内存地址和秘钥的数据量均较小,因此使用双边原语的方式即可),然后各个服务器节点通过接收到的内存地址和秘钥,访问客户端对应内存地址中的数据,然后直接将其拉取过来,此过程中,不需要使用服务器节点中的CPU,可以减少对CPU的消耗。
作为一种优选的实施例,控制各个服务器节点根据内存地址和秘钥从客户端对应的内存地址中拉取数据之后,还包括:
将拉取到的数据存储在自身与数据对应的内存地址中。
进一步的,在各个服务器节点拉取到服务器之后,可以是将数据直接存储到自身(服务器节点)的内存地址中,通过此种方式,在需要调用服务器节点中存储的数据时,直接访问对应的内存地址即可,不需要服务器节点中的CPU再执行拷贝的这一步骤,可以进一步减小对CPU的占用。
需要说明的是,本实施例中描述的大消息和小消息指的是数据量较大和数据量较小的消息,此消息可以是数据也可以是信号等,本实施例在此不在限定。
可见,通过上述,对数据量的大小进行判断以确定不同的传输数据的方式可以减少CPU的占用,加快数据的传输速度和传输效率。
作为一种优选的实施例,第一网络栈为RDMA网络栈;
将客户端与每个服务器节点之间的连接关系划分为第一连接关系,以使客户端与每个服务器节点之间通过第一连接关系进行通信之后,还包括:
确定客户端向服务器节点传输的数据的类型;
确定数据是否为预设类型;
若是,则控制客户端通过双边原语的方式与各个服务器节点进行预设类型的数据传输;
若否,则控制客户端通过单边原语的方式与所有服务器节点进行预设类型的数据传输。
进一步的,在上述限定客户端与各个服务器节点之间通过RDMA网络栈建立第一连接关系的基础上,本实施例旨在对客户端和各个服务器节点之间进行通信的具体过程进行描述。
具体地,考虑到RDMA的通信方式分为单边和双边两种原语,其中,双边原语的交互少,无法减少服务器中CPU的参与,更加试用于小消息的传输。单边原语则可以完全避免CPU的参与,可以减少数据拷贝,适用于大块数据的传输。因此,本申请中可以根据传输的数据的类型使用不同的通信方式。
具体地,首先判断客户端向服务器节点传输的数据的类型,若其为预设类型(具体可以但不限于为控制消息的类型),此时判定该类型对应的消息为小消息,此时,控制客户端通过双边原语的方式与主服务器节点进行数据传输,再控制主服务器节点将数据传输至子服务器节点。具体地,可参照图5,图5中的细箭头表示控制消息的传输路径。
具体地,若其不是预设类型(具体可以但不限于不是控制消息的类型),则判断其为大块消息,此时,控制客户端通过单边原语的方式与服务器节点进行数据传输。具体地,可参照图5,图5中的宽箭头则为表示其他类型的消息的传输路径。与上述描述的大块消息的传输方式相同,本申请在此不再赘述。
可见,通过上述,对数据类型进行判断以确定不同的传输数据的方式可以减少CPU的占用,加快数据的传输速度和传输效率。
请参照图6,图6为本申请所提供的一种通信系统的结构框图,该系统应用于分布式存储系统,分布式存储系统包括客户端及多个服务器节点,系统包括:
建立单元61,用于建立第一网络栈和第二网络栈;
划分单元62,用于对客户端与每个服务器节点之间及任意两个服务器节点的进程之间的全部连接关系进行划分,得到第一连接关系和第二连接关系,以使客户端与每个服务器节点之间及任意两个服务器节点的进程之间通过相应的连接关系进行通信;
第一连接关系基于第一网络栈建立构建,第二连接关系基于第二网络栈建立构建;
第一连接关系或第一连接关系的个数与量化参数QP的数量有关。
为解决上述技术问题,本申请还提供了一种通信系统,对于通信系统的介绍请参照上述实施例,本申请在此不再赘述。
请参照图7,图7为本申请所提供的一种通信装置的结构框图,该装置包括:
存储器71,用于存储计算机程序;
处理器72,用于在存储计算机程序时,实现上述的通信方法的步骤。
为解决上述技术问题,本申请还提供了一种通信装置,对于通信装置的介绍请参照上述实施例,本申请在此不再赘述。
为解决上述技术问题,本申请还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述的通信方法的步骤,对于计算机可读存储介质的介绍请参照上述实施例,本申请在此不再赘述。
请参照图8,图8为本申请所提供的一种分布式存储系统的结构框图,该分布式存储系统包括客户端、多个服务器节点及上述所述的通信方法装置,对于分布式存储系统的介绍请参照上述实施例,本申请在此不再赘述。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的状况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其他实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (15)
1.一种通信方法,其特征在于,应用于分布式存储系统,所述分布式存储系统包括客户端及多个服务器节点,所述方法包括:
建立第一网络栈和第二网络栈;
对所述客户端与每个所述服务器节点之间及任意两个服务器节点的进程之间的全部连接关系进行划分,得到第一连接关系和第二连接关系,以使所述客户端与每个所述服务器节点之间及任意两个服务器节点的进程之间通过相应的连接关系进行通信;
所述第一连接关系基于所述第一网络栈建立构建,所述第二连接关系基于所述第二网络栈建立构建;
所述第一连接关系或所述第二连接关系的个数与量化参数QP的数量有关。
2.如权利要求1所述的通信方法,其特征在于,对所述客户端与每个所述服务器节点之间及任意两个服务器节点的进程之间的全部连接关系进行划分,得到第一连接关系和第二连接关系,以使所述客户端与每个所述服务器节点之间及任意两个服务器节点的进程之间通过相应的连接关系进行通信,包括:
将所述客户端与每个所述服务器节点之间的连接关系划分为所述第一连接关系,以使所述客户端与每个所述服务器节点之间通过所述第一连接关系进行通信;
将任意两个服务器节点的进程之间的连接关系划分为所述第二连接关系,以使任意两个所述服务器节点的进程之间通过所述第二连接关系进行通信。
3.如权利要求2所述的通信方法,其特征在于,基于所述第一网络栈建立的第一连接关系的个数与所述QP的数量有关,基于所述第二网络栈建立的第二连接关系的个数与所述QP的数量无关。
4.如权利要求3所述的通信方法,其特征在于,所述第一网络栈为RDMA网络栈,所述第二网络栈为Posix网络栈。
5.如权利要求2所述的通信方法,其特征在于,所述分布式存储系统还包括用于对每个所述服务器节点的工作状态进行监测的监测端;所述方法还包括:
将所述监测端与每个所述服务器节点之间的连接关系划分为所述第一连接关系,以使所述监测端通过所述第一连接关系对每个所述服务器节点进行监测。
6.如权利要求5所述的通信方法,其特征在于,所述监测端为显示器。
7.如权利要求2所述的通信方法,其特征在于,所述第一网络栈为RDMA网络栈;
将所述客户端与每个所述服务器节点之间的连接关系划分为所述第一连接关系,以使所述客户端与每个所述服务器节点之间通过所述第一连接关系进行通信之后,还包括:
确定所述客户端与所述服务器节点之间传输数据的数据量;
确定所述数据量是否在预设范围内;
若是,则控制所述客户端通过双边原语的方式与各个服务器节点之间进行数据传输;
若否,则控制所述客户端通过单边原语的方式与所有所述服务器节点进行数据传输。
8.如权利要求7所述的通信方法,其特征在于,所述服务器节点包括主服务器节点和若干个子服务器节点;
控制所述客户端通过双边原语的方式与各个服务器节点之间进行数据传输,包括:
控制所述客户端通过双边原语的方式将所述数据传输至所述主服务器节点,再控制所述主服务器节点将所述数据传输至所述子服务器节点。
9.如权利要求7所述的通信方法,其特征在于,控制所述客户端通过单边原语的方式与所有所述服务器节点进行数据传输之前,还包括:
控制所述客户端通过双边原语的方式将自身的内存地址和秘钥发送至各个服务器节点;
控制各个服务器节点根据所述内存地址和秘钥从所述客户端对应的内存地址中拉取数据,以实现所述客户端和所述服务器节点的数据传输。
10.如权利要求9所述的通信方法,其特征在于,控制各个服务器节点根据所述内存地址和秘钥从所述客户端对应的内存地址中拉取数据之后,还包括:
将拉取到的数据存储在自身与所述数据对应的内存地址中。
11.如权利要求2-10任一项所述的通信方法,其特征在于,所述第一网络栈为RDMA网络栈;
将所述客户端与每个所述服务器节点之间的连接关系划分为所述第一连接关系,以使所述客户端与每个所述服务器节点之间通过所述第一连接关系进行通信之后,还包括:
确定所述客户端向所述服务器节点传输的数据的类型;
确定所述数据是否为预设类型;
若是,则控制所述客户端通过双边原语的方式与所述服务器节点进行预设类型的数据传输;
若否,则控制所述客户端通过单边原语的方式与所有所述服务器节点进行预设类型的数据传输。
12.一种通信系统,其特征在于,应用于分布式存储系统,所述分布式存储系统包括客户端及多个服务器节点,所述系统包括:
建立单元,用于建立第一网络栈和第二网络栈;
划分单元,用于对所述客户端与每个所述服务器节点之间及任意两个服务器节点的进程之间的全部连接关系进行划分,得到第一连接关系和第二连接关系,以使所述客户端与每个所述服务器节点之间及任意两个服务器节点的进程之间通过相应的连接关系进行通信;
所述第一连接关系基于所述第一网络栈建立构建,所述第二连接关系基于所述第二网络栈建立构建;
所述第一连接关系或所述第一连接关系的个数与量化参数QP的数量有关。
13.一种通信装置,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于在存储计算机程序时,实现如权利要求1-11任一项所述的通信方法的步骤。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1-11任一项所述的通信方法的步骤。
15.一种分布式存储系统,其特征在于,包括客户端、多个服务器节点及如权利要求13所述的通信装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210627358.1A CN114710515B (zh) | 2022-06-06 | 2022-06-06 | 一种通信方法及相关组件 |
PCT/CN2023/078090 WO2023236589A1 (zh) | 2022-06-06 | 2023-02-24 | 一种通信方法及相关组件 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210627358.1A CN114710515B (zh) | 2022-06-06 | 2022-06-06 | 一种通信方法及相关组件 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114710515A CN114710515A (zh) | 2022-07-05 |
CN114710515B true CN114710515B (zh) | 2022-11-11 |
Family
ID=82177977
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210627358.1A Active CN114710515B (zh) | 2022-06-06 | 2022-06-06 | 一种通信方法及相关组件 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114710515B (zh) |
WO (1) | WO2023236589A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114710515B (zh) * | 2022-06-06 | 2022-11-11 | 浪潮电子信息产业股份有限公司 | 一种通信方法及相关组件 |
CN115964353B (zh) * | 2023-03-10 | 2023-08-22 | 阿里巴巴(中国)有限公司 | 一种分布式文件系统及其访问计量方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101199187A (zh) * | 2004-07-23 | 2008-06-11 | 茨特里克斯系统公司 | 用于网络节点之间通信最优化的系统和方法 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020198927A1 (en) * | 2001-06-21 | 2002-12-26 | International Business Machines Corporation | Apparatus and method for routing internet protocol frames over a system area network |
US20040010594A1 (en) * | 2002-07-11 | 2004-01-15 | International Business Machines Corporation | Virtualizing the security parameter index, marker key, frame key, and verification tag |
CN102404212A (zh) * | 2011-11-17 | 2012-04-04 | 曙光信息产业(北京)有限公司 | 一种基于InfiniBand网络的跨平台RDMA通信方法 |
US10257273B2 (en) * | 2015-07-31 | 2019-04-09 | Netapp, Inc. | Systems, methods and devices for RDMA read/write operations |
US10417174B2 (en) * | 2016-06-24 | 2019-09-17 | Vmware, Inc. | Remote direct memory access in a virtualized computing environment |
CN107147722A (zh) * | 2017-05-19 | 2017-09-08 | 郑州云海信息技术有限公司 | 一种基于rdma通信机制的ib‑rti方法 |
CN107451092A (zh) * | 2017-08-09 | 2017-12-08 | 郑州云海信息技术有限公司 | 一种基于ib网络的数据传输系统 |
CN107948334B (zh) * | 2018-01-09 | 2019-06-07 | 无锡华云数据技术服务有限公司 | 基于分布式存储系统的数据处理方法 |
CN110445666B (zh) * | 2018-05-04 | 2022-12-06 | 阿里巴巴集团控股有限公司 | 一种网络质量检测方法、装置及服务器 |
US10817391B2 (en) * | 2018-07-23 | 2020-10-27 | Red Hat, Inc. | Distributed storage access using virtual target portal groups |
CN111277616B (zh) * | 2018-12-04 | 2023-11-03 | 中兴通讯股份有限公司 | 一种基于rdma的数据传输方法和分布式共享内存系统 |
CN110113425A (zh) * | 2019-05-16 | 2019-08-09 | 南京大学 | 一种基于rdma网卡纠删码卸载的负载均衡系统及均衡方法 |
CN113326155B (zh) * | 2021-06-28 | 2023-09-05 | 深信服科技股份有限公司 | 一种信息处理方法、装置、系统和存储介质 |
CN114710515B (zh) * | 2022-06-06 | 2022-11-11 | 浪潮电子信息产业股份有限公司 | 一种通信方法及相关组件 |
-
2022
- 2022-06-06 CN CN202210627358.1A patent/CN114710515B/zh active Active
-
2023
- 2023-02-24 WO PCT/CN2023/078090 patent/WO2023236589A1/zh unknown
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101199187A (zh) * | 2004-07-23 | 2008-06-11 | 茨特里克斯系统公司 | 用于网络节点之间通信最优化的系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114710515A (zh) | 2022-07-05 |
WO2023236589A1 (zh) | 2023-12-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114710515B (zh) | 一种通信方法及相关组件 | |
KR101457241B1 (ko) | 네트워크에서의 완전 메시 레이트 트랜잭션 | |
EP3352431B1 (en) | Network load balance processing system, method, and apparatus | |
CN108390950A (zh) | 一种消息推送方法、装置及设备 | |
US20080267067A1 (en) | Controlling the flow of data updates between a receiving station and a sending station | |
CN110838935B (zh) | 高可用sdn控制器集群方法、系统、存储介质及设备 | |
CN107135279A (zh) | 一种处理长连接建立请求的方法和装置 | |
WO2021223454A1 (zh) | 投屏方法和系统 | |
CN106612196B (zh) | 获取资源的方法及装置 | |
US8156209B1 (en) | Aggregation devices processing keep-alive messages of point-to-point sessions | |
CN110535811B (zh) | 远端内存管理方法及系统、服务端、客户端、存储介质 | |
WO2020098435A1 (zh) | 一种数据报文发送和接收方法、存储介质及处理器 | |
CN103780621B (zh) | 一种远程桌面共享方法及系统 | |
CN106686635B (zh) | 基于无线接入点的控制和配置协议的数据传输方法和装置 | |
WO2019184107A1 (zh) | 数据传输通道建立系统、方法、网络存储设备、服务器及存储介质 | |
CN112770358B (zh) | 基于业务数据的多速率模式数据发送控制方法及装置 | |
CN110753043B (zh) | 一种通信方法、装置、服务器及介质 | |
CN112559134B (zh) | 一种分布式WebSocket集群构建方法、装置、系统及存储介质 | |
SG178407A1 (en) | Method and apparatus for constructing seed group in peer-to-peer application and method for using seed group | |
CN109510864A (zh) | 一种缓存请求的转发方法、传输方法及相关装置 | |
CN117478643B (zh) | 一种设备自主接入方法、系统及电子设备 | |
WO2024017121A1 (zh) | 批量控制方法及装置 | |
JPH09311843A (ja) | クライアントサーバ型通信方法及びクライアントサーバ型通信装置 | |
CN117440446B (zh) | 一种基于数据分发服务的数据传输方法和装置 | |
US20050101179A1 (en) | Apparatus for and method of channel resource management |
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 |