基于OSPF等价路由的LVS集群负载均衡技术的研究

2018-04-10 01:39胡晓勤
网络安全技术与应用 2018年4期
关键词:等价交换机路由

◆鲜 伟 胡晓勤



基于OSPF等价路由的LVS集群负载均衡技术的研究

◆鲜 伟 胡晓勤

(四川大学计算机学院 四川 610000)

LVS(Linux Virtual Server)作为负载均衡软件目前已经普遍的用于各类企业信息化系统中。本文简要地介绍了LVS和OSPF等价路由,并针对大规模网络的环境提出了一种结合LVS与OSPF的解决方案。该方案实现了多台LVS All-active,可以用于解决目前常用的LVS主备模式下性能不足的问题。

LVS;OSPF;等价路由;负载均衡

0 引言

随着中国互联网的发展,各类电商企业为了吸引客户采取了各种的营销策略,例如定时抢购,而这对企业的网络系统带来了巨大挑战。目前LVS集群常部署在HA模式下,当面对海量的突发流量,LVS集群不堪重负而导致整体宕机。本文提出了一种LVS All active模式的的解决方案-基于OSPF等价路由的LVS集群负载均衡技术,从而解决上面所述的类似问题。

1 LVS的介绍

Linux虚拟服务器(Linux Virtual Server,LVS)是一个虚拟的服务器集群系统,用于实现负载平衡。项目在1998年5月由章文嵩成立,是中国国内最早出现的自由软件项目之一[1]。LVS是基于Linux内核框架netfilter开发的,在传输层实现连接请求动态分发来实现负载均衡,可将一组服务器组成一个高可用、高性能的虚拟服务器。

1.1 LVS在系统中的实现简介

LVS的重要组件包括两部分,第一个组件ipvs,位于linux内核层;另一个组件叫ipvsadm,位于应用层。应用层的程序通过调用ipvsadm实现对ipvs的控制和管理。LVS的核心部分作为单独的模块存在,可以动态加载。LVS根据用户要求的负载均衡算法,动态地载入对应的算法模块。

1.2 LVS工作原理

图1 LVS工作原理图

LVS 集群采用 IP 负载均衡技术,将用户请求按照一定策略分发到后端的 Server 上,从而将一组服务器构成一个高性能的、高可用的虚拟服务器。在特定的场景下,整个服务器集群的结构对客户是透明的,而且无需修改客户端和服务器端的程序[2]。

如图1所示,前端一个称为负载均衡器的服务器,负责监听和接受客户端向VIP发出的请求,之后通过设定的调度算法,选出最佳的一个后端服务器,再将请求分发给该后端服务器。

LVS常用的负载均衡调度算法有轮询、加权轮询、最小连接数、加权最小连接数、基于局部性的最少连接、带复制的基于局部性最少连接、目标地址散列调度和源地址散列调度[3]。

LVS 属于一种软件负载均衡方式与硬件负载均衡方式比如F5 Big-IP LTM,不同之处在于LVS 没有 Node 和 Profile概念,而且LVS只提供 4 层的负载均衡,目前无法支持七层负载均衡。

2 OSPF的介绍

2.1 OSPF

OSPF(开放最短路径优先)协议属于内部网关协议,运行在一个自主系统内部。OSPF 是一种基于链路状态算法的路由选择协议,它可以解决RIP(路由信息协议)的一些局限性,例如:较小的路由范围、较长的路由收敛时间和不能反映网络特征的度量。而且,OSPF能处理更大的路由表来支持更多的路径[4]。故目前OSPF常胜任于大型局域网。

2.2 OSPF等价路由

OSPF默认使用4条负载均衡链路,最多可调整为支持8条等价链路负载均衡。当单条链路流量负载过高时,可以使用OSPF的等价路由负载均衡的特性,将流量分配到多条链路从而大幅增加链路带宽。

3 基于OSPF的LVS解决方案的提出

3.1 HA模式的LVS集群存在的弊端

目前各类网企业网络系统中,主流的集群架构是使用LVS+keeplive方案,即HA主备模式。这种解决方案是使用多台LVS服务器部署为主备模式,一台LVS作为主用进行实时负载均衡的连接调度,另外一台或多台LVS通过VRRP(Virtual Router Redundancy Protocol)协议,对主用LVS状态进行实时监控,一旦主LVS出现异常,VIP(虚拟IP)等资源将在数秒内切换至某台备用的LVS调度器,从而保证了系统的高可靠性和业务的连续性。

