APP下载

基于LVS集群的负载均衡应用

2010-08-08郑志娴曾凌静

电脑与电信 2010年10期
关键词:核心层均衡器分中心

郑志娴 曾凌静

(福建交通职业技术学院,福建 福州 350007)

1.引言

在各种网络服务普遍应用的今天,由于信息技术的迅猛发展,经常面临海量信息的处理,单机的处理能力往往不足,对用硬件和软件方法实现高可伸缩、高可用网络服务的需求不断增长。而如何在完成同样功能的多个网络设备之间实现合理的业务量分配,使之不会出现一台设备过忙、而别的设备却未充分发挥处理能力的情况,就成了一个问题,负载均衡机制也因此应运而生。

本文中所应用到的系统是集3G、通信、计算机、网络技术于一体,主要实现对物流公司各种营运车辆的安全、管理、生产提供服务。系统的构架为集中式和分布式相结合,即中心管理平台负责公司的数据通信、存储、处理、分发;各分中心负责范围内车辆监控管理;工作站负责接入车辆日常使用、维护和服务。公司中心管理平台与各分中心为互相备份关系,保证系统稳定、安全运行。

高并发和大流量的网络压力,对系统提出了很高的要求,负责通讯的服务器需要承担终端接入解析服务,信息转发和处理等任务,必须采用具有快速处理能力而且可扩展性良好的方案。

本文中的系统采用LVS/DR(Linux Virtual Server via Direct Routing)模式来实现负载均衡。

2.集群与负载均衡

2.1 集群

集群是指一组独立的计算机系统构成的一个松耦合的多处理器系统,它们之间通过网络实现进程间的通讯。应用程序可以通过网络共享内存进行消息传送,实现分布式计算机[1]。集群可以将多台计算机连接起来协同运作以对外提供各种服务。

2.2 负载均衡

网络的负载均衡是一种动态均衡技术,通过实时地分析数据包,掌握网络中的数据流量状况,把任务合理均衡地分配出去。这种技术基于现有网络结构,提供了一种扩展服务器带宽和增加服务器吞吐量的廉价有效的方法,加强了网络数据处理能力,提高了网络的灵活性和可用性[2]。

2.3 集群和负载均衡技术的特点[3]

(1)采用集群技术,可以使用多台相对廉价的计算机集群,完成以前小型机甚至中大型机才可以完成的功能和任务,达到高性能的目的。

(2)如果单台机器故障,其余服务器可以平稳接替故障点服务器,可实现对用户的不间断服务,达到高可用性。

(3)便利的可伸缩性,随着终端数量的增加,如果需要添加新服务器,可以不影响业务正常使用的情况下,将系统扩容,因此,将来受到限制的将只是用户方的网络带宽,对服务器的承受能力只是添加新服务器的问题

(4)高性能计算,即充分利用集群中的每一台计算机的资源,实现复杂运算的并行处理,可以用于高端计算领域如科学计算领域和海量数据分析领域。

(5)负载平衡,即把负载压力合理分配到集群中的每一台计算机上,以减轻主服务器的压力,降低对主服务器的硬件和软件要求。

3.LVS方案

在如今得到了广泛应用的Linux平台下,LVS(Linux Virtual Server)负载均衡集群是应用最广泛的负载均衡解决方案。

LVS架设的服务器集群系统从体系结构上看是透明的,最终用户只感觉到一个虚拟服务器。物理服务器之间可以通过高速的LAN或分布在各地的WAN相连。最前端是负载均衡器,它负责将各种服务请求分发给后面的集群的服务器,让整个集群表现得像一个服务于同一IP地址的虚拟服务器[3]。由于实现了多机器集群,使得整个虚拟的服务器具有强大的处理能力,并且具有良好的可伸缩性。

3.1 LVS/DR的基本结构

LVS方式的集群从结构上可分为两部分:前端的负载均衡器和后端的真实服务器。前端的负载均衡器将来自外界的请求调度到集群后端不同的服务器上去执行。真实服务器负责真正提供各种应用服务,其数量可以根据实际需求进行增减。

3.2 LVS/DR的性能

