一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

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

2023-02-02 03:28:00 来源:中国专利 TAG:
1.本发明涉及云计算及计算机网络
技术领域
:,具体地说是基于四层负载均衡集群的同步conntrack方法、系统及装置。
背景技术
::2.近年来公有云虚拟网络高速发展,巨量的高并发请求给云平台服务器带来了空前的压力,而负载均衡集群技术成为解决巨量高并发问题的重要方案,其中四层负载均衡集群在大规模公有云的虚拟网络实现中有着广泛的应用,其通过将巨量的用户请求均匀的分配到系统中的服务器节点上,达到负载均衡的目的,解决了系统的高并发问题,采用主备的集群部署方式,也提高了负载均衡功能的高可用性。但是这种部署架构并没有解决由四层负载均衡器故障导致的tcp连接中断问题,也无法提高云平台资源的利用率。比如在线上交易的环境中,客户端与服务器之间的tcp连接中断,必然会导致整个线上交易的失败,这种情况一旦发生,在给客户带来损失的同时,也降低了公有云平台的用户体验。同时采用主备集群的部署方式,备用负载均衡器并未处于工作状态,这会造成一定程度上的资源浪费,变相提高了云平台的部署成本。技术实现要素:3.本发明的技术任务是针对以上不足之处,提供基于四层负载均衡集群的同步conntrack方法、系统及装置,能够在不影响云平台负载均衡功能的同时提升云上业务的用户体验,同时使用多主用的集群部署模式来提高资源利用率。4.本发明解决其技术问题所采用的技术方案是:5.基于四层负载均衡集群的同步conntrack方法,采用四层负载均衡器多主集群架构部署模式,所有的负载均衡器节点都处于工作状态;6.在多个主用四层负载均衡器节点上运行conntrackd守护进程,实时抽取节点上内核维护的tcp连接的conntrack;7.使用conntrackd自带的组播同步机制,将conntrack同步到所有的主用负载均衡器节点上。8.本方法提出一种基于四层负载均衡多主集群的tcp连接conntrack同步的方法,四层负载均衡器集群采用多主的部署方法,所有的负载均衡器节点都处于工作状态;conntrackd守护进程需要采用组播方法同步各个四层均衡器节点的conntrack,对于集群数目的动态弹缩有很大帮助。9.本方法针对公有云环境下的四层负载均衡器集群,采用多主的集群部署模式,提出了一种在多台主用负载均衡器之间同步tcp连接conntrack的方法,在不影响负载均衡器集群正常功能的情况下,相对于主备集群的部署模式,多主用部署模式可以最大程度的提高资源利用率并提升用户体验。10.进一步的,所述四层负载均衡器使用linux内核自带的lvs模块。11.进一步的,当客户端向服务器发送的tcp连接请求时,主用四层负载均衡器节点a获取syn包并创建该客户端与服务器的tcp连接conntrack,设定所述conntrack状态为syn_sent并通过组播方法发送给其他主用负载均衡器节点;其他主用负载均衡器节点接收到所述conntrack后,其conntrackd守护进程将该conntrack加入到内核维护的列表中;12.所述其他主用负载均衡器节点接收服务器回复的syn_ack包,其内核协议栈检索出所述状态为syn_sent的conntrack表项,并将syn_ack包转发给客户端,同时修改conntrack状态为syn_recv并通过组播方法同步到主用四层负载均衡器节点a;13.主用四层负载均衡器节点a收到客户端发送的ack包,其内核协议栈检索出所述状态为syn_recv的conntrack表项,并将ack包转发给服务器,同时修改conntrack状态为established并通过组播方法同步到所述其他主用四层负载均衡器节点;14.所述主用四层负载均衡器节点a与所述其他主用四层负载均衡器节点共同维护所述状态为established的conntrack。15.优选的,主用四层负载均衡器包括两个,分别设为均衡器lvs0节点和均衡器lvs1节点,则该方法的具体实现过程如下:16.1)、启动主用四层负载均衡器lvs0节点,然后拉起conntrackd守护进程;17.2)、启动主用四层负载均衡器lvs1节点,然后拉起conntrackd守护进程;18.3)、客户端client1向服务器server1发送tcp连接请求报文,实际的tcp连接请求syn包会被路由到主用四层负载均衡器lvs0节点上;19.4)、lvs0节点收到客户端client1发来的tcp连接请求的syn包之后,创建客户端client1与服务器server1的tcp连接conntrack,并将其状态设置为syn_sent,然后将syn包转发到服务器server1上;20.5)、lvs0节点的conntrackd守护进程此时开始工作,取出所述状态为syn_sent的conntrack,然后通过组播方法发送给lvs1节点;21.6)、lvs1节点在接收到lvs0节点发送过来的同步conntrack之后,conntrackd守护进程将所述状态为syn_sent的conntrack加入到内核维护的列表中;22.7)、服务器server1在收到lvs0转发过来的syn包之后,知道此时有客户端向其发起tcp连接请求,所以会向lvs1节点回复syn_ack包;23.8)、lvs1在收到服务器server1发来的syn_ack包之后,内核协议栈会检索自身维护的conntrack列表,结果检索出lvs0同步过来的状态为syn_sent的conntrack表项,此时lvs1会将该conntrack设置成syn_recv状态,然后将syn_ack包转发给客户端client1;24.9)、lvs1节点上的conntrackd守护进程继续工作,将状态为syn_recv的conntrack通过组播方法再次同步到lvs0节点上;25.10)、客户端client1在收到lvs1节点转发过来的syn_ack包之后,明白服务器server1已经收到自己的syn包,所以此时会向lvs0节点发出ack包已完成tcp连接的握手流程;26.11)、lvs0节点在收到客户端client1发来的ack包之后,内核协议栈会检索自身维护的conntrack列表,结果检索出lvs1同步过来的状态为syn_recv的conntrack表项,此时lvs0会将该conntrack设置成established状态,然后将ack包转发给服务器server1;27.12)、lvs0节点上的conntrackd守护进程继续工作,将状态为established的conntrack通过组播方法再次同步到lvs1节点上;28.13)、服务器server1在收到lvs0转发过来的ack包之后,此时与客户端client1之间的tcp连接已经建立,可以进行接下来的可靠通信服务,同时lvs0节点与lvs1节点都同时维护该连接的所述状态为established的conntrack,此时任何一台节点发生故障,都不会影响tcp连接的正常使用。29.进一步的,所述拉起conntrackd守护进程,即tcp连接conntrack同步进程。30.本方法针对大规模公有云环境中由四层负载均衡器故障导致的客户端与服务器之间tcp连接中断问题,提出了在多主节点之间同步conntrack,既可以解决系统的高可用问题,还可以提高云平台的资源利用率,在一定程度上提升了云平台系统的数据平面性能;同时该方法还可以有效的消除由于四层负载均衡器故障导致的客户端与服务器之间tcp连接中断的问题,在不影响负载均衡功能与高可用性的情况下,提升公有云平台性能,提高云上业务的用户体验并压缩云平台的部署成本。31.本发明还要求保护基于四层负载均衡集群的同步conntrack系统,该系统采用四层负载均衡器多主集群架构部署模式,所有的负载均衡器节点都处于工作状态;32.在多个主用四层负载均衡器节点上运行conntrackd守护进程,实时抽取节点上内核维护的tcp连接的conntrack;33.使用conntrackd自带的组播同步机制,将conntrack同步到所有的主用负载均衡器节点上。34.进一步的,所述四层负载均衡器使用linux内核自带的lvs模块。35.进一步的,当客户端向服务器发送的tcp连接请求时,主用四层负载均衡器节点a获取syn包并创建该客户端与服务器的tcp连接conntrack,设定所述conntrack状态为syn_sent并通过组播方法发送给其他主用负载均衡器节点;其他主用负载均衡器节点接收到所述conntrack后,其conntrackd守护进程将该conntrack加入到内核维护的列表中;36.所述其他主用负载均衡器节点接收服务器回复的syn_ack包,其内核协议栈检索出所述状态为syn_sent的conntrack表项,并将syn_ack包转发给客户端,同时修改conntrack状态为syn_recv并通过组播方法同步到主用四层负载均衡器节点a;37.主用四层负载均衡器节点a收到客户端发送的ack包,其内核协议栈检索出所述状态为syn_recv的conntrack表项,并将ack包转发给服务器,同时修改conntrack状态为established并通过组播方法同步到所述其他主用四层负载均衡器节点;38.所述主用四层负载均衡器节点a与所述其他主用四层负载均衡器节点共同维护所述状态为established的conntrack。39.优选的,主用四层负载均衡器包括两个,分别设为均衡器lvs0节点和均衡器lvs1节点,则该系统实现同步conntrack的具体过程如下:40.1)、启动主用四层负载均衡器lvs0节点,然后拉起conntrackd守护进程;41.2)、启动主用四层负载均衡器lvs1节点,然后拉起conntrackd守护进程;42.3)、客户端client1向服务器server1发送tcp连接请求报文,实际的tcp连接请求syn包会被路由到主用四层负载均衡器lvs0节点上;43.4)、lvs0节点收到客户端client1发来的tcp连接请求的syn包之后,创建客户端client1与服务器server1的tcp连接conntrack,并将其状态设置为syn_sent,然后将syn包转发到server1服务器上;44.5)、lvs0节点的conntrackd守护进程此时开始工作,取出该状态为syn_sent的conntrack,然后通过组播方法发送给lvs1节点;45.6)、lvs1节点在接收到lvs0节点发送过来的同步conntrack之后,conntrackd守护进程将该状态为syn_sent的conntrack加入到内核维护的列表中;46.7)、server1在收到lvs0转发过来的syn包之后,知道此时有客户端向其发起tcp连接请求,所以会向lvs1节点回复syn_ack包;47.8)、lvs1在收到server1发来的syn_ack包之后,内核协议栈会检索自身维护的conntrack列表,结果检索出lvs0同步过来的状态为syn_sent的conntrack表项,此时lvs1会将该conntrack设置成syn_recv状态,然后将syn_ack包转发给客户端client1;48.9)、lvs1节点上的conntrackd守护进程继续工作,将conntrack-syn_recv通过组播方法再次同步到lvs0节点上;49.10)、客户端client1在收到lvs1节点转发过来的syn_ack包之后,明白服务器server1已经收到自己的syn包,所以此时会向lvs0节点发出ack包已完成tcp连接的握手流程;50.11)、lvs0节点在收到client1发来的ack包之后,内核协议栈会检索自身维护的conntrack列表,结果检索出lvs1同步过来的状态为syn_recv的conntrack表项,此时lvs0会将该conntrack设置成established状态,然后将ack包转发给服务器server1;51.12)、lvs0节点上的conntrackd守护进程继续工作,将状态为established的conntrack通过组播方法再次同步到lvs1节点上52.13)、服务器server1在收到lvs0转发过来的ack包之后,此时与客户端client1之间的tcp连接已经建立,可以进行接下来的可靠通信服务,同时lvs0节点与lvs1节点都同时维护该连接的状态为established的conntrack,此时任何一台节点发生故障,都不会影响tcp连接的正常使用。53.本发明还要求保护基于四层负载均衡集群的同步conntrack装置,其特征在于包括:至少一个存储器和至少一个处理器;54.所述至少一个存储器,用于存储机器可读程序;55.所述至少一个处理器,用于调用所述机器可读程序,执行上述的基于四层负载均衡集群的同步conntrack的方法。56.本发明的基于四层负载均衡集群的同步conntrack方法、系统及装置与现有技术相比,具有以下有益效果:57.使用四层负载均衡多主集群,可以解决公有云平台的负载均衡问题。58.使用多主集群模式部署四层负载均衡器,实现了负载均衡功能的高可用性,并有效的提高资源利用率。59.使用tcp连接的conntrack同步机制,消除了由于四层负载均衡器故障导致的客户端与服务器之间的tcp连接被迫中断的情况,提升用户体验。附图说明60.图1是本发明实施例提供的基于四层负载均衡集群的同步conntrack的系统架构图;61.图2是本发明实施例提供的tcp连接的conntrack格式示例图。具体实施方式62.下面结合附图和具体实施例对本发明作进一步说明。63.本发明实施例提供了基于四层负载均衡集群的同步conntrack方法,采用四层负载均衡器多主集群架构部署模式,所有的负载均衡器节点都处于工作状态;64.在多个主用四层负载均衡器节点上运行conntrackd守护进程,实时抽取节点上内核维护的tcp连接的conntrack;65.使用conntrackd自带的组播同步机制,将conntrack同步到所有的主用负载均衡器节点上。66.本方法中,四层负载均衡器使用linux内核自带的lvs模块,lvs是一个基于linux内核的高性能四层负载均衡器(layer-4loadbalancer);同时使用conntrackd守护进程负责多个负载均衡节点之间的conntrack同步工作,conntrackd是一款基于iptables服务的工作在用户态的开源软件,可以在多个主用负载均衡节点之间使用组播方法同步tcp连接的conntrack,可靠性与实时性都有很高的保障。67.本方法提出的基于四层负载均衡多主集群的tcp连接conntrack同步的方法,四层负载均衡器集群采用多主的部署方法,所有的负载均衡器节点都处于工作状态;conntrackd守护进程需要采用组播方法同步各个四层均衡器节点的conntrack,对于集群数目的动态弹缩有很大帮助。该方法既可以解决系统的高可用问题,还可以提高云平台的资源利用率,在一定程度上提升了云平台系统的数据平面性能;同时该方法还可以有效的消除由于四层负载均衡器故障导致的客户端与服务器之间tcp连接中断的问题,在不影响负载均衡功能与高可用性的情况下,提升公有云平台性能,提高云上业务的用户体验并压缩云平台的部署成本。68.当客户端向服务器发送的tcp连接请求时,主用四层负载均衡器节点a获取syn包并创建该客户端与服务器的tcp连接conntrack,设定所述conntrack状态为syn_sent并通过组播方法发送给其他主用负载均衡器节点;其他主用负载均衡器节点接收到所述conntrack后,其conntrackd守护进程将该conntrack加入到内核维护的列表中;69.所述其他主用负载均衡器节点接收服务器回复的syn_ack包,其内核协议栈检索出所述状态为syn_sent的conntrack表项,并将syn_ack包转发给客户端,同时修改conntrack状态为syn_recv并通过组播方法同步到主用四层负载均衡器节点a;70.主用四层负载均衡器节点a收到客户端发送的ack包,其内核协议栈检索出所述状态为syn_recv的conntrack表项,并将ack包转发给服务器,同时修改conntrack状态为established并通过组播方法同步到所述其他主用四层负载均衡器节点;71.所述主用四层负载均衡器节点a与所述其他主用四层负载均衡器节点共同维护所述状态为established的conntrack。72.以图1所示为例,代表用户的一个虚机(client1)向代表公有云服务器的另一台虚机(server1)发起tcp通信,主用四层负载均衡器包括两个,分别设为均衡器lvs0节点和均衡器lvs1节点,则该方法的具体实现过程如下:73.1)、启动主用四层负载均衡器lvs0节点,然后拉起conntrackd守护进程(tcp连接conntrack同步进程);74.2)、启动主用四层负载均衡器lvs1节点,然后拉起conntrackd守护进程(tcp连接conntrack同步进程);75.3)、客户端client1向服务器server1发送tcp连接请求报文,实际的tcp连接请求syn包会被路由到主用四层负载均衡器lvs0节点上;76.4)、lvs0节点收到客户端client1发来的tcp连接请求的syn包之后,创建客户端client1与服务器server1的tcp连接conntrack,并将其状态设置为syn_sent,然后将syn包转发到服务器server1上;77.5)、lvs0节点的conntrackd守护进程此时开始工作,取出该conntrack(syn_sent),然后通过组播方法发送给lvs1节点;78.6)、lvs1节点在接收到lvs0节点发送过来的同步conntrack之后,conntrackd守护进程将该conntrack(syn_sent)加入到内核维护的列表中;79.7)、服务器server1在收到lvs0转发过来的syn包之后,知道此时有客户端向其发起tcp连接请求,所以会向lvs1节点回复syn_ack包;80.8)、lvs1在收到服务器server1发来的syn_ack包之后,内核协议栈会检索自身维护的conntrack列表,结果检索出lvs0同步过来的conntrack(syn_sent)表项,此时lvs1会将该conntrack设置成syn_recv状态,然后将syn_ack包转发给客户端client1;81.9)、lvs1节点上的conntrackd守护进程继续工作,将conntrack(syn_recv)通过组播方法再次同步到lvs0节点上;82.10)、客户端client1在收到lvs1节点转发过来的syn_ack包之后,明白服务器server1已经收到自己的syn包,所以此时会向lvs0节点发出ack包已完成tcp连接的握手流程;83.11)、lvs0节点在收到客户端client1发来的ack包之后,内核协议栈会检索自身维护的conntrack列表,结果检索出lvs1同步过来的conntrack(syn_recv)表项,此时lvs0会将该conntrack设置成established状态,然后将ack包转发给服务器server1;84.12)、lvs0节点上的conntrackd守护进程继续工作,将conntrack(established)通过组播方法再次同步到lvs1节点上;85.13)、服务器server1在收到lvs0转发过来的ack包之后,此时与客户端client1之间的tcp连接已经建立,可以进行接下来的可靠通信服务,同时lvs0节点与lvs1节点都同时维护该连接的conntrack(established),此时任何一台节点发生故障,都不会影响tcp连接的正常使用。86.本发明实施例还提供基于四层负载均衡集群的同步conntrack系统,该系统采用四层负载均衡器多主集群架构部署模式,所有的负载均衡器节点都处于工作状态;87.在多个主用四层负载均衡器节点上运行conntrackd守护进程,实时抽取节点上内核维护的tcp连接的conntrack;88.使用conntrackd自带的组播同步机制,将conntrack同步到所有的主用负载均衡器节点上。89.所述四层负载均衡器使用linux内核自带的lvs模块。90.当客户端向服务器发送的tcp连接请求时,主用四层负载均衡器节点a获取syn包并创建该客户端与服务器的tcp连接conntrack,设定所述conntrack状态为syn_sent并通过组播方法发送给其他主用负载均衡器节点;其他主用负载均衡器节点接收到所述conntrack后,其conntrackd守护进程将该conntrack加入到内核维护的列表中;91.所述其他主用负载均衡器节点接收服务器回复的syn_ack包,其内核协议栈检索出所述状态为syn_sent的conntrack表项,并将syn_ack包转发给客户端,同时修改conntrack状态为syn_recv并通过组播方法同步到主用四层负载均衡器节点a;92.主用四层负载均衡器节点a收到客户端发送的ack包,其内核协议栈检索出所述状态为syn_recv的conntrack表项,并将ack包转发给服务器,同时修改conntrack状态为established并通过组播方法同步到所述其他主用四层负载均衡器节点;93.所述主用四层负载均衡器节点a与所述其他主用四层负载均衡器节点共同维护所述状态为established的conntrack。94.参考图1所示,代表用户的一个虚机(client1)向代表公有云服务器的另一台虚机(server1)发起tcp通信,主用四层负载均衡器包括两个,分别设为均衡器lvs0节点和均衡器lvs1节点,则该系统实现同步conntrack的具体过程如下:95.1)、启动主用四层负载均衡器lvs0节点,然后拉起conntrackd守护进程(tcp连接conntrack同步进程);96.2)、启动主用四层负载均衡器lvs1节点,然后拉起conntrackd守护进程(tcp连接conntrack同步进程);97.3)、客户端client1向服务器server1发送tcp连接请求报文,实际的tcp连接请求syn包会被路由到主用四层负载均衡器lvs0节点上;98.4)、lvs0节点收到客户端client1发来的tcp连接请求的syn包之后,创建客户端client1与服务器server1的tcp连接conntrack,并将其状态设置为syn_sent,然后将syn包转发到服务器server1上;99.5)、lvs0节点的conntrackd守护进程此时开始工作,取出该conntrack(syn_sent),然后通过组播方法发送给lvs1节点;100.6)、lvs1节点在接收到lvs0节点发送过来的同步conntrack之后,conntrackd守护进程将该conntrack(syn_sent)加入到内核维护的列表中;101.7)、服务器server1在收到lvs0转发过来的syn包之后,知道此时有客户端向其发起tcp连接请求,所以会向lvs1节点回复syn_ack包;102.8)、lvs1在收到服务器server1发来的syn_ack包之后,内核协议栈会检索自身维护的conntrack列表,结果检索出lvs0同步过来的conntrack(syn_sent)表项,此时lvs1会将该conntrack设置成syn_recv状态,然后将syn_ack包转发给客户端client1;103.9)、lvs1节点上的conntrackd守护进程继续工作,将conntrack(syn_recv)通过组播方法再次同步到lvs0节点上;104.10)、客户端client1在收到lvs1节点转发过来的syn_ack包之后,明白服务器server1已经收到自己的syn包,所以此时会向lvs0节点发出ack包已完成tcp连接的握手流程;105.11)、lvs0节点在收到客户端client1发来的ack包之后,内核协议栈会检索自身维护的conntrack列表,结果检索出lvs1同步过来的conntrack(syn_recv)表项,此时lvs0会将该conntrack设置成established状态,然后将ack包转发给服务器server1;106.12)、lvs0节点上的conntrackd守护进程继续工作,将conntrack(established)通过组播方法再次同步到lvs1节点上;107.13)、服务器server1在收到lvs0转发过来的ack包之后,此时与客户端client1之间的tcp连接已经建立,可以进行接下来的可靠通信服务,同时lvs0节点与lvs1节点都同时维护该连接的conntrack(established),此时任何一台节点发生故障,都不会影响tcp连接的正常使用。108.本系统针对公有云环境下的四层负载均衡器集群,采用多主的集群部署模式,提出了一种在多台主用负载均衡器之间同步tcp连接conntrack的方法,在不影响负载均衡器集群正常功能的情况下,相对于主备集群的部署模式,多主用部署模式可以最大程度的提高资源利用率并提升用户体验。109.本系统针对大规模公有云环境中由四层负载均衡器故障导致的客户端与服务器之间tcp连接中断问题,提出了在多主节点之间同步conntrack,既可以解决系统的高可用问题,还可以提高云平台的资源利用率,在一定程度上提升了云平台系统的数据平面性能;同时该方法还可以有效的消除由于四层负载均衡器故障导致的客户端与服务器之间tcp连接中断的问题,在不影响负载均衡功能与高可用性的情况下,提升公有云平台性能,提高云上业务的用户体验并压缩云平台的部署成本。110.本发明实施例还提供基于四层负载均衡集群的同步conntrack装置,其特征在于包括:至少一个存储器和至少一个处理器;111.所述至少一个存储器,用于存储机器可读程序;112.所述至少一个处理器,用于调用所述机器可读程序,执行上述的方法。113.通过上面具体实施方式,所述
技术领域
:的技术人员可容易的实现本发明。但是应当理解,本发明并不限于上述的具体实施方式。在公开的实施方式的基础上,所述
技术领域
:的技术人员可任意组合不同的技术特征,从而实现不同的技术方案。114.除说明书所述的技术特征外,均为本专业技术人员的已知技术。当前第1页12当前第1页12
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献