CN114598704B - 基于四层负载均衡集群的tcp连接容错方法 - Google Patents

基于四层负载均衡集群的tcp连接容错方法 Download PDF

Info

Publication number
CN114598704B
CN114598704B CN202210256773.0A CN202210256773A CN114598704B CN 114598704 B CN114598704 B CN 114598704B CN 202210256773 A CN202210256773 A CN 202210256773A CN 114598704 B CN114598704 B CN 114598704B
Authority
CN
China
Prior art keywords
session
tcp connection
layer load
node
standby
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
CN202210256773.0A
Other languages
English (en)
Other versions
CN114598704A (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.)
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 CN202210256773.0A priority Critical patent/CN114598704B/zh
Publication of CN114598704A publication Critical patent/CN114598704A/zh
Application granted granted Critical
Publication of CN114598704B publication Critical patent/CN114598704B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0663Performing the actions predefined by failover planning, e.g. switching to standby network elements
    • 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/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1034Reaction to server failures by a load balancer
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明提供一种基于四层负载均衡集群的TCP连接容错方法,属于云计算领域和计算机网络领域,采用主备四层负载均衡器集群架构部署,在各个主备用四层负载均衡器节点上分别引入TCP连接session抽取JOB,并引入保活进程,用于实时反馈各个主备四层负载均衡器的运行状态。本发明消除了由于四层负载均衡器故障导致的客户端与服务器之间的TCP连接被迫中断的情况,提升用户体验。

Description

