会的含义:负载均衡相关技术(服务器开发)

来源:百度文库 编辑:偶看新闻 时间:2024/05/10 17:53:48

文章来源: 服务器开发(Server Development)

原文地址:http://blog.sina.com.cn/s /blog_48d2454401000d99.html
有所删节。

3.2  网络负载均衡
l   在现行的许多网络应用中,有时一台服务器往往不能满足客户端的要求,此时只能通过增加服务器来解决问题。那么,有没有一个办法或者技术来解决此类问题呢?  使用Windows 2000或Windows Server 2003中的网络负载平衡群集就可以。

l   负载均衡(Load Balance)建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。

l   负载均衡有两方面的含义:首先,大量的并发访问或数据流量分担到多台节点设备上分别处理,减少用户等待响应的时间;其次,单个重负载的运算分担到多台节点设备上做并行处理,每个节点设备处理结束后,将结果汇总,返回给用户,系统处理能力得到大幅度提高。

l   在Windows Server 2003中,网络负载平衡的应用程序包括Internet信息服务(IIS)、ISA Server 2004防火墙与代理服务器、VPN虚拟专用网、终端服务器、Windows Media Services(Windows视频点播、视频广播)等服务。同时,网络负载平衡有助于改善你的服务器性能和可伸缩性,以满足不断增长的基于 Internet客户端的需求。

网络负载平衡的优点:

l   1.网络负载平衡允许你将传入的请求传播到最多达32台的服务器上,即可以使用最多32台服务器共同分担对外的网络请求服务。网络负载平衡技术保证即使是在负载很重的情况下它们也能作出快速响应。

l   2.网络负载平衡对外只须提供一个IP地址(或域名)。

l   3.如果网络负载平衡中的一台或几台服务器不可用时,服务不会中断。网络负载平衡自动检测到服务器不可用时,能够迅速在剩余的服务器中重新指派客户机通讯。此保护措施能够帮助你为关键的业务程序提供不中断的服务。可以根据网络访问量的增多来增加网络负载平衡服务器的数量。

l   4.网络负载平衡可在普通的计算机上实现。

3.2.1 负载均衡技术的分类
软/硬件负载均衡     /本地/全局负载均衡    /网络层次上的负载均衡

软件负载均衡解决方案是指在一台或多台服务器相应的操作系统上安装一个或多个附加软件来实现负载均衡,如DNS Load Balance,CheckPoint Firewall-1 ConnectControl等。

优点是基于特定环境,配置简单,使用灵活,成本低廉,可以满足一般的负载均衡需求。

软件解决方案缺点也较多,因为每台服务器上安装额外的软件运行会消耗系统不定量的资源,越是功能强大的模块,消耗得越多,所以当连接请求特别大的时候,软件本身会成为服务器工作成败的一个关键;软件可扩展性并不是很好,受到操作系统的限制;由于操作系统本身的Bug,往往会引起安全问题。

硬件负载均衡解决方案是直接在服务器和外部网络间安装负载均衡设备,这种设备我们通常称之为负载均衡器,由于专门的设备完成专门的任务,独立于操作系统,整体性能得到大量提高,加上多样化的负载均衡策略,智能化的流量管理,可达到最佳的负载均衡需求。

负载均衡器有多种多样的形式,除了作为独立意义上的负载均衡器外;有些负载均衡器集成在交换设备中,置于服务器与Internet链接之间;有些则以两块网络适配器将这一功能集成到PC中,一块连接到Internet上,一块连接到后端服务器群的内部网络上。

一般而言,硬件负载均衡在功能、性能上优于软件方式,不过成本昂贵。

负载均衡从其应用的地理结构上分为本地负载均衡(Local Load Balance)和全局负载均衡(Global Load Balance,也叫地域负载均衡)。

本地负载均衡是指对本地的服务器群做负载均衡。

本地负载均衡能有效地解决数据流量过大、网络负荷过重的问题,并且不需花费昂贵开支购置性能卓越的服务器,充分利用现有设备,避免服务器单点故障造成数据流量的损失。其有灵活多样的均衡策略把数据流量合理地分配给服务器群内的服务器共同负担。即使是再给现有服务器扩充升级,也只是简单地增加一个新的服务器到服务群中,而不需改变现有网络结构、停止现有的服务。

全局负载均衡是指对分别放置在不同的地理位置、有不同网络结构的服务器群间作负载均衡。主要用于在一个多区域拥有自己服务器的站点,为了使全球用户只以一个IP地址或域名就能访问到离自己最近的服务器,从而获得最快的访问速度,也可用于子公司分散站点分布广的大公司通过Intranet(企业内部互联网)来达到资源统一合理分配的目的。

