CN113067849B - 基于Glusterfs的网络通信优化方法及装置 - Google Patents

基于Glusterfs的网络通信优化方法及装置 Download PDF

Info

Publication number
CN113067849B
CN113067849B CN202110161205.8A CN202110161205A CN113067849B CN 113067849 B CN113067849 B CN 113067849B CN 202110161205 A CN202110161205 A CN 202110161205A CN 113067849 B CN113067849 B CN 113067849B
Authority
CN
China
Prior art keywords
user state
glusterfs
network
data packet
user
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
Application number
CN202110161205.8A
Other languages
English (en)
Other versions
CN113067849A (zh
Inventor
张国华
彭琰
李庆节
张恽
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hunan Guoke Yicun Information Technology Co ltd
Original Assignee
Hunan Guoke Yicun Information Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hunan Guoke Yicun Information Technology Co ltd filed Critical Hunan Guoke Yicun Information Technology Co ltd
Priority to CN202110161205.8A priority Critical patent/CN113067849B/zh
Publication of CN113067849A publication Critical patent/CN113067849A/zh
Application granted granted Critical
Publication of CN113067849B publication Critical patent/CN113067849B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols 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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4633Interconnection of networks using encapsulation techniques, e.g. tunneling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • H04L69/162Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开一种基于Glusterfs的网络通信优化方法及装置,该方法包括:在Glusterfs分布式存储系统中为各节点配置用户态TCP/IP协议栈和用户态网卡驱动,当源节点需要经由网络向目的节点发送数据时,通过用户态TCP/IP协议栈进行TCP/IP数据包的封装与解析,以及通过用户态网卡驱动发送、读取封装的数据包,以实现节点间网络通信。本发明在节点网络通信过程中,无需经过用户态到内核态以及内核态到用户态的数据复制,具有实现操作简单、耗时少、网络通信延迟低以及通信效率高等优点。

Description

基于Glusterfs的网络通信优化方法及装置
技术领域
本发明涉及Glusterfs分布式存储技术领域,尤其涉及一种基于Glusterfs的网络通信优化方法及装置。
背景技术
当前应用系统数据呈指数增长,不仅对存储系统的容量提出了更高的要求,对传输能力也带来了极大的挑战。Glusterfs作为一种去中心化的分布式存储系统,由多个存储节点组成,具有理论上无限的扩展能力。为保证系统安全,防止非法内存地址访问和恶意指针修改操作系统,目前Glusterfs中内核调用时均是将数据从用户空间拷贝到内核空间,因而Glusterfs中节点间网络通信时,需要在内核态和用户态之间拷贝数据,即必须要经过用户态到内核态以及内核态到用户态的数据复制,但是该复制操作耗时较长,复制操作需要占据整个数据包处理流程几乎一半以上的时间,是影响Glusterfs数据传输性能、网络通信延迟的关键因素。
如在Glusterfs中使用通用的TCP/IP协议以及POSIX标准在节点之间传输数据时,如图1以及图2中左侧流程所示,当从一个节点A向另一个节点B发送数据具体需要经过如下流程:
(1)节点A用户态glusterfs客户端发出写数据的系统调用;
(2)节点A内核收到请求将数据复制到内核空间;
(3)节点A内核通过TCP/IP协议栈进行封包;
(4)节点A内核调用网卡驱动向网卡发送封包;
(5)节点A经由网络传输封包至节点B网卡;
(6)节点B内核通过网卡驱动读取封包;
(7)节点B内核通过TCP/IP协议解包数据;
(8)节点B内核将数据复制到用户态;
(9)节点B用户态glusterfs服务端取得数据,调用系统接口写入磁盘。
上述从节点A向节点B发送数据过程中,整个通信过程较为复杂,且需要按照步骤(2)经过用户态到内核态的数据复制,以及按照步骤(8)经过内核态到用户态的数据复制,该数据复制需要耗费大量的时间,使得数据传输性能下降,增大网络通信延迟。
综上,现有的Glusterfs架构中节点间网络通信时,必须要经过用户态到内核态以及内核态到用户态的数据复制,会存在通信过程复杂、操作耗时长、数据传输效率低以及网络通信延迟大等问题。因此亟需提供一种针对Glusterfs的网络通信优化方法,以使得能够规避用户空间与内核空间之间的数据拷贝操作,改善Glusterfs的数据传输性能、减少网络通信延迟。
发明内容
本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种实现操作简单、耗时少、网络通信延迟低以及通信效率高的基于Glusterfs的网络通信优化方法及装置,能够在节点网络通信过程中,无需经过用户态到内核态以及内核态到用户态的数据复制。
为解决上述技术问题,本发明提出的技术方案为:
一种基于Glusterfs的网络通信优化方法,在Glusterfs分布式存储系统中为各节点配置用户态TCP/IP协议栈和用户态网卡驱动,当源节点需要经由网络向目的节点发送数据时,通过所述用户态TCP/IP协议栈进行TCP/IP数据包的封装与解析,以及通过所述用户态网卡驱动发送、读取封装的数据包,以实现节点间网络通信。
进一步的,当源节点需要向目的节点发送数据时,节点间网络通信的步骤包括:
S01.由源节点用户态Glusterfs客户端发出写数据的系统调用;
S02.源节点通过所述用户态TCP/IP协议栈将待发送数据包进行TCP/IP数据包的封装,得到封装数据包;
S03.源节点调用所述用户态网卡驱动向网卡发送所述封装数据包,所述封装数据包经由网络传输至目的节点的网卡;
S04.目的节点调用所述用户态网卡驱动读取所述封装数据包;
S05.目的节点通过所述用户态TCP/IP协议栈对读取的所述封装数据包进行解析,将解析得到的数据进行存储。
进一步的,Glusterfs分布式存储系统在创建连接时还包括根据传入的通信域参数对当前连接的目标进行鉴别,当鉴别为本机进程间通信时,使用标准socket接口进行处理;当鉴别为节点间网络通信时,进入旁路处理,通过所述用户态TCP/IP协议栈和用户态网卡驱动实现节点间网络通信。
进一步的,所述用户态协议栈中采用与标准socket相同的输入与输出,构建形成用户态ff_socket,以及用户态中事件管理函数采用与标准epoll一致的函数,构建形成用户态ff_epoll;使用由所述用户态ff_socket以及用户态ff_epoll实现节点间网络通信。
进一步的,还包括在事件管理函数中设置对用户态ff_epoll的查询功能,交替对标准epoll和用户态ff_epoll进行查询,当查询发现读写通道就绪时则执行对应的读写操作。
进一步的,所述用户态TCP/IP协议栈采用忙轮询的方式感知数据包到达事件,并通知用户态应用对数据进行处理。
进一步的,在Glusterfs分布式存储系统初始化过程中还包括对网卡进行初始化,使用用户空间IO以及用户空间驱动程序替换内核驱动,并加载网卡配置。
一种基于Glusterfs的网络通信优化装置,包括用户态TCP/IP协议栈模块以及用户态网卡驱动模块,当源节点需要经由网络向目的节点发送数据时,通过所述用户态TCP/IP协议栈模块进行TCP/IP数据包的封装与解析,以及通过所述用户态网卡驱动模块发送、读取封装的数据包,以实现节点间网络通信。
进一步的,所述用户态TCP/IP协议栈模块包括:
封装单元,用于将待发送数据包进行TCP/IP数据包的封装,得到封装数据包;
解析单元,用于对所述用户态网卡驱动读取的所述封装数据包进行解析;
所述用户态网卡驱动模块包括:
发送单元,用于向网卡发送所述封装数据包;
读取单元,用于读取网络传输过来的所述封装数据包。
进一步的,还包括目标鉴别及控制模块,用于Glusterfs分布式存储系统在创建连接时根据传入的通信域参数对当前连接的目标进行鉴别,当鉴别为节点间网络通信时,启动通过所述用户态TCP/IP协议栈和用户态网卡驱动实现节点间网络通信;当鉴别为本机进程间通信时,使用标准socket接口进行处理。
与现有技术相比,本发明的优点在于:
1、本发明在Glusterfs的节点间通信中,引入用户态TCP/IP协议栈和用户态网卡驱动,通过用户态TCP/IP协议栈进行TCP/IP数据包的封装与解析,以及通过用户态网卡驱动发送、读取封装的数据包,在用户态进行TCP/IP数据包的封装与解析,将内核态的网卡驱动以及TCP/IP协议栈移动到了用户态,使得Glusterfs分布式存储系统在节点间网络通信的整个通信过程中,不需经过用户态和内核态之间的数据拷贝,可以大大减少数据操作耗时,大幅改善数据传输、读写性能,减少网络通信延迟。
2、本发明进一步为Glusterfs提供一个旁路通道,特定实现Glusterfs节点间网络通信,通过对请求进行识别以确定是否经旁路通道处理,由旁路通道使用用户态协议栈和用户态网卡驱动直接收发数据,提高节点间网络通信时的数据传输性能,同时结合该旁路处理设置,可以在提高数据传输性能的同时,不影响Glusterfs原有的本机进程间通信。
附图说明
图1是传统Glusterfs网络通信的流程示意图。
图2是本实施例基于Glusterfs的网络通信优化方法的实现流程示意图。
图3是现有技术中Glusterfs的网络通信流程与本发明实现Glusterfs网络通信的对比示意图。
图4是本实施例中实现连接创建、鉴别与旁路处理的流程示意图。
图5是本实施例中连接事件管理的流程示意图。
具体实施方式
以下结合说明书附图和具体优选的实施例对本发明作进一步描述,但并不因此而限制本发明的保护范围。
本发明基于Glusterfs的网络通信优化方法,在Glusterfs分布式存储系统中为各节点配置用户态TCP/IP协议栈和用户态网卡驱动,当源节点需要经由网络向目的节点发送数据时,通过用户态TCP/IP协议栈进行TCP/IP数据包的封装与解析,以及通过用户态网卡驱动发送、读取封装的数据包,以实现节点间网络通信。
考虑到:(1)如计算机处理器搭载有IOMMU(Input/Output Memory ManagementUnit),即输入/输出内存管理单元,它连接DMA(直接内存访问)总线和主存,可以将设备访问的虚拟地址转换为真实的物理地址并提供内存保护机制防止非法访问;(2)如VFIO(Virtual Function I/O)利用IOMMU实现的通用框架,可以将设备直接暴露给用户空间并由IOMMU来提供安全保障,可以用于实现安全的、无需特权的用户态驱动程序;(3)在VFIO的基础上,如DPDK(Data Plane Development Kit)等的开发套件集成了用户态网卡驱动,由该网卡驱动收到数据包后不会触发中断通知CPU,直接将数据输出到指定的内存地址,此时应用程序就可以通过DPDK提供的接口,直接从内存读取数据包;(4)对于从网卡获取到的数据包,则可以通过用户态TCP/IP协议栈(例如F-Stack)进行解包处理,为用户应用提供所需要的数据,或者对用户应用要发送的数据进行封包处理,为网卡驱动准备数据。即要在Glusterfs的网络通信过程中,规避用户空间与内核空间之间的数据拷贝操作是可行的。
本发明考虑上述结构特性,对Glusterfs的节点间通信流程进行优化,引入用户态TCP/IP协议栈和用户态网卡驱动,通过用户态TCP/IP协议栈进行TCP/IP数据包的封装与解析,以及通过用户态网卡驱动发送、读取封装的数据包,在用户态进行TCP/IP数据包的封装与解析,经过该优化后,将内核态的网卡驱动以及TCP/IP协议栈移动到了用户态,和应用处于同一内存空间中,使得Glusterfs分布式存储系统在节点间网络通信的整个通信过程中,不需经过用户态和内核态之间的数据拷贝,可以大大减少数据操作耗时,大幅改善数据传输、读写性能,减少网络通信延迟。
如图2所示,本实施例中当源节点需要向目的节点发送数据时,节点间网络通信的步骤包括:
S01.由源节点用户态Glusterfs客户端发出写数据的系统调用;
S02.源节点通过用户态TCP/IP协议栈将待发送数据包进行TCP/IP数据包的封装,得到封装数据包;
S03.源节点调用用户态网卡驱动向网卡发送封装数据包,封装数据包经由网络传输至目的节点的网卡;
S04.目的节点调用用户态网卡驱动读取封装数据包;
S05.目的节点通过用户态TCP/IP协议栈对读取的封装数据包进行解析,将解析得到的数据进行存储。
本实施例上述从源节点经网络向目的节点发送数据时,采用用户态协议栈通信模式,仅需由用户态TCP/IP协议栈进行数据封装以及解析,可以避免用户态和内核态之间的数据拷贝操作。
以节点A向节点B发送数据为例,本实施例基于Glusterfs实现节点间网络通信的详细流程为:
(a1)节点A用户态glusterfs客户端发出写数据的系统调用;
(a2)节点A通过用户态TCP/IP协议栈进行封包;
(a3)节点A调用用户态网卡驱动向网卡发送封包;
(a4)节点A经由网络传输封包至节点B网卡;
(a5)节点B用户态网卡驱动读取封包;
(a6)节点B通过用户态TCP/IP协议栈解包数据;
(a7)节点B Glusterfs调用系统接口将数据写入磁盘。
按照传统Glusterfs内核协议栈通信模式实现节点间网络通信与采用本发明上述用户态协议栈通信模式实现Glusterfs节点间网络通信对比如图2所示,其中左侧对应为传统Glusterfs的内核协议栈通信模式,右侧为采用本发明用户态协议栈通信模式。从上述步骤以及图3中可以看出,采用本发明用户态协议栈通信模式实现Glusterfs实现节点间网络通信,相比于传统基于Glusterfs内核协议栈通信模式实现节点间网络通信流程,减少了步骤(2)、(8)的用户态和内核态之间的数据拷贝操作。
本实施例中在Glusterfs分布式存储系统初始化过程中还包括对网卡进行初始化,使用用户空间IO以及用户空间驱动程序替换内核驱动,并加载网卡配置。
本实施例中,Glusterfs分布式存储系统在创建连接时还包括根据传入的通信域参数对当前连接的目标进行鉴别,当鉴别为本机进程间通信时,使用标准socket接口进行处理;当鉴别为节点间网络通信时,进入旁路处理,通过所述用户态TCP/IP协议栈和用户态网卡驱动实现节点间网络通信。即本实施例在Glusterfs原本机进程间通信处理通道的基础上,为Glusterfs提供了一个旁路通道,特定为新建立的连接实现Glusterfs节点间网络通信,过对请求进行识别以确定是否经旁路通道处理,由旁路通道使用用户态协议栈和用户态网卡驱动直接收发数据,提高节点间网络通信时的数据传输性能;同时通过按通信域对本机进程间通信、节点间通信分别处理,对于不经过网络的本机进程间通信,保持由操作系统提供的标准socket接口进行处理,对于存储节点间通信则经由优化的用户态协议栈处理,可以在提高数据传输性能的同时,不影响Glusterfs原有的本机进程间通信。
上述通信域参数具体可以为通信域(domain)、通信类型(type)、通信协议(protocol)等参数。具体可在Gusterfs创建连接时传入通信域(domain)、通信类型(type)、通信协议(protocol)三个参数,利用传入的通信域参数对连接的目标进行鉴别,并在该连接的整个生命周期中以该通信域对应的方法进行通信与事件管理。
为保持接口兼容,本实施例中用户态协议栈中具体采用与标准socket相同的输入与输出,构建形成用户态ff_socket,以及用户态中事件管理函数采用与标准epoll(事件轮询)一致的函数,构建形成用户态ff_epoll;使用由用户态协议栈提供的用户态ff_socket以及用户态ff_epoll实现节点间网络通信。本实施例具体用户态协议栈变更函数名为ff_socket以与标准socket区分,相应的,事件管理函数变更函数名为ff_epoll以与标准epoll区分。
本实施例中,还包括在事件管理函数中设置对用户态ff_epoll的查询功能,交替对标准epoll和用户态ff_epoll进行查询,当查询发现读写通道就绪时则执行对应的读写操作。
本实施例中,用户态TCP/IP协议栈采用忙轮询的方式感知数据包到达事件,并通知用户态应用对数据进行处理。即用户态协议栈不使用CPU中断机制来触发IO事件,而是在驱动程序层面以忙轮询的方式获取新的数据包并直接输出至内存,操作系统所提供的标准epoll(事件轮询)机制不能用于对用户态IO事件的管理,而是需要采用忙轮询的方式在用户态协议栈中感知数据包到达事件,并通知用户态应用对数据进行处理。
在具体应用实施例中,在现有Gusterfs节点间通信方法的基础上对socket连接的创建和管理流程进行优化,以实现为节点间通信提供一个由用户态协议栈进行处理的旁路通道,详细流程包括:
步骤1、初始化网卡
在Glusterfs初始化过程中增加对网卡的初始化,使用用户空间IO以及用户空间驱动程序替换内核驱动,加载网卡配置。
步骤2、创建连接
如图4所示,本实施例在Glusterfs服务端创建连接时,根据通信域参数判断是否为本地连接,如果是本地连接,使用标准socket处理;如果不是,使用用户态socket处理。
本实施例创建连接时具体步骤包括:
步骤S2.1)当通信域参数为AF_UNIX时,判定为本机进程间通信,使用标准socket处理,步骤包括:
a)采用标准socket创建连接,接收通信域、通信类型、通信协议作为参数。
b)采用标准bind绑定本地地址,接收待处理的socket与主机地址数据以及地址长度作为参数。
c)采用标准listen监听本地连接,接收socket句柄以及后台队列长度上限作为参数。
d)采用标准accept接通本地连接,接收待处理的socket与对端地址数据以及地址长度作为参数,并将返回的连接存入连接事件池。
步骤S2.2)当通信域参数为AF_INET时,判定为跨节点的远程操作,使用用户协议栈f-stack所提供的用户态ff_socket与用户态ff_epoll实现不经过内核调用的高速网络通信,步骤包括:
a1)采用用户态ff_socket创建连接,接收通信域、通信类型、通信协议作为参数。
b)采用用户态ff_bind绑定网卡地址,接收待处理的socket与主机地址数据以及地址长度作为参数。
c1)采用用户态ff_listen监听远程连接,接收socket句柄以及后台队列长度上限作为参数。
d1)采用用户态ff_accept接通远程连接,接收待处理的socket与对端主机地址数据以及地址长度作为参数,并将返回的连接存入连接事件池。
步骤3、管理连接
如图5所示,本实施例在事件管理函数中,新增对ff_epoll的查询,获取当前已准备就绪的节点间socket连接,使用用户态读写ff_read/ff_write进行处理,其中ff_read/ff_write与操作系统读写(read/write)接口保持一致,均为输入socket句柄、读写缓冲区、读写数量;通过对epoll和ff_epoll的查询交替进行,在系统运行过程中循环执行,当查询发现读写通道就绪则执行读写操作。
本实施例还包括基于Glusterfs的网络通信优化装置,包括用户态TCP/IP协议栈模块以及用户态网卡驱动模块,当源节点需要经由网络向目的节点发送数据时,通过用户态TCP/IP协议栈模块进行TCP/IP数据包的封装与解析,以及通过用户态网卡驱动模块发送、读取封装的数据包,以实现节点间网络通信。
本实施例中,用户态TCP/IP协议栈模块包括:
封装单元,用于将待发送数据包进行TCP/IP数据包的封装,得到封装数据包;
解析单元,用于对用户态网卡驱动读取的封装数据包进行解析;
用户态网卡驱动模块包括:
发送单元,用于向网卡发送封装数据包;
读取单元,用于读取网络传输过来的封装数据包。
当源节点需要经由网络向目的节点发送数据时,流程包括:
由源节点用户态Glusterfs客户端发出写数据的系统调用;
源节点通过用户态TCP/IP协议栈模块将待发送数据包进行TCP/IP数据包的封装,得到封装数据包;
源节点调用用户态网卡驱动模块向网卡发送封装数据包,封装数据包经由网络传输至目的节点的网卡;
目的节点调用用户态网卡驱动模块读取所述封装数据包;
目的节点通过用户态TCP/IP协议栈模块对读取的封装数据包进行解析,将解析得到的数据进行存储。
本实施例中,还包括目标鉴别及控制模块,用于Glusterfs分布式存储系统在创建连接时根据传入的通信域参数对当前连接的目标进行鉴别,当鉴别为节点间网络通信时,启动通过用户态TCP/IP协议栈和用户态网卡驱动实现节点间网络通信;当鉴别为本机进程间通信时,使用标准socket接口进行处理。
本实施例基于Glusterfs的网络通信优化装置与上述基于Glusterfs的网络通信优化方法对应,两者具有相同的实现原理以及效果,在此不再一一赘述。
上述只是本发明的较佳实施例,并非对本发明作任何形式上的限制。虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明。因此,凡是未脱离本发明技术方案的内容,依据本发明技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均应落在本发明技术方案保护的范围内。