基于四层负载均衡集群的TCP连接容错方法
技术领域
本发明涉及云计算领域和计算机网络领域,尤其涉及一种基于四层负载均衡集群的TCP连接容错方法。
背景技术
近年来公有云虚拟网络高速发展,巨量的高并发请求给云平台服务器带来了空前的压力,而负载均衡集群技术成为解决巨量高并发问题的重要方案,其中四层负载均衡集群在大规模公有云的虚拟网络实现中有着广泛的应用,其通过将巨量的用户请求均匀的分配到系统中的服务器节点上,达到负载均衡的目的,解决了系统的高并发问题,同时采用集群的部署方式,也提高了负载均衡功能的高可用性。但是这种部署架构并没有解决由四层负载均衡器故障导致的TCP连接中断问题,我们知道随着电子商务的发展,对网络服务的可用性要求越来越高,比如在线上交易的环境中,客户端与服务器之间的TCP连接中断,必然会导致整个线上交易的失败,这种情况一旦发生,在给客户带来损失的同时,也降低了公有云平台的用户体验。
发明内容
针对大规模公有云环境中由四层负载均衡器故障导致的TCP连接中断问题,本发明提供了一种基于四层负载均衡集群的TCP连接容错方法,在不影响云平台负载均衡功能的同时提升云上业务的用户体验。
本发明的技术方案是:
基于四层负载均衡集群的TCP连接容错方法,
包括:
1)采用主备四层负载均衡器集群架构部署;
2)在各个主用四层负载均衡器节点上引入一个TCP连接session抽取JOB,用于抽取该四层负载均衡器负责管理的客户端与服务器之间建立的TCP连接;
3)在各个备用四层负载均衡器节点上引入一个TCP连接session注入JOB,用于将主用四层负载均衡器负责管理的TCP连接注入到备用四层负载均衡器节点中去;
4)在各个主备四层负载均衡器上引入TCP连接session同步JOB,用于主备四层负载均衡器之间同步TCP连接的session;
5)在各个主备四层负载均衡器节点上引入保活进程,用于实时反馈各个主备四层负载均衡器的运行状态,并决策出主用与备用负载均衡器。
进一步的,
主用四层负载均衡器启动时拉起的TCP连接session抽取JOB,主用四层负载均衡器创建一个TCP连接session之后,TCP连接session抽取JOB会抽取该session,并将其加入到出站同步队列中去;
主用四层负载均衡器启动时拉起的TCP连接session同步JOB,自动检索出站同步队列,然后通过网络组播方法,将其发送给备用负载均衡器。
备用四层负载均衡器启动时拉起的TCP连接session注入JOB,自动检索入站同步队列,然后将该session加入到备用四层负载均衡器中去。
再进一步的,
启动保活进程,实时反馈节点的运行状态,并通过VRRP协议分发节点网口的IP地址与MAC地址。
如果主用四层负载均衡器节点发生故障,首先内核网口上的保活进程会率先反馈主用负载均衡器节点异常,然后通过VRRP协议将主用四层负载均衡器节点上网口的VIP(Virtual IP)地址漂移到备用四层负载均衡器节点上的网口,将主用四层负载均衡器节点上的网口的LIP(Local IP)地址漂移到备用四层负载均衡器节点上的dpdk1网口;这时由于备用四层负载均衡器节点的SAPOOL中已经含有该TCP连接的session,所以客户端与服务器的TCP连接并不会中断,仍然可以正常工作提供TCP连接服务。
如果主用四层负载均衡器节点没有发生故障,客户端与服务器的TCP连接被其中一方主动停止,备用四层负载均衡器节点会释放该session,然后使用tcp_session_ext_job抽取该session,加入到出站同步队列中去,接着使用tcp_session_syn_job检索出站同步队列,取出该session进行封装得到session_del,并通过组播方法发送给备用四层负载均衡器节点。
备用四层负载均衡器节点在收到主用四层负载均衡器节点发来的session_del之后,使用tcp_session_syn_job方法进行反封装,然后将session加入到入站同步队列中去,接着使用tcp_session_add_job检索入站同步队列取出该session,然后检索备用四层负载均衡器节点节点的SAPOOL(session address pool)并释放该session,完成同步释放的流程。
本发明的有益效果是
1)使用四层负载均衡集群,可以解决公有云平台的负载均衡问题。
2)使用集群模式部署四层负载均衡器,实现了负载均衡功能的高可用性。
3)使用TCP连接容错机制,消除了由于四层负载均衡器故障导致的客户端与服务器之间的TCP连接被迫中断的情况,提升用户体验。
附图说明
图1是本发明的系统架构示意图;
图2是TCP连接的session格式示意图;
图3是主备四层负载均衡器同步数据的格式示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明针对公有云环境下的四层负载均衡器集群,提出了一种实现TCP连接容错的方法,消除了由于四层负载均衡器故障导致的客户端与服务器之间的TCP连接被迫中断的情况,提升用户体验。
包括:
1)采用主备四层负载均衡器集群架构部署;
2)在各个主用四层负载均衡器节点上引入一个TCP连接session抽取JOB,用于抽取该四层负载均衡器负责管理的客户端与服务器之间建立的TCP连接;
3)在各个备用四层负载均衡器节点上引入一个TCP连接session注入JOB,用于将主用四层负载均衡器负责管理的TCP连接注入到备用四层负载均衡器节点中去;
4)在各个主备四层负载均衡器上引入TCP连接session同步JOB,用于主备四层负载均衡器之间同步TCP连接的session;
5)在各个主备四层负载均衡器节点上引入保活进程,用于实时反馈各个主备四层负载均衡器的运行状态,并决策出主用与备用负载均衡器;
如图1所示,代表用户的一个虚机(client1)向代表公有云服务器的另一台虚机(server1)发起TCP通信,具体操作过程如下:
1、启动主用四层负载均衡器DPVS-Master节点,然后拉起tcp_session_ext_job(TCP连接session抽取JOB),tcp_session_add_job(TCP连接session注入JOB),tcp_session_syn_job(TCP连接session同步JOB)。
2、启动备用四层负载均衡器DPVS-Slave节点,然后拉起tcp_session_ext_job(TCP连接session抽取JOB),tcp_session_add_job(TCP连接session注入JOB),tcp_session_syn_job(TCP连接session同步JOB)。
3、在DPVS-Master节点的dpdk0-kni内核网口与dpdk1-kni内核网口上启动保活进程,实时反馈DPVS-Master节点的运行状态,并通过VRRP协议分发DPVS-Master节点的dpdk1网口与dpdk0网口的IP地址与MAC地址。
4、在DPVS-Slave节点的dpdk0-kni内核网口与dpdk1-kni内核网口上启动保活进程,实时反馈DPVS-Master节点的运行状态。
5、客户端client1向服务器server1发送TCP连接请求报文,实际的TCP连接请求会被路由到主用四层负载均衡器DPVS-Master节点上。
6、DPVS-Master节点收到client1发来的TCP连接请求之后,创建client1与server1的TCP连接session,完成其负载均衡的使命,然后tcp_session_ext_job将该session从SAPOOL(session address pool)中抽取出来,并加入到出站同步队列中去。
7、DPVS-Master节点的tcp_session_syn_job检索出站同步队列,取出session并进行封装得到session_add,然后通过组播方法发送给备用DPVS-Slave节点。
8、DPVS-Slave节点在接收到DPVS-Master节点发送过来的同步session_add之后,使用tcp_session_syn_job将session_add反封装并加入到DPVS-Slave节点的入站同步队列中去。
9、DPVS-Slave节点使用tcp_session_add_job检索入站同步队列,取出session并将其注入到DPVS-Slave节点的SAPOOL(session address pool)中去,完成同步加载的流程。
10、此时如果主用DPVS-Master节点发生故障,首先内核网口dpdk0-kni与dpdk1-kni上的保活进程会率先反馈主用负载均衡器节点异常,然后通过VRRP协议将DPVS-Master节点上的dpdk0网口的VIP(Virtual IP)地址漂移到DPVS-Slave节点上的dpdk0网口,将DPVS-Master节点上的dpdk1网口的LIP(Local IP)地址漂移到DPVS-Slave节点上的dpdk1网口;这时由于DPVS-Slave节点的SAPOOL中已经含有该TCP连接的session,所以客户端与服务器的TCP连接并不会中断,仍然可以正常工作提供TCP连接服务。
11、如果主用DPVS-Master节点没有发生故障,客户端与服务器的TCP连接被其中一方主动停止,DPVS-Master节点会释放该session,然后使用tcp_session_ext_job抽取该session,加入到出站同步队列中去,接着使用tcp_session_syn_job检索出站同步队列,取出该session进行封装得到session_del,并通过组播方法发送给DPVS-Slave节点。
12、备用DPVS-Slave节点在收到主用DPVS-Master节点发来的session_del之后,使用tcp_session_syn_job方法进行反封装,然后将session加入到入站同步队列中去,接着使用tcp_session_add_job检索入站同步队列取出该session,然后检索DPVS-Slave节点的SAPOOL(session address pool)并释放该session,完成同步释放的流程。
其它情况的说明:
本发明中四层负载均衡器使用DPVS软件,DPVS是一个基于DPDK的高性能四层负载均衡器(Layer-4 Load Balancer),DPVS的名字来源于DPDK+LVS。DPDK(Data PlaneDevelopment Kit数据平面开发套件)提供用户空间下驱动程序的支持,也就是说网卡驱动是运行在用户空间的,减下了报文在用户空间和内核空间的多次拷贝,同时DPDK绕过了Linux内核的网络驱动模块,直接从网络硬件到达用户空间,不需要进行频繁的内存拷贝和系统调用。另外利用DPDK工作在用户空间的特性,相比于内核空间的LVS,不仅提升了负载均衡功能的效率,还可以使用用户空间的一系列工具/中间件等完成很多在内核空间很难完成的功能。
以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (7)

