分类: LINUX
2008-10-28 15:13:01
最近在实施过程中经常会听集成商提到一个问题:负载均衡;而且Linux上面做HA也有设计到负载均衡的问题,那么负载均衡这个是怎么实现的呢?主要是有什么技术?下面简单简述一下三个实现方法。
一、负载均衡技术的引入
信息系统的各个核心部分随着业务量的提高、访问量和数据流量的快速增长,其处理能力和计算强度也相应增大,使得单一设备根本无法承担,必须采用多台服务器协同工作,提高计算机系统的处理能力和计算强度,以满足当前业务量的需求。而如何在完成同样功能的多个网络设备之间实现合理的业务量分配,使之不会出现一台设备过忙、而其他的设备却没有充分发挥处理能力的情况。要解决这一问题,可以采用负载均衡的方法。
负载均衡有两个方面的含义:首先,把大量的并发访问或数据流量分担到多台节点设备上分别处理,减少用户等待响应的时间;其次,单个重负载的运算分担到多台节点设备上做并行处理,每个节点设备处理结束后,将结果汇总,再返回给用户,使得信息系统处理能力可以得到大幅度提高。
对一个网络的负载均衡应用,可以从网络的不同层次入手,具体情况要看对网络瓶颈所在之处的具体情况进行分析。一般来说,企业信息系统的负载均衡大体上都从传输链路聚合、采用更高层网络交换技术和设置服务器集群策略三个角度实现。
二、链路聚合——低成本的解决方案
为了支持与日俱增的高带宽应用,越来越多的PC机使用更加快速的方法连入网络。而网络中的业务量分布是不平衡的,一般表现为网络核心的业务量高,而边缘比较低,关键部门的业务量高,而普通部门低。伴随计算机处理能力的大幅度提高,人们对工作组局域网的处理能力有了更高的要求。当企业内部对高带宽应用需求不断增大时(例如Web访问、文档传输及内部网连接),局域网核心部位的数据接口将产生瓶颈问题,因此延长了客户应用请求的响应时间。并且局域网具有分散特性,网络本身并没有针对服务器的保护措施,一个无意的动作,像不小心踢掉网线的插头,就会让服务器与网络断开。
通常,解决瓶颈问题采用的对策是提高服务器链路的容量,使其满足目前的需求。例如可以由快速以太网升级到千兆以太网。对于大型网络来说,采用网络系统升级技术是一种长远的、有前景的解决方案。然而对于许多企业,当需求还没有大到非得花费大量的金钱和时间进行升级时,使用升级的解决方案就显得有些浪费了。对于拥有许多网络教室和多媒体教室的普通中学和职业中学,在某些课程的教学期间(比如上传学生制作的网页等等),将产生大量访问Web服务器或进行大量的文档传输;或在县区级的网络信息网上举行优秀老师示范课教学、定期的教学交流等教学活动时,这种情况尤为突出。然而在需求还没有大到非得花费大量的金钱和时间进行升级时,实施网络的升级就显得大材小用了。在这种情况下,链路聚合技术为消除传输链路上的瓶颈与不安全因素提供了成本低廉的解决方案。链路聚合技术将多个线路的传输容量融合成一个单一的逻辑连接。当原有的线路满足不了需求、而单一线路的升级又太昂贵或难以实现时,就可采用多线路的解决方案。
链路聚合系统增加了网络的复杂性,但也提高了网络的可靠性,使人们可以在服务器等关键局域网段的线路上采用冗余路由。对于计算机局域网系统,可以考虑采用虚拟路由冗余协议(VRRP)。VRRP可以生成一个虚拟缺省的网关地址,当主路由器无法接通时,备用路由器就会采用这个地址,使局域网通信得以继续。总之,当必需提高主要线路的带宽而又无法对网络进行升级的时候,便可以采用链路聚合技术。
三、高层交换——适合大型网络
大型的网络一般都是由大量专用技术设备组成的,如包括防火墙、路由器、第2层/3层交换机、负载均衡设备、缓冲服务器和Web服务器等。如何将这些技术设备有机地组合在一起,是一个直接影响到网络性能的关键性问题。大型网络的核心交换机一般采用高端的机柜式交换机,现在这类交换机一般都提供第四层交换功能,可以将一个外部IP地址映射为多个内部IP地址,对每次TCP连接请求动态使用其中一个内部地址,达到负载均衡的目的。有的协议内部支持与负载均衡相关的功能,例如HTTP协议中的重定向能力。
Web内容交换技术,即URL交换或七层交换技术,提供了一种对访问流量的高层控制方式。Web内容交换技术检查所有的HTTP报头,根据报头内的信息来执行负载均衡的决策,并可以根据这些信息来确定如何为个人主页和图像数据等内容提供服务。它不是根据TCP端口号来进行控制的,所以不会造成访问流量的滞留。如果Web服务器已经为诸如图像服务、SSL对话和数据库事务服务之类的特殊功能进行了优化,那么,采用这个层次的流量控制将可以提高网络的性能。目前,采用高层交换技术的产品与方案,有许多专用的设备,如3Com公司的3Com SuperStack 3服务器负载均衡交换机和Cisco系统公司的CSS交换机产品等,国内的服务器厂商如联想和浪潮等也都有专用的负载均衡产品。
四、带均衡策略的服务器群集——满足大量并发访问的需求
随着电子商务和电子政务的开展,网上交易和访问量会明显增加。企业的日常经营和各种办公业务都往上迁移,所传送不仅是一般的文本信息,还有很多视频和语音。如远程教学方兴未艾,不少院校都在全国各地设立网络教学点,进行远程教学和在线辅导,各个站点都必须能够同网络教学中心进行实时交流,在这种情况下,势必也会产生大量并发访问,因此要求网络中心服务器必须具备提供大量并发访问服务的能力。这样,网络中心服务器的处理能力和I/O能力已经成为提供服务的瓶颈。如果客户的增多导致通信量超出了服务器能承受的范围,那么其结果必然是宕机。显然,单台服务器有限的性能不可能解决这个问题,一台普通服务器的处理能力只能达到每秒几万个到几十万个请求,无法在一秒钟内处理上百万个甚至更多的请求。但若能将10台这样的服务器组成一个系统,并通过软件技术将所有请求平均分配给所有服务器,那么这个系统就完全拥有每秒钟处理几百万个甚至更多请求的能力。这就是利用服务器群集实现负载均衡的优点。
早期的服务器群集通常以光纤镜像卡进行主从方式备份。令服务运营商头疼的是关键性服务器或应用较多、数据流量较大的服务器一般档次不会太低,而服务运营商花了2台服务器的钱却常常只得到一台服务器的性能。通过LSANT(Load Sharing Network Address Transfer)将多台服务器网卡的不同IP地址翻译成一个虚拟IP地址,使得每台服务器均时刻处于工作状态。原来需要用小型机来完成的工作改由多台PC服务器完成,这种弹性解决方案对投资保护的作用是相当明显的,既避免了小型机刚性升级所带来的巨大设备投资,又避免了人员培训的重复投资。同时,服务运营商可以依据业务的需要随时调整服务器的数量。
网络负载均衡提高了诸如Web服务器、FTP服务器和其他关键任务服务器上的Internet服务器程序的可用性和可伸缩性。单一服务器可以提供有限级的可靠性和可伸缩性。但是,通过将2个或2个以上高级服务器的主机连成群集,网络负载均衡就能够提供关键任务服务器所需的可靠性和性能。
为了建立一个高负载的Web站点,必须使用多服务器的分布式结构。如使用代理服务器和Web服务器相结合,或者2台Web服务器相互协作,这种方式也属于多服务器的结构。但在这些多服务器的结构中,每台服务器所起到的作用是不同的,属于非对称的体系结构。非对称的服务器结构中每个服务器起到的作用是不同的,例如一台服务器用于提供静态网页,而另一台用于提供动态网页等等。这样就使得网页设计时就需要考虑不同服务器之间的关系。一旦要改变服务器之间的关系,就会使得某些网页出现连接错误,不利于维护,可扩展性也较差。
能进行负载均衡的网络设计结构为对称结构,在对称结构中每台服务器都具备等价的地位,都可以单独对外提供服务,而无须其他服务器的辅助。然后,可以通过某种技术,将外部发送来的请求均匀分配到对称结构中的每台服务器上,接收到连接请求的服务器都独立回应客户的请求。在这种结构中,由于建立内容完全一致的Web服务器并不困难,因此负载均衡技术就成为建立一个高负载Web站点的关键性技术。
综上所述,在客户端对操作系统进行优化,改善网络环境,虽然可以最大限度地提高客户端的信息传输速率,但是,在网络中,当众多工作站同时向同一服务器发出请求或同时访问同一个文件时,所产生的信息传输阻塞现象却是无能为力的。为此在服务器端采用负载均衡这种策略,它能让多台服务器或多条链路共同承担一些繁重的计算或I/O任务,从而以较低成本消除网络瓶颈,避免了单机拥塞或单机故障造成的不良影响,便于扩展,保证服务需要,提高网络的灵活性和可靠性。而且负载均衡是建立在现有网络结构之上,提供了一种廉价有效的方法扩展服务器带宽和增加吞吐量,加强网络数据处理能力,提高网络的灵活性和可用性。负载均衡主要完成以下任务:
解决网络拥塞问题,就近提供服务,实现地理位置无关性;
为用户提供更好的访问质量;
提高服务器响应速度;
提高服务器及其他资源的利用效率。
在用户端进行优化和在服务器端采用负载均衡策略可以在最大程度上确保网络信息的顺畅流通。