LVS服务器集群系统具有良好的伸缩性,由于是在内核中作四层交换,只花128个字节记录一个连接信息。一个有512M可用内存的机器理论上可以支持到四百万个并发连接,如配置100M网卡,采用DR调度模式,集群系统的吞吐量可高达1Gbits/s;如配置千兆网卡,则系统的最大吞吐量可接近10Gbits/s。

3.3 LVS/DR和传统的负载均衡解决方案的比较

其它常见的负载均衡方案是网络地址转换和NAT方式。

(1)网络地址转换

用户通过虚拟IP地址访问服务时,访问请求的报文会到达负载调度器,由它进行负载均衡调度,从一组真实服务器选出一个,将报文的目标地址的虚拟IP改写成选定服务器的地址,报文的目标端口改写成选定服务器的相应端口,最后将报文发送给选定的服务器。真实服务器的回应报文经过负载调度器时,将报文的源地址和源端口改为虚拟和相应的端口,再把报文发给用户[4]。

传统的Cisco的LocalDirector产品、Alteon的ACEDirector产品和F5的Big/IP产品等都是使用网络地址转换方法,它们是非常昂贵的商品化系统,它们支持部分TCP/UDP协议,而且在某些协议的处理上存在发生严重问题的可能。

(2)NAT 技术(Network Address Translator)

NAT技术实现内网的IP地址与公网的地址之间的相互转换[4]。采用NAT方式转发的缺点是它的伸缩能力有限,因为在这个结构的系统中,请求和响应报文都需要通过负载调度器,当服务器结点数目不断上升时,调度器本身有可能成为系统的新瓶颈。

(3)系统采用LVS/DR模式(Linux Virtual Server via Direct Routing)

负载调度器只处理客户到服务器端的连接,响应数据可以直接从独立的网络路由返回给客户,这可以极大地提高LVS集群系统的伸缩性。下面详细说明LVS/DR模式的体系结构。

3.4 LVS/DR模式的体系结构

LVS/DR方案以虚拟IP为核心实现负载均衡[5]:调度器和服务器组都必须在物理上有一个网卡通过不分断的局域网相连,如通过高速的交换机相连。虚拟IP地址(VIP)为调度器和服务器组共享,调度器配置的虚拟IP地址是对外可见的,用于接收虚拟服务的请求报文;所有的服务器把虚拟IP地址配置在各自的网络设备上,它对外面是不可见的,只是用于处理目标地址为虚拟IP的网络请求。

LVS/DR的工作流程如图1所示:它将报文直接路由给目标服务器。在LVS/DR中,调度器根据各个服务器的负载情况,动态地选择一台服务器,不修改也不封装IP报文,而是将数据帧的网卡物理地址(MAC地址)改为选出服务器的MAC地址,再将修改后的数据帧在与服务器组的局域网上发送。因为数据帧的MAC地址是选出的服务器,所以服务器肯定可以收到这个数据帧,从中可以获得该IP报文。当服务器发现报文的目标地址是在本地的网络设备上,服务器处理这个报文,然后根据路由表将响应报文直接返回给客户[6]。

图1 LVS/DR的工作流程示意图

在LVS/DR中,根据缺省的TCP/IP协议栈处理,请求报文的目标地址为虚拟IP地址,响应报文的源地址肯定也为虚拟IP地址,所以响应报文不需要作任何修改,可以直接返回给客户,客户得到正常的服务,而不会知道是哪一台服务器处理的。

LVS/DR调度器只处理客户到服务器端的连接,响应数据可以直接从独立的网络路由返回给客户,这可以极大地提高LVS集群系统的伸缩性。

4.具体实现

对于本系统而言,采用高效的LVS/DR集群方案,将大量的服务器集群起来实现通讯节点的作用,通过前置机的均衡作用将大量的通讯和计算平均地分摊到每一个通讯节点上,使得每个节点的处理能力能够被综合起来,形成一个计算网格。

高并发数情况下车载终端接入的压力主要来自两个方面,一个是大量的终端实时数据上传带来的通讯压力,另一个是把这些数据转发给管理分中心带来的分发压力。

对于本系统而言,由业务节点集群来负责处理车载终端实时汇报,由业务核心层来负责管理分中心的接入,这两个地方都有负载均衡设备:终端接入负载均衡器和管理分中心接入均衡器,由负载均衡器在集群中各计算机之间平衡分配具体的网络流量和计算压力。