全局负载均衡有以下的特点:

l   实现地理位置无关性,能够远距离为用户提供完全的透明服务。

l   除了能避免服务器、数据中心等的单点失效,也能避免由于ISP专线故障引起的单点失效。

l   解决网络拥塞问题,提高服务器响应速度,服务就近提供,达到更好的访问质量。

网络层次上的负载均衡

l   链路聚合(Trunking)技术(第二层负载均衡) :将多条物理链路当作一条单一的聚合逻辑链路使用,网络数据流量由聚合逻辑链路中所有物理链路共同承担,由此在逻辑上增大了链路的容量,使其能满足带宽增加的需求。

l   现代负载均衡技术通常操作于网络的第四层或第七层。

n  第四层负载均衡将一个Internet上合法注册的IP地址映射为多个内部服务器的IP地址,对每次TCP连接请求动态使用其中一个内部IP地址,达到负载均衡的目的。在第四层交换机中,此种均衡技术得到广泛的应用,一个目标地址是服务器群VIP(虚拟IP,Virtual IP address)连接请求的数据包流经交换机,交换机根据源端和目的IP地址、TCP或UDP端口号和一定的负载均衡策略,在服务器IP和VIP间进行映射,选取服务器群中最好的服务器来处理连接请求。

n  第七层负载均衡控制应用层服务的内容,提供了一种对访问流量的高层控制方式(通过检查流经的HTTP报头,根据报头内的信息来执行负载均衡任务),适合对HTTP服务器群的应用。第七层负载均衡受到其所支持的协议限制(一般只有HTTP),这样就限制了它应用的广泛性,并且检查HTTP报头会占用大量的系统资源,势必会影响到系统的性能,在大量连接请求的情况下,负载均衡设备自身容易成为网络整体性能的瓶颈。

n  第七层负载均衡优点表现在如下几个方面:

n  通过对HTTP报头的检查,可以检测出HTTP400、500和600系列的错误信息,因而能透明地将连接请求重新定向到另一台服务器,避免应用层故障。

n  可根据流经的数据类型(如判断数据包是图像文件、压缩文件或多媒体文件格式等),把数据流量引向相应内容的服务器来处理,增加系统性能。

n  能根据连接请求的类型,如是普通文本、图象等静态文档请求,还是asp、cgi等的动态文档请求,把相应的请求引向相应的服务器来处理,提高系统的性能及安全性。

3.2.2 负载均衡策略
n  选择合适的负载均衡策略,使多个设备能很好的共同完成任务,消除或避免现有网络负载分布不均、数据流量拥挤反应时间长的瓶颈。

n  在各负载均衡方式中,针对不同的应用需求,在OSI参考模型的第二、三、四、七层的负载均衡都有相应的负载均衡策略。

n  负载均衡策略的优劣及其实现的难易程度有两个关键因素:

n  1、负载均衡算法;

n  2、对网络系统状况的检测方式和能力。

负载均衡算法

n  轮循均衡(Round Robin):每一次来自网络的请求轮流分配给内部中的服务器,从1至N然后重新开始。此种均衡算法适合于服务器组中的所有服务器都有相同的软硬件配置并且平均服务请求相对均衡的情况。    

n  权重轮循均衡(Weighted Round Robin):根据服务器的不同处理能力,给每个服务器分配不同的权值,使其能够接受相应权值数的服务请求。例如:服务器A的权值被设计成1,B的权值是 3,C的权值是6,则服务器A、B、C将分别接受到10%、30%、60%的服务请求。此种均衡算法能确保高性能的服务器得到更多的使用率,避免低性能的服务器负载过重。

n   随机均衡(Random):把来自网络的请求随机分配给内部中的多个服务器。

n   权重随机均衡(Weighted Random):此种均衡算法类似于权重轮循算法,不过在处理请求分担时是个随机选择的过程。

n  响应速度均衡(Response Time):负载均衡设备对内部各服务器发出一个探测请求(例如Ping),然后根据内部中各服务器对探测请求的最快响应时间来决定哪一台服务器来响应客户端的服务请求。此种均衡算法能较好的反映服务器的当前运行状态,但这最快响应时间仅仅指的是负载均衡设备与服务器间的最快响应时间,而不是客户端与服务器间的最快响应时间。

n  最少连接数均衡(Least Connection):最少连接数均衡算法对内部中需负载的每一台服务器都有一个数据记录,记录当前该服务器正在处理的连接数量,当有新的服务连接请求时,将把当前请求分配给连接数最少的服务器,使均衡更加符合实际情况,负载更加均衡。此种均衡算法适合长时处理的请求服务,如FTP。