1.基于四层负载均衡集群的TCP连接容错方法,其特征在于,
包括:
1)采用主备四层负载均衡器集群架构部署;
2)在各个主用四层负载均衡器节点上引入一个TCP连接session抽取JOB,用于抽取该四层负载均衡器负责管理的客户端与服务器之间建立的TCP连接;
3)在各个备用四层负载均衡器节点上引入一个TCP连接session注入JOB,用于将主用四层负载均衡器负责管理的TCP连接注入到备用四层负载均衡器节点中去;
4)在各个主备四层负载均衡器上引入TCP连接session同步JOB,用于主备四层负载均衡器之间同步TCP连接的session;
5)在各个主备四层负载均衡器节点上引入保活进程,用于实时反馈各个主备四层负载均衡器的运行状态,并决策出主用与备用负载均衡器;
如果节点DPVS-Master发生故障,首先内核网口上的保活进程会率先反馈节点DPVS-Master异常,然后通过VRRP协议将节点DPVS-Master上dpdk0网口的Virtual IP地址漂移到节点DPVS-Slave上的dpdk0网口,将节点DPVS-Master上的dpdk1网口的Local IP地址漂移到节点DPVS-Slave上的dpdk1网口;这时由于节点DPVS-Slave的SAPOOL中已经含有该TCP连接的session,所以客户端与服务器的TCP连接并不会中断,仍然可以正常工作提供TCP连接服务。
2.根据权利要求1所述的方法,其特征在于,
主用四层负载均衡器启动时拉起的TCP连接session抽取JOB,主用四层负载均衡器创建一个TCP连接session之后,TCP连接session抽取JOB会抽取该session,并将其加入到出站同步队列中去。
3.根据权利要求2所述的方法,其特征在于,
主用四层负载均衡器启动时拉起的TCP连接session同步JOB,自动检索出站同步队列,然后通过网络组播方法,将其发送给备用负载均衡器。
4.根据权利要求3所述的方法,其特征在于,
备用四层负载均衡器启动时拉起的TCP连接session注入JOB,自动检索入站同步队列,然后将该session加入到备用四层负载均衡器中去。
5.根据权利要求1所述的方法,其特征在于,
启动保活进程,实时反馈节点的运行状态,并通过VRRP协议分发节点网口的IP地址与MAC地址。
6.根据权利要求5所述的方法,其特征在于,
如果节点DPVS-Master没有发生故障,客户端与服务器的TCP连接被其中一方主动停止,节点DPVS-Master会释放该TCP连接的session,然后使用tcp_session_ext_job抽取该session,加入到出站同步队列中去,接着使用tcp_session_syn_job检索出站同步队列,取出该session进行封装得到session_del,并通过组播方法发送给节点DPVS-Slave。
7.根据权利要求6所述的方法,其特征在于,
备用四层负载均衡器节点在收到DPVS-Master 节点发来的session_del之后,使用tcp_session_syn_job方法进行反封装,然后将session加入到入站同步队列中去,接着使用tcp_session_add_job检索入站同步队列取出该session,然后检索备用四层负载均衡器节点节点的session address pool并释放该session,完成同步释放的流程。
CN202210256773.0A 2022-03-16 2022-03-16 基于四层负载均衡集群的tcp连接容错方法 Active CN114598704B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210256773.0A CN114598704B (zh) 2022-03-16 2022-03-16 基于四层负载均衡集群的tcp连接容错方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210256773.0A CN114598704B (zh) 2022-03-16 2022-03-16 基于四层负载均衡集群的tcp连接容错方法

