一种负载均衡处理方法及装置与流程

文档序号:11995325阅读:148来源:国知局
一种负载均衡处理方法及装置与流程
本发明涉及数据通信领域,尤其涉及一种负载均衡处理方法及装置。

背景技术:
IP网络的作用是不同的局域网络(也可理解为一个二层广播域)相连,其可以屏蔽掉不同局域网络之间差异,比如说链路层面收发技术差异。在IPv4网络中,主机之间使用IP地址相互通信。当主机与局域网内部的其他主机通信时,其可以通过地址解析协议--ARP协议获知其他主机的实际地址(通常是MAC地址),在IPv6网络中,则相应采用ND协议作为地址解析协议。在发送报文时,封装其他主机的MAC地址,局域网内的交换机可以根据MAC地址将报文转发给对应的其他主机。这个过程中报文的传递过程主要依据MAC地址这个二层的地址,因此这个通信过程通常被称为二层通信。但是当主机需要与位于不同的局域网中的其他主机通信时,其无法通过ARP协议得知其他主机的MAC地址,此时需要通过网关来进行通信。主机通过自身缺省的路由将报文发送给网关,网关根据报文的IP地址决定从哪个链路将报文发送出去,这个过程报文从局域网进入IP网络再到达其他主机所在的局域网。在IP网络中的传递过程主要依据IP地址来决定转发的方向,因此这个通信过程通常被称为三层通信。而网关可以形象地理解为主机与外部通信时投递信件的当地邮局,当地邮局可以将主机的信件准确地送到另一个距离很远收信者所在的邮局,该邮局再将信件送达当地真正收信人。通常同一网段内(可能有多个局域网)的所有主机上都存在以一个相同网关为下一跳的缺省路由,比如一个中等规模的企业中,其可能有数百台主机同时通过相同的网关与外部通信。当网关发生故障时,这个网段内所有以网关为缺省路由的主机将无法与外部网络通信。很明显,网关是主机与外部通信的关键节点,有必要提高该节点的可靠性以及冗余性。VRRP技术是一种常用的解决网关冗余性的技术。VRRP(VirtualRouterRedundancyProtocol,虚拟网络设备冗余协议)将可以承担网关功能的一组网络设备(比如路由器或者具备路由功能的三层交换机)加入到VRRP备份组中,形成一台虚拟网络设备,由VRRP的选举机制决定哪台网络设备承担转发任务,局域网内的主机只需将虚拟网络设备配置为缺省网关。VRRP协议可以在提高可靠性的同时简化主机的配置。在具有多播或广播能力的局域网(如以太网)中,借助VRRP能在某台网络设备出现故障时仍然提供高可靠的缺省链路,有效避免单一链路发生故障后网络中断的问题,而无需修改动态路由协议、路由发现协议等配置信息。在VRRP标准协议模式下,一个备份组中只有主设备(Master)可以转发来自用户主机的报文,备用设备(Backup)处于监听状态,其并不转发报文。虽然创建多个备份组可以实现多个网络设备之间的负载分担,但是局域网内的主机需要设置不同的网关,增加了配置的复杂性。VRRP负载均衡模式在VRRP标准模式提供的虚拟网关冗余备份功能基础上,增加了负载均衡功能。其实现原理为:将一个虚拟IP地址与多个虚拟MAC地址相对应,备份组中的每个网络设备都对应使用一个虚拟MAC地址;使用不同的虚拟MAC地址应答主机的地址解析ARP(IPv4网络中)或ND(IPv6网络中)请求,从而使得不同主机获得相同的网关IP地址,不同的网关MAC地址。这样就能实现主机报文发送到备份组中不同的网络设备,实现负载分担功能。在VRRP负载均衡模式中,只需创建一个备份组,就可以实现备份组中多个网络设备之间的负载分担,避免了VRRP备份组中Backup网络设备始终处于空闲状态、网络资源利用率不高的问题。VRRP负载均衡模式中,Master设备负责为备份组中的其他设备分配虚拟MAC地址,并为来自不同主机的ARP或ND请求,应答不同的虚拟MAC地址,从而实现流量在多个网络设备之间分担。备份组中的Backup网络设备被禁止应答主机的ARP/ND请求。请参考图1,以IPv4网络为例,VRRP负载均衡模式的具体工作过程为:步骤一,Master设备为备份组中的网络设备(包括Master自身)分配虚拟MAC地址。如图1所示,虚拟IP地址为10.1.1.1/24的备份组中,RouterA作为Master,RouterB作为Backup。RouterA为自己分配的虚拟MAC地址为000f-e2ff-0011,为RouterB分配的虚拟MAC地址为000f-e2ff-0012。步骤二,Master设备接收到HostA或发送的目标IP地址为虚拟IP地址(也就是网关的IP地址)的ARP请求后,根据负载均衡算法使用不同的虚拟MAC地址应答主机的ARP请求。如图1所示,HostA发送ARP请求获取网关10.1.1.1对应的MAC地址时,Master(即RouterA)使用RouterA的虚拟MAC地址应答该请求;HostB发送ARP请求获取网关10.1.1.1对应的MAC地址时,Master使用RouterB的虚拟MAC地址应答该请求。步骤三,通过使用不同的虚拟MAC地址应答主机的ARP请求,可以实现不同主机的流量发送给不同的网络设备。如图1所示,HostA认为网关的MAC地址为RouterA的虚拟MAC地址,HostA发送报文时,其填写的目的MAC地址将是RouterA的虚拟MAC地址,这就保证了HostA发往外部的报文将全部通过RouterA转发;同样的道理HostB发往外部的报文将全部通过RouterB转发。从协议层面来所,为了实现VRRP负载均衡模式,其中定义了四种协议报文。Advertisement报文:不仅用于通告本路由器上备份组的状态,还用于通告本路由器上处于Active状态的虚拟转发器信息。Master和Backup设备均周期性发送该报文。Request报文:处于Backup状态的设备发送Request报文,请求Master设备为其分配虚拟MAC地址。Reply报文:Master设备接收到Request报文后,将通过Reply报文为Backup设备分配虚拟MAC地址。收到Reply报文后,Backup设备会创建虚拟MAC地址对应的虚拟转发器。Release报文:备份路由器的失效时间达到一定值后,接替其工作的路由器将发送Release报文,通知备份组中的路由器删除对应虚拟MAC的虚拟转发器。然而VRRP负载均衡的实现机制,依然有其不足的地方。要实现VRRP负载均衡模式,就必须先部署好VRRP备份组,这时候用户主机的报文才能在不同的网络设备间实现均衡。如果在已经部署VRRP备份组已经部署好的情况下,用户还需要对该VRRP备份组扩容,加入Backup网络设备,则新加入的Backup设备没有办法充分分担用户主机的报文。或者说如果原有的Backup设备故障,在消除故障后再接入VRRP备份组后,此事用户主机没有变化的情况下,Backup设备也没有办法充分分担用户主机的报文。

