CN115665048A - 基于四层负载均衡集群的同步conntrack方法、系统及装置 - Google Patents

基于四层负载均衡集群的同步conntrack方法、系统及装置 Download PDF

Info

Publication number
CN115665048A
CN115665048A CN202211227076.9A CN202211227076A CN115665048A CN 115665048 A CN115665048 A CN 115665048A CN 202211227076 A CN202211227076 A CN 202211227076A CN 115665048 A CN115665048 A CN 115665048A
Authority
CN
China
Prior art keywords
conntrack
node
syn
load balancer
state
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.)
Pending
Application number
CN202211227076.9A
Other languages
English (en)
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.)
Inspur Cloud Information Technology Co Ltd
Original Assignee
Inspur Cloud 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 Inspur Cloud Information Technology Co Ltd filed Critical Inspur Cloud Information Technology Co Ltd
Priority to CN202211227076.9A priority Critical patent/CN115665048A/zh
Publication of CN115665048A publication Critical patent/CN115665048A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了基于四层负载均衡集群的同步conntrack方法、系统及装置,属于云计算及计算机网络技术领域,该方法采用四层负载均衡器多主集群架构部署模式,所有的负载均衡器节点都处于工作状态;在多个主用四层负载均衡器节点上运行conntrackd守护进程,实时抽取节点上内核维护的TCP连接的conntrack;使用conntrackd自带的组播同步机制,将conntrack同步到所有的主用负载均衡器节点上。本发明能够在不影响云平台负载均衡功能的同时提升云上业务的用户体验,同时使用多主用的集群部署模式来提高资源利用率。

Description