但是随着业务量的增长,随之网络流量出现了剧烈增长,HA主备模式的弊端不断显现,逐渐无法适应目前业务增长。具体地讲,其弊端主要表现为:HA模式在任一时刻仅一台LVS调度器提供调度分发服务,主用的单节点LVS负载过重无法支撑海量请求连接时,导致主节点LVS宕机,同时备节点LVS同样无法承受这些巨量的请求连接,从而将导致整个集群系统瘫痪。

3.2多活LVS集群解决方案的提出

为了应对目前互联网企业中海量的连接请求,可以采用LVS+OSPF集群模式,该方案可使多台LVS服务器同时active状态。

该方案利用开源的软路由软件Quagga[5],在负载均衡节点上安装此软件,并启用OSPF协议,与对接的三层交换机建立OSPF邻居,进而将VIP地址宣告进OSPF域。通过调整链路的cost值,三层交换机将学习到去往VIP的多条等价负载均衡链路。OSPF等价路由特性最多可以支持8台LVS实现ALL-Active的集群服务。

图2 LVS+OSPF集群模式

该技术具体工作流程如下:

如图2所示,每台LVS一个接口与三层交换机上连,另一个接口下连多台RS。三层交换机与LVS安装的软路由软件Quagga分别启用OSPF,并彼此建立OSPF邻接关系。每台LVS将各自的VIP宣告进OSPF域,最终三层交换机路由表将有多条通往VIP的等价路由。前端LVS与后端RS使用DR(directly routing)模式[6]。

当客户端向VIP发起一个TCP连接请求,数据包必将路由到三层交换机,三层交换机查询路由表,通往目的地址VIP有多条等价路径,通过对源IP地址、源端口、目的IP地址和目的端口进行hash,将TCP连接分配到集群中的某一台前端LVS上,LVS将请求分发到后端某一台后端Real server(RS),后端RS完成处理后将数据直接返回给用户,完成整个过程。

该解决方案的好处在于:首先,LVS可以自由横向扩展,最多扩展到8台前端LVS同时active;另外,不存在LVS备机,提高了设备利用率;最后,高可用性进一步提升,某台LVS宕机后,其他active接替其处理。

4 方案测试实验

为了验证该方案可行性和集群性能,将分别进行HA模式和多活LVS模式对比实验测试。本次实验中,将使用Microsoft Web Application Stress Tool(简称WAS),一种WEB压力测试工具。

实验环境,我们利用一台Dell PowerEdge 710服务器上进行测试,物理机采用ESXi 64位版本为6.5的系统,处理器为8颗Intel Xeon CPU E5620 @240GHZ处理,16GB内存。在ESXI中多个虚拟机,虚拟机中都使用Centos7.2系统,每个虚拟机使用1颗vCPU、2G内存。

分别部署HA模式和多活LVS模式,使用WAS分别对集群进行Web压力测试。测试结束后,WAS会产生一个report,包括对各项性能进行了详细分析,其中一个重要指标是TTLB(Time To First Byte),它反应了业务的平均响应时间。基于报告我们得到实验结果,如下图所示,图3显示了当连接数较小的时候,并发连接数在100到400时,多活LVS模式与HA模式在TTLB指标差别微弱。但是随着增加连接数,多活LVS模式的TTLB指标明显优于HA模式。这是由于多台LVS服务器同时分担了连接数的调度分发。

图3 LVS的HA模式与多活模式TTLB指标对比

5 结束语

本文首先对LVS和OSPF进行了简要介绍,进一步介绍了目前企业中常用的LVS HA模式的负载均衡技术,并分析了该技术的在目前移动互联网情况下的弊端,进而提出了基于OSPF的LVS集群解决方案-多活LVS集群模式。最后通过实验,验证了本文介绍的方案在性能方面的更加优越。

[1]wikipedia.https://en.wikipedia.org/wiki/Linux_ Virtual_Server.

[2]腾讯云. https://www.qcloud.com/community/ article/238341.

[3]ZhnagWS.LVSclusterLoaddispatch[EB/OL].[2016-03-10].http://www.linuxvirtualserver.org/zh/lvs4.html.

[4]杨岚兰,唐宁九.基于IPv6的OSPF技术及实现[D].四川大学, 2005.

[5]quagga. http://www.nongnu.org/quagga.

[6]章文崇山. http://www.linuxvirtualserver. org/zh/ lvs3.html.

猜你喜欢
等价交换机路由
等价转化
铁路数据网路由汇聚引发的路由迭代问题研究
多点双向路由重发布潜在问题研究
一种基于虚拟分扇的簇间多跳路由算法
基于地铁交换机电源设计思考
修复损坏的交换机NOS
探究路由与环路的问题
n次自然数幂和的一个等价无穷大
缔造工业级的强悍——评测三旺通信IPS7110-2GC-8PoE工业交换机
收敛的非线性迭代数列xn+1=g(xn)的等价数列