技术实现要素:
有鉴于此,本发明提供一种负载均衡处理装置,应用于VRRP备份组中的设备上,其中当该设备为Master设备时,该装置包括:负载调度单元以及负载调整单元,其中解析响应单元,用于在收到来自主机的ARP请求时,根据预设的负载均衡算法从VRRP备份组中选择一个设备,通过解析应答报文将选择到的设备的虚拟MAC地址作为解析结果发送给该主机,并更新主机分配表;负载调度单元,用于定期检查Master设备上的主机分配表以确定各个设备分配到的主机数量是否均衡,如果均衡则结束,如果不均衡,则根据所述负载均衡算法确定待迁移主机以及待迁移主机需要迁移的目标设备,更新主机分配表并通知负载调整单元进行处理;负载调整单元,用于主动构造单播解析应答报文发送给所述待迁移主机,其中该单播解析应答报文携带的解析结果为目标设备的虚拟MAC地址。本发明还提供一种负载均衡处理方法,应用于VRRP备份组中的设备上,当该设备为Master设备时,该方法包括:步骤A,在收到来自主机的ARP请求时,根据预设的负载均衡算法从VRRP备份组中选择一个设备,通过解析应答报文将选择到的设备的虚拟MAC地址作为解析结果发送给该主机,并更新主机分配表;步骤B,定期检查Master设备上的主机分配表以确定各个设备分配到的主机数量是否均衡,如果均衡则结束,如果不均衡,则根据所述负载均衡算法确定待迁移主机以及待迁移主机需要迁移的目标设备,更新主机分配表并通知负载调整单元进行处理;步骤C,主动构造单播解析应答报文发送给所述待迁移主机,其中该单播解析应答报文携带的解析结果为目标设备的虚拟MAC地址。本发明能够在现有网关负载均衡协议基础上动态调整备份组中各个设备的负载,使得各个设备的负载能够在各种失衡事件发生之后迅速恢复到均衡状态,避免了现有技术的缺点。附图说明图1是一种典型的VRRP组网图。图2是本发明一种实施方式中负载均衡处理装置的逻辑结构及其典型硬件环境的示意图。图3是本发明一种实施方式中负载均衡处理方法的一般处理流程图。图4是本发明另一种实施方式中负载均衡处理方法的流程图。具体实施方式本发明提供一种新的VRRP负载均衡处理机制,来解决VRRP备份组中各个设备上存在显著负载不均衡的问题。在一种软件实现的优选方式中,本发明提供一种负载均衡处理装置,其应用于支持VRRP负载均衡模式的设备上,请参考图2,该装置运行的基本硬件环境包括CPU、内存、非易失性存储器以及各种业务硬件,如果是分布式架构的设备,这里的业务硬件可广义地包括各种业务板;从逻辑层面上来看,该装置包括:解析响应单元、负载调度单元、负载调整单元以及流量监控单元。请同时参考图2以及图3,该装置运行过程通常包括如下步骤。步骤101,解析响应单元在收到来自主机的地址解析请求时,根据预设的负载均衡算法从VRRP备份组中选择一个设备,通过解析应答报文将选择到的设备的虚拟MAC地址作为解析结果发送给该主机,并更新主机分配表;步骤102,负载调度单元定期检查Master设备上的主机分配表以确定各个设备分配到的主机数量是否均衡,如果均衡则结束,如果不均衡,则根据所述负载均衡算法确定待迁移主机以及待迁移主机需要迁移的目标设备,更新主机分配表并通知负载调整单元进行处理;步骤103,负载调整单元主动构造单播ARP应答报文发送给所述待迁移主机,其中该单播解析应答报文携带的解析结果为目标设备的虚拟MAC地址。以下以最为流行的ARP协议(适用于IPv4)为例提供本发明各种有选实施方案,ND协议(适用于IPv6)等实施原理相同。请进一步参考图3,对于VRRP备份组而言,其中的Master设备可以基于各种负载均衡算法来确定每次使用哪个设备的虚拟MAC地址来响应当前主机的ARP请求。在这个过程中解析响应单元可以不断地调整各个设备的负载在Master设备当前采用的负载均衡算法下慢慢趋向均衡。然而如果发生一些突发的事件可能导致这个趋向均衡的过程需要很长时间,这种突发的事件可能有多种。比如说新设备加入事件,假设有新设备(比如路由器)加入到VRRP备份组中,此时新设备的负载是零,而且他设备的负载却很高。所谓的新设备加入既可能是用户扩容加入的设备,也可能VRRP备份组中的设备因为故障等原因退出后又重新加入的。如前所述现有技术中,Master设备的负载均衡算法只是在有主机发送ARP请求的时候才显现效果的。并且现有技术的负载均衡算法通常不考虑新设备零负载这种情况,其很可能是采用简单的轮流分配的方法来为各个设备分配主机,这就可能导致新设备在相当长的一段时间内分配到的主机很少,造成其负载长时间过低。再比如说,由于链路故障或者局部断电等原因可能引发突发主机大量下线事件。在一个企业网络中,如果部分主机因局域网内的链路或者二层交换机而离开网络,这很可能造成不少用户同时下线,而这些用户的下线可能导致VRRP备份组中各个设备之间的负载出现瞬间严重失衡的状况。当发生突发事件导致负载严重失衡的时候,本发明VRRP备份组中的Master设备会及时响应该事件来做出相应调整。无论是部分主机突发下线事件还是新设备加入时间,负载调度单元通常都可以通过定期检查主机分配表(请参考表1示例)发现这种情况,并相应做出调整。请参考表1,假设VRRP备份组中有三个设备RouterA、RouterB以及RouterC。假设RouterC(虚拟MAC地址为0-0-9)上的主机突然全部下线了。此时各个在线主机的ARP表项中已经保存了RouterA或者RouterB的虚拟MAC地址,只有新发送ARP请求的主机才有可能被分配到RouterC的虚拟MAC地址。因此整个VRRP备份组中,RouterC将在很长时间内只有少量的主机通过其对外发送报文。在本发明中,VRRP备份组的Master设备上的负载调度单元检查到负载不均衡之后其会相应为新设备RouterC调度一些主机来避免其负载过低的情况。假设网络中有6台主机(实际上通常远远超过6台),此时负载调度单元确定RouterA、RouterB以及RouterC三个设备分别服务2台主机即可实现均衡。当然这里的计算仅仅是示例性的,在实际的算法中还可能会考虑设备的各种性能以及带宽等参数通过权重的方式来计算,当然本发明并不关注负载均衡的计算方法本身,各种不同的负载均衡算法均可以本发明中使用。主机主机IP主机MAC网关IP网关MAC网关设备Host110.1.1.100-0-110.1.1.10-0-7RouterAHost210.1.1.110-0-210.1.1.10-0-8RouterBHost310.1.1.120-0-310.1.1.10-0-7RouterAHost410.1.1.130-0-410.1.1.10-0-8RouterBHost510.1.1.140-0-510.1.1.10-0-7RouterAHost610.1.1.150-0-610.1.1.10-0-8RouterB………………………………表1在确定RouterC需要分担2台主机时,Master设备的负载调度单元可以从RouterA(也就是自身)或者RouterB服务的主机中选择两个主机(比如Host1以及Host2)作为待迁移主机,而RouterC这是迁移目标设备。在确定待迁移主机以及迁移目标设备后,更新主机分配表(如表2所示)并通知负载调整单元处理。Master设备的负载调整单元立刻主动构造两个单播ARP应答报文(对应于IPv6中的“邻居通告消息NA”)分别发送给Host1以及Host2。这两个单播ARP应答报文的发送者MAC地址将填写RouterC的MAC地址0-0-9。发送给Host1的单播ARP应答报文的源IP为10.1.1.1,源MAC为RouterC的MAC地址0-0-9,目的IP为10.1.1.10,目的MAC为0-0-1;发送给Host2的单播ARP应答报文的源IP为10.1.1.1,源MAC为RouterC的MAC地址0-0-9,目的IP为10.1.1.11,目的MAC为0-0-2。Host1以及Host2收到之后会相应更新自身的ARP缓存,Host1以及Host2再次向外部发送报文时,其填写的目的MAC地址将是RouterC的MAC地址,因此来自Host1和Host2的报文将被分担到RouterC上去转发处理。在这一过程中,Master设备是主动为每个待迁移的主机构造ARP应答报文的,并不需要待迁移主机发送ARP请求再应答,相当于主动“欺骗”一次主机的行为。值得注意的是以上仅仅是示例性的,所谓负载均衡并不是绝对相等的概念,其还与VRRP备份组中各设备的性能等各种因素有关,性能更高的设备通常会承担更多的负载。主机主机IP主机MAC网关IP网关MAC网关设备Host110.1.1.100-0-110.1.1.10-0-9RouterCHost210.1.1.110-0-210.1.1.10-0-9RouterCHost310.1.1.120-0-310.1.1.10-0-7RouterAHost410.1.1.130-0-410.1.1.10-0-8RouterBHost510.1.1.140-0-510.1.1.10-0-7RouterAHost610.1.1.150-0-610.1.1.10-0-8RouterB………………………………表2迁移过程对于主机来说是变更实际网关,或者说变更网关所在实际物理设备。如果过多主机变更实际网关,或者说部分主机频繁变更实际网关,在一些场景下可能会造成负面影响,比如说位于网关和主机之间的接入设备可能会将此视为攻击行为等。为了改善这一问题,本发明在实际应用的过程中可以进一步优化。负载调整单元检查主机分配表发现结果为不均衡时,先启动一个第一定时器,等到该第一定时器超时的时候再检查一次结果是否依然是不均衡,如果是再通知负载调整单元进行处理,否则结束当前处理。负载不均衡的发生很可能是短时间的,或者说不均衡的程度是相对比较轻微的,解析响应单元有可能在未来一段时间内自行消除这种不均衡。因此引入一个第一定时器,可以在相当程度上减少负载调整的次数,避免主机频繁变更实际网关。对于新设备加入而言,为了除了可以通过上述定期检查主机分配表进行调整以外,还可以引入实时性更高的处理机制。如果有新设备加入VRRP备份组,负载调度单元可以很快地从VRRP协议层面检测这一事件,相应地可以立刻根据负载均衡算法启动迁移主机的工作。同样的道理,为了在减少主机变更实际网关的情况,同时兼顾尽快实现负载均衡,在优选的方式中,在进行迁移之前,所述负载调度单元可以先启动一个第二定时器。在第二定时器超时之后再进入正常的调度过程。第二定时器的作用与第一定时器类似,先由负载均衡算法来进行自我调整,避免迁移主机,如果这种自我调整不能满足要求,再进行进入迁移调整。负载调度单元在启动第二定时器时发送集中分配通知给所述解析响应单元,告知解析响应单元后续分配主机时先分配给新设备。所述解析响应单元在收到集中分配通知时从原有的正常工作模式进入集中分配模式,在集中分配模式下,解析响应单元在收到来自主机的ARP请求时,不再采用原先的负载均衡算法来选择设备,而是在每个ARP应答报文都携带新设备的虚拟MAC地址作为解析结果发送给主机。这样一来,在第二定时器超时之前,所有发送ARP请求的主机,其获得的解析结果都是新设备的虚拟MAC地址,相当于将这些主机都分配给新设备。在第二定时器超时的时候,负载调度单元会相应给解析响应单元发送集中分配退出通知时,解析响应单元收到后会退出集中分配模式。以上的处理可以让新设备尽快为更多主机服务,提升其负载。在第二定时器超时的时候,负载调度单元可以再次执行步骤102中的检查过程来检查当前负载是否均衡,如果不是则继续按照前述流程处理,启动第一定时器,在第一定时器超时后再在检查;当然也可以不启动第一定时器而立刻启动迁移过程。从Master的角度来说,其负载均衡整个处理过程中,是以主机为调度对象进行负载分配的。然而不同的主机其发送的报文流量大小可能差异较大。这可能导致VRRP组中设备在主机数量层面被调度均衡之后却面临较大的流量压力。比如说某个设备有大量用户使用P2P应用从而导致该设备上的报文流量压力非常大,进而导致主机数量均衡而流量却不均衡。在本发明一种优选的实施方式中提供一种应对措施来协助解决流量不均衡的状况。所述负载均衡处理装置进一步包括流量监控单元。该流量监控单元用于定期检查自身的流量是否超过预设阈值,如果是则向Master设备的负载调度单元发送重分配请求(Re-Assign)。如果当前设备是Backup设备,则该重分配请求携带在VRRP协议报文中,如果当前设备是Master设备自身,该请求可以通过Master内部通信通道发送给负载调度单元。负载调度单元在收到重分配请求后,将该设备的状态标注为过载状态,而解析响应单元则停止使用该过载设备的虚拟MAC地址来响应主机的ARP请求;同时负载调度单元可以从主机分配表中选择一个或多个由该过载设备所服务的主机作为待迁移主机,选择VRRP备份组中其他正常状态设备作为目标设备;然后通知负载调整单元进行处理。负载调整单元主动构造ARP应答报文来将待迁移主机迁移到目标设备,由正常状态的目标设备来服务这些主机。Master设备的一次调整未必能够解决当前过载设备流量过高的问题。如前所述,设备的流量监控单元会定期检查自身的流量,一旦达到预设阈值其会发送重分配请求。因此只要当前设备的流量一直处于超过预设阈值的状态(也就是过载的状态),那么其会不断地发送重分配请求。而Master设备会响应该请求不断地将其服务的主机迁移到其他设备上去。Master设备每次迁移的主机数量可以是一个预设的数量,比如10台这样不太大的数量等。如果Master设备一次迁移过多的主机,有可能导致当前设备从过载变为负载过低,而其他目标设备却从正常状态变成了过载,因此Master设备进行主机迁移的数量应当是相对较小的数值。一旦一个过载设备的流量下降到低于所述预设阈值时,流量监控单元会通过定期检查来感知到这一变化,其会相应发送正常状态通知给Master设备的负载调度单元。负载调度单元收到以后会将该设备的状态标注为正常状态。相应地,解析响应单元会使用负载均衡算法的时候将该设备作为正常设备进行选择,即恢复使用其虚拟MAC地址。需要说明的是,以上描述处理过程中,该装置各个单元在Master设备上都是运行状态中,对于Backup设备来说,其仅仅运行流量监管单元。当然一旦一个Backup设备的角色因为各种原因转变为Master设备时,其上原先没有使能的各个单元会立刻使能。因此本发明中VRRP备份组中各个设备的逻辑设计可以一致的,只不过在不同的角色下使能不同的单元而已。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1