基于四层负载均衡集群的同步conntrack方法、系统及装置
技术领域
本发明涉及云计算及计算机网络技术领域,具体地说是基于四层负载均衡 集群的同步conntrack方法、系统及装置。
背景技术
近年来公有云虚拟网络高速发展,巨量的高并发请求给云平台服务器带来 了空前的压力,而负载均衡集群技术成为解决巨量高并发问题的重要方案,其 中四层负载均衡集群在大规模公有云的虚拟网络实现中有着广泛的应用,其通 过将巨量的用户请求均匀的分配到系统中的服务器节点上,达到负载均衡的目 的,解决了系统的高并发问题,采用主备的集群部署方式,也提高了负载均衡 功能的高可用性。但是这种部署架构并没有解决由四层负载均衡器故障导致的 TCP连接中断问题,也无法提高云平台资源的利用率。比如在线上交易的环境中, 客户端与服务器之间的TCP连接中断,必然会导致整个线上交易的失败,这种 情况一旦发生,在给客户带来损失的同时,也降低了公有云平台的用户体验。同时采用主备集群的部署方式,备用负载均衡器并未处于工作状态,这会造成 一定程度上的资源浪费,变相提高了云平台的部署成本。
发明内容
本发明的技术任务是针对以上不足之处,提供基于四层负载均衡集群的同 步conntrack方法、系统及装置,能够在不影响云平台负载均衡功能的同时提 升云上业务的用户体验,同时使用多主用的集群部署模式来提高资源利用率。
本发明解决其技术问题所采用的技术方案是:
基于四层负载均衡集群的同步conntrack方法,采用四层负载均衡器多主 集群架构部署模式,所有的负载均衡器节点都处于工作状态;
在多个主用四层负载均衡器节点上运行conntrackd守护进程,实时抽取节 点上内核维护的TCP连接的conntrack;
使用conntrackd自带的组播同步机制,将conntrack同步到所有的主用负 载均衡器节点上。
本方法提出一种基于四层负载均衡多主集群的TCP连接conntrack同步的 方法,四层负载均衡器集群采用多主的部署方法,所有的负载均衡器节点都处 于工作状态;conntrackd守护进程需要采用组播方法同步各个四层均衡器节点 的conntrack,对于集群数目的动态弹缩有很大帮助。
本方法针对公有云环境下的四层负载均衡器集群,采用多主的集群部署模 式,提出了一种在多台主用负载均衡器之间同步TCP连接conntrack的方法, 在不影响负载均衡器集群正常功能的情况下,相对于主备集群的部署模式,多 主用部署模式可以最大程度的提高资源利用率并提升用户体验。
进一步的,所述四层负载均衡器使用Linux内核自带的LVS模块。
进一步的,当客户端向服务器发送的TCP连接请求时,主用四层负载均衡 器节点A获取syn包并创建该客户端与服务器的TCP连接conntrack,设定所述 conntrack状态为syn_sent并通过组播方法发送给其他主用负载均衡器节点; 其他主用负载均衡器节点接收到所述conntrack后,其conntrackd守护进程将 该conntrack加入到内核维护的列表中;
所述其他主用负载均衡器节点接收服务器回复的syn_ack包,其内核协议 栈检索出所述状态为syn_sent的conntrack表项,并将syn_ack包转发给客户 端,同时修改conntrack状态为syn_recv并通过组播方法同步到主用四层负载 均衡器节点A;
主用四层负载均衡器节点A收到客户端发送的ack包,其内核协议栈检索 出所述状态为syn_recv的conntrack表项,并将ack包转发给服务器,同时修 改conntrack状态为established并通过组播方法同步到所述其他主用四层负 载均衡器节点;
所述主用四层负载均衡器节点A与所述其他主用四层负载均衡器节点共同 维护所述状态为established的conntrack。
优选的,主用四层负载均衡器包括两个,分别设为均衡器LVS0节点和均衡 器LVS1节点,则该方法的具体实现过程如下:
1)、启动主用四层负载均衡器LVS0节点,然后拉起conntrackd守护进程;
2)、启动主用四层负载均衡器LVS1节点,然后拉起conntrackd守护进程;
3)、客户端client1向服务器server1发送TCP连接请求报文,实际的TCP 连接请求syn包会被路由到主用四层负载均衡器LVS0节点上;
4)、LVS0节点收到客户端client1发来的TCP连接请求的syn包之后,创 建客户端client1与服务器server1的TCP连接conntrack,并将其状态设置为 SYN_SENT,然后将syn包转发到服务器server1上;
5)、LVS0节点的conntrackd守护进程此时开始工作,取出所述状态为SYN_SENT的conntrack,然后通过组播方法发送给LVS1节点;
6)、LVS1节点在接收到LVS0节点发送过来的同步conntrack之后, conntrackd守护进程将所述状态为SYN_SENT的conntrack加入到内核维护的列 表中;
7)、服务器server1在收到LVS0转发过来的syn包之后,知道此时有客户 端向其发起TCP连接请求,所以会向LVS1节点回复syn_ack包;
8)、LVS1在收到服务器server1发来的syn_ack包之后,内核协议栈会检 索自身维护的conntrack列表,结果检索出LVS0同步过来的状态为SYN_SENT 的conntrack表项,此时LVS1会将该conntrack设置成SYN_RECV状态,然后 将syn_ack包转发给客户端client1;
9)、LVS1节点上的conntrackd守护进程继续工作,将状态为SYN_RECV的conntrack通过组播方法再次同步到LVS0节点上;
10)、客户端client1在收到LVS1节点转发过来的syn_ack包之后,明白 服务器server1已经收到自己的syn包,所以此时会向LVS0节点发出ack包已 完成TCP连接的握手流程;
11)、LVS0节点在收到客户端client1发来的ack包之后,内核协议栈会检 索自身维护的conntrack列表,结果检索出LVS1同步过来的状态为SYN_RECV 的conntrack表项,此时LVS0会将该conntrack设置成ESTABLISHED状态,然 后将ack包转发给服务器server1;
12)、LVS0节点上的conntrackd守护进程继续工作,将状态为ESTABLISHED 的conntrack通过组播方法再次同步到LVS1节点上;
13)、服务器server1在收到LVS0转发过来的ack包之后,此时与客户端 client1之间的TCP连接已经建立,可以进行接下来的可靠通信服务,同时LVS0 节点与LVS1节点都同时维护该连接的所述状态为ESTABLISHED的conntrack, 此时任何一台节点发生故障,都不会影响TCP连接的正常使用。
进一步的,所述拉起conntrackd守护进程,即TCP连接conntrack同步进 程。
本方法针对大规模公有云环境中由四层负载均衡器故障导致的客户端与服 务器之间TCP连接中断问题,提出了在多主节点之间同步conntrack,既可以解 决系统的高可用问题,还可以提高云平台的资源利用率,在一定程度上提升了 云平台系统的数据平面性能;同时该方法还可以有效的消除由于四层负载均衡 器故障导致的客户端与服务器之间TCP连接中断的问题,在不影响负载均衡功 能与高可用性的情况下,提升公有云平台性能,提高云上业务的用户体验并压 缩云平台的部署成本。
本发明还要求保护基于四层负载均衡集群的同步conntrack系统,该系统 采用四层负载均衡器多主集群架构部署模式,所有的负载均衡器节点都处于工 作状态;
在多个主用四层负载均衡器节点上运行conntrackd守护进程,实时抽取节 点上内核维护的TCP连接的conntrack;
使用conntrackd自带的组播同步机制,将conntrack同步到所有的主用负 载均衡器节点上。
进一步的,所述四层负载均衡器使用Linux内核自带的LVS模块。
进一步的,当客户端向服务器发送的TCP连接请求时,主用四层负载均衡 器节点A获取syn包并创建该客户端与服务器的TCP连接conntrack,设定所述 conntrack状态为syn_sent并通过组播方法发送给其他主用负载均衡器节点; 其他主用负载均衡器节点接收到所述conntrack后,其conntrackd守护进程将 该conntrack加入到内核维护的列表中;
所述其他主用负载均衡器节点接收服务器回复的syn_ack包,其内核协议 栈检索出所述状态为syn_sent的conntrack表项,并将syn_ack包转发给客户 端,同时修改conntrack状态为syn_recv并通过组播方法同步到主用四层负载 均衡器节点A;
主用四层负载均衡器节点A收到客户端发送的ack包,其内核协议栈检索 出所述状态为syn_recv的conntrack表项,并将ack包转发给服务器,同时修 改conntrack状态为established并通过组播方法同步到所述其他主用四层负 载均衡器节点;
所述主用四层负载均衡器节点A与所述其他主用四层负载均衡器节点共同 维护所述状态为established的conntrack。
优选的,主用四层负载均衡器包括两个,分别设为均衡器LVS0节点和均衡 器LVS1节点,则该系统实现同步conntrack的具体过程如下:
1)、启动主用四层负载均衡器LVS0节点,然后拉起conntrackd守护进程;
2)、启动主用四层负载均衡器LVS1节点,然后拉起conntrackd守护进程;
3)、客户端client1向服务器server1发送TCP连接请求报文,实际的TCP 连接请求syn包会被路由到主用四层负载均衡器LVS0节点上;
4)、LVS0节点收到客户端client1发来的TCP连接请求的syn包之后,创 建客户端client1与服务器server1的TCP连接conntrack,并将其状态设置为 SYN_SENT,然后将syn包转发到server1服务器上;
5)、LVS0节点的conntrackd守护进程此时开始工作,取出该状态为 SYN_SENT的conntrack,然后通过组播方法发送给LVS1节点;
6)、LVS1节点在接收到LVS0节点发送过来的同步conntrack之后, conntrackd守护进程将该状态为SYN_SENT的conntrack加入到内核维护的列表 中;
7)、server1在收到LVS0转发过来的syn包之后,知道此时有客户端向其 发起TCP连接请求,所以会向LVS1节点回复syn_ack包;
8)、LVS1在收到server1发来的syn_ack包之后,内核协议栈会检索自身 维护的conntrack列表,结果检索出LVS0同步过来的状态为SYN_SENT的 conntrack表项,此时LVS1会将该conntrack设置成SYN_RECV状态,然后将 syn_ack包转发给客户端client1;
9)、LVS1节点上的conntrackd守护进程继续工作,将conntrack-SYN_RECV 通过组播方法再次同步到LVS0节点上;
10)、客户端client1在收到LVS1节点转发过来的syn_ack包之后,明白 服务器server1已经收到自己的syn包,所以此时会向LVS0节点发出ack包已 完成TCP连接的握手流程;
11)、LVS0节点在收到client1发来的ack包之后,内核协议栈会检索自身 维护的conntrack列表,结果检索出LVS1同步过来的状态为SYN_RECV的 conntrack表项,此时LVS0会将该conntrack设置成ESTABLISHED状态,然后 将ack包转发给服务器server1;
12)、LVS0节点上的conntrackd守护进程继续工作,将状态为ESTABLISHED 的conntrack通过组播方法再次同步到LVS1节点上
13)、服务器server1在收到LVS0转发过来的ack包之后,此时与客户端 client1之间的TCP连接已经建立,可以进行接下来的可靠通信服务,同时LVS0 节点与LVS1节点都同时维护该连接的状态为ESTABLISHED的conntrack,此时 任何一台节点发生故障,都不会影响TCP连接的正常使用。
本发明还要求保护基于四层负载均衡集群的同步conntrack装置,其特征在 于包括:至少一个存储器和至少一个处理器;
所述至少一个存储器,用于存储机器可读程序;
所述至少一个处理器,用于调用所述机器可读程序,执行上述的基于四层 负载均衡集群的同步conntrack的方法。
本发明的基于四层负载均衡集群的同步conntrack方法、系统及装置与现有 技术相比,具有以下有益效果:
使用四层负载均衡多主集群,可以解决公有云平台的负载均衡问题。
使用多主集群模式部署四层负载均衡器,实现了负载均衡功能的高可用性, 并有效的提高资源利用率。
使用TCP连接的conntrack同步机制,消除了由于四层负载均衡器故障导致 的客户端与服务器之间的TCP连接被迫中断的情况,提升用户体验。
附图说明
图1是本发明实施例提供的基于四层负载均衡集群的同步conntrack的系统 架构图;
图2是本发明实施例提供的TCP连接的conntrack格式示例图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明。
本发明实施例提供了基于四层负载均衡集群的同步conntrack方法,采用 四层负载均衡器多主集群架构部署模式,所有的负载均衡器节点都处于工作状 态;
在多个主用四层负载均衡器节点上运行conntrackd守护进程,实时抽取节 点上内核维护的TCP连接的conntrack;
使用conntrackd自带的组播同步机制,将conntrack同步到所有的主用负 载均衡器节点上。
本方法中,四层负载均衡器使用Linux内核自带的LVS模块,LVS是一个基 于Linux内核的高性能四层负载均衡器(Layer-4 Load Balancer);同时使用 conntrackd守护进程负责多个负载均衡节点之间的conntrack同步工作, conntrackd是一款基于iptables服务的工作在用户态的开源软件,可以在多个 主用负载均衡节点之间使用组播方法同步TCP连接的conntrack,可靠性与实时 性都有很高的保障。
本方法提出的基于四层负载均衡多主集群的TCP连接conntrack同步的方 法,四层负载均衡器集群采用多主的部署方法,所有的负载均衡器节点都处于 工作状态;conntrackd守护进程需要采用组播方法同步各个四层均衡器节点的 conntrack,对于集群数目的动态弹缩有很大帮助。该方法既可以解决系统的高 可用问题,还可以提高云平台的资源利用率,在一定程度上提升了云平台系统 的数据平面性能;同时该方法还可以有效的消除由于四层负载均衡器故障导致 的客户端与服务器之间TCP连接中断的问题,在不影响负载均衡功能与高可用 性的情况下,提升公有云平台性能,提高云上业务的用户体验并压缩云平台的 部署成本。
当客户端向服务器发送的TCP连接请求时,主用四层负载均衡器节点A获 取syn包并创建该客户端与服务器的TCP连接conntrack,设定所述conntrack 状态为syn_sent并通过组播方法发送给其他主用负载均衡器节点;其他主用负 载均衡器节点接收到所述conntrack后,其conntrackd守护进程将该conntrack 加入到内核维护的列表中;
所述其他主用负载均衡器节点接收服务器回复的syn_ack包,其内核协议 栈检索出所述状态为syn_sent的conntrack表项,并将syn_ack包转发给客户 端,同时修改conntrack状态为syn_recv并通过组播方法同步到主用四层负载 均衡器节点A;
主用四层负载均衡器节点A收到客户端发送的ack包,其内核协议栈检索 出所述状态为syn_recv的conntrack表项,并将ack包转发给服务器,同时修 改conntrack状态为established并通过组播方法同步到所述其他主用四层负 载均衡器节点;
所述主用四层负载均衡器节点A与所述其他主用四层负载均衡器节点共同 维护所述状态为established的conntrack。
以图1所示为例,代表用户的一个虚机(client1)向代表公有云服务器的 另一台虚机(server1)发起TCP通信,主用四层负载均衡器包括两个,分别设为 均衡器LVS0节点和均衡器LVS1节点,则该方法的具体实现过程如下:
1)、启动主用四层负载均衡器LVS0节点,然后拉起conntrackd守护进程 (TCP连接conntrack同步进程);
2)、启动主用四层负载均衡器LVS1节点,然后拉起conntrackd守护进程 (TCP连接conntrack同步进程);
3)、客户端client1向服务器server1发送TCP连接请求报文,实际的TCP 连接请求syn包会被路由到主用四层负载均衡器LVS0节点上;
4)、LVS0节点收到客户端client1发来的TCP连接请求的syn包之后,创 建客户端client1与服务器server1的TCP连接conntrack,并将其状态设置为 SYN_SENT,然后将syn包转发到服务器server1上;
5)、LVS0节点的conntrackd守护进程此时开始工作,取出该conntrack (SYN_SENT),然后通过组播方法发送给LVS1节点;
6)、LVS1节点在接收到LVS0节点发送过来的同步conntrack之后, conntrackd守护进程将该conntrack(SYN_SENT)加入到内核维护的列表中;
7)、服务器server1在收到LVS0转发过来的syn包之后,知道此时有客户 端向其发起TCP连接请求,所以会向LVS1节点回复syn_ack包;
8)、LVS1在收到服务器server1发来的syn_ack包之后,内核协议栈会检 索自身维护的conntrack列表,结果检索出LVS0同步过来的conntrack (SYN_SENT)表项,此时LVS1会将该conntrack设置成SYN_RECV状态,然后 将syn_ack包转发给客户端client1;
9)、LVS1节点上的conntrackd守护进程继续工作,将conntrack(SYN_RECV) 通过组播方法再次同步到LVS0节点上;
10)、客户端client1在收到LVS1节点转发过来的syn_ack包之后,明白 服务器server1已经收到自己的syn包,所以此时会向LVS0节点发出ack包已 完成TCP连接的握手流程;
11)、LVS0节点在收到客户端client1发来的ack包之后,内核协议栈会检 索自身维护的conntrack列表,结果检索出LVS1同步过来的conntrack (SYN_RECV)表项,此时LVS0会将该conntrack设置成ESTABLISHED状态,然 后将ack包转发给服务器server1;
12)、LVS0节点上的conntrackd守护进程继续工作,将conntrack (ESTABLISHED)通过组播方法再次同步到LVS1节点上;
13)、服务器server1在收到LVS0转发过来的ack包之后,此时与客户端 client1之间的TCP连接已经建立,可以进行接下来的可靠通信服务,同时LVS0 节点与LVS1节点都同时维护该连接的conntrack(ESTABLISHED),此时任何一 台节点发生故障,都不会影响TCP连接的正常使用。
本发明实施例还提供基于四层负载均衡集群的同步conntrack系统,该系 统采用四层负载均衡器多主集群架构部署模式,所有的负载均衡器节点都处于 工作状态;
在多个主用四层负载均衡器节点上运行conntrackd守护进程,实时抽取节 点上内核维护的TCP连接的conntrack;
使用conntrackd自带的组播同步机制,将conntrack同步到所有的主用负 载均衡器节点上。
所述四层负载均衡器使用Linux内核自带的LVS模块。
当客户端向服务器发送的TCP连接请求时,主用四层负载均衡器节点A获 取syn包并创建该客户端与服务器的TCP连接conntrack,设定所述conntrack 状态为syn_sent并通过组播方法发送给其他主用负载均衡器节点;其他主用负 载均衡器节点接收到所述conntrack后,其conntrackd守护进程将该conntrack 加入到内核维护的列表中;
所述其他主用负载均衡器节点接收服务器回复的syn_ack包,其内核协议 栈检索出所述状态为syn_sent的conntrack表项,并将syn_ack包转发给客户 端,同时修改conntrack状态为syn_recv并通过组播方法同步到主用四层负载 均衡器节点A;
主用四层负载均衡器节点A收到客户端发送的ack包,其内核协议栈检索 出所述状态为syn_recv的conntrack表项,并将ack包转发给服务器,同时修 改conntrack状态为established并通过组播方法同步到所述其他主用四层负 载均衡器节点;
所述主用四层负载均衡器节点A与所述其他主用四层负载均衡器节点共同 维护所述状态为established的conntrack。
参考图1所示,代表用户的一个虚机(client1)向代表公有云服务器的另 一台虚机(server1)发起TCP通信,主用四层负载均衡器包括两个,分别设为均 衡器LVS0节点和均衡器LVS1节点,则该系统实现同步conntrack的具体过程如 下:
1)、启动主用四层负载均衡器LVS0节点,然后拉起conntrackd守护进程 (TCP连接conntrack同步进程);
2)、启动主用四层负载均衡器LVS1节点,然后拉起conntrackd守护进程 (TCP连接conntrack同步进程);
3)、客户端client1向服务器server1发送TCP连接请求报文,实际的TCP 连接请求syn包会被路由到主用四层负载均衡器LVS0节点上;
4)、LVS0节点收到客户端client1发来的TCP连接请求的syn包之后,创 建客户端client1与服务器server1的TCP连接conntrack,并将其状态设置为 SYN_SENT,然后将syn包转发到服务器server1上;
5)、LVS0节点的conntrackd守护进程此时开始工作,取出该conntrack (SYN_SENT),然后通过组播方法发送给LVS1节点;
6)、LVS1节点在接收到LVS0节点发送过来的同步conntrack之后, conntrackd守护进程将该conntrack(SYN_SENT)加入到内核维护的列表中;
7)、服务器server1在收到LVS0转发过来的syn包之后,知道此时有客户 端向其发起TCP连接请求,所以会向LVS1节点回复syn_ack包;
8)、LVS1在收到服务器server1发来的syn_ack包之后,内核协议栈会检 索自身维护的conntrack列表,结果检索出LVS0同步过来的conntrack (SYN_SENT)表项,此时LVS1会将该conntrack设置成SYN_RECV状态,然后 将syn_ack包转发给客户端client1;
9)、LVS1节点上的conntrackd守护进程继续工作,将conntrack(SYN_RECV) 通过组播方法再次同步到LVS0节点上;
10)、客户端client1在收到LVS1节点转发过来的syn_ack包之后,明白 服务器server1已经收到自己的syn包,所以此时会向LVS0节点发出ack包已 完成TCP连接的握手流程;
11)、LVS0节点在收到客户端client1发来的ack包之后,内核协议栈会检 索自身维护的conntrack列表,结果检索出LVS1同步过来的conntrack (SYN_RECV)表项,此时LVS0会将该conntrack设置成ESTABLISHED状态,然 后将ack包转发给服务器server1;
12)、LVS0节点上的conntrackd守护进程继续工作,将conntrack (ESTABLISHED)通过组播方法再次同步到LVS1节点上;
13)、服务器server1在收到LVS0转发过来的ack包之后,此时与客户端 client1之间的TCP连接已经建立,可以进行接下来的可靠通信服务,同时LVS0 节点与LVS1节点都同时维护该连接的conntrack(ESTABLISHED),此时任何一 台节点发生故障,都不会影响TCP连接的正常使用。
本系统针对公有云环境下的四层负载均衡器集群,采用多主的集群部署模 式,提出了一种在多台主用负载均衡器之间同步TCP连接conntrack的方法, 在不影响负载均衡器集群正常功能的情况下,相对于主备集群的部署模式,多 主用部署模式可以最大程度的提高资源利用率并提升用户体验。
本系统针对大规模公有云环境中由四层负载均衡器故障导致的客户端与服 务器之间TCP连接中断问题,提出了在多主节点之间同步conntrack,既可以解 决系统的高可用问题,还可以提高云平台的资源利用率,在一定程度上提升了 云平台系统的数据平面性能;同时该方法还可以有效的消除由于四层负载均衡 器故障导致的客户端与服务器之间TCP连接中断的问题,在不影响负载均衡功 能与高可用性的情况下,提升公有云平台性能,提高云上业务的用户体验并压 缩云平台的部署成本。
本发明实施例还提供基于四层负载均衡集群的同步conntrack装置,其特征 在于包括:至少一个存储器和至少一个处理器;
所述至少一个存储器,用于存储机器可读程序;
所述至少一个处理器,用于调用所述机器可读程序,执行上述的方法。
通过上面具体实施方式,所述技术领域的技术人员可容易的实现本发明。 但是应当理解,本发明并不限于上述的具体实施方式。在公开的实施方式的基 础上,所述技术领域的技术人员可任意组合不同的技术特征,从而实现不同的 技术方案。
除说明书所述的技术特征外,均为本专业技术人员的已知技术。