Claims (7)

1.一种基于Glusterfs的网络通信优化方法,其特征在于:在Glusterfs分布式存储系统中为各节点配置用户态TCP/IP协议栈和用户态网卡驱动,当源节点需要经由网络向目的节点发送数据时,通过所述用户态TCP/IP协议栈进行TCP/IP数据包的封装与解析,以及通过所述用户态网卡驱动发送、读取封装的数据包,以实现节点间网络通信;
当源节点需要向目的节点发送数据时,节点间网络通信的步骤包括:
S01.由源节点用户态Glusterfs客户端发出写数据的系统调用;
S02.源节点通过所述用户态TCP/IP协议栈将待发送数据包进行TCP/IP数据包的封装,得到封装数据包;
S03.源节点调用所述用户态网卡驱动向网卡发送所述封装数据包,所述封装数据包经由网络传输至目的节点的网卡;
S04.目的节点调用所述用户态网卡驱动读取所述封装数据包;
S05.目的节点通过所述用户态TCP/IP协议栈对读取的所述封装数据包进行解析,将解析得到的数据进行存储;
Glusterfs分布式存储系统在创建连接时还包括根据传入的通信域参数对当前连接的目标进行鉴别,当鉴别为本机进程间通信时,使用标准socket接口进行处理;当鉴别为节点间网络通信时,进入旁路处理,通过所述用户态TCP/IP协议栈和用户态网卡驱动实现节点间网络通信。
2.根据权利要求1所述的基于Glusterfs的网络通信优化方法,其特征在于:所述用户态协议栈中采用与标准socket相同的输入与输出,构建形成用户态ff_socket,以及用户态中事件管理函数采用与标准epoll一致的函数,构建形成用户态ff_epoll;使用由所述用户态ff_socket以及用户态ff_epoll实现节点间网络通信。
3.根据权利要求2所述的基于Glusterfs的网络通信优化方法,其特征在于,还包括在事件管理函数中设置对用户态ff_epoll的查询功能,交替对标准epoll和用户态ff_epoll进行查询,当查询发现读写通道就绪时则执行对应的读写操作。
4.根据权利要求1~3中任意一项所述的基于Glusterfs的网络通信优化方法,其特征在于,所述用户态TCP/IP协议栈采用忙轮询的方式感知数据包到达事件,并通知用户态应用对数据进行处理。
5.根据权利要求1~3中任意一项所述的基于Glusterfs的网络通信优化方法,其特征在于:在Glusterfs分布式存储系统初始化过程中还包括对网卡进行初始化,使用用户空间IO以及用户空间驱动程序替换内核驱动,并加载网卡配置。
6.一种基于Glusterfs的网络通信优化装置,其特征在于:包括用户态TCP/IP协议栈模块以及用户态网卡驱动模块,当源节点需要经由网络向目的节点发送数据时,通过所述用户态TCP/IP协议栈模块进行TCP/IP数据包的封装与解析,以及通过所述用户态网卡驱动模块发送、读取封装的数据包,以实现节点间网络通信;
所述用户态TCP/IP协议栈模块包括:
封装单元,用于将待发送数据包进行TCP/IP数据包的封装,得到封装数据包;
解析单元,用于对所述用户态网卡驱动读取的所述封装数据包进行解析;
所述用户态网卡驱动模块包括:
发送单元,用于向网卡发送所述封装数据包;
读取单元,用于读取网络传输过来的所述封装数据包;
还包括旁路模块,用于Glusterfs分布式存储系统在创建连接时根据传入的通信域参数对当前连接的目标进行鉴别,当鉴别为本机进程间通信时,使用标准socket接口进行处理;当鉴别为节点间网络通信时,进入旁路处理,通过所述用户态TCP/IP协议栈和用户态网卡驱动实现节点间网络通信。
7.根据权利要求6所述的基于Glusterfs的网络通信优化装置,其特征在于:还包括目标鉴别及控制模块,用于Glusterfs分布式存储系统在创建连接时根据传入的通信域参数对当前连接的目标进行鉴别,当鉴别为节点间网络通信时,启动通过所述用户态TCP/IP协议栈和用户态网卡驱动实现节点间网络通信;当鉴别为本机进程间通信时,使用标准socket接口进行处理。
CN202110161205.8A 2021-02-05 2021-02-05 基于Glusterfs的网络通信优化方法及装置 Active CN113067849B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110161205.8A CN113067849B (zh) 2021-02-05 2021-02-05 基于Glusterfs的网络通信优化方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110161205.8A CN113067849B (zh) 2021-02-05 2021-02-05 基于Glusterfs的网络通信优化方法及装置