管理分中心均衡器主要负责平衡管理分中心对数据的请求所造成的压力,它将管理分中心接入等核心任务分摊到多个业务核心层服务器上进行处理。终端接入的负载均衡器主要负责在各业务节点上平衡终端接入的负载。

下面就终端实时汇报和管理分中心数据转发这两个方面来具体介绍本系统实现。

4.1 终端实时数据上传

终端接入的负载均衡器主要负责在各业务节点上平衡终端接入的负载,以GPRS/CDMA和短消息方式接入以及由其它GPS系统接入的终端,分别分派到对应的业务节点上进行处理。

车载终端实际上传的数据流经过负载均衡前置机后,由负载均衡根据实际各业务节点的负载量进行均衡分配,然后将实际请求平衡地发送到业务节点上。

向车载终端发送的数据由业务节点处理后,由业务结点直接发送给终端,不再经过负载均衡前置机。

在本系统中,终端同服务器通讯的数据流向见下图2:

图2 终端同服务器通讯的数据流图

可以看到,上行和下行的箭头组合成一个连接的回路,返回给终端的数据包由业务节点直接发送给终端,这样,前置均衡只需要对终端上传的数据流进行去向的判断,真正的计算都在各业务节点之间均衡掉了。

4.2 管理分中心数据转发

管理分中心采用和公司管理中心同样的系统结构,管理分中心的业务节点层和业务核心层会同省中心的同一层建立连接并进行注册,通过身份验证后接收省中心发来的数据。

从管理中心和分中心系统启动,到分中心同管理中心建立连接并开始传输数据要经历的7个关键步骤。

(1)管理中心启动后,各业务结点向业务核心层发出注册请求,在业务核心层登记IP地址和数据转发端口等信息。

(2)分中心启动后,其业务结点向业务核心层注册。

(3)分中心的业务核心层向管理中心的业务核心层注册,请求身份验证。

(4)管理中心业务核心层通过身份验证后,向业务节点发送管理分中心的权限,管理中心各业务结点由此可以计算出那些终端的数据应该发往该分中心。

(5)管理中心业务核心将各业务节点的地址和数据转发端口发给分中心业务核心,分中心业务核心层在其业务节点间均衡分配同管理中心业务节点的连接,以保证网络流量均衡。

(6)分中心业务节点连接管理中心业务节点,并请求身份验证。

(7)通过对分中心业务结点的身份确认后,管理中心业务节点将终端数据转发给分中心各业务节点。

以上描述了一个完整的数据转发流程,根据同样的流程,分中心可以将从管理中心收到的数据进一步转发到下级系统。

5.结束语

本文对负载均衡的特点及LVS的体系结构等进行了介绍,通过终端实时汇报和分中心数据转发的两个方面来介绍本系统实现,一定程度上解决系统存在的高并发数的压力问题。对于本系统而言,公司中心管理平台可以通过使用稳定性和安全性很高的Linux或Unix主机来保障关键业务的高性能处理,可以通过服务器集群来实现海量的数据计算;而对于各分中心而言,不需要大规模的服务器集群,可以通过普通的Windows平台直接把本系统很方便地运行起来。

[1]王国明.集群计算系统的分析与研究[J].电脑知识与技术,2006.32.

[2]WEB服务器的集群 [EB/OL]. http://www.javaeye.com/topic/169911

[3]李中福.计算机集群技术应用研究[D].北京:中国地质大学,2006.

[4]胡晓军.Linux服务器集群系统的研究和应用[D].广东:广东工业大学,2005.

[5]利用集群技术实现 Web服务器负载均衡[EB/OL].http://www.linuxexpress.com.cn/news/jq/2008-06-06/1977.html

[6]LVS 中文站点[EB/OL].http://zh.linuxvirtualserver.org/.

猜你喜欢

核心层均衡器分中心
浙江大学基础医学实验教学中心机能分中心
浙江大学基础医学实验教学中心机能分中心
浅谈宽带IP城域网结构规划和建设
校园网核心层设计探究
政府办公区域无线网络覆盖的设计
高速公路监控分中心网络配置探析
无线传感网OFDM系统中信道均衡器的电路实现
一种基于LC振荡电路的串联蓄电池均衡器
各地分中心 海选现场
基于LMS 算法的自适应均衡器仿真研究