网路负载平衡
网路负载平衡允许你将传入的请求传播到最多达32台的伺服器上,即可以使用最多32台伺服器共同分担对外的网路请求服务。
基本介绍
- 中文名:网路负载平衡
- 外文名:network load balancing
网路负载平衡技术保证即使是在负载很重的情况下它们也能作出快速回响。网路负载平衡对外只须提供一个IP位址(或域名)。如果网路负载平衡中的一台或几台伺服器不可用时,服务不会中断。

网路负载平衡自动检测到伺服器不可用时,能够迅速在剩余的伺服器中重新指派客户机通讯。此保护措施能够帮助你为关键的业务程式提供不中断的服务。可以根据网路访问量的增多来增加网路负载平衡伺服器的数量。网路负载平衡可在普通的计算机上实现。在Windows Server 2003中,网路负载平衡的应用程式包括Internet信息服务(IIS)、ISA Server 2000防火墙与代理伺服器、VPN虚拟专用网、终端伺服器、Windows Media Services(Windows视频点播、视频广播)等服务。同时,网路负载平衡有助于改善你的伺服器性能和可伸缩性,以满足不断增长的基于Internet客户端的需求。
网路负载平衡可以让客户端用一个逻辑Internet名称和虚拟IP位址(又称群集IP位址)访问群集,同时保留每台计算机各自的名称。
正因为如此,网路负载均衡技术在最近得到了非常迅猛的发展。在接下来的文章内,编者就将向大家简要介绍一下网路负载均衡的工作原理以及三种常见的工作方式。
网路负载均衡技术的诞生与网际网路的高速发展有很大的关係。
随着网际网路用户的急剧增长,获取信息的速度快慢已经成为制约网际网路发展的重要因素。尤其随着电子商务的迅速发展,企业的信息中心已经从侧重计算与数据处理的计算中心和侧重网路与数据通讯的网路中心发展成为一个将计算中心与网路中心功能平衡最佳化的集成一体的数据中心。作为企业电子商务网路的基础核心,数据中心将汇集高性能计算、数据通讯、语音通讯等处理功能于一体,成为支持企业未来电子商务系统套用的必然平台。
但是,作为企业网的心脏,数据中心面临着众多的挑战。扩展性、灵活性、高性能、可靠性、高密度和安全性无一不是数据中心不可或缺的要求,尤其是在数据流急剧增长的时候还要进行持续稳定的运行。很难想像用户会在屡次遇到“Server Too Busy”后还能再次访问这个网站;更难以想像正在进行信用卡支付时遇到掉线会有多幺严重的后果。那幺,如何解决这个瓶颈问题呢?如何才能切实提高网路的服务质量呢?
负载均衡技术
网际网路的快速增长已经使网路伺服器面对的访问数量大大增加并且更加不可预知。如今,伺服器必须具备提供大量并发访问服务的能力,其处理能力和I/O能力已经成为提供服务的瓶颈。如果客户的增多导致通信量超出了伺服器能承受的範围,那幺其结果必然是――宕机。
显然,单台伺服器有限的性能不可能解决这个问题,一台普通伺服器的处理能力只能达到每秒几万个到几十万个请求,无法在一秒钟内处理上百万个甚至更多的请求。但若能将10台这样的伺服器组成一个系统,并通过软体技术将所有请求平均分配给所有伺服器,那幺这个系统就完全拥有每秒钟处理几百万个甚至更多请求的能力。这就是负载均衡最初的基本设计思想。
最早的负载均衡技术是通过DNS来实现的,在DNS中为多个地址配置同一个名字,因而查询这个名字的客户机将得到其中一个地址,从而使得不同的客户访问不同的伺服器,达到负载均衡的目的。DNS负载均衡是一种简单而有效的方法,但是它不能区分伺服器的差异,也不能反映伺服器的当前运行状态。
这种负载均衡的基本设计思想只能算是负载均衡技术的最初套用。现代负载均衡技术除了可以做到合理、平均、实时地均衡系统负载外,还能够确保系统正常运行的高可用性和高可靠性。负载均衡服务能够平衡伺服器群中所有的伺服器和套用之间的通信负载,根据实时回响时间进行判断,将任务交由负载最轻的伺服器来处理,以实现真正的智慧型通信管理和最佳的伺服器群性能。
如图一所示,假设每个伺服器能回响的请求为每秒10万个。如果不採用负载均衡,那幺该系统就只能达到每秒10万个的回响,即使採用三台伺服器,也有可能在不到每秒30万个回响的时候就会出现某台伺服器由于访问量过大而宕机;如果某台伺服器出现故障,则可能导致数万个请求不能得到正确的回响。但如果採用负载均衡,不仅当伺服器出现故障时可以自动将指向该伺服器上的回响分担到其他伺服器,还可以在数据量不太大时也将任务分配到各个伺服器中,避免出现有些伺服器数据量很小而有的已因数据量接近极限导致性能急剧下降的现象。如果数据量超出了伺服器的回响能力,只需增加伺服器数目就可以平滑升级。也就是说,负载均衡技术不仅可以维持网路系统中负载的均衡分配,还能够维护网路系统的高可用性运行,因而是保证网路系统高性能的重要技术。
现代负载均衡技术通常操作于网路的第四层或第七层。负载均衡器可以根据实际的回响时间制定优先权交付决策,从而实现高性能、智慧型化流量管理,达到最佳的伺服器群性能。採用第七层套用控制还可以减少通信高峰期的错误讯息,因为差错控制和流量管理技术可以侦测到一些错误信息并透明地将会话重定向到另一个伺服器,使用户顺利地进行使用。例如,图一中伺服器A不可用或者资料库出现错误,错误信息将会返回到负载均衡器上,然后会将客户的访问指向伺服器B或者将讯息重放到其他资料库中去,整个过程对用户是透明的。
由于採用了负载均衡技术,自动故障恢复得以实现,服务的时间可以延长,24×7可靠性和持续运行成为可能。另外,负载均衡器一般也支持路径外返回模式,即绕过流量分配器,为那些焦急等待大量数据档案请求回响的客户提供更快的回响时间。
在最新的负载均衡产品中,智慧型化越来越明显。一些智慧型化的负载均衡器能够侦测到像资料库错误、伺服器不可用等信息,从而採取措施使会话恢复和重定向伺服器使电子商务能够得以顺利进行。多址负载均衡器可以对客户发来的访问请求进行解析,计算出最佳地址,然后将该地址返回客户,使客户自动连线到对其请求来说最佳的数据中心。
负载均衡,从结构上分为本地负载均衡和地域负载均衡(全局负载均衡),前一种是指对本地的伺服器集群做负载均衡,后一种是指对分别放置在不同的地理位置、在不同的网路及伺服器群集之间作负载均衡。
每个主机运行一个所需伺服器程式的独立拷贝,诸如Web、FTP、Telnet或e-mail伺服器程式。对于某些服务(如运行在Web伺服器上的那些服务)而言,程式的一个拷贝运行在群集内所有的主机上,而网路负载均衡则将工作负载在这些主机间进行分配。对于其他服务(例如e-mail),只有一台主机处理工作负载,针对这些服务,网路负载均衡允许网路通讯量流到一个主机上,并在该主机发生故障时将通讯量移至其他主机。
■DNS
最早的负载均衡技术是通过DNS来实现的,在DNS中为多个地址配置同一个名字,因而查询这个名字的客户机将得到其中一个地址,从而使得不同的客户访问不同的伺服器,达到负载均衡的目的。
DNS负载均衡是一种简单而有效的方法,但是它不能区分伺服器的差异,也不能反映伺服器的当前运行状态。当使用DNS负载均衡的时候,必须儘量保证不同的客户计算机能均匀获得不同的地址。由于DNS数据具备刷新时间标誌,一旦超过这个时间限制,其他DNS伺服器就需要和这个伺服器互动,以重新获得地址数据,就有可能获得不同IP位址。因此为了使地址能随机分配,就应使刷新时间儘量短,不同地方的DNS伺服器能更新对应的地址,达到随机获得地址,然而将过期时间设定得过短,将使DNS流量大增,而造成额外的网路问题。DNS负载均衡的另一个问题是,一旦某个伺服器出现故障,即使及时修改了DNS设定,还是要等待足够的时间(刷新时间)才能发挥作用,在此期间,保存了故障伺服器地址的客户计算机将不能正常访问伺服器。
儘管存在多种问题,但它还是一种非常有效的做法,包括Yahoo在内的很多大型网站都使用DNS。
■代理伺服器
使用代理伺服器,可以将请求转发给内部的伺服器,使用这种加速模式显然可以提升静态网页的访问速度。然而,也可以考虑这样一种技术,使用代理伺服器将请求均匀转发给多台伺服器,从而达到负载均衡的目的。
这种代理方式与普通的代理方式有所不同,标準代理方式是客户使用代理访问多个外部伺服器,而这种代理方式是代理多个客户访问内部伺服器,因此也被称为反向代理模式。虽然实现这个任务并不算是特别複杂,然而由于要求特别高的效率,实现起来并不简单。
使用反向代理的好处是,可以将负载均衡和代理伺服器的高速快取技术结合在一起,提供有益的性能。然而它本身也存在一些问题,首先就是必须为每一种服务都专门开发一个反向代理伺服器,这就不是一个轻鬆的任务。
代理伺服器本身虽然可以达到很高效率,但是针对每一次代理,代理伺服器就必须维护两个连线,一个对外的连线,一个对内的连线,因此对于特别高的连线请求,代理伺服器的负载也就非常之大。反向代理方式下能套用最佳化的负载均衡策略,每次访问最空闲的内部伺服器来提供服务。但是随着并发连线数量的增加,代理伺服器本身的负载也变得非常大,最后反向代理伺服器本身会成为服务的瓶颈。
■地址转换网关
支持负载均衡的地址转换网关,可以将一个外部IP位址映射为多个内部IP位址,对每次TCP连线请求动态使用其中一个内部地址,达到负载均衡的目的。很多硬体厂商将这种技术集成在他们的交换机中,作为他们第四层交换的一种功能来实现,一般採用随机选择、根据伺服器的连线数量或者回响时间进行选择的负载均衡策略来分配负载。由于地址转换相对来讲比较接近网路的低层,因此就有可能将它集成在硬体设备中,通常这样的硬体设备是区域网路交换机。
当前区域网路交换机所谓的第四层交换技术,就是按照IP位址和TCP连线埠进行虚拟连线的交换,直接将数据包传送到目的计算机的相应连线埠。通过交换机就能将来自外部的初始连线请求,分别与内部的多个地址相联繫,此后就能对这些已经建立的虚拟连线进行交换。因此,一些具备第四层交换能力的区域网路交换机,就能作为一个硬体负载均衡器,完成伺服器的负载均衡。
由于第四层交换基于硬体晶片,因此其性能非常优秀,尤其是对于网路传输速度和交换速度远远超过普通的数据包转发。然而,正因为它是使用硬体实现的,因此也不够灵活,仅仅能够处理几种最标準的套用协定的负载均衡,如HTTP 。当前负载均衡主要用于解决伺服器的处理能力不足的问题,因此并不能充分发挥交换机带来的高网路频宽的优点。
■协定内部支持
除了这三种负载均衡方式之外,有的协定内部支持与负载均衡相关的功能,例如HTTP协定中的重定向能力等,HTTP运行于TCP连线的最高层。客户端通过连线埠号80的TCP服务直接连线到伺服器,然后通过TCP连线向伺服器端传送一个HTTP请求。在伺服器分清客户端所需的网页和资源之前,至少要进行四次TCP的数据包交换请求。由于负载平衡设备要把进入的请求分配给多个伺服器,因此,它只能在TCP连线时建立,且HTTP请求通过后才能确定如何进行负载的平衡。当一个网站的点击率达到每秒上百甚至上千次时,TCP连线、HTTP报头信息以及进程的时延已经变得很重要了。在HTTP请求和报头中有很多对负载平衡有用的信息。首先,也是最重要的一点是,我们可以从这些信息中获知客户端所请求的URL和网页,利用这个信息,负载平衡设备就可以将所有的图像请求引导到一个图像伺服器,或者根据URL的资料库查询内容调用CGI程式,将请求引导到一个专用的高性能资料库伺服器。惟一能局限这些信息获取的因素是负载平衡设备本身的灵活程度。事实上,如果网路管理员熟悉Web内容交换技术,他可以仅仅根据HTTP报头的cookie栏位来使用Web内容交换技术改善对特定客户的服务,如果能从HTTP请求中找到一些规律,还可以充分利用它作出各种决策。除了TCP连线表的问题外,如何查找合适的HTTP报头信息以及作出负载平衡决策的过程,是影响Web内容交换技术性能的重要问题。
但它依赖于特定协定,因此使用範围有限。根据现有的这些负载均衡技术,并套用最佳化的均衡策略,来实现后端伺服器负载分担的最优状态。
由于网路负载均衡技术的诸多优点,网路负载均衡的被广泛套用一定是大势所趋。随后,编者还会介绍更多与网路负载均衡相关的文章,希望能对大家有所帮助。