Publications (2)

Publication Number Publication Date
CN113067849A CN113067849A (zh) 2021-07-02
CN113067849B true CN113067849B (zh) 2022-05-10

Family

ID=76558636

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110161205.8A Active CN113067849B (zh) 2021-02-05 2021-02-05 基于Glusterfs的网络通信优化方法及装置

Country Status (1)

Country Link
CN (1) CN113067849B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113542412B (zh) * 2021-07-16 2024-01-05 天翼云科技有限公司 数据传输方法、装置、电子设备及存储介质
CN115174206B (zh) * 2022-07-01 2024-04-02 江苏深网科技有限公司 透明网桥模式下的用户态应用安全检测方法及检测系统
CN115834665B (zh) * 2023-02-08 2023-06-23 天翼云科技有限公司 一种网络通信方法和装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111212088A (zh) * 2020-01-21 2020-05-29 福建星网智慧科技股份有限公司 一种加速服务器提速rtp报文转发方法以及装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7640346B2 (en) * 2005-02-01 2009-12-29 Microsoft Corporation Dispatching network connections in user-mode
CN102662910B (zh) * 2012-03-23 2014-10-15 浙江大学 基于嵌入式系统的网络交互体系及网络交互方法
US9524197B2 (en) * 2012-09-06 2016-12-20 Accedian Networks Inc. Multicasting of event notifications using extended socket for inter-process communication
CN108289063B (zh) * 2017-09-11 2021-07-27 上海金融期货信息技术有限公司 一种低延迟通讯系统
CN108494817B (zh) * 2018-02-08 2022-03-04 华为技术有限公司 数据传输方法、相关装置及系统
CN110602155A (zh) * 2018-06-13 2019-12-20 网宿科技股份有限公司 代理服务器及其处理数据报文的方法
CN110602154A (zh) * 2018-06-13 2019-12-20 网宿科技股份有限公司 Web服务器及其处理数据报文的方法
CN110798366B (zh) * 2018-08-01 2023-02-24 阿里巴巴集团控股有限公司 任务逻辑的处理方法、装置及设备
CN110138553B (zh) * 2019-05-10 2022-08-19 郑州信大捷安信息技术股份有限公司 一种IPSec VPN网关数据包处理装置及方法
CN110190893A (zh) * 2019-06-18 2019-08-30 中国电子科技集团公司第五十四研究所 一种基于dpdk的卫星信道高速可靠数据传输方法
CN110865868B (zh) * 2019-10-21 2024-02-23 苏州元核云技术有限公司 一种低延迟控制方法、装置及其设备
CN111309263B (zh) * 2020-02-16 2020-11-24 西安奥卡云数据科技有限公司 一种分布式对象存储中的逻辑卷实现方法
CN111371804B (zh) * 2020-03-16 2023-01-20 广州根链国际网络研究院有限公司 Dns后端转发方法及系统

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111212088A (zh) * 2020-01-21 2020-05-29 福建星网智慧科技股份有限公司 一种加速服务器提速rtp报文转发方法以及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"Performance Evaluation of Low Latency Communication Alternatives in a Containerized Cloud Environment";Dániel Géhberger等;《2018 IEEE 11th International Conference on Cloud Computing (CLOUD)》;20180910;全文 *
"基于Linux内核的用户态网络协议栈的实现";周丹等;《信息通信》;20190830(第7期);全文 *