Publications (2)

Publication Number Publication Date
CN114598704A CN114598704A (zh) 2022-06-07
CN114598704B true CN114598704B (zh) 2024-05-17

Family

ID=81816679

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210256773.0A Active CN114598704B (zh) 2022-03-16 2022-03-16 基于四层负载均衡集群的tcp连接容错方法

Country Status (1)

Country Link
CN (1) CN114598704B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115665048B (zh) * 2022-10-09 2024-09-27 浪潮云信息技术股份公司 基于四层负载均衡集群的同步conntrack方法、系统及装置

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103477600A (zh) * 2010-04-07 2013-12-25 惠普发展公司有限责任合伙企业 设备消息传送
CN104468151A (zh) * 2013-09-13 2015-03-25 华耀(中国)科技有限公司 一种集群切换时保持tcp会话的系统和方法
CN106549875A (zh) * 2015-09-18 2017-03-29 中国移动通信集团浙江有限公司 一种会话管理方法、装置及负载均衡器
CN110674143A (zh) * 2019-10-18 2020-01-10 长春理工大学 一种免耕机作业信息监测系统及方法
CN111385324A (zh) * 2018-12-28 2020-07-07 广州市百果园信息技术有限公司 一种数据通信方法、装置、设备和存储介质
CN111416851A (zh) * 2020-03-16 2020-07-14 优刻得科技股份有限公司 在多个负载均衡器之间进行会话同步的方法和负载均衡器
CN111756780A (zh) * 2019-03-27 2020-10-09 厦门网宿有限公司 一种同步连接信息的方法和负载均衡系统
US11178230B1 (en) * 2020-10-01 2021-11-16 Vmware, Inc. Dynamically managing keepalive status for client-server connections

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7272653B2 (en) * 2000-09-28 2007-09-18 International Business Machines Corporation System and method for implementing a clustered load balancer
US9935880B2 (en) * 2012-01-12 2018-04-03 Telefonaktiebolaget Lm Ericsson (Publ) Systems and methods for scalable and resilient load balancing
JP5935622B2 (ja) * 2012-09-18 2016-06-15 富士通株式会社 情報処理装置,監視装置,情報処理方法,及び監視プログラム
US10038626B2 (en) * 2013-04-16 2018-07-31 Amazon Technologies, Inc. Multipath routing in a distributed load balancer
US9813385B2 (en) * 2015-02-10 2017-11-07 DeNA Co., Ltd. Method and system for load balancing

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103477600A (zh) * 2010-04-07 2013-12-25 惠普发展公司有限责任合伙企业 设备消息传送
CN104468151A (zh) * 2013-09-13 2015-03-25 华耀(中国)科技有限公司 一种集群切换时保持tcp会话的系统和方法
CN106549875A (zh) * 2015-09-18 2017-03-29 中国移动通信集团浙江有限公司 一种会话管理方法、装置及负载均衡器
CN111385324A (zh) * 2018-12-28 2020-07-07 广州市百果园信息技术有限公司 一种数据通信方法、装置、设备和存储介质
CN111756780A (zh) * 2019-03-27 2020-10-09 厦门网宿有限公司 一种同步连接信息的方法和负载均衡系统
CN110674143A (zh) * 2019-10-18 2020-01-10 长春理工大学 一种免耕机作业信息监测系统及方法
CN111416851A (zh) * 2020-03-16 2020-07-14 优刻得科技股份有限公司 在多个负载均衡器之间进行会话同步的方法和负载均衡器
US11178230B1 (en) * 2020-10-01 2021-11-16 Vmware, Inc. Dynamically managing keepalive status for client-server connections

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
一种有效的Web负载均衡器的设计与实现;唐海涛;王树义;孙效里;;计算机工程(第20期);全文 *