Claims (10)

1.基于四层负载均衡集群的同步conntrack方法,其特征在于,采用四层负载均衡器多主集群架构部署模式,所有的负载均衡器节点都处于工作状态;
在多个主用四层负载均衡器节点上运行conntrackd守护进程,实时抽取节点上内核维护的TCP连接的conntrack;
使用conntrackd自带的组播同步机制,将conntrack同步到所有的主用负载均衡器节点上。
2.根据权利要求1所述的基于四层负载均衡集群的同步conntrack方法,其特征在于,所述四层负载均衡器使用Linux内核自带的LVS模块。
3.根据权利要求1或2所述的基于四层负载均衡集群的同步conntrack方法,其特征在于,当客户端向服务器发送的TCP连接请求时,主用四层负载均衡器节点A获取syn包并创建该客户端与服务器的TCP连接conntrack,设定所述conntrack状态为syn_sent并通过组播方法发送给其他主用负载均衡器节点;其他主用负载均衡器节点接收到所述conntrack后,其conntrackd守护进程将该conntrack加入到内核维护的列表中;
所述其他主用负载均衡器节点接收服务器回复的syn_ack包,其内核协议栈检索出所述状态为syn_sent的conntrack表项,并将syn_ack包转发给客户端,同时修改conntrack状态为syn_recv并通过组播方法同步到主用四层负载均衡器节点A;
主用四层负载均衡器节点A收到客户端发送的ack包,其内核协议栈检索出所述状态为syn_recv的conntrack表项,并将ack包转发给服务器,同时修改conntrack状态为established并通过组播方法同步到所述其他主用四层负载均衡器节点;
所述主用四层负载均衡器节点A与所述其他主用四层负载均衡器节点共同维护所述状态为established的conntrack。
4.根据权利要求3所述的基于四层负载均衡集群的同步conntrack方法,其特征在于,主用四层负载均衡器包括两个,分别设为均衡器LVS0节点和均衡器LVS1节点,则该方法的具体实现过程如下:
1)、启动主用四层负载均衡器LVS0节点,然后拉起conntrackd守护进程;
2)、启动主用四层负载均衡器LVS1节点,然后拉起conntrackd守护进程;
3)、客户端client1向服务器server1发送TCP连接请求报文,实际的TCP连接请求syn包会被路由到主用四层负载均衡器LVS0节点上;
4)、LVS0节点收到客户端client1发来的TCP连接请求的syn包之后,创建客户端client1与服务器server1的TCP连接conntrack,并将其状态设置为SYN_SENT,然后将syn包转发到服务器server1上;
5)、LVS0节点的conntrackd守护进程此时开始工作,取出所述状态为SYN_SENT的conntrack,然后通过组播方法发送给LVS1节点;
6)、LVS1节点在接收到LVS0节点发送过来的同步conntrack之后,conntrackd守护进程将所述状态为SYN_SENT的conntrack加入到内核维护的列表中;
7)、服务器server1在收到LVS0转发过来的syn包之后,知道此时有客户端向其发起TCP连接请求,所以会向LVS1节点回复syn_ack包;
8)、LVS1在收到服务器server1发来的syn_ack包之后,内核协议栈会检索自身维护的conntrack列表,结果检索出LVS0同步过来的状态为SYN_SENT的conntrack表项,此时LVS1会将该conntrack设置成SYN_RECV状态,然后将syn_ack包转发给客户端client1;
9)、LVS1节点上的conntrackd守护进程继续工作,将状态为SYN_RECV的conntrack通过组播方法再次同步到LVS0节点上;
10)、客户端client1在收到LVS1节点转发过来的syn_ack包之后,明白服务器server1已经收到自己的syn包,所以此时会向LVS0节点发出ack包已完成TCP连接的握手流程;
11)、LVS0节点在收到客户端client1发来的ack包之后,内核协议栈会检索自身维护的conntrack列表,结果检索出LVS1同步过来的状态为SYN_RECV的conntrack表项,此时LVS0会将该conntrack设置成ESTABLISHED状态,然后将ack包转发给服务器server1;
12)、LVS0节点上的conntrackd守护进程继续工作,将状态为ESTABLISHED的conntrack通过组播方法再次同步到LVS1节点上;
13)、服务器server1在收到LVS0转发过来的ack包之后,此时与客户端client1之间的TCP连接已经建立,可以进行接下来的可靠通信服务,同时LVS0节点与LVS1节点都同时维护该连接的所述状态为ESTABLISHED的conntrack,此时任何一台节点发生故障,都不会影响TCP连接的正常使用。
5.根据权利要求4所述的基于四层负载均衡集群的同步conntrack方法,其特征在于,所述拉起conntrackd守护进程,即TCP连接conntrack同步进程。
6.基于四层负载均衡集群的同步conntrack系统,其特征在于,该系统采用四层负载均衡器多主集群架构部署模式,所有的负载均衡器节点都处于工作状态;
在多个主用四层负载均衡器节点上运行conntrackd守护进程,实时抽取节点上内核维护的TCP连接的conntrack;
使用conntrackd自带的组播同步机制,将conntrack同步到所有的主用负载均衡器节点上。
7.根据权利要求6所述的基于四层负载均衡集群的同步conntrack系统,其特征在于,所述四层负载均衡器使用Linux内核自带的LVS模块。
8.根据权利要求6或7所述的基于四层负载均衡集群的同步conntrack系统,其特征在于,当客户端向服务器发送的TCP连接请求时,主用四层负载均衡器节点A获取syn包并创建该客户端与服务器的TCP连接conntrack,设定所述conntrack状态为syn_sent并通过组播方法发送给其他主用负载均衡器节点;其他主用负载均衡器节点接收到所述conntrack后,其conntrackd守护进程将该conntrack加入到内核维护的列表中;
所述其他主用负载均衡器节点接收服务器回复的syn_ack包,其内核协议栈检索出所述状态为syn_sent的conntrack表项,并将syn_ack包转发给客户端,同时修改conntrack状态为syn_recv并通过组播方法同步到主用四层负载均衡器节点A;
主用四层负载均衡器节点A收到客户端发送的ack包,其内核协议栈检索出所述状态为syn_recv的conntrack表项,并将ack包转发给服务器,同时修改conntrack状态为established并通过组播方法同步到所述其他主用四层负载均衡器节点;
所述主用四层负载均衡器节点A与所述其他主用四层负载均衡器节点共同维护所述状态为established的conntrack。
9.根据权利要求8所述的基于四层负载均衡集群的同步conntrack系统,其特征在于,主用四层负载均衡器包括两个,分别设为均衡器LVS0节点和均衡器LVS1节点,则该系统实现同步conntrack的具体过程如下:
1)、启动主用四层负载均衡器LVS0节点,然后拉起conntrackd守护进程;
2)、启动主用四层负载均衡器LVS1节点,然后拉起conntrackd守护进程;
3)、客户端client1向服务器server1发送TCP连接请求报文,实际的TCP连接请求syn包会被路由到主用四层负载均衡器LVS0节点上;
4)、LVS0节点收到客户端client1发来的TCP连接请求的syn包之后,创建客户端client1与服务器server1的TCP连接conntrack,并将其状态设置为SYN_SENT,然后将syn包转发到服务器server1上;
5)、LVS0节点的conntrackd守护进程此时开始工作,取出所述状态为SYN_SENT的conntrack,然后通过组播方法发送给LVS1节点;
6)、LVS1节点在接收到LVS0节点发送过来的同步conntrack之后,conntrackd守护进程将所述状态为SYN_SENT的conntrack加入到内核维护的列表中;
7)、服务器server1在收到LVS0转发过来的syn包之后,知道此时有客户端向其发起TCP连接请求,所以会向LVS1节点回复syn_ack包;
8)、LVS1在收到服务器server1发来的syn_ack包之后,内核协议栈会检索自身维护的conntrack列表,结果检索出LVS0同步过来的状态为SYN_SENT的conntrack表项,此时LVS1会将该conntrack设置成SYN_RECV状态,然后将syn_ack包转发给客户端client1;
9)、LVS1节点上的conntrackd守护进程继续工作,将状态为SYN_RECV的conntrack通过组播方法再次同步到LVS0节点上;
10)、客户端client1在收到LVS1节点转发过来的syn_ack包之后,明白服务器server1已经收到自己的syn包,所以此时会向LVS0节点发出ack包已完成TCP连接的握手流程;
11)、LVS0节点在收到客户端client1发来的ack包之后,内核协议栈会检索自身维护的conntrack列表,结果检索出LVS1同步过来的状态为SYN_RECV的conntrack表项,此时LVS0会将该conntrack设置成ESTABLISHED状态,然后将ack包转发给服务器server1;
12)、LVS0节点上的conntrackd守护进程继续工作,将状态为ESTABLISHED的conntrack通过组播方法再次同步到LVS1节点上;
13)、服务器server1在收到LVS0转发过来的ack包之后,此时与客户端client1之间的TCP连接已经建立,可以进行接下来的可靠通信服务,同时LVS0节点与LVS1节点都同时维护该连接的所述状态为ESTABLISHED的conntrack,此时任何一台节点发生故障,都不会影响TCP连接的正常使用。
10.基于四层负载均衡集群的同步conntrack装置,其特征在于包括:至少一个存储器和至少一个处理器;
所述至少一个存储器,用于存储机器可读程序;
所述至少一个处理器,用于调用所述机器可读程序,执行权利要求1至5任一所述的方法。
CN202211227076.9A 2022-10-09 2022-10-09 基于四层负载均衡集群的同步conntrack方法、系统及装置 Pending CN115665048A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211227076.9A CN115665048A (zh) 2022-10-09 2022-10-09 基于四层负载均衡集群的同步conntrack方法、系统及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211227076.9A CN115665048A (zh) 2022-10-09 2022-10-09 基于四层负载均衡集群的同步conntrack方法、系统及装置