Also Published As

Publication number Publication date
CN113067849A (zh) 2021-07-02

Similar Documents

Publication Publication Date Title
CN113067849B (zh) 基于Glusterfs的网络通信优化方法及装置
US10924483B2 (en) Packet validation in virtual network interface architecture
US7233984B2 (en) Light weight file I/O over system area networks
US6141705A (en) System for querying a peripheral device to determine its processing capabilities and then offloading specific processing tasks from a host to the peripheral device when needed
WO2021217529A1 (zh) 一种进程间通信的方法及系统
US7231638B2 (en) Memory sharing in a distributed data processing system using modified address space to create extended address space for copying data
EP2312807B1 (en) Method and system for enabling zero-copy transmission of streaming media data
US20150052280A1 (en) Method and system for communications-stack offload to a hardware controller
US20080086575A1 (en) Network interface techniques
US20060104295A1 (en) Queued, asynchronous communication architecture interface
US20050195833A1 (en) Full hardware based TCP/IP traffic offload engine(TOE) device and the method thereof
KR20070115883A (ko) 컴퓨터 시스템에서의 보강된 인터럽트 제어 방법, 이를구현하는 시스템, 명령어를 포함하는 컴퓨터-판독가능 매체및 하드웨어 제어 장치
US7941800B2 (en) Transferring data between virtual machines by way of virtual machine bus in pipe mode
JP5107570B2 (ja) ネットワーク・プロトコル・スタック隔離のためのネットワーク・アーキテクチャ、方法、およびコンピュータ・プログラム
CN114397999B (zh) 基于非易失内存接口-远程处理消息传递的通信方法、装置及设备
JP3628514B2 (ja) 計算機間データ送受信方法
CN115714679A (zh) 网络数据包处理方法、装置、电子设备及存储介质
Yang et al. uNVMe-TCP: a user space approach to optimizing NVMe over fabrics TCP transport
EP1548591B1 (en) Method, apparatuses and instruction set for an accelerator for object-oriented communications
WO2024174877A1 (zh) 虚拟机迁移加速方法、系统、迁移设备及介质
Mahabaleshwarkar et al. TCP/IP protocol accelaration
KR102695726B1 (ko) 컴퓨팅 장치 및 스토리지 카드
US11689621B2 (en) Computing device and storage card
WO2024217333A1 (zh) 一种基于块存储的io访问方法、装置、电子设备及介质
MacArthur Userspace RDMA verbs on commodity hardware using DPDK

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