n  处理能力均衡:此种均衡算法将把服务请求分配给内部中处理负荷(根据服务器CPU型号、CPU数量、内存大小及当前连接数等换算而成)最轻的服务器,由于考虑到了内部服务器的处理能力及当前网络运行状况,所以此种均衡算法相对来说更加精确,尤其适合运用到第七层(应用层)负载均衡的情况下。

n  DNS 响应均衡(Flash DNS)在Internet上,无论是HTTP、FTP或是其它的服务请求,客户端一般都是通过域名解析来找到服务器确切的IP地址的。在此均衡算法下,分处在不同地理位置的负载均衡设备收到同一个客户端的域名解析请求,并在同一时间内把此域名解析成各自相对应服务器的IP地址(即与此负载均衡设备在同一位地理位置的服务器的IP地址)并返回给客户端,客户端将以最先收到的域名解析IP地址来继续请求服务,而忽略其它的IP地址响应。在种均衡策略适合应用在全局负载均衡的情况下,对本地负载均衡是没有意义的。

n  ……

3.2.3 负载均衡实施的要素
性能   /可扩展性    /灵活性     /可靠性      /易管理性

性能:性能是我们在引入均衡方案时需要重点考虑的问题,但也是一个最难把握的问题。

衡量性能时可将每秒钟通过网络的数据包数目做为一个参数,另一个参数是均衡方案中服务器群所能处理的最大并发连接数目。

性能的优劣与负载均衡设备的处理能力、采用的均衡策略息息相关,并且有两点需要注意:

1、均衡方案对服务器群整体的性能,这是响应客户端连接请求速度的关键;

2、负载均衡设备自身的性能,避免有大量连接请求时自身性能不足而成为服务瓶颈。



可扩展性:合适的均衡解决方案应能满足日新月异的IT技术以及业务量的急速上升。能均衡不同操作系统和硬件平台之间的负载,能均衡HTTP、邮件、新闻、代理、数据库、防火墙和 Cache等不同服务器的负载,并且能以对客户端完全透明的方式动态增加或删除某些资源。

灵活性:均衡解决方案应能灵活地提供不同的应用需求,满足应用需求的不断变化。在不同的服务器群有不同的应用需求时,应有多样的均衡策略提供更广泛的选择。

可靠性:在对服务质量要求较高的站点,负载均衡解决方案应能为服务器群提供完全的容错性和高可用性。但在负载均衡设备自身出现故障时,应该有良好的冗余解决方案,提高可靠性。使用冗余时,处于同一个冗余单元的多个负载均衡设备必须具有有效的方式以便互相进行监控,保护系统尽可能地避免遭受到重大故障的损失。

易管理性:不管是通过软件还是硬件方式的均衡解决方案,我们都希望它有灵活、直观和安全的管理方式,这样便于安装、配置、维护和监控,提高工作效率,避免差错。

在硬件负载均衡设备上,目前主要有三种管理方式可供选择:

1、命令行接口(CLI:Command Line Interface),可通过超级终端连接负载均衡设备串行接口来管理,也能telnet远程登录管理,在初始化配置时,往往要用到前者;

2、图形用户接口(GUI:Graphical User Interfaces),有基于普通web页的管理,也有通过Java Applet 进行安全管理,一般都需要管理端安装有某个版本的浏览器;

3、SNMP(Simple Network Management Protocol,简单网络管理协议)支持,通过第三方网络管理软件对符合SNMP标准的设备进行管理。

3.3  网络负载均衡实战
DNS 轮询实现负载均衡是在DNS服务器上给一个服务器的域名注册多个IP地址,当DNS客户查询域名时, DNS会以轮询的方式依次响应域名所对应到的不同IP地址,使客户端与不同的服务器连接,从而实现负载均衡。DNS负载均衡采用的是简单的轮循负载算法,优点是经济简单易行,并且服务器可以位于internet上任意的位置。

双网卡负载均衡:过软件将双网卡绑定为一个IP地址,使用起来就好象在使用一块网卡。其属于链路聚合(Trunking)技术(第二层负载均衡)。

优点:首先,可以增大带宽。其次,可以形成网卡冗余阵列、分担负载。

Windows2000/2003负载均衡的实现:略

     NetIQ IxChariot是美国IXIA公司IxChariot测试软件(NetIQ公司Chariot软件)是一款工业界标准的IP网络与网络设备应用层网络性能测试软件。