铁路信息系统负载均衡的设计与实现

2012-06-19 02:40季如春上海铁路局信息技术所
上海铁道增刊 2012年3期
关键词:IP地址端口链路

季如春 上海铁路局信息技术所

伴随着铁路信息化发展的步伐,许多铁路信息系统实现了集中整合,体现出管理效率提高、投资成本降低的优势,但同时因为铁路单位覆盖地域广、员工数量多,对铁路信息系统的网络、服务器的性能也提出了更高的要求,尤其是出现铁路信息系统的访问量和数据流量迅速增长,使得单一的服务器设备无法独自承担起高强度的计算和不断增长的业务处理需求,因此利用负载均衡技术扩展服务器的吞吐量,加强服务器的数据处理能力,成为解决问题的有效途径。在负载均衡的设计与实现过程中,有许多关键环节需要把握。

1 概述

负载均衡是随着网络业务量的不断增长而发展起来的技术,通过制定合理的网络架构和合适的均衡策略,能实现能让多台服务器或多条链路共同承担一些高强度的计算或应用服务,从而以较低成本消除网络应用的瓶颈,提高网络访问的灵活性和可靠性。

铁路信息系统依靠大幅提高单台服务器的处理能力,已经无法满足业务访问需求的处理,因而广泛引入负载均衡技术,通过增加服务器的数量,将大量的并发访问或数据流量分担到多台服务器,实现不同服务器之间合理的业务处理需求分配,充分发挥每台服务器的处理能力,不仅消除了单台服务器存在单点失效的隐患,同时提高了系统的可扩展性,当现有服务器群的处理能力不能满足使用需求时,只需要简单地增加一台或多台新的服务器到服务器群中,即可提升服务器群的处理能力,不需要对网络结构做任何改变,也不会对信息系统的正常运行产生影响。

在采用负载均衡技术时,需要根据应用系统的访问流程和特点,设计合理的负载均衡架构、选择合适的参数,才能达到最佳的使用效果。

2 架构设计

负载均衡有多种使用方式,并且针对不同的应用业务需求,对应OSI参考模型的第二、三、四、七层都有相应的负载均衡策略。根据铁路信息系统的特点,通常使用应用的负载均衡和链路的负载均衡,这里主要研究应用负载均衡技术的设计和实现。

2.1 负载均衡的实现过程

负载均衡设备对内指向一个服务器群,对外则构成一台虚拟服务器,通过虚拟服务器对外提供服务。当外部的一个访问虚拟服务器的请求被送达负载均衡设备后,负载均衡设备根据预先设定好的负载均衡算法从服务器群中挑选一台服务器来响应访问请求,并将访问请求包的目的地址与端口转换成该服务器的网卡物理地址和设定的服务端口,在服务器处理访问请求并作出回应时,回应的包可以直接返回给外部访问者,也可以通过负载均衡设备返回给外部访问者,从而实现一次完整的访问过程。

2.2 负载均衡的典型拓扑结构

铁路信息系统使用的都是本地负载均衡结构,即对本地服务器做负载均衡,以解决业务访问量过大,服务器负荷过重的问题,典型的拓扑架构有两种,直连方式和旁挂方式。

2.2.1 直连方式

采用直连方式,负载均衡设备对外虚拟服务器IP地址与内部应用服务器IP地址为不同网段的地址,外部访问无法直接访问到应用服务器,如图1所示。

采用直连方式的负载均衡,其优点在于对内部应用服务器起到了一定程度的安全保护作用,增强对应用访问的控制,而且减少了对外服务IP地址的使用量。

2.2.2 旁挂方式

旁挂方式分为单臂模式和双臂模式两种。采用单臂旁挂方式,负载均衡设备对外虚拟服务器IP地址与应用服务器IP地址为同一网段的地址,外部访问无需通过负载均衡设备也可以直接访问到应用服务器,如图2所示。采用双臂旁挂方式,负载均衡设备对外虚拟服务器IP地址与内部应用服务器IP地址仍为不同网段的地址,外部访问无法直接访问到应用服务器,在铁路信息系统中应用较少。

图1 直连方式拓扑结构

图2 单臂旁挂方式拓扑结构

采用单臂旁挂方式的负载均衡,其优点在于可以旁路不需要负载均衡的流量;解决了负载均衡端口数量不足而影响接入扩展性的问题;便于维护,可远程登录应用服务器直接进行维护;在负载均衡设备发生故障时,易于采取直接访问应用服务器的应急恢复措施;故障的判断定位简便。