Publications (1)

Publication Number Publication Date
CN115665048A true CN115665048A (zh) 2023-01-31

Family

ID=84986474

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211227076.9A Pending CN115665048A (zh) 2022-10-09 2022-10-09 基于四层负载均衡集群的同步conntrack方法、系统及装置

Country Status (1)

Country Link
CN (1) CN115665048A (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111404730A (zh) * 2020-03-04 2020-07-10 无锡华云数据技术服务有限公司 一种虚拟路由器的状态同步方法、装置、电子设备及存储介质
CN111756780A (zh) * 2019-03-27 2020-10-09 厦门网宿有限公司 一种同步连接信息的方法和负载均衡系统
CN113422844A (zh) * 2021-06-21 2021-09-21 浪潮云信息技术股份公司 一种实现双活网络地址转换网关的方法
CN114598704A (zh) * 2022-03-16 2022-06-07 浪潮云信息技术股份公司 基于四层负载均衡集群的tcp连接容错方法
CN114785807A (zh) * 2022-03-16 2022-07-22 深信服科技股份有限公司 一种数据处理方法、装置、电子设备及存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111756780A (zh) * 2019-03-27 2020-10-09 厦门网宿有限公司 一种同步连接信息的方法和负载均衡系统
CN111404730A (zh) * 2020-03-04 2020-07-10 无锡华云数据技术服务有限公司 一种虚拟路由器的状态同步方法、装置、电子设备及存储介质
CN113422844A (zh) * 2021-06-21 2021-09-21 浪潮云信息技术股份公司 一种实现双活网络地址转换网关的方法
CN114598704A (zh) * 2022-03-16 2022-06-07 浪潮云信息技术股份公司 基于四层负载均衡集群的tcp连接容错方法
CN114785807A (zh) * 2022-03-16 2022-07-22 深信服科技股份有限公司 一种数据处理方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
EP3490224B1 (en) Data synchronization method and system
CN107483390B (zh) 一种云渲染网络部署子系统、系统及云渲染平台
CN103841179B (zh) 云桌面系统
US9049230B2 (en) Backup method and backup device for TCP connection
CN107528891B (zh) 一种基于WebSocket的自动集群方法及其系统
US20020169889A1 (en) Zero-loss web service system and method
CN111277629A (zh) 一种基于高可用性的web高并发系统及方法
CN102833337A (zh) 一种ftp文件上传、下载方法及装置
JPH08511889A (ja) 拡張プログラム間通信サーバ
CN107682442B (zh) 一种Web连接方法及装置
CN102523118A (zh) 一种局域网内多套控制计算机构成的冗余控制系统与方法
CN112565425B (zh) 在多个跨云服务器主机会话的云应用程序间进行拷贝粘贴的方法
CN106331147B (zh) 一种redis分布式调用方法
CN112583895B (zh) Tcp通信方法、系统及装置
CN104954101B (zh) 基于同步ack的多终端数据同步方法
CN107248978A (zh) 一种消息监听处理方法及系统
CN107071067B (zh) 一种基于Cgo的高性能证券行情接入系统和方法
CN110187972A (zh) 一种基于api的软负载均衡实现方案
CN107872492B (zh) 一种在服务端支持多用户编辑数据对象的方法和装置
CN109088918B (zh) 一种交互方法、客户端设备及服务端设备
CN101702673A (zh) 基于bs架构的负载均衡方法
CN114598704B (zh) 基于四层负载均衡集群的tcp连接容错方法
CN103501299A (zh) 集群防火墙的管理方法和系统
CN115665048A (zh) 基于四层负载均衡集群的同步conntrack方法、系统及装置
CN111880932A (zh) 一种基于多网口的数据存储方法及装置

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