Also Published As

Publication number Publication date
CN114598704A (zh) 2022-06-07

Similar Documents

Publication Publication Date Title
US7844851B2 (en) System and method for protecting against failure through geo-redundancy in a SIP server
US8171466B2 (en) Hitless application upgrade for SIP server architecture
US20020169889A1 (en) Zero-loss web service system and method
CN109151045B (zh) 一种分布式云系统及监控方法
CN111949444A (zh) 一种基于分布式服务集群的数据备份与恢复系统及方法
CN103475566A (zh) 一种实时消息交换平台及分布式集群组建方法
WO2016186530A1 (en) Systems and methods for determining routing information for a network request
CN107528891B (zh) 一种基于WebSocket的自动集群方法及其系统
CN113821268B (zh) 一种与OpenStack Neutron融合的Kubernetes网络插件方法
WO2008122887A1 (en) Method and system for extending the services provided by an enterprise service bus
CN106657354A (zh) 一种负载均衡装置和方法
US10069941B2 (en) Scalable event-based notifications
CN105338095A (zh) 一种会话数据处理方法和装置
WO2023046088A1 (zh) 一种应用于音视频数据传输的端到端系统解决方法
CN111404628B (zh) 一种时间同步方法和装置
CN114598704B (zh) 基于四层负载均衡集群的tcp连接容错方法
CN106385334A (zh) 呼叫中心系统及其异常检测及自恢复方法
CN115878384A (zh) 一种基于备份容灾系统的分布式集群及构建方法
CN107800737A (zh) 一种服务器集群中主节点的确定方法、装置及服务器集群
CN105553682A (zh) 事件通知方法及用于事件通知的系统
CN115296848A (zh) 一种基于多局域网环境的堡垒机系统及堡垒机访问方法
CN113839862A (zh) Mclag邻居之间同步arp信息的方法、系统、终端及存储介质
CN111756780B (zh) 一种同步连接信息的方法和负载均衡系统
CN105490847B (zh) 一种私有云存储系统中节点故障实时检测及处理方法
CN112073499A (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
GR01 Patent grant
GR01 Patent grant