2.2.3 拓扑架构的设计

由于铁路信息系统的特殊性和复杂性,在设计负载均衡拓扑架构时需要根据应用系统的访问流程,结合两种拓扑架构的优势进行选择和设计。

如图3所示,假定选择直连方式的负载均衡拓扑架构,负载均衡设备对内指向两组应用服务器,分别处理不同的业务访问请求。当一个外部访问请求通过三层交换机送达负载均衡设备后,负载均衡设备选择一台应用服务器(假定为应用服务器Server 2)来响应访问请求,将访问请求包的目的地址与端口转换成应用服务器Server 2的网卡物理地址和设定的服务端口,然后将数据包发给应用服务器Server 2。应用服务器Server 2收到访问请求后,暂时搁置该访问请求,而向数据库服务器发起一个新的查询请求,此时负载均衡设备的作用仅仅是转发查询请求包。由于数据库服务器和应用服务器Server 2的IP地址不在同一网段内,因此当数据库服务器执行完查询请求后只能将回应包发送到网关设备即三层交换机,然后根据三层交换机上的路由信息再将回应包通过负载均衡设备转发给应用服务器Server 2,应用服务器Server 2结合数据库服务器发来的信息,再对外部访问请求作出回应,回应包的源地址与端口由负载均衡设备负责转换回虚拟服务器的地址与端口,并返回给外部访问者。

图3 拓扑架构的设计

在这个访问过程中,负载均衡设备对于应用服务器Server 2与数据库服务器之间的通信仅仅起到一个数据包的转发作用,并且访问内部应用服务器的路由信息必须要对外开放,才能保证数据库服务器的回应包能发送回应用服务器Server 2。当负载均衡设备发生故障时,外部访问请求无法改为直接访问应用服务器,同时负载均衡设备也不能在应用服务器与数据库服务器之间进行有效的数据转发,采用双臂旁挂方式也会存在同样的问题,所以对于这样的应用系统访问流程,采用单臂旁挂方式的负载均衡拓扑架构要更为合适。

图3拓扑架构的设计,尽可能多地应用了端口汇聚(channel)设计,将两个设备间多条FE或GE物理链路捆绑在一起组成一条设备间的逻辑链路,从而达到增加带宽,提供冗余的目的。当逻辑链路中一条物理链路Link failed时,其他物理链路照常工作,数据流量将会在其余Link的物理链路上继续进行传输。使用端口汇聚时需要注意设备协商和匹配的方式即可。

同时,设计拓扑架构时应充分利用交换设备自带的生成树算法,尽可能设计成环形拓扑架构。不必担心环形拓扑会产生广播风暴,因为基于生成树算法的网桥协议STP(Spanning Tree Protocol)会创建一个以某台交换设备的某个端口为根的生成树,所有网络节点动态进入转发状态或阻塞状态,从而达到避免环路的目的。当拓扑中的一台设备发生故障时,拓扑架构中的其他设备会自动进行生成树拓扑的重新计算,将部分阻塞状态的端口转变为转发状态,从而建立新的有效的数据传输路径,避免设备故障时的人为干预处理,是非常实用的冗余设计。当然,拓扑中自动创建的生成树根节点经常不是最佳的根节点,特别是在拓扑架构中存在多个环路时,最好选择人为地设计指定生成树根节点和设计指定某些网络节点进入阻塞状态。

在拓扑架构的设计中,还应该避免负载均衡设备自身故障所带来的单点失效问题,应采用双机热备的设计和配置方式。需要注意的是,负载均衡设备、路由器等很多设备的双机冗余都是采用VRRP技术,对于网络上的VRRP ID号必须要统一管理、统一分配,如果新增加一组设备的VRRP ID号与既有一组设备的VRRP ID号发生使用重叠冲突,将会对既有设备VR MAC地址的生成产生影响,从而导致既有系统的不可用。为此进行了测试,在一台三层交换机上设置两个不同的网段,通过路由协议使两个网段互通,将两组负载均衡设备分别置于这两个网段内,设置相同的VRRP ID号,测试结果表明虽然两组负载均衡设备处于不同网段,但两组负载均衡设备VR MAC地址的生成仍然会相互干扰。

3 关键参数的选择

3.1 proxy IP地址的设置

铁路的一些应用系统要通过TCP传输数据,确保数据传输的完整性,在采用单臂旁挂方式的负载均衡拓扑架构时,必须设置proxy IP地址,负载均衡设备将外部访问请求包发送给应用服务器时,能够把访问请求包的源地址转换成负载均衡设备的proxy IP地址,以保证应用服务器的回应包能返回给负载均衡设备。

对于双机热备的设计方式,需要为两台负载均衡设备设置不同的proxy IP地址。设置了相同的proxy IP地址,在单台负载均衡设备正常工作时不会出现问题,当主备负载均衡设备进行切换时,相同的proxy IP地址所对应的MAC地址发生变化,虽然通过人工刷新网络上各设备的ARP表能够解决问题,但也失去了设计双机热备的意义。

3.2 负载均衡算法的选择

负载均衡的算法有轮循(Cyclic)、权重轮循(Weighted Cyclic)、最少连接数(Leastconns)、最少流量(Least Traffic)、最少用户连接数(Least Number of Users)、最快响应时间(Response Time Load Balancing)等多种,根据铁路各种应用系统的特点,选择合适的负载均衡算法,能够使应用服务器群中的应用服务器很好的共同完成任务,避免应用服务器的负载分布不均,减少外部访问等待响应的时间。例如对于铁路信息系统应用服务没有特定要求,服务器群中的所有应用服务器处理能力大致相同,可以采用轮循的算法,即每一次来自外部的访问请求都由负载均衡设备轮流分配给内部的应用服务器处理;对于有些应用系统(如铁路售票系统)需要较长时间处理访问请求,并且外部访问请求与应用服务器之间的连接时长差异较大,采用最少连接数的算法则能真正实现应用服务器处理业务的均衡,但最少连接数均衡策略主要针对TCP业务,属于无连接的UDP业务则不适用。

应用程序与负载均衡算法之间的相互配合机制是十分重要的。对于外部访问请求异常终止,应用服务器可能会自动关闭该连接进程,而负载均衡设备如果没有同步取消该连接,在使用最少连接数、最少用户连接数等算法时则会导致服务器连接数的不均衡。

3.3 会话保持策略的选择

有些应用系统需要考虑设定会话保持,因为这些应用系统需要做到同一个Client的多个连接请求被发送到同一台应用服务器上,才能保证特定的会话数据能够在连接时间内保持,所以负载均衡设备在进行外部访问请求分配时,需要在“客户IP会话保持”,“cookie会话保持”,“SSL ID会话保持”等多种会话保持方式中选择合适的会话保持策略。

3.4 session老化时间的选择

Aging Time的设置可以有效地清除异常终止的session连接,而时间长短的设定尤为关键,时间设定的过短,不能保证业务流程的完成,时间设定的过长,又不能到达及时清除的目的,因此需要紧密配合应用业务进行设定。

3.5 健康检查方式的选择

健康检查有 Ping、HTTP Page、TCP Port、UDP Port等方式。作用在于监视服务器在IP、TCP、UDP、应用和内容等协议层上的工作状态,当应用服务器群中的一台应用服务器发生故障时,负载均衡设备能及时检测发现,从而将外部访问请求引向其他的应用服务器,达到信息系统不间断运行的目的。

铁路信息系统主要采用TCP Port的侦测方式,对相关端口检查并完成三次握手,拆连接时向服务器发出Fin包。当应用服务器系统正常,应用进程出现问题时,采用TCP Port的侦测方式能够最好地将问题反映出来。需要注意的是,要调整好负载均衡设备健康检查的间隔和重试次数,对外、对内的所有端口都要进行检测,才能确保应用业务的正常和连续性。有些铁路信息系统还需要负载均衡设备与应用服务器建立一个自定义的TCP Socket连接,并模拟工作站发送和接收字符,通过应用服务器返回的值来判断服务器系统和应用程序的健康状态。

4 结束语

铁路信息系统应用在不断的发展和变化,因此需要负载均衡技术适应铁路应用结构变化的需求,利用负载均衡设备实现链路的负载均衡、实现网闸和防火墙的流量负载均衡以及不同负载均衡设备组之间的相互映射等方式正在逐步设计和使用,今后还将深入发掘负载均衡技术精髓,总结经验,更好地服务于铁路信息化的发展。

猜你喜欢
IP地址端口链路
天空地一体化网络多中继链路自适应调度技术
一种端口故障的解决方案
铁路远动系统几种组网方式IP地址的申请和设置
IP地址切换器(IPCFG)
端口阻塞与优先级
基于SNMP的IP地址管理系统开发与应用
基于数据包分割的多网络链路分流系统及方法
公安网络中IP地址智能管理的研究与思考
8端口IO-Link参考设计套件加快开发速度
基于3G的VPDN技术在高速公路备份链路中的应用