负载均衡(负载平衡)

原文地址:http://blog.sina.com.cn/s/blog_4b700c4c0102e1lh.html

 

集群和负载均衡的概念

集群(Cluster)   所谓集群是指一组独立的计算机系统构成的一个松耦合的多处理器系统,它们之间通过网络实现进程间的通信。应用程序可以通过网络共享内存进行消息传送,实现分布式计算机。   负载均衡(Load Balance)   网络的负载均衡是一种动态均衡技术,通过一些工具实时地分析数据包,掌握网络中的数据流量状况,把任务合理均衡地分配出去。这种技术基于现有网络结构,提供了一种扩展服务器带宽和增加服务器吞吐量的廉价有效的方法,加强了网络数据处理能力,提高了网络的灵活性和可用性。   特点   (1)高可靠性(HA)。利用集群管理软件,当主服务器故障时,备份服务器能够自动接管主服务器的工作,并及时切换过去,以实现对用户的不间断服务。   (2)高性能计算(HP)。即充分利用集群中的每一台计算机的资源,实现复杂运算的并行处理,通常用于科学计算领域,比如基因分析、化学分析等。   (3)负载平衡。即把负载压力根据某种算法合理分配到集群中的每一台计算机上,以减轻主服务器的压力,降低对主服务器的硬件和软件要求。   LVS系统结构与特点   1. Linux Virtual Server:简称LVS。是由中国一个Linux程序员章文嵩博士发起和领导的,基于Linux系统的服务器集群解决方案,其实现目标是创建一个具有良好的扩展性、高可靠性、高性能和高可用性的体系。许多商业的集群产品,比如RedHat的Piranha、 Turbo Linux公司的Turbo Cluster等,都是基于LVS的核心代码的。   2. 体系结构:使用LVS架设的服务器集群系统从体系结构上看是透明的,最终用户只感觉到一个虚拟服务器。物理服务器之间可以通过高速的 LAN或分布在各地的WAN相连。最前端是负载均衡器,它负责将各种服务请求分发给后面的物理服务器,让整个集群表现得像一个服务于同一IP地址的虚拟服务器。   3. LVS的三种模式工作原理和优缺点: Linux Virtual Server主要是在负载均衡器上实现的,负载均衡器是一台加了 LVS Patch的2.2.x版内核的Linux系统。LVS Patch可以通过重新编译内核的方法加入内核,也可以当作一个动态的模块插入现在的内核中。   负载均衡器可以运行在以下三种模式下:   (1)Virtual Server via NAT(VS-NAT):用地址翻译实现虚拟服务器。地址转换器有能被外界访问到的合法IP地址,它修改来自专有网络的流出包的地址。外界看起来包是来自地址转换器本身,当外界包送到转换器时,它能判断出应该将包送到内部网的哪个节点。优点是节省IP 地址,能对内部进行伪装;缺点是效率低,因为返回给请求方的流量经过转换器。   (2)Virtual Server via IP Tunneling (VS-TUN):用IP隧道技术实现虚拟服务器。这种方式是在集群的节点不在同一个网段时可用的转发机制,是将IP包封装在其他网络流量中的方法。为了安全的考虑,应该使用隧道技术中的VPN,也可使用租用专线。集群所能提供的服务是基于TCP/IP的Web服务、Mail服务、News服务、DNS服务、Proxy服务器等等.   (3)Virtual Server via Direct Routing(VS-DR):用直接路由技术实现虚拟服务器。当参与集群的计算机和作为控制管理的计算机在同一个网段时可以用此法,控制管理的计算机接收到请求包时直接送到参与集群的节点。优点是返回给客户的流量不经过控制主机,速度快开销少。   以四台服务器为例实现负载均衡:   安装配置LVS   1. 安装前准备:   (1)首先说明,LVS并不要求集群中的服务器规格划一,相反,可以根据服务器的不同配置和负载状况,调整负载分配策略,充分利用集群环境中的每一台服务器。如下表:   Srv Eth0 Eth0:0 Eth1 Eth1:0   vs1 10.0.0.1 10.0.0.2 192.168.10.1 192.168.10.254   vsbak 10.0.0.3 192.168.10.102   real1 192.168.10.100   real2 192.168.10.101   其中,10.0.0.2是允许用户访问的IP。   (2)这4台服务器中,vs1作为虚拟服务器(即负载平衡服务器),负责将用户的访问请求转发到集群内部的real1,real2,然后由real1,real2分别处理。 Client为客户端测试机器,可以为任意操作系统。   (3)所有OS为redhat6.2,其中vs1 和vsbak 的核心是2.2.19, 而且patch过ipvs的包, 所有real server的Subnet mask 都是24位, vs1和vsbak 的10.0.0. 网段是24 位。   2.理解LVS中的相关术语   (1) ipvsadm :ipvsadm是LVS的一个用户界面。在负载均衡器上编译、安装ipvsadm。   (2) 调度算法: LVS的负载均衡器有以下几种调度规则:Round-robin,简称rr;weighted Round-robin,简称wrr;每个新的连接被轮流指派到每个物理服务器。Least-connected,简称lc;weighted Least-connected,简称wlc,每个新的连接被分配到负担最小的服务器。   (3) Persistent client connection,简称pcc,(持续的客户端连接,内核2.2.10版以后才支持)。所有来自同一个IP的客户端将一直连接到同一个物理服务器。超时时间被设置为360秒。Pcc是为https和cookie服务设置的。在这处调度规则下,第一次连接后,所有以后来自相同客户端的连接(包括来自其它端口)将会发送到相同的物理服务器。但这也会带来一个问题,因为大约有25%的Internet 可能具有相同的IP地址。   (4) Persistent port connection调度算法:在内核2.2.12版以后,pcc功能已从一个调度算法(你可以选择不同的调度算法:rr、wrr、lc、wlc、pcc)演变成为了一个开关选项(你可以让rr、 wrr、lc、wlc具备pcc的属性)。在设置时,如果你没有选择调度算法时,ipvsadm将默认为wlc算法。 在Persistent port connection(ppc)算法下,连接的指派是基于端口的,例如,来自相同终端的80端口与443端口的请求,将被分配到不同的物理服务器上。不幸的是,如果你需要在的网站上采用cookies时将出问题,因为http是使用80端口,然而cookies需要使用443端口,这种方法下,很可能会出现cookies不正常的情况。   (5)Load Node Feature of Linux Director:让Load balancer 也可以处理users 请求。   (6)IPVS connection synchronization。   (7)ARP Problem of LVS/TUN and LVS/DR:这个问题只在LVS/DR,LVS/TUN 时存在。   3. 配置实例   (1) 需要的软件包和包的安装:   I. piranha-gui-0.4.12-2*.rpm (GUI接口cluster设定工具);   II. piranha-0.4.12-2*.rpm;   III. ipchains-1.3.9-6lp*.rpm (架设NAT)。   取得套件或mount到光盘,进入RPMS目录进行安装:   # rpm -Uvh piranha*   # rpm -Uvh ipchains*   (2) real server群:   真正提供服务的server(如web server),在NAT形式下是以内部虚拟网域的形式,设定如同一般虚拟网域中Client端使用网域:192.168.10.0/24 架设方式同一般使用虚拟IP之局域网络。   a. 设网卡IP   real1 :192.168.10.100/24   real2 :192.168.10.101/24   b.每台server均将default gateway指向192.168.10.254。 192.168.10.254为该网域唯一对外之信道,设定在virtual server上,使该网域进出均需通过virtual server 。   c.每台server均开启httpd功能供web server服务,可以在各real server上放置不同内容之网页,可由浏览器观察其对各real server读取网页的情形。   d.每台server都开启rstatd、sshd、rwalld、ruser、rsh、rsync,并且从Vserver上面拿到相同的lvs.conf文件。   (3) virtual server:   作用在导引封包的对外主机,专职负责封包的转送,不提供服务,但因为在NAT型式下必须对进出封包进行改写,所以负担亦重。   a.IP设置:   对外eth0:IP:10.0.0.1 eth0:0 :10.0.0.2   对内eth1:192.168.10.1 eth1:0 :192.168.10.254   NAT形式下仅virtual server有真实IP,real server群则为透过virtual server.   b.设定NAT功能   # echo 1 >; /proc/sys/net/ipv4/ip_forward   # echo 1 >; /proc/sys/net/ipv4/ip_always_defrag   # ipchains -P forward MASQ   c.设定piranha 进入X-window中 (也可以直接编辑/etc/lvs.cf )   a).执行面板系统piranha   b).设定“整体配置”(Global Settings) 主LVS服务器主机IP:10.0.0.2, 选定网络地址翻译(预设) NAT路径名称: 192.168.10.254, NAT 路径装置: eth1:0   c).设定虚拟服务器(Virtual Servers) 添加编辑虚拟服务器部分:(Virtual Server)名称:(任意取名);应用:http;协议: tcp;连接:80;地址:10.0……0.2;装置:eth0:0;重入时间:180 (预设);服务延时:10 (预设);加载监控工具:ruptime (预设);调度策略:Weighted least-connections; 持续性:0 (预设); 持续性屏蔽: 255.255.255.255 (预设);按下激活:实时服务器部分:(Real Servers);添加编辑:名字:(任意取名); 地址: 192.168.10.100;权重:1 (预设) 按下激活   另一架real server同上,地址:192.168.10.101。   d). 控制/监控(Controls/Monitoring) 控制:piranha功能的激活与停止,上述内容设定完成后即可按开始键激活piranha.监控器:显示ipvsadm设定之routing table内容 可立即更新或定时更新。   (4)备援主机的设定(HA)   单一virtual server的cluster架构virtual server 负担较大,提供另一主机担任备援,可避免virtual server的故障而使对外服务工作终止;备份主机随时处于预备状态与virtual server相互侦测   a.备份主机:   eth0: IP 10.0.0.3   eth1: IP 192.168.10.102 同样需安装piranha,ipvsadm,ipchains等套件   b.开启NAT功能(同上面所述)。   c.在virtual server(10.0.0.2)主机上设定。   a).执行piranha冗余度 ;   b).按下“激活冗余度”;   冗余LVS服务器IP: 10.0.0.3;HEARTBEAT间隔(秒数): 2 (预设)   假定在…秒后进入DEAD状态: 5 (预设); HEARTBEAT连接埠: 539 (预设)   c).按下“套用”;   d).至“控制/监控”页,按下“在当前执行层添加PULSE DEAMON” ,按下“开始”;   e).在监控器按下“自动更新”,这样可由窗口中看到ipvsadm所设定的routing table,并且动态显示real server联机情形,若real server故障,该主机亦会从监视窗口中消失。   d.激活备份主机之pulse daemon (执行# /etc/rc.d/init.d/pulse start)。   至此,HA功能已经激活,备份主机及virtual server由pulse daemon定时相互探询,一但virtual server故障,备份主机立刻激活代替;至virtual server 正常上线后随即将工作交还virtual server。   LVS测试   经过了上面的配置步骤,现在可以测试LVS了,步骤如下:   1. 分别在vs1,real1,real2上运行/etc/lvs/rc.lvs_dr。注意,real1,real2上面的/etc/lvs 目录是vs2输出的。如果您的NFS配置没有成功,也可以把vs1上/etc/lvs/rc.lvs_dr复制到real1,real2上,然后分别运行。确保real1,real2上面的apache已经启动并且允许telnet。   2. 测试Telnet:从client运行telnet 10.0.0.2,如果登录后看到如下输出就说明集群已经开始工作了:(假设以guest用户身份登录)   [guest@real1 guest]$——说明已经登录到服务器real1上。   再开启一个telnet窗口,登录后会发现系统提示变为:   [guest@real2 guest]$——说明已经登录到服务器real2上。   3. 测试http:从client运行iexplore [url]http://10.0.0.2[/url]   因为在real1 和real2 上面的测试页不同,所以登录几次之后,显示出的页面也会有所不同,这样说明real server 已经在正常工作了。

 

 

负载平衡机制简介

 

在计算机硬件价格下降、计算机网络拓扑发展的情况下,分布式计算机系统给用户提供了一个丰富的资源集合。人们在研究分布式系统时,就注意到了这样一个问题:在一个由网络连接起来的多计算机环境中,在某一时刻,一些计算机的负载比较重,而另外一些计算机的负载却比较轻。平衡各计算机之间的负载是任务分配与调度的一个主要目标,它能够提高整个系统的性能。

为了改善系统的性能,通过在多台计算机之间合理地分配负载,使各台计算机的负载基本均衡,这种计算能力共享的形式,通常被称为负载平衡或负载共享。一般来说,"负载平衡"要达到的目标是使各台计算机之间的负载基本均衡,而"负载共享"意味着只是简单的负载的重新分配。

负载平衡包括两种,一种是静态负载平衡,一种是动态负载平衡。只是利用系统负载的平均信息,而忽视系统当前的负载状况的方法被称为静态负载平衡。根据系统当前的负载状况来调整任务划分的方法被称为动态负载平衡。

导致负载不平衡主要是由于:

  1. 某些算法的迭代大小不是固定的,但迭代的大小在编译时却可以被求得;
  2. 某些算法的迭代大小不是固定的,并且迭代的大小依赖于被处理的数据,在编译时无法求得;
  3. 即使迭代大小是固定的,也会有许多不定因素导致计算速度的差异。

考察这三个原因,对第一种情况可在编译时估计各迭代的工作量,按照处理节点的处理能力分布迭代,这就是静态负载平衡的方法。对第二、三种情况来说,必须采用动态负载平衡的手段,在运行过程中根据各个处理节点完成任务的情况,动态地迁移任务,实现动态负载平衡。进行动态负载平衡需要考察处理节点的处理能力,它的基本依据是根据处理节点先前的处理速度预见未来的处理速度。

负载平衡算法

一个负载平衡算法都包含以下三个组成部分:

  1. 信息策略:制定任务放置策略的制定者使用的负载和任务量,以及信息分配的方式。
  2. 传送策略:基于任务和计算机负载,判断是否要把一个任务传送到其它计算机上处理。
  3. 放置策略:对于适合传送到其它计算机处理的任务,选择任务将被传送的目的计算机。

负载平衡的上述三个部分之间是以不同的方式相互作用的。放置策略利用信息策略提供的负载信息,仅当任务被传送策略判断为适于传送之后才行动。总之,负载平衡的目标是:提供最短的平均任务响应时间;能适于变化的负载;是可靠的负载平衡机制。

 

信息策略

人们用来描述负载信息采用的参数有:

  1. 运行队列中的任务数;
  2. 系统调用的速率;
  3. CPU上下文切换率;
  4. 空闲CPU时间百分比;
  5. 空闲存储器的大小(K字节);
  6. 1分钟内的平均负载。对于这些单个的负载描述参数,第(1)个,即采用运行队列中的任务数作为描述负载的参数被证明是最有效的,即它的平均任务响应时间最短,并且已经得到广泛应用。但是,如果为了使系统信息更全面而采集了更多的参数,则往往由于增加了额外开销,却得不到所希望的性能改善。例如,采用将六个参数中的某两个进行"AND"或"OR"组合,得到的平均响应时间反而比单个参数的平均响应时间还要差一些。

传送策略

为了简单起见,在选用传送策略时,多选用阀值策略。例如,Eager等人的方法是:在判断是否要在本地处理一个任务时,无需交换计算机之间的状态信息,一旦服务队列或等待服务队列的长度大于阀值时,就传送这个任务,而且传送的是刚刚接收的任务。而进程迁移能够迁移正在执行的任务,是对这种只能传送刚刚接收的任务的一种改进。

Zhou在模拟研究七个负载平衡算法时,其传送策略都采用阀值策略。它的阀值策略基于两个阀值∶计算机的负载阀值Load和任务执行时间阀值TCPU如果计算机的负载超过Load并且任务的执行时间超过TCPU时,就把此任务传送到其它计算机执行。

 

放置策略

经过总结,共有以下四种放置策略。

  1. 集中策略。每隔P秒,其中一个计算机被指定为"负载信息中心"(LIC),接受所有其它负载的变更值,并把它们汇集到一个"负载向量"中,然后把负载向量广播给所有其它的计算机。当一台计算机认为一个任务适于传送到其它计算机上执行时,它就给LIC发送一个请求,并告知当前负载的值。LIC选一台具有最短运行队列长度的计算机,并且通知任务所在的计算机把任务发送给它,同时,它把目的主机负载值增加1。
  2. 阀值策略。随机选择一台计算机,判断若把任务传送到那台计算机后,那台计算机的任务队列长度是否会超过阀值。如果不超过阀值,就传送此任务;否则,随机选择另一台计算机,并以同样方式判断,继续这样做直到找到一台合适的目的计算机,或探测次数超过一个静态值限制LP,当任务真正到达计算机以后,不管状态如何,必须处理该任务。
  3. 最短任务队列策略。随机选择LP台不同的计算机,察看每台计算机的任务队列长度,任务被传送到具有最短任务队列长度的计算机。当任务真正到达计算机,无论状态如何,目的计算机必须处理该任务。对此策略的一个简单改进时,无论何时,遇到一台队列长度为0的计算机时,不再继续探测,因为可以确定此计算机是一台可以接受的目的计算机。
  4. 保留策略。当一个任务从一台计算机离开时,该计算机检查本地负载,如果负载小于阀值T1,就探测其它计算机,并在R个负载大于T1的计算机中登记该计算机的名字,并把登记的内容保留到一个栈中。当一个任务到达一台超载的计算机时,就把这个任务传送到此台计算机栈顶的计算机上。如果一个计算机的负载低于T1,就清空栈里保留的所有计算机名。

Zhou的论文中,比较了(2)和(3)三种策略,结论是:以简单(计算不昂贵)的方式,利用少量状态信息,第(2)中方法往往获得比第(3)种方法更好的效果。第(3)中方法比较复杂,它必须用性能的改善来补偿额外花费,所以取得的效果会稍差一些[2]。

算法实现

目前,常见的算法有:中心任务调度策略、梯度模型策略、发送者启动策略和接收者启动策略。

  1. 中心任务调度策略

    顾名思义,中心任务调度策略就是让一个特定的处理节点担任计算任务分配器的角色,我们称之为调度节点,而把其它完成计算任务的处理节点称作计算节点。调度节点为了掌握任务分布情况,需要维护一个任务分布表。

    在任务启动时,调度节点装入任务的预分布情况表,而计算节点则开始完成分配给它的计算任务。在执行过程中,计算节点按照一定的周期向调度节点提交计算任务完成情况,由调度节点根据这些信息判断处理节点的处理能力,发出任务迁移指令,控制任务从重负载节点向轻负载节点流动,同时还要随之更新在调度节点上的任务分布表。

    中心任务调度的优点显而易见:调度节点掌握所有节点的处理能力和任务的分布情况,因此它可以在综合各种因素的基础上找到最佳的任务迁移方式。但是在计算节点很多时,所有计算机点都必然与中心节点通讯,必然导致严重的冲突,这会大大降低动态负载平衡的效率,甚至抵消动态负载平衡所带来的一切好处。

    另外,还应该注意到,调度节点在判断是否进行任务迁移时,计算节点必须等待,这无疑又浪费了计算节点的处理能力。一种改进的方法是调度节点在收到计算节点的当前任务完成情况时,立即存储之,并把根据上次的信息做出的判断返回给计算节点以减少延迟,在空闲时再根据本次收到的信息做出判断,留到下次使用。这样就把调度节点进行任务迁移决策的时间和计算节点完成计算任务的时间重叠了起来,降低了动态负载平衡的开销。

  2. 梯度模型策略

    在中心任务调度策略中,计算节点越多,冲突就越多。为了减少冲突,适应大量处理节点的需要。梯度模型策略、发送者启动策略和接收者启动策略都不设置专用的调度节点,而且每个节点只与一部分节点进行交互,以减少由负载平衡导致的冲突。

    在梯度模型策略中,所有处理节点仅与直接相邻的节点进行交互,并引入两个阀值:M 1 和Mh。在运行过程中,我们将所在节点划分成三类:设一个节点的剩余任务量为t,如果t < M1则称之为轻负载节点;如果M 1< t < M h则称之为中负载节点;如果t > M h则称之为重负载节点。另外,把从一个节点到与之最接近的轻负载节点的最短距离定义为这个节点的梯度。

    在启动时,每个节点都是重负载节点,梯度都是无穷大。在计算过程中,周期性地检查其剩余负载是否大于M1。当某一节点发现自身剩余的负载小于M1时就把它的梯度设为零,随后把自身当前的梯度与相邻节点间的距离之和发送给相邻的节点。相邻的节点接收到这个新梯度,就与自身当前梯度进行比较。如果自身梯度小于等于新梯度,则不做任何事;如果自身梯度大于新梯度,则将自身梯度设置为新梯度,并向发送给它新梯度信息的节点一样传播新梯度。这样,梯度信息(实际上就是计算任务完成的情况)就会被传播开来,重负载节点就可以把它多余的负载发送给向临界点中梯度最小的节点。于是,计算任务就在梯度的引导之下从重负载节点流向轻负载节点。

    可是,按照这种方式,有可能导致过多的计算任务涌向一个轻负载节点。如果轻负载节点接收了过多的新任务,就有可能重新变成中负载甚至重负载节点。一旦出现这种情况,梯度信息就不再能够正确地引导计算任务了。为此,必须使轻负载节点察看要接受的计算任务,如果接收计算任务使本节点脱离轻节点状态,就拒绝接受它。这虽然延迟了任务的接收,但随着时间的推移,轻负载节点实际上不久就可以接受被它拒绝接受的任务了,同时还可以保持节点的梯度的有效性。

  3. 发送者启动策略

    发送者启动策略也引入了一个阀值M来把所有的处理节点划分成轻负载节点和重负载节点,所有当前剩余负载t > M的节点都被称为重负载节点,t < M的节点被称为轻负载节点。发送者启动策略还需要为每个节点定义一个相关域,节点只与它的相关域中的节点进行交互和任务传递。一个直观的相关域的定义是把所有与之相邻的节点作为相关域。

    在启动时,所有节点开始执行计算任务。在执行一段时间之后,节点就开始检查其自身是否是重负载节点。如果是重负载节点,则它就试图在相关域中均匀地分布任务。具体地:设该重负载节点的负载为l p,相关域中有K个节点,其负载分别为l 1,……., l k,则平均负载Lavg为:

    负载均衡(负载平衡)

    为了达到均匀分布,应求得重负载节点应该传递给每个相关域中节点的负载量m k。我们首先引入h k以避免负载被迁移到相关域中负载最重的重负载节点。如果L avg> l k,则 ,否则hk= 0。那么m k为

    负载均衡(负载平衡)

    随后该节点就可以按照m k向各个相关节点发送任务了。

  4. 接收者启动策略

    接收者启动策略与发送者启动策略除了是由轻负载节点启动,要求其它节点把任务发送给它之外,其它基本相同。

    接收者启动策略同样引入M以区分轻、重负载节点,引入相关域以确定交互范围。

    在启动时,所有节点开始执行计算任务,经过一段时间之后,一旦某个节点发现自身成为轻负载节点,就试图在它的相关域中均匀地分布负载。具体地:设该轻负载节点的负载为l p ,相关域中有K个节点,其负载分别为l 1 ,……., l k,则平均负载L avg为:

    负载均衡(负载平衡)

    为了达到均匀分布,应求得相关域中节点应该传递给轻负载节点的负载量m k。我们首先引入权h k以避免负载从负载更轻的相关域中的节点被迁移到该节点。如果L avg< l k, 则 ,否则h k=0。那么m k为:

    负载均衡(负载平衡)

    随后该节点就可以按照m k发出接受任务的请求了。

随着网络硬件设备的飞速进步,网络带宽的瓶颈效应日趋减弱,WEB服务器的性能问题逐渐显现出来。单一的服务器系统处理客户请求的能力有限,如何处理快速增长的客户请求,是当前研究人员关注的重要问题。从目前的研究方向看,服务器方向的研究可以归结为两个方面:

  1. 从实现机制上入手。主要研究Caching技术、预取技术等。这方面的研究主要从客户访问行为分析入手,研究可以缩小响应时间的方法,这些技术可以在现有服务器设备的基础上尽可能地提高系统的性能,但性能提高的程度有限。
  2. 从体系结构入手。将过去单一的服务器结构扩充为集群式服务器结构。这种改造可能需要增加较大的开销,但可以显著提高服务器的总体性能。
体系结构研究 软件技术研究
单机服务器 协议分析
缓存机制Caching
预取技术Pre-fetching
请求调度
集群服务器 节点分发

就某一商业Web站点而言,人们通常会认为,日访问人数越多,说明销售的潜力越大,潜在的购买者越多。但统计结果向我们显示的却是另一种结果。随着日访问人数的增加,销售量上升到一定程度后,反而下降。图1给出的是某汽车销售网站网上销售的模拟计算结果。注意,当网站日查询业务量为正常的120%或更高时,访问的服务时间明显增长,使得日收益反而比正常情况下降很多。

图1:某汽车销售商网上销售模拟计算结果

 


正常 正常+10% 正常+20% 正常+30%
日查询业务量 92448 101693 110938 120182
服务器响应时间 2.86 3.80 5.67 11.28
损失交易比例 0 0 60% 95%
每日交易量 4622 5085 2219 300
日收入 83203 91524 39938 5408
可能的日收益 83203 91524 99844 108164
损失的日收益

59906 102756

究其原因,我们不难发现,服务器的性能是导致这种现象的最根本的原因。当服务器负载接近边界时,负载的一个小小的增长都有可能使服务器陷入象死锁那样的一种境地。由此可以得出,如何优化Web服务器性能将是今后一段时间研究的一个热点。许多服务器制造商都在努力推出性能更加优良的服务器,但是单一服务器结构有一个致命的缺陷,那就是由于服务器的处理能力有限,有可能会出现死锁的情况。死锁的产生是由于新请求的到达率大于系统服务率,系统没有能力在短期内处理所有的请求,导致等待队列溢出,系统稳定状态转为不稳定状态,最后崩溃。集群服务器具有良好的可扩展性,可以随着负载的增大动态地向集群中增加服务器,从而就避免了由于处理能力不足而导致的系统崩溃。

粗粒度分发策略

在集群系统中,粒度指的是负载调度和迁移的单位。集群系统中的粗粒度指的是调度和迁移的单位是服务,而细粒度指的是进程。目前,关于集群式服务器的研究主要集中在体系结构和负载平衡策略的研究上,其中负载平衡策略的研究又是体系结构研究的基础。早期的集群式服务器系统常采用Round-Robin DNS算法实现客户请求的分发。实际上是一种粗粒度的负载分配策略。

1.1 工作原理

正常情况下,域名服务器将主机名映射为一个IP地址,为了改善负载平衡状况,早期的集群服务器系统采用RR-DNS(Round-Robin DNS)调度算法将一个域名映射为一组IP地址,允许客户端链接到服务器集群中的某一台服务器上,由此提供了服务器站点的伸缩性。一些可伸缩Web服务器(例如Eddie和NCSA的Scalable Web Server)采用RR-DNS实现负载平衡,一些高吞吐率的站点(Yahoo)也继续采用这种简单应用。图2为这类服务器结构的工作原理图。

图 2 基于DNS机制的集群服务器结构 图 2 基于DNS机制的集群服务器结构

RR-DNS在解析域名时,附加一个生存期(TTL:Time-To-Live),这样一个请求生成后TTL时间内没有获得应答信息,可以向RR-DNS获取不同的IP地址。

1.2 工作流程

  1. 客户发出地址请求(URL) 地址请求报文到达DNS
  2. DNS选择服务器IP地址和TTL
  3. 地址映象(URL->ADDRESS 1) 地址映象(URL->ADDRESS 1)
  4. 客户向服务器1发出文档请求
  5. 服务器1响应客户的文档请求

1.3 存在缺陷

在一个TTL时期内,多个域名请求将被映射到相同的IP地址,这样大量的客户端请求可能出现在同一服务器上,导致明显的负载失衡。如果TTL很小,又会明显增加域名解析的网络负载。

另一个相关问题是由于客户端缓存域名-IP地址解析结果,客户端可以在未来的任意时刻发送请求,导致服务器的负载无法得到控制,出现服务器负载失衡。

1.4 相关算法研究

为解决请求的负载分布均衡问题,研究者对RR-DNS算法进行了多种改进,这些改进依据TTL的设定形式可分为TTL恒定算法和自适应TTL算法。

TTL恒定算法 TTL恒定算法根据用户使用系统状态信息的情况又可分为系统无状态算法、基于服务器状态算法、基于客户状态算法和基于服务器/客户状态算法。

  1. SSL:系统无状态算法system-stateless algorithm

    系统无状态算法指DNS服务器按固定时间间隔将客户请求分发到不同服务器上。例如时刻 时刻 的客户接受服务器k1的服务,时刻 时刻 的客户接受服务器k2的服务,式中的为TTL值。客户获取服务器地址后,将地址缓存在客户端,然后根据需要,向服务器发请求。

    使用系统无状态算法,DNS只能控制部分请求的流向,由于不考虑服务器的容量和可用性,以及客户请求到达的不确定性,导致服务器超载或将请求发送到不可用服务器上,此算法性能很差,没有实用价值。

  2. SSB:基于服务器状态算法Server-state-based algorithm

    获取服务器状态的目的是为了选择可用性更高的服务器处理客户请求,防止服务器阻塞或服务失败。服务器状态算法需要使用简单的服务器侦听机制(例如心跳协议等)对服务器状态进行定时跟踪。当客户请求到达时,将负载最轻的服务器地址映射给客户端。SUN-SCALR在实现上就是采用这种机制。

  3. CSB:基于客户状态算法Client-state-based algorithm

    来自客户端的信息可归结为客户访问的平均负载状况和客户分布情况。如果不考虑客户的优先级高低,CSB算法使用HLW(hidden load weight)参量描述新客户的到达率(TTL周期内,访问服务器的新客户数量),根据新客户到达率,进行服务器分配,这类算法的典型代表是MRRP(multitier round-robin policy)。

    另外,Cisco的Distributed Director在实现上也采用CSB策略,Distributed Director在服务器集群中充当主域名服务器,根据客户-服务器的拓扑距离和新客户到达率,选择最适合的服务器分发给客户。

  4. SCSB:基于服务器/客户状态的算法server and client state based algorithm

    在DNS算法中,同时使用服务器状态和客户状态信息时,获得的性能往往是最高的。例如Distributed Director的DNS算法以服务器可用信息和客户的距离信息为指标分配处理服务器。当节点服务器超载,服务器发送异步警报反馈信息给DNS控制器,控制器将此服务器从可用服务器表中剔除,根据客户状态信息选择最有利的服务器处理客户请求。使用此算法需要对服务器状态进行动态分析和预测。

  5. WRR:带有权重的RR算法 Weight Round-Robin algorithm

    根据各台实际服务器的处理能力给它们分配不同的权重,使具有相同权重的服务器获得链接的概率相同,高权重的服务器获得链接的概率比低权重服务器获得链接的概率大。

自适应TTL算法[20] 为平衡多服务器节点的负载,特别是异构服务器的负载,人们提出了自适应的TTL算法。这类算法使用基于服务器/客户状态DNS策略选择节点服务器,并动态调整TTL值。在异构服务器集群中,根据各服务器容量不同,设置的TTL值也不完全相同,由此控制因负载不对称造成的超载问题。

自适应TTL算法使用两步表决机制:首先DNS选择服务器的方法和基于客户状态算法相似;第二步,DNS根据负载分布情况、服务器处理能力和服务器的繁忙程度选择合适的TTL值,服务器越忙,设定的TTL值越小。

另外,自适应TTL算法的可扩展性很强,算法实现中的数据都可以动态获得。使用自适应TTL算法可以使服务器集群比较容易地从局域网拓展到广域网。

1.5 DNS算法比较

由于客户端和中间域名服务器缓存URL-IP地址映射,使用服务器状态信息的DNS算法不能保证负载平衡[15],每个地址缓存都有可能引发大量的客户请求阻塞集群中的某个服务器节点。因此,合理地预测客户请求的到达率对于选择服务器更加有效。

使用客户到达率信息和服务器监听的调度算法可以获得更高可用性的服务器。但是这种算法明显不适于异构型集群服务器。

为平衡分布系统的请求负载,自适应TTL算法是最可靠、有效的。但是,这种算法忽略了客户-服务器距离的重要性。

算法名称 优点 缺点
固定 TTL 算法 系统无状态算法 简单 不实用
基于服务器状态算法 提高服务器可用性 不能保证负载均衡
基于客户状态算法

基于服务器/客户状态算法 可以获得更高可用性的服务器 不适于异构型集群服务器
自适应TTL算法 DNS算法中可靠性最好、效率最高的算法 忽略了客户-服务器距离的重要性

细粒度分发策略

为实现客户请求的集中调度和完全路由控制,采用细粒度负载分配策略的服务器结构中必须包含一个路由器节点──平衡器(可能是一个硬件路由器或集群服务器中配置专用软件的节点)接收发向Web站点的所有请求,根据某种负载平衡算法将请求转发到不同的服务器节点上。

与基于DNS的体系结构不同的是,平衡器采用单一的、虚拟IP地址IP-SVA(single virtual IP adress),这个IP地址是众所周知的一个IP地址,而节点服务器的实际地址对用户是透明的。由于此机制是在URL层进行请求的处理,Web页中包含的多个目标,可以由集群中的不同节点提供,这样提供了比RR-DNS更细粒度的控制策略。

根据路由机制的不同,细粒度负载分配策略又可分为报文重写(单向重写或双向重写)、报文转发和HTTP重定向。

2.1 PDR:报文双向重写策略

PDR采用集中调度方式完成客户请求的路由控制,服务器系统的平衡器负责客户请求的接收、分发和结果的返回工作。与RR-DNS策略不同,平衡器在IP层进行地址重写,使用动态地址映射表,实现客户请求的重定向。采用单一的虚拟IP地址(IP-SVA),用户可见的只是平衡器,节点服务器是透明的。在选择节点服务器时采用的调度策略主要有:Round Robin(轮转)、Weighted Round Robin(加权轮转)、Least Connection(最少连接)和Weighted Least Connection(加权最少连接)。平衡器将客户和节点服务器的映射添加到映射表中,这样就保证了同一客户的所有请求都发送到同一台节点服务器上,从而保证了访问的持续性。采用PDR策略的典型代表是Cisco的Local Director,从路由机制上看,Local Director当前采用最少连接数策略。图1-3给出了Local Director处理客户请求的原理图。

图 3 LocalDirector原理图 图 3 LocalDirector原理图

工作流程

  1. 客户向服务器发出请求
  2. 平衡器选择客户请求的处理节点
  3. 将客户请求的目的IP地址(IP-SVA)改写为节点服务器地址(address1)
  4. 将客户请求发送给处理节点
  5. 处理节点将结果返回给平衡器
  6. 平衡器将应答报文的源IP地址(address1)改写为IP-SVA
  7. 客户接收应答报文

性能分析 与粗粒度负载平衡策略不同,PDR在IP级进行负载平衡分配,这样就省去了从应用层到IP层的通讯开销,因此有效缩短了服务器处理时间。较DNS机制,性能提高很大。但是这种策略也存在如下问题:

  1. 平衡器容量有限,导致系统可伸缩性不高。另外,平衡器可能成为整个服务器集群的瓶颈。
  2. 此机制只适于在局域网范围内实现。

2.2 PSR:报文单向重写策略

在某些体系结构中,平衡器对接收的客户请求进行二次路由,将客户报文的目的IP地址改写为实际处理节点的IP地址,例如基本的TCP路由机制[15]。

在TCP路由机制中,服务器集群由一组节点服务器和一个TCP路由器组成,TCP路由器充当IP地址平衡器。当客户请求到达TCP路由器时,由于IP-SVA是唯一公开的IP地址,平衡器将请求报文中的目标IP地址重写为节点服务器的私有IP地址。由于一个客户请求可能是由多个报文构成,TCP路由器在地址表中记录客户(具有相同的源IP地址)与执行服务器的地址映射,保证来自同一客户的所有报文都能到达同一台节点服务器。服务器在发送应答报文给客户时,将平衡器的IP-SVA写入源IP地址,这样客户并不知道请求是由隐藏的执行服务器完成。图4给出了服务器使用报文单向重写策略时,客户请求的执行过程。

工作流程:

  1. 客户向服务器发出请求
  2. 平衡器进行地址解析,选择执行服务器
  3. 平衡器用执行服务器的私有地址(address1)替换客户请求报文的目的IP地址
  4. 客户请求报文二次路由,到达执行服务器
  5. 执行服务器处理客户请求,并将IP-SVA写入应答报文的源IP地址中
  6. 客户接收应答报文

图 4:报文单向重写示意图 图 4:报文单向重写示意图

性能分析 使用报文单向重写机制可以提高系统可用性程度,当平衡器节点出现故障时,路由表可以由原平衡器迁移到新的服务器上,服务器的结构也可以从局域网拓展到广域网。但是这种机制导致服务器结构透明性较差,而且执行服务器和平衡器在判断客户请求是否结束上存在困难。

2.3 PF:报文转发

由于报文重写增加了平衡器处理请求的复杂度,导致平衡器负载加重,研究者提出了报文转发策略(PF)。采用PF策略,平衡器和执行服务器共用一个IP-SVA地址,客户请求报文到达平衡器后,平衡器根据调度选择执行服务器,利用执行服务器的物理地址(MAC)将报文转发给执行节点。转发过程中不需要进行地址解析,所以不必改动客户请求报文。采用PF策略的典型代表是IBM的Network Dispatcher。

局域网内部的Network Dispatcher集群处理客户请求的原理与图5相似,其工作流程如下:

  1. 客户向服务器发出请求报文;
  2. 平衡器根据负载平衡策略选择执行服务器;
  3. 平衡器利用执行服务器的私有MAC地址转发客户报文;
  4. 客户报文路由;
  5. 执行服务器处理客户请求;
  6. 执行服务器将应答报文发送给客户。

为了将服务器集群从局域网拓展到广域网,Network Dispatcher采用两级平衡器机制,图5显示了广域网服务器集群的原理图。一级平衡器到二级服务器之间采用类似报文单向重写策略,平衡器将客户请求报文的目的地址(IP-SVA)改写为二级平衡器的IP地址,选择二级平衡器的原则是根据客户-服务器间的距离,将客户请求分发到最近的服务器子群上。二级平衡器将客户请求报文的目的地址改回IP-SVA,然后将报文转发到执行服务器上,服务器子群要求必须在同一局域网中。

图 5:广域网实现的报文转发 图 5:广域网实现的报文转发

在广域网环境下,实现客户请求报文处理的流程是:

  1. 客户向服务器发送请求报文;
  2. 一级平衡器根据客户-服务器距离选择二级平衡器;
  3. 一级平衡器将客户报文的目的地址改写为二级平衡器的IP地址;
  4. 客户请求报文由一级平衡器向二级平衡器路由;
  5. 二级平衡器根据负载平衡策略选择执行服务器;
  6. 二级平衡器将客户请求报文的目的地址改写为IP-SVA;
  7. 客户请求报文转发;
  8. 执行服务器将应答报文直接传送给客户。

随着负载数量的增长,相应的处理变得越来越复杂(每个服务器节点每秒处理的请求数量有限),目前路由器只负责接收报文,但链接的复杂性、每个请求的返回数据量都限制了路由器的可伸缩性。

2.4 HTTP重定向策略

集中式平衡器接收所有客户请求,使用HTTP重定向机制将客户请求分发到不同的执行服务器上。平衡器根据特殊的响应状态码,指明客户请求文件在服务器上的位置,因此重定向机制是高度透明的。与其他分发机制不同的是,HTTP重定向机制不需要对通讯报文的IP地址进行修改,HTTP重定向机制可以由以下两种技术实现。

2.4.1 基于服务器状态分发 在分布式服务器集群体系结构中,修正现有的HTTP协议,增加新方法实现对Web服务器的管理,改变平衡器与执行服务器间的信息交换。由于平衡器需要考虑服务器的负载情况,每个执行服务器必须周期性地报告处理进程数量和客户请求到达率。平衡器选择负载最轻的执行服务器处理新的客户请求。

2.4.2 基于位置的分发 Cisco的Distributed Director提供了两种分发模式,第一种是基于DNS的SCSB策略,第二种为HTTP重定向策略。Distributed Director评估客户-服务器距离和节点可用性,将客户请求重定向到最合适的执行服务器。

细粒度分发策略的比较

基于平衡器的报文双向重写机制的问题是,平衡器必须对应答报文进行重写,而应答报文的数量明显超过请求报文的数量。

使用TCP路由器结构的报文单向重写机制,由于执行服务器处理众多的应答报文,减轻了平衡器的负载。广域网环境下的Network Dispatcher仅对请求报文进行两次重写,因而执行效率更高。

报文转发机制可以有效避免报文重写带来的开销,然而共享单IP地址导致静态调度策略失效(服务器状态不决定路由)。基于路由的平衡器需要对每个报文进行二次路由,基于广播的平衡器需要把报文广播到每个执行服务器,这样明显加重了服务器负载。

局域网环境下的Network Dispatcher结构避免了共享IP地址、TCP路由和双向重写的开销等问题,但是它只能在同一网段内实现,可伸缩性很差。HTTP重定向可以很好地应用于局域网和广域网中,但必须复制一定数量的TCP连接。

各种负载平衡策略的比较

基于DNS机构的实现机制可以明显减轻服务器的瓶颈效应,可伸缩能力得到加强,服务器环境从局域网拓展到广域网。但是,使用这种结构,服务器的数量不能超过32台(受UDP报文长度的限制)。基于DNS结构的服务器通过地址映射决定客户请求的目的地址,然而,这种粗粒度负载平衡机制要求TTL必须大于0,由于客户端对服务器地址进行缓存,导致服务器负载平衡不能保证,人们提出了基于状态信息算法和自适应TTL算法对DNS策略的性能进行改进。总的来说,单纯基于DNS策略的服务器适合于小规模的同构型服务器集群,但不适于异构性服务器结构。

基于平衡器结构的服务器由于受到单仲裁入口的限制,客户请求迅速增长可能导致平衡器成为系统瓶颈;由于平衡器对客户请求报文重写或转发,增加了客户等待延迟,降低了服务器性能;另外使用集中调度策略,若平衡器当机,则整个系统都会崩溃。从另一方面讲,平衡器实现的细粒度负载平衡策略,共享服务器IP地址又克服客户端网络层地址缓存问题。基于服务器拓扑结构实现的报文重写和转发策略是目前局域网或高速广域网中集群服务器实现的主要策略。

改进执行服务器处理过程将原有的请求集中控制改为部分分布控制,是服务器结构研究的一种进步,与平衡器结构服务器相同,这种技术也是一种细粒度负载平衡策略,但它带来的客户等待延迟要比其他策略增加很多。

从目前集群式服务器结构研究的现状分析可以看出,今后服务器集群的发展趋势将是面向广域网的分布控制的服务器集群研究。

基于Linux的集群系统

实现过程之理论先导篇

许广斌 (xuguangbin@263.net), 工程师

讲述负载平衡策略,并对各种负载平衡策略作了比较。

 

近年来,Internet的发展步入黄金时期,网上信息交换的数量正在呈指数形式的增长。特别是,由于电子商务的蓬勃发展,人们已经预计在下一世纪,网上消费将成为日常生活的重要形式。

随着网络硬件设备的飞速进步,网络带宽的瓶颈效应日趋减弱,WEB服务器的性能问题逐渐显现出来。单一的服务器系统处理客户请求的能力有限,如何处理快速增长的客户请求,是当前研究人员关注的重要问题。从目前的研究方向看,服务器方向的研究可以归结为两个方面:

  1. 从实现机制上入手。主要研究Caching技术、预取技术等。这方面的研究主要从客户访问行为分析入手,研究可以缩小响应时间的方法,这些技术可以在现有服务器设备的基础上尽可能地提高系统的性能,但性能提高的程度有限。
  2. 从体系结构入手。将过去单一的服务器结构扩充为集群式服务器结构。这种改造可能需要增加较大的开销,但可以显著提高服务器的总体性能。
体系结构研究 软件技术研究
单机服务器 协议分析
缓存机制Caching
预取技术Pre-fetching
请求调度
集群服务器 节点分发

就某一商业Web站点而言,人们通常会认为,日访问人数越多,说明销售的潜力越大,潜在的购买者越多。但统计结果向我们显示的却是另一种结果。随着日访问人数的增加,销售量上升到一定程度后,反而下降。图1给出的是某汽车销售网站网上销售的模拟计算结果。注意,当网站日查询业务量为正常的120%或更高时,访问的服务时间明显增长,使得日收益反而比正常情况下降很多。

图1:某汽车销售商网上销售模拟计算结果


正常 正常+10% 正常+20% 正常+30%
日查询业务量 92448 101693 110938 120182
服务器响应时间 2.86 3.80 5.67 11.28
损失交易比例 0 0 60% 95%
每日交易量 4622 5085 2219 300
日收入 83203 91524 39938 5408
可能的日收益 83203 91524 99844 108164
损失的日收益

59906 102756

究其原因,我们不难发现,服务器的性能是导致这种现象的最根本的原因。当服务器负载接近边界时,负载的一个小小的增长都有可能使服务器陷入象死锁那样的一种境地。由此可以得出,如何优化Web服务器性能将是今后一段时间研究的一个热点。许多服务器制造商都在努力推出性能更加优良的服务器,但是单一服务器结构有一个致命的缺陷,那就是由于服务器的处理能力有限,有可能会出现死锁的情况。死锁的产生是由于新请求的到达率大于系统服务率,系统没有能力在短期内处理所有的请求,导致等待队列溢出,系统稳定状态转为不稳定状态,最后崩溃。集群服务器具有良好的可扩展性,可以随着负载的增大动态地向集群中增加服务器,从而就避免了由于处理能力不足而导致的系统崩溃。


回页首

粗粒度分发策略

在集群系统中,粒度指的是负载调度和迁移的单位。集群系统中的粗粒度指的是调度和迁移的单位是服务,而细粒度指的是进程。目前,关于集群式服务器的研究主要集中在体系结构和负载平衡策略的研究上,其中负载平衡策略的研究又是体系结构研究的基础。早期的集群式服务器系统常采用Round-Robin DNS算法实现客户请求的分发。实际上是一种粗粒度的负载分配策略。

1.1 工作原理

正常情况下,域名服务器将主机名映射为一个IP地址,为了改善负载平衡状况,早期的集群服务器系统采用RR-DNS(Round-Robin DNS)调度算法将一个域名映射为一组IP地址,允许客户端链接到服务器集群中的某一台服务器上,由此提供了服务器站点的伸缩性。一些可伸缩Web服务器(例如Eddie和NCSA的Scalable Web Server)采用RR-DNS实现负载平衡,一些高吞吐率的站点(Yahoo)也继续采用这种简单应用。图2为这类服务器结构的工作原理图。

图 2 基于DNS机制的集群服务器结构 图 2 基于DNS机制的集群服务器结构

RR-DNS在解析域名时,附加一个生存期(TTL:Time-To-Live),这样一个请求生成后TTL时间内没有获得应答信息,可以向RR-DNS获取不同的IP地址。

1.2 工作流程

  1. 客户发出地址请求(URL) 地址请求报文到达DNS
  2. DNS选择服务器IP地址和TTL
  3. 地址映象(URL->ADDRESS 1) 地址映象(URL->ADDRESS 1)
  4. 客户向服务器1发出文档请求
  5. 服务器1响应客户的文档请求

1.3 存在缺陷

在一个TTL时期内,多个域名请求将被映射到相同的IP地址,这样大量的客户端请求可能出现在同一服务器上,导致明显的负载失衡。如果TTL很小,又会明显增加域名解析的网络负载。

另一个相关问题是由于客户端缓存域名-IP地址解析结果,客户端可以在未来的任意时刻发送请求,导致服务器的负载无法得到控制,出现服务器负载失衡。

1.4 相关算法研究

为解决请求的负载分布均衡问题,研究者对RR-DNS算法进行了多种改进,这些改进依据TTL的设定形式可分为TTL恒定算法和自适应TTL算法。

TTL恒定算法 TTL恒定算法根据用户使用系统状态信息的情况又可分为系统无状态算法、基于服务器状态算法、基于客户状态算法和基于服务器/客户状态算法。

  1. SSL:系统无状态算法system-stateless algorithm

    系统无状态算法指DNS服务器按固定时间间隔将客户请求分发到不同服务器上。例如时刻 时刻 的客户接受服务器k1的服务,时刻 时刻 的客户接受服务器k2的服务,式中的为TTL值。客户获取服务器地址后,将地址缓存在客户端,然后根据需要,向服务器发请求。

    使用系统无状态算法,DNS只能控制部分请求的流向,由于不考虑服务器的容量和可用性,以及客户请求到达的不确定性,导致服务器超载或将请求发送到不可用服务器上,此算法性能很差,没有实用价值。

  2. SSB:基于服务器状态算法Server-state-based algorithm

    获取服务器状态的目的是为了选择可用性更高的服务器处理客户请求,防止服务器阻塞或服务失败。服务器状态算法需要使用简单的服务器侦听机制(例如心跳协议等)对服务器状态进行定时跟踪。当客户请求到达时,将负载最轻的服务器地址映射给客户端。SUN-SCALR在实现上就是采用这种机制。

  3. CSB:基于客户状态算法Client-state-based algorithm

    来自客户端的信息可归结为客户访问的平均负载状况和客户分布情况。如果不考虑客户的优先级高低,CSB算法使用HLW(hidden load weight)参量描述新客户的到达率(TTL周期内,访问服务器的新客户数量),根据新客户到达率,进行服务器分配,这类算法的典型代表是MRRP(multitier round-robin policy)。

    另外,Cisco的Distributed Director在实现上也采用CSB策略,Distributed Director在服务器集群中充当主域名服务器,根据客户-服务器的拓扑距离和新客户到达率,选择最适合的服务器分发给客户。

  4. SCSB:基于服务器/客户状态的算法server and client state based algorithm

    在DNS算法中,同时使用服务器状态和客户状态信息时,获得的性能往往是最高的。例如Distributed Director的DNS算法以服务器可用信息和客户的距离信息为指标分配处理服务器。当节点服务器超载,服务器发送异步警报反馈信息给DNS控制器,控制器将此服务器从可用服务器表中剔除,根据客户状态信息选择最有利的服务器处理客户请求。使用此算法需要对服务器状态进行动态分析和预测。

  5. WRR:带有权重的RR算法 Weight Round-Robin algorithm

    根据各台实际服务器的处理能力给它们分配不同的权重,使具有相同权重的服务器获得链接的概率相同,高权重的服务器获得链接的概率比低权重服务器获得链接的概率大。

自适应TTL算法[20] 为平衡多服务器节点的负载,特别是异构服务器的负载,人们提出了自适应的TTL算法。这类算法使用基于服务器/客户状态DNS策略选择节点服务器,并动态调整TTL值。在异构服务器集群中,根据各服务器容量不同,设置的TTL值也不完全相同,由此控制因负载不对称造成的超载问题。

自适应TTL算法使用两步表决机制:首先DNS选择服务器的方法和基于客户状态算法相似;第二步,DNS根据负载分布情况、服务器处理能力和服务器的繁忙程度选择合适的TTL值,服务器越忙,设定的TTL值越小。

另外,自适应TTL算法的可扩展性很强,算法实现中的数据都可以动态获得。使用自适应TTL算法可以使服务器集群比较容易地从局域网拓展到广域网。

1.5 DNS算法比较

由于客户端和中间域名服务器缓存URL-IP地址映射,使用服务器状态信息的DNS算法不能保证负载平衡[15],每个地址缓存都有可能引发大量的客户请求阻塞集群中的某个服务器节点。因此,合理地预测客户请求的到达率对于选择服务器更加有效。

使用客户到达率信息和服务器监听的调度算法可以获得更高可用性的服务器。但是这种算法明显不适于异构型集群服务器。

为平衡分布系统的请求负载,自适应TTL算法是最可靠、有效的。但是,这种算法忽略了客户-服务器距离的重要性。

算法名称 优点 缺点
固定 TTL 算法 系统无状态算法 简单 不实用
基于服务器状态算法 提高服务器可用性 不能保证负载均衡
基于客户状态算法

基于服务器/客户状态算法 可以获得更高可用性的服务器 不适于异构型集群服务器
自适应TTL算法 DNS算法中可靠性最好、效率最高的算法 忽略了客户-服务器距离的重要性

细粒度分发策略

为实现客户请求的集中调度和完全路由控制,采用细粒度负载分配策略的服务器结构中必须包含一个路由器节点──平衡器(可能是一个硬件路由器或集群服务器中配置专用软件的节点)接收发向Web站点的所有请求,根据某种负载平衡算法将请求转发到不同的服务器节点上。

与基于DNS的体系结构不同的是,平衡器采用单一的、虚拟IP地址IP-SVA(single virtual IP adress),这个IP地址是众所周知的一个IP地址,而节点服务器的实际地址对用户是透明的。由于此机制是在URL层进行请求的处理,Web页中包含的多个目标,可以由集群中的不同节点提供,这样提供了比RR-DNS更细粒度的控制策略。

根据路由机制的不同,细粒度负载分配策略又可分为报文重写(单向重写或双向重写)、报文转发和HTTP重定向。

2.1 PDR:报文双向重写策略

PDR采用集中调度方式完成客户请求的路由控制,服务器系统的平衡器负责客户请求的接收、分发和结果的返回工作。与RR-DNS策略不同,平衡器在IP层进行地址重写,使用动态地址映射表,实现客户请求的重定向。采用单一的虚拟IP地址(IP-SVA),用户可见的只是平衡器,节点服务器是透明的。在选择节点服务器时采用的调度策略主要有:Round Robin(轮转)、Weighted Round Robin(加权轮转)、Least Connection(最少连接)和Weighted Least Connection(加权最少连接)。平衡器将客户和节点服务器的映射添加到映射表中,这样就保证了同一客户的所有请求都发送到同一台节点服务器上,从而保证了访问的持续性。采用PDR策略的典型代表是Cisco的Local Director,从路由机制上看,Local Director当前采用最少连接数策略。图1-3给出了Local Director处理客户请求的原理图。

图 3 LocalDirector原理图 图 3 LocalDirector原理图

工作流程

  1. 客户向服务器发出请求
  2. 平衡器选择客户请求的处理节点
  3. 将客户请求的目的IP地址(IP-SVA)改写为节点服务器地址(address1)
  4. 将客户请求发送给处理节点
  5. 处理节点将结果返回给平衡器
  6. 平衡器将应答报文的源IP地址(address1)改写为IP-SVA
  7. 客户接收应答报文

性能分析 与粗粒度负载平衡策略不同,PDR在IP级进行负载平衡分配,这样就省去了从应用层到IP层的通讯开销,因此有效缩短了服务器处理时间。较DNS机制,性能提高很大。但是这种策略也存在如下问题:

  1. 平衡器容量有限,导致系统可伸缩性不高。另外,平衡器可能成为整个服务器集群的瓶颈。
  2. 此机制只适于在局域网范围内实现。

2.2 PSR:报文单向重写策略

在某些体系结构中,平衡器对接收的客户请求进行二次路由,将客户报文的目的IP地址改写为实际处理节点的IP地址,例如基本的TCP路由机制[15]。

在TCP路由机制中,服务器集群由一组节点服务器和一个TCP路由器组成,TCP路由器充当IP地址平衡器。当客户请求到达TCP路由器时,由于IP-SVA是唯一公开的IP地址,平衡器将请求报文中的目标IP地址重写为节点服务器的私有IP地址。由于一个客户请求可能是由多个报文构成,TCP路由器在地址表中记录客户(具有相同的源IP地址)与执行服务器的地址映射,保证来自同一客户的所有报文都能到达同一台节点服务器。服务器在发送应答报文给客户时,将平衡器的IP-SVA写入源IP地址,这样客户并不知道请求是由隐藏的执行服务器完成。图4给出了服务器使用报文单向重写策略时,客户请求的执行过程。

工作流程:

  1. 客户向服务器发出请求
  2. 平衡器进行地址解析,选择执行服务器
  3. 平衡器用执行服务器的私有地址(address1)替换客户请求报文的目的IP地址
  4. 客户请求报文二次路由,到达执行服务器
  5. 执行服务器处理客户请求,并将IP-SVA写入应答报文的源IP地址中
  6. 客户接收应答报文
图 4:报文单向重写示意图 图 4:报文单向重写示意图

性能分析 使用报文单向重写机制可以提高系统可用性程度,当平衡器节点出现故障时,路由表可以由原平衡器迁移到新的服务器上,服务器的结构也可以从局域网拓展到广域网。但是这种机制导致服务器结构透明性较差,而且执行服务器和平衡器在判断客户请求是否结束上存在困难。

2.3 PF:报文转发

由于报文重写增加了平衡器处理请求的复杂度,导致平衡器负载加重,研究者提出了报文转发策略(PF)。采用PF策略,平衡器和执行服务器共用一个IP-SVA地址,客户请求报文到达平衡器后,平衡器根据调度选择执行服务器,利用执行服务器的物理地址(MAC)将报文转发给执行节点。转发过程中不需要进行地址解析,所以不必改动客户请求报文。采用PF策略的典型代表是IBM的Network Dispatcher。

局域网内部的Network Dispatcher集群处理客户请求的原理与图5相似,其工作流程如下:

  1. 客户向服务器发出请求报文;
  2. 平衡器根据负载平衡策略选择执行服务器;
  3. 平衡器利用执行服务器的私有MAC地址转发客户报文;
  4. 客户报文路由;
  5. 执行服务器处理客户请求;
  6. 执行服务器将应答报文发送给客户。

为了将服务器集群从局域网拓展到广域网,Network Dispatcher采用两级平衡器机制,图5显示了广域网服务器集群的原理图。一级平衡器到二级服务器之间采用类似报文单向重写策略,平衡器将客户请求报文的目的地址(IP-SVA)改写为二级平衡器的IP地址,选择二级平衡器的原则是根据客户-服务器间的距离,将客户请求分发到最近的服务器子群上。二级平衡器将客户请求报文的目的地址改回IP-SVA,然后将报文转发到执行服务器上,服务器子群要求必须在同一局域网中。

图 5:广域网实现的报文转发 图 5:广域网实现的报文转发

在广域网环境下,实现客户请求报文处理的流程是:

  1. 客户向服务器发送请求报文;
  2. 一级平衡器根据客户-服务器距离选择二级平衡器;
  3. 一级平衡器将客户报文的目的地址改写为二级平衡器的IP地址;
  4. 客户请求报文由一级平衡器向二级平衡器路由;
  5. 二级平衡器根据负载平衡策略选择执行服务器;
  6. 二级平衡器将客户请求报文的目的地址改写为IP-SVA;
  7. 客户请求报文转发;
  8. 执行服务器将应答报文直接传送给客户。

随着负载数量的增长,相应的处理变得越来越复杂(每个服务器节点每秒处理的请求数量有限),目前路由器只负责接收报文,但链接的复杂性、每个请求的返回数据量都限制了路由器的可伸缩性。

2.4 HTTP重定向策略

集中式平衡器接收所有客户请求,使用HTTP重定向机制将客户请求分发到不同的执行服务器上。平衡器根据特殊的响应状态码,指明客户请求文件在服务器上的位置,因此重定向机制是高度透明的。与其他分发机制不同的是,HTTP重定向机制不需要对通讯报文的IP地址进行修改,HTTP重定向机制可以由以下两种技术实现。

2.4.1 基于服务器状态分发 在分布式服务器集群体系结构中,修正现有的HTTP协议,增加新方法实现对Web服务器的管理,改变平衡器与执行服务器间的信息交换。由于平衡器需要考虑服务器的负载情况,每个执行服务器必须周期性地报告处理进程数量和客户请求到达率。平衡器选择负载最轻的执行服务器处理新的客户请求。

2.4.2 基于位置的分发 Cisco的Distributed Director提供了两种分发模式,第一种是基于DNS的SCSB策略,第二种为HTTP重定向策略。Distributed Director评估客户-服务器距离和节点可用性,将客户请求重定向到最合适的执行服务器。


细粒度分发策略的比较

基于平衡器的报文双向重写机制的问题是,平衡器必须对应答报文进行重写,而应答报文的数量明显超过请求报文的数量。

使用TCP路由器结构的报文单向重写机制,由于执行服务器处理众多的应答报文,减轻了平衡器的负载。广域网环境下的Network Dispatcher仅对请求报文进行两次重写,因而执行效率更高。

报文转发机制可以有效避免报文重写带来的开销,然而共享单IP地址导致静态调度策略失效(服务器状态不决定路由)。基于路由的平衡器需要对每个报文进行二次路由,基于广播的平衡器需要把报文广播到每个执行服务器,这样明显加重了服务器负载。

局域网环境下的Network Dispatcher结构避免了共享IP地址、TCP路由和双向重写的开销等问题,但是它只能在同一网段内实现,可伸缩性很差。HTTP重定向可以很好地应用于局域网和广域网中,但必须复制一定数量的TCP连接。


各种负载平衡策略的比较

基于DNS机构的实现机制可以明显减轻服务器的瓶颈效应,可伸缩能力得到加强,服务器环境从局域网拓展到广域网。但是,使用这种结构,服务器的数量不能超过32台(受UDP报文长度的限制)。基于DNS结构的服务器通过地址映射决定客户请求的目的地址,然而,这种粗粒度负载平衡机制要求TTL必须大于0,由于客户端对服务器地址进行缓存,导致服务器负载平衡不能保证,人们提出了基于状态信息算法和自适应TTL算法对DNS策略的性能进行改进。总的来说,单纯基于DNS策略的服务器适合于小规模的同构型服务器集群,但不适于异构性服务器结构。

基于平衡器结构的服务器由于受到单仲裁入口的限制,客户请求迅速增长可能导致平衡器成为系统瓶颈;由于平衡器对客户请求报文重写或转发,增加了客户等待延迟,降低了服务器性能;另外使用集中调度策略,若平衡器当机,则整个系统都会崩溃。从另一方面讲,平衡器实现的细粒度负载平衡策略,共享服务器IP地址又克服客户端网络层地址缓存问题。基于服务器拓扑结构实现的报文重写和转发策略是目前局域网或高速广域网中集群服务器实现的主要策略。

改进执行服务器处理过程将原有的请求集中控制改为部分分布控制,是服务器结构研究的一种进步,与平衡器结构服务器相同,这种技术也是一种细粒度负载平衡策略,但它带来的客户等待延迟要比其他策略增加很多。

从目前集群式服务器结构研究的现状分析可以看出,今后服务器集群的发展趋势将是面向广域网的分布控制的服务器集群研究。

 
 
 
路由器、交换机、MODEM、HUB的作用和不同之处
 
集线器--集线器也叫Hub,工作在物理层(最底层),没有相匹配的软件系统,是纯硬件设备。集线器主要用来连接计算机等网络终端。集线器为共享式带宽,连接在集线器上的任何一个设备发送数据时,其他所有设备必须等待,此设备享有全部带宽,通讯完毕,再由其他设备使用带宽。正因此,集线器连接了一个冲突域的网络。所有设备相互交替使用,就好象大家一起过一根独木桥一样。 集线器不能判断数据包的目的地和类型,所以如果是广播数据包也依然转发,而且所有设备发出数据以广播方式发送到每个接口,这样集线器也连接了一个广播域的网络。
交换机--交换机Switch,工作在数据链路层(第二层),稍微高端一点的交换机都有一个操作系统来支持。和集线器一样主要用于连接计算机等网络终端设备。交换机比集线器更加先进,允许连接在交换机上的设备并行通讯,好比高速公路上的汽车并行行使一般,设备间通讯不会再发生冲突,因此交换机打破了冲突域,交换机每个接口是一个冲突域,不会与其他接口发生通讯冲突。并且有系统的交换机可以记录MAC地址表,发送的数据不会再以广播方式发送到每个接口,而是直接到达目的接口,节省了接口带宽。但是交换机和集线器一样不能判断广播数据包,会把广播发送到全部接口,所以交换机和集线器一样连接了一个广播域网络。字串2 高端一点的交换机不仅可以记录MAC地址表,还可以划分VLAN(虚拟局域网)来隔离广播,但是VLAN间也同样不能通讯。要使VLAN间能够通讯,必须有三层设备介入。
路由器--路由器Router,工作在网络层(第三层),所有的路由器都有自己的操作系统来维持,并且需要人员调试,否则不能工作。路由器没有那么多接口,主要用来进行网络与网络的连接。 简单的说路由器把数据从一个网络发送到另一个网络,这个过程就叫路由。路由器不仅能像交换机一样隔离冲突域,而且还能检测广播数据包,并丢弃广播包来隔离广播域,有效的扩大了网络的规模。在路由器中记录着路由表,路由器以此来转发数据,以实现网络间的通讯。路由器的介入可以使交换机划分的VLAN实现互相通讯。
集线器:纯硬件、用于连接网络终端、不能打破冲突域和广播域。
交换机:拥有软件系统、用于连接网络终端、能够打破冲突域,但是不能分割广播域。
路由器:拥有软件系统、用于连接网络、可以打破冲突域也可以分割广播域,是连接大型网络的比备设备
MODEM其实是取MOdulatorDEModulator两个英文的缩写合并而成,译成中文就是"调制解调器"。MODEM的主要功能就是将数据在数字信号和模拟信号之间转换,以实现在电话线上的传输。现在的MODEM基本上都带有传真和语音功能,所以通常叫做Fax/Voice/Modem。在日常生活使用的电话线路中,所有信息都是以连续性的模拟信号,也就是音频信号来表示和传送,而对电脑来说,只认识0和1两个数字,所有信息都是以不连续的数字信号来表示和传送,这下MODEM就派上用场了!电脑先把数据交给MODEM,MODEM把数字信号转为音频模拟信号,送进电话线里这个过程叫"调制";在接收一方MODEM收到音频模拟信号,将其还原为数字信息交给电脑处理,这个过程叫"解调"。MODEM的作用打个比方,就好比是网络这座桥梁两端的桥头堡。至于电脑与MODEM之间又是如何进行沟通的呢?著名通讯设备生产商Hayes为此制定了一套指令,专门用于电脑(主要是通过其中的通讯软件)控制MODEM的各项操作,也就是我们常说的"AT指令"。除去"A/"外的每个指令都是以"AT"("ATtention"的缩写)开头来表示,似乎是提醒MODEM注意。
MODEM上有几个很抢眼的面板灯,当MODEM正常工作时,它们会显得格外的忙碌一闪一闪地按照连线时的实际传输速率传送数据。我们当然应该知道每个灯所代表的意义,以便及时掌握MODEM当前所处的状态。当然,现在市面上也有一些产品,在每个灯的旁边设有简单的提示标识,对用户来说真是非常体贴。

 

 

 

 

 

负载均衡

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

概述

  负载均衡(Load Balance)
   由于目前现有网络的各个核心部分随着业务量的提高,访问量和数据流量的快速增长,其处理能力和计算强度也相应地增大,使得单一的服务器设备根本无法承担。在此情况下,如果扔掉现有设备去做大量的硬件升级,这样将造成现有资源的浪费,而且如果再面临下一次业务量的提升时,这又将导致再一次硬件升级的高额成本投入,甚至性能再卓越的设备也不能满足当前业务量增长的需求。   
负载均衡(又称为负载分担),英文名称为Load Balance,其意思就是将负载(工作任务)进行平衡、分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。   负载均衡建立在现有网络结构之上,它提供了一种廉价又有效的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。需要说明的是:负载均衡设备不是基础网络设备,而是一种性能优化设备。对于网络应用而言,并不是一开始就需要负载均衡,当网络应用的访问量不断增长,单个处理单元无法满足负载需求时,网络应用流量将要出现瓶颈时,负载均衡才会起到作用。   
负载均衡有两方面的含义:首先,单个重负载的运算分担到多台节点设备上做并行处理,每个节点设备处理结束后,将结果汇总,返回给用户,系统处理能力得到大幅度提高,这就是我们常说的集群(clustering)技术。第二层含义就是:大量的并发访问或数据流量分担到多台节点设备上分别处理,减少用户等待响应的时间,这主要针对Web服务器、FTP服务器、企业关键应用服务器等网络应用。通常,负载均衡会根据网络的不同层次(网络七层)来划分。其中,第二层的负载均衡指将多条物理链路当作一条单一的聚合逻辑链路使用,这就是链路聚合(Trunking)技术,它不是一种独立的设备,而是交换机等网络设备的常用技术。现代负载均衡技术通常操作于网络的第四层或第七层,这是针对网络应用的负载均衡技术,它完全脱离于交换机、服务器而成为独立的技术设备。这也是我们现在要讨论的对象。近几年来,四到七层网络负载均衡首先在电信、移动、银行、大型网站等单位进行了应用,因为其网络流量瓶颈的现象最突出。这也就是为何我们每通一次电话,就会经过负载均衡设备的原因。另外,在很多企业,随着企业关键网络应用业务的发展,负载均衡的应用需求也越来越大了。

详细信息

含义

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

算法

  提供多个WAN ports可作多种负载平衡算法则,企业可依需求自行设定负载平衡规则,而网络存取可参照所设定的规则,执行网络流量负载平衡导引。算法则有:   ◎ 依序Round Robin   ◎ 比重Weighted Round Robin   ◎ 流量比例Traffic   ◎ 使用者端User   ◎ 应用别Application   ◎ 联机数量Session   ◎ 服务别Service   ◎ 自动分配Auto Mode   Inbound Load Balancing    内建Inbound Load Balance 功能,可让企业透过多条ISP线路,提供给浏览者更实时、快速与稳定不断线的因特网在线服务;   Inbound负载平衡算法包括:Round Robin/ Weighted Round Robin/Auto Back Up;

功能

  内建DNS服务器,可维护多个网域(domain),每个网域又可以新增多笔纪(A/CNAME/MX),达到Inbound Load Sharing的功能。   ■Server Load Balancing   AboCom服务器负载均衡提供了服务级(端口)负载均衡及备援机制。主要用于合理分配企业对外服务器的访问请求,使得各服务器之间相互进行负载和备援。   AboCom服务器负载与服务器群集差异:   一旦有服务器故障,群集技术只对服务器的硬件是否正常工作进行检查;AboCom服务器负载则对应用服务端口进行检查,一旦服务器的该应用服务端口异常则自动将访问请求转移到正常的服务器进行响应。   ■VPN Trunk 负载均衡   支持同时在多条线路上建立VPN连接,并对其多条VPN线路进行负载。不仅提高了企业总部与分支机构的VPN访问速度,也解决了因某条ISP线路断线造成无法访问的问题。进行VPN负载均衡时VPN访问数据将同时在多条VPN线路上进传输。当一条VPN线路故障时,所有流量将自动切换到正常的VPN线路上进行传输。   QoS(带宽管理)   个人带宽管理:可实现每个人的网络带宽分配、管理,可以设置保证带宽用以保障个人应用不受整体环境影响。每日带宽配额:可以针对个人、群组或部门等分别设置带宽配额,这样可以合理利用带宽资源,杜绝资源的浪费,也杜绝员工干与工作无关的事,如看在线电影,下载大容量文件资料等等。   内容过滤  网络信息过滤:采用关键字进行内容过滤,可保护内网不受色情、暴力、反动、迷信等信息的入侵和干扰。   聊天软件、P2P软件控制:可针对QQ、MSN、YAHOO、SKYPE、GOOGLE TALK等聊天通讯软件进行管控和限制,还可限制或禁止如BT、电驴、迅雷等P2P软件的使用。   SSL VPN   提供最佳远程安全存取解决方案,企业仅需透过最熟悉的网络浏览器接口(Web Browser),即可轻松连接到企业内部网络;即使未携带企业管控的笔记型计算机,利用家用计算机、公用计算机、PDA等,甚至是通过无线局域网络,都不影响安全联机的建立。   其他功能   实时图形化统计分析:记录所有网络封包的进出流量信息,可用做网络使用监控及统计记录;提供   事件警报 (Event Alert)及日志记录管理功能;    支持3A认证:Authentication、Authorization、Accounting,即认证、授权、审计;   交换机联合防御:利用指定交换机进行联合防护,提升整个网络的安全系数和安全强度;   HA双机热备:支持双机备援,防止设备故障造成网络瘫痪,提升整个网络的可靠性;   远程唤醒(Wake on Lan):远程启动计算机。

负载均衡技术主要应用

  1.DNS负载均衡最早的负载均衡技术是通过DNS来实现的,在DNS中为多个地址配置同一个名字,因而查询这个名字的客户机将得到其中一个地址,从而使得不同的客户访问不同的服务器,达到负载均衡的目的。DNS负载均衡是一种简单而有效的方法,但是它不能区分服务器的差异,也不能反映服务器的当前运行状态。   2.代理服务器负载均衡使用代理服务器,可以将请求转发给内部的服务器,使用这种加速模式显然可以提升静态网页的访问速度。然而,也可以考虑这样一种技术,使用代理服务器将请求均匀转发给多台服务器,从而达到负载均衡的目的。   3.地址转换网关负载均衡支持负载均衡的地址转换网关,可以将一个外部IP地址映射为多个内部IP地址,对每次TCP连接请求动态使用其中一个内部地址,达到负载均衡的目的。   4.协议内部支持负载均衡除了这三种负载均衡方式之外,有的协议内部支持与负载均衡相关的功能,例如HTTP协议中的重定向能力等,HTTP运行于TCP连接的最高层。   5.NAT负载均衡NAT(Network Address Translation 网络地址转换)简单地说就是将一个IP地址转换为另一个IP地址,一般用于未经注册的内部地址与合法的、已获注册的Internet IP地址间进行转换。适用于解决Internet IP地址紧张、不想让网络外部知道内部网络结构等的场合下。   6.反向代理负载均衡普通代理方式是代理内部网络用户访问internet上服务器的连接请求,客户端必须指定代理服务器,并将本来要直接发送到internet上服务器的连接请求发送给代理服务器处理。反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。反向代理负载均衡技术是把将来自internet上的连接请求以反向代理的方式动态地转发给内部网络上的多台服务器进行处理,从而达到负载均衡的目的。   7.混合型负载均衡在有些大型网络,由于多个服务器群内硬件设备、各自的规模、提供的服务等的差异,我们可以考虑给每个服务器群采用最合适的负载均衡方式,然后又在这多个服务器群间再一次负载均衡或群集起来以一个整体向外界提供服务(即把这多个服务器群当做一个新的服务器群),从而达到最佳的性能。我们将这种方式称之为混合型负载均衡。此种方式有时也用于单台均衡设备的性能不能满足大量连接请求的情况下。

四个分类

软/硬件负载均衡

  软件负载均衡解决方案是指在一台或多台服务器相应的操作系统上安装一个或多个附加软件来实现负载均衡,如DNS Load Balance,CheckPoint Firewall-1 ConnectControl等,它的优点是基于特定环境,配置简单,使用灵活,成本低廉,可以满足一般的负载均衡需求。   软件解决方案缺点也较多,因为每台服务器上安装额外的软件运行会消耗系统不定量的资源,越是功能强大的模块,消耗得越多,所以当连接请求特别大的时候,软件本身会成为服务器工作成败的一个关键;软件可扩展性并不是很好,受到操作系统的限制;由于操作系统本身的Bug,往往会引起安全问题。   硬件负载均衡解决方案是直接在服务器和外部网络间安装负载均衡设备,这种设备我们通常称之为负载均衡器,由于专门的设备完成专门的任务,独立于操作系统,整体性能得到大量提高,加上多样化的负载均衡策略,智能化的流量管理,可达到最佳的负载均衡需求。   负载均衡器有多种多样的形式,除了作为独立意义上的负载均衡器外,有些负载均衡器集成在交换设备中,置于服务器与Internet链接之间,有些则以两块网络适配器将这一功能集成到PC中,一块连接到Internet上,一块连接到后端服务器群的内部网络上。   一般而言,硬件负载均衡在功能、性能上优于软件方式,不过成本昂贵。

本地/全局负载均衡

  负载均衡从其应用的地理结构上分为本地负载均衡(Local Load Balance)和全局负载均衡(Global Load Balance,也叫地域负载均衡),本地负载均衡是指对本地的服务器群做负载均衡,全局负载均衡是指对分别放置在不同的地理位置、有不同网络结构的服务器群间作负载均衡。   本地负载均衡能有效地解决数据流量过大、网络负荷过重的问题,并且不需花费昂贵开支购置性能卓越的服务器,充分利用现有设备,避免服务器单点故障造成数据流量的损失。其有灵活多样的均衡策略把数据流量合理地分配给服务器群内的服务器共同负担。即使是再给现有服务器扩充升级,也只是简单地增加一个新的服务器到服务群中,而不需改变现有网络结构、停止现有的服务。  全局负载均衡主要用于在一个多区域拥有自己服务器的站点,为了使全球用户只以一个IP地址或域名就能访问到离自己最近的服务器,从而获得最快的访问速度,也可用于子公司分散站点分布广的大公司通过Intranet(企业内部互联网)来达到资源统一合理分配的目的。   全局负载均衡有以下的特点:   实现地理位置无关性,能够远距离为用户提供完全的透明服务。   除了能避免服务器、数据中心等的单点失效,也能避免由于ISP专线故障引起的单点失效。   解决网络拥塞问题,提高服务器响应速度,服务就近提供,达到更好的访问质量。

部署方式

  负载均衡有三种部署方式:路由模式、桥接模式、服务直接返回模式。路由模式部署灵活,约60%的用户采用这种方式部署;桥接模式不改变现有的网络架构;服务直接返回(DSR)比较适合吞吐量大特别是内容分发的网络应用。约30%的用户采用这种模式。

1、路由模式(推荐)

  路由模式的部署方式如上图。服务器的网关必须设置成负载均衡机的LAN口地址,且与WAN口分署不同的逻辑网络。因此所有返回的流量也都经过负载均衡。这种方式对网络的改动小,能均衡任何下行流量。

2、桥接模式

  桥接模式配置简单,不改变现有网络。负载均衡的WAN口和LAN口分别连接上行设备和下行服务器。LAN口不需要配置IP(WAN口与LAN口是桥连接),所有的服务器与负载均衡均在同一逻辑网络中。参见下图:
  由于这种安装方式容错性差,网络架构缺乏弹性,对广播风暴及其他生成树协议循环相关联的错误敏感,因此一般不推荐这种安装架构。

3、服务直接返回模式

  如上图,这种安装方式负载均衡的LAN口不使用,WAN口与服务器在同一个网络中,互联网的客户端访问负载均衡的虚IP(VIP),虚IP对应负载均衡机的WAN口,负载均衡根据策略将流量分发到服务器上,服务器直接响应客户端的请求。因此对于客户端而言,响应他的IP不是负载均衡机的虚IP(VIP),而是服务器自身的IP地址。也就是说返回的流量是不经过负载均衡的。因此这种方式适用大流量高带宽要求的服务。

详细配置

  基础网络配置:   AX1000(config)#clock timezone Asia/Shanghai//设置时区   AX1000(config)#vlan 10//创建VLAN10   AX1000(config-vlan:10)# untagged ethernet 1 to 2//划分接口到VLAN10中   AX1000(config-vlan:10)# router-interface ve 10 //设置路由接口为Ve10,后面会给Ve10 配置地址的,这点和传统的二、三层交换不一样。   AX1000(config-vlan:10)# name “Web-Server-Outside”//也可以设置的备注   AX1000(config-vlan:10)#end//完成VLAN10的内容,和Cisco的命令一样。   AX1000(config)#vlan 20   AX1000(config-vlan:20)# untagged ethernet 3 to 4   AX1000(config-vlan:20)# router-interface ve 20   AX1000(config-vlan:20)# name “Web-Server-Inside”   AX1000(config-vlan:10)#end   AX1000(config)#interface ethernet 1//进入eth1口   AX1000(config-if:ethernet1)# enable //激活该接口   AX1000(config-if:ethernet1)# interface ethernet 2   AX1000(config-if:ethernet2)# enable   AX1000(config-if:ethernet2)#interface ethernet 3   AX1000(config-if:ethernet3)# enable   AX1000(config-if:ethernet3)#interface ethernet 4   AX1000(config-if:ethernet4)# enable   AX1000(config-if:ethernet4)#end   AX1000(config)#interface ve 10//进入Ve10接口并为其配置地址   AX1000(config-if:ve10)# ip address 116.255.188.2 255.255.255.0   AX1000(config-if:ve10)# ip nat outside //这和传统的路由交换设置一直,是需要做NAT处理的。   AX1000(config-if:ve10)#end   AX1000(config)#interface ve 20   AX1000(config-if:ve20)# ip address 192.168.1.1 255.255.255.0   AX1000(config-if:ve20)# ip nat inside   AX1000(config-if:ve20)#end   首先添加服务器   AX1000(config)#slb server Web1192.168.1.11//添加服务器Web1,其IP地址为192.168.1.11   AX1000(config-real server)#port 80tcp//指定服务器开放的端口及端口类型   AX1000(config-real server-node port)#exit   AX1000(config-real server)#exit   AX1000(config)#slb server Web2192.168.1.12   AX1000(config-real server)#port 80tcp  AX1000(config-real server-node port)#end
 
  检查添加的服务器状态是否正常:   AX1000#show slb server //查看SLB信息   Total Number of Services configured: 2   Current = Current Connections, Total = Total Connections   Fwd-pkt = Forward packets, Rev-pkt = Reverse packets   Service Current Total Fwd-pkt Rev-pkt Peak-conn State   —————————————————————————————   Web1:80/tcp 0 0 0 0 0 Up   Web1: Total 0 0 0 0 0 Up   Web2:80/tcp 0 0 0 0 0 Up   Web2: Total 0 0 0 0 0 Up   发现全Up以后,则表示服务器的健康检查通过!   默认的健康检查方式是Ping检查服务器的存活状态!只有服务器状态为Up时,负载均衡器才会把会话分发给该服务器处理,从而最大可能性的保障用户的请求得到服务器的正常应答,这也是负载均衡器的基本功能之一!   在很多时候服务器作了安全策略,比如说防止Icmp的报文等等,我们就需要调整服务器的健康检查方式,具体内容后期提供。   创建服务组   AX1000(config)#slb service-group Webtcp   AX1000(config-slb svc group)#member Web1:80   AX1000(config-slb svc group)#member Web2:80   AX1000(config-slb svc group)#end
 
验证服务组工作正常   AX1000#show slb service-group   Total Number of Service Groups configured: 2   Current = Current Connections, Total = Total Connections   Fwd-p = Forward packets, Rev-p = Reverse packets   Peak-c = Peak connections   Service Group Name   Service Current Total Fwd-p Rev-p Peak-c   ——————————————————————————-   *Web State: All Up   Web1:80 0 0 0 0 0   Web2:80 0 0 0 0 0   创建虚拟服务器   其地址为:116.255.188.235,即对外公布的真实的服务地址   AX1000(config)#slb virtual-server VIP-WEB 116.255.188.235//创建VIP   AX1000(config-slb vserver)#port 80http//指定VIP对公共用户开放的端口及端口类型,Web页面选择http   AX1000(config-slb vserver-vport)#service-group Web//该端口对应的服务组为Web   AX1000(config-slb vserver-vport)#end
 
 
查看虚拟服务器状态   AX1000#show slb virtual-server   Total Number of Virtual Services configured: 1   Virtual Server Name IP Current Total Request Response Peak  Service-Group Service connection connection packets packets connection   —————————————————————————————-   *VIP-WEB(A) 116.255.188.235 Up   port 80 http 0 0 0 0 0   Web 80/http 0 0 0 0 0   Total received conn attempts on this port: 0   我之前已经将域名的解析记录设置为116.255.188.235,所以只要直接访问即可看到效果。   验证:   AX1000#show session | in 116.255.188.235//查看当前设备上访问116.255.188.235的详细会话   Traffic Type Total  ——————————————–   TCP Established 17   TCP Half Open 8   UDP 0   Non TCP/UDP IP sessions 0   Other 681295   Reverse NAT TCP 0   Reverse NAT UDP 0   Free Buff Count 0   Curr Free Conn 2031387   Conn Count 6926940   Conn Freed 6926870   TCP SYN Half Open 0   Conn SMP Alloc 103137   Conn SMP Free 102986   Conn SMP Aged 0   Conn Type 0 Available 6225920   Conn Type 1 Available 3112960   Conn Type 2 Available 2015155   Conn Type 3 Available 778240   Conn SMP Type 0 Available 6225920   Conn SMP Type 1 Available 3112960   Conn SMP Type 2 Available 1572712   Conn SMP Type 3 Available 778240   Prot Forward Source Forward Dest Reverse Source Reverse Dest Age Hash Flags   —————————————————————————————————————-   Tcp 110.152.232.139:1927 116.255.188.235:80 192.168.1.11:80 110.152.232.139:80 0 1 OS   Tcp 110.152.232.139:1927 116.255.188.235:80 192.168.1.12:80 110.152.232.139:80 0 1 OS  类型 源地址目的地址服务器地址服务器回报地址

常见产品

  1.F5 负载均衡器   目前全球范围内应用最为广泛的负载均衡设为为美国F5公司。F5公司于2000年底进驻中国,目前已分别在北京、上海、广州、成都、深圳、珠海设立了办事机构。在华拥有超过500位的F5认证工程师,为遍布全国的用户提供全面的技术支持。在国内业界,F5产品已经成为了主流负载均衡技术的代名词。   产品技术特点:   1)全面的负载均衡   BIG-IP LTM(本地流量管理)包含静态和动态负载均衡方法,包括动态速率、最少连接和观察模式的动态平衡,这些方法用于以整体方式跟踪服务器的动态性能。这保证了始终选择最佳的资源,以提高性能。可支持所有基于TCP/IP协议的服务器负载均衡。可支持最小连接数、轮询、比例、最快响应、哈希、预测、观察、动态比例等负载均衡算法。   2)应用状态监控   BIG-IP LTM提供的监视器,用于检查设备、应用和内容的可用性,包括适合多种应用的专用监视器(包括多种应用服务器、SQL、SIP、LDAP、XML/SOAP、RTSP、SASP、SMB等),以及用于检查内容和模拟应用调用的定制监视器。   3)高可用性和交易保障   BIG-IP LTM提供了次秒级系统故障切换和全面的连接映射,无论出现何种系统、服务器或应用故障,都能保证它是一个高可用的解决方案。BIG-IP LTM可以主动检测和响应任何服务器或应用错误。   4)支持NAT地址转换   提供NAT地址转换功能,能够实现动态或静态地址转换。   5)支持访问控制列表   能够实现防火墙的基本功能,建立访问控制列表,拒接IP网段或端口号吗。   6)广域流量管理器(插件模块)   为在全球各地的多个数据中心中运行的应用提供高可用性、最高的性能和全局管理。   7)链路控制器(插件模块)   无缝地监控多个WAN连接的可用性和性能,智能地管理站点的双向流量,从而提供容错的、经过优化的互联网接入。比如管理控制CT和CNC的网络流量。   8)应用防火墙(插件模块)   该模块可加入到F5设备中,为设备提供更高级的安全服务。   9)支持路由   该功能为F5设备中基本功能,但只支持静态路由,如果使用较为高级的OSPF路由协议,需要购买单独的模块来支持。   扩展应用-降低服务器负载   1)内容转换   BIG-IP LTM为将许多繁杂或者重复功能卸载到集中的高性能网络设备上提供了全面的解决方案。SSL、压缩以及BIG-IP LTM的其它多项功能提供了一个完整的内容转换网关,可重定向、插入或者全面转换应用内容,以实现有效且高效的应用集成。   2) OneConnect   F5 OneConnect? 将数百万个请求汇聚为几百个服务器端的连接,确保后端系统能够高效地处理这些连接,从而使服务器容量提高60%。   3)高速缓存   智能缓存功能通过将重复流量从Web和应用服务器上卸载,使服务器容量提高9倍,从而实现显著的成本节约。该功能也是业内唯一提供多存储库缓存的解决方案,能够针对各应用或部门管理不同的缓存库,为高优先级的应用提供精确的智能控制。   4) SSL加速和卸载  每个BIG-IP LTM设备提供了硬件加速方式的SSL加密,以消除应用服务器的SSL负担。通过加快设置和批量加密,企业可以采用更安全的密码将全部通信迁移到SSL,几乎不会导致应用性能下降或瓶颈。   优化的应用   1)智能应用交换   BIG-IP LTM拥有读取所有IP应用的独特能力,因此,它可以转换并且持续保留特定供应商的应用服务器(Microsoft、IBM、Oracle、SUN等)的独特信息; Web服务应用的XML数据;或者指示移动/无线应用的定制数值。您的企业可以借助BIG-IP LTM转换、记录以及持续保留有效负载或数据流的能力,实现更高的可靠性和可扩展性。  2)智能压缩   将应用性能提高至3倍,同时使带宽的使用量减少80%。使用业界标准的gzip和DEFLATE压缩算法减少HTTP流量,通过更慢/低的带宽连接降低带宽消耗量,缩短用户下载时间。这一功能对于压缩多种类型的文件提供了丰富的支持能力,包括HTTP、XML、JavaScript、J2EE应用等。   3)灵活的第4至7层流量整形   通过为更高优先级的应用分配带宽,控制流量峰值,并且根据第4层或第7层参数确定流量的优先级,保证最佳的应用性能。即目前我们IDC机房在核心交换机上所启用的QOS功能。   4) TCP Express   BIG-IP LTM的高度优化的TCP/IP堆栈(称为TCP Express?)将TCP/IP技术和最新RFC的改进功能,与F5开发的多项改进和扩展功能相结合,最大限度降低了拥塞、丢包和恢复的影响。BIG-IP LTM是一个全代理设备,因此,TCP Express可以屏蔽并且透明地优化服务器或客户端上运行的原有的或者不兼容的TCP堆栈。这样可以使用户的性能提高2倍,并且使带宽效率提高4倍,同时降低您的服务器上的连接负载。   安全的应用   1)基础防火墙功能——数据包过滤   BIG-IP LTM集成了一个控制点,用于定义和执行基于第4层的过滤规则(基于PCAP,类似于网络防火墙),以提高网络防护能力。   2)资源隐藏和内容安全   BIG-IP LTM对所有应用、服务器错误代码和真正的URL参考实现了虚拟化和隐藏,因为这些可能为黑客提供关于基础架构、服务及其相关漏洞的信息。敏感的文档或内容将不允许离开您的站点。   3)定制的应用攻击过滤   全面的检测和基于事件的策略为搜索、检测和应用多种规则阻止已知第7层攻击提供了显著增强的能力。BIG-IP LTM还采用安全的应用模板阻止已知攻击和针对应用业务逻辑的攻击。额外的安全层可防止黑客、病毒和蠕虫,同时为合法流量提供持续的服务。   4)隔离协议攻击   BIG-IP LTM提供了协议无害处理 (Protocol Sanitization) 和充分TCP终止 (Full TCP Termination)点来单独管理客户端和服务器端连接,以保护所有后端系统和应用免遭恶意攻击。   5)网络攻击防护   BIG-IP LTM作为安全代理,可防护DoS攻击、SYN Flood以及其它基于网络的攻击。诸如SYNCheck?等特性可为部署在BIG-IP设备后的服务器提供全面的SYN Flood保护。BIG-IP LTM采用Dynamic Reaping(获取空闲连接的一种自适应方法)过滤掉负载最重的攻击,同时为合法连接提供不间断的服务。   6)有选择的加密  BIG-IP LTM提供了业界最具选择性的加密方法,对数据进行整体、部分或有条件的加密,从而保护并优化不同用户之间的通信。   7)Cookie加密   透明地分配给合法用户的Cookie和其它令牌都经过加密。企业可获得针对全部带状态的应用(电子商务、CRP、ERP和其它关键业务应用)的卓越安全性,以及更高的用户身份信任度。   8)高级SSL加密标准   BIG-IP LTM采用市场上最安全的SSL加密技术,支持更高标准的AES算法,而无需额外的处理成本。   9)抓包工具  提供tcpdump工具作为抓包分析使用,可用于故障处理,流量分析等方向。   2.深信服   深信服应用交付AD产品具备服务器负载均衡、链路负载均衡、单边加速、智能优化技术、SSL加速、商业智能分析等优势功能,将用户访问请求智能匹配到最优的链路,并为用户选择响应最快的服务器,提升用户使用体验,并为企业提供科学管理的决策。   产品技术特点:   深信服AD系列产品不仅包含传统的链路负载均衡以及服务器负载均衡的所有功能,同时具备单边加速、DNS透明代理、链路繁忙控制、智能路由、商业智能分析等众多快速、智能的优化技术,能够最大程度提升用户的访问体验。   单边加速功能   客户端无需安装任何插件和软件即可提升用户访问速度,这使得用户可以更快更稳定地访问发布内容,打造稳定智能的业务发布平台。   商业智能分析   深信服AD应用交付产品区别于传统负载均衡设备,更加关注企事业单位应用的整体交付过程中与业务、网络优化相关的一系列问题。其中最显著的特点就是,在保证应用交付过程中稳定性的前提下,不仅可以知悉组织网络和服务器的运行状况,更重要的是可以帮助组织分析自身的业务系统运行状况,以此为高层的网络优化和业务优化提供决策依据。   链路负载和服务器负载二合一   深信服AD产品包括链路优化和服务器优化,四到七层负载均衡,实现对各个链路以及服务器状态的实时监控,同时根据预设的规则将请求分配给相应的链路以及服务器,以此最终实现数据流的合理分配,使所有的链路和服务器都得到充分的利用,扩展应用系统的整体处理能力,提高应用系统的稳定性,改善用户的访问体验,降低组织IT投资成本。   高投资回报比   深信服AD系列应用交付产品打破国外厂商垄断,在同等投入水平下,具备链路、服务器二合一负载均衡解决方案,并直接开通SSL加速、缓存、压缩等众多优化功能,获得超出业界同类产品的设备性能   功能价值   DNS透明代理:即使内网用户DNS服务器配置不良,亦能实现上网链路的最佳选择,链路拥塞控制实时检测多链路状态,避免将请求发送给已过载的链路,提升链路使用率,实现链路保护链路健康检查链路健康检查,及时排除链路故障。服务器负载均衡技术算法丰富:轮询、加权轮询、加权最小连接、URL散列、动态反馈、最快反应等满足客户多种负载形式的需求,将用户访问请求合理的分配,实现业务快速、智能、稳定的访问。支持入站/出站双向负载入站流量及出站流量均支持负载均衡,提升组织多链路资源的带宽利用率。将用户访问均衡的分配给各台服务器,提升服务器响应速度,服务器资源利用率,以及访问请求的响应速度数据压缩缓存及http压缩,答复降低服务器压力,缩短用户下载资源的时间,提升效率单边加速客户端无需安装任何插件及软件情况下,大幅提升访问速度,改善用户体验SSL加速将SSL加解密工作转交给应用交付设备,降低对服务器资源的占用,提升服务器响应能力服务器健康检查服务器健康检查并及时发现故障服务器,保障用户访问的连贯性商业智能分析技术功能功能价值链路负载报表提供流量、访问次数、带宽利用率等面数据统计,帮助管理人员直观的了解链路运行状态服务器负载报表提供流量、访问次数、并发连接数等数据,帮助管理人员直观了解服务器运行状态商业决策BI提供用户时段分析、用户地域分析、用户类别分析等数据,让企业决策者清晰了解访问者分布及特点,为管理提供智慧决策依据稳定性统计具备链路稳定性及服务器稳定性报表,管理人员可查看各链路、服务器状态是正常、繁忙还是故障,便于及时调整设备管理技术功能功能价值智能告警系统当服务器、应用系统故障时,以邮件、短信等方式通知管理员,以便及时维护并保障业务正常全中文界面图形化配置界面,具备配置向导辅助配置,大大降低配置难度多级授权管理用户与角色相分离,实现管理权限最大化细分,保障组织信息管理安全性安全防护DOS攻击及ARP欺骗防护手段阻挡来自互联网的攻击,提高系统安全性配置备份/恢复支持从设备图形配置界面直接备份及恢复备份配置,便于设备管理。   3.梭子鱼   梭子鱼负载均衡机通过为多台服务器进行流量均衡、网络入侵防护等流量优化和安全扫描机制,实现应用的高可用性和安全性,并通过完善的服务器健康检查机制,为应用提供冗余。梭子鱼使用软、硬件一体化设计,避免了根据服务器台数和端口数的收费方式,为用户提供性价比极高的应用安全负载均衡。   高可用性与高可扩展性   据行业分析报告,目前只有不到20%的核心应用实现了高可用性。应用高可用性所面临的巨大挑战包括了持续工作时间的延长、应用的扩容和攻击的防护。梭子鱼负载均衡机使用完善的服务器健康检查对真实服务器进行实时监控,确保用户的请求始终到达健康的服务器,得到正常的响应。对于梭子鱼负载均衡机自身的高可用性,可以通过梭子鱼负载均衡机的集群部署实现。   对于高流量的应用环境,梭子鱼负载均衡机通过动态权重分配机制根据每台服务器的实时处理能力进行流量的均衡。对于需要会话保持的应用,梭子鱼负载均衡机提供源IP会话保持以及7层的cookie会话保持功能。   易于管理和维护   梭子鱼负载均衡机部署简单。通过服务器自动发现功能和友好的Web配置界面,帮助用户轻松完成配置。同时,梭子鱼通过集成的IPS为应用提供实时的安全防护。   梭子鱼负载均衡机的Web管理界面提供完善的数据统计,对设备的性能、流量等数据进行实时统计,同时提供易于操作的服务配置页面,为管理员提供方便的管理。

实际解决方案

  业务连续性与高可用性从来都是企业的生命线。我们很难想象,当一个银行的信息系统中断那怕是一个小时,将会造成怎样的严重后果。据权威统计,经历突发性重大灾害后的公司有将近43%倒闭,而另外51% 也在两年之内陆续关门。要保证关键业务7x24不中断,应对激烈的市场竞争和提高客户满意度,企业必须在IT系统围绕“连续”主题进行构建,实施业务连续/容灾备份计划,包括业务连续性、高可用性管理、容灾、数据保护和恢复案、安全等。   正是基于以上考虑,某银行数据中心采用了梭子鱼提供服务器负载均衡高可用性解决方案,该银行实现了多数据中心链接和高负载高流量的网络应用目标,确保了该银行数据中心的稳定的业务处理能力。   客户需求  某银行成立于1992年,是国有控股的全国性股份制商业银行,为国内第一家有国际金融组织参股的银行,具有雄厚的资金实力,特点鲜明的股权结构,完善的经营管理体制,布局合理的机构网络,该银行已在全国23个省、自治区、直辖市的36个经济中心城市拥有分支机构300多家,成为对社会有一定影响的全国性股份制商业银行。与此同时,该银行也积极利用信息化手段,来提高自身的竞争力和客户满意度。   就该银行而言,要确保银行数据中心高流量负载和高可用性,全面部署高可用性的服务器负载均衡解决方案,要求如下:在正常情况下两台或多台服务器的负载基本相同,在某台服务器停机的情况下透明的容错,保证关键服务的持续。ISP接入链路的容灾:在每个数据中心采用不同的ISP接入链路,保证在ISP故障的情况下系统的正常运行,而在正常的情况下实现负载均衡,提高链路利用率。多数据中心的协同工作:为配合未来在业务量增加的情况下,在某分中心的协同工作,特别是不同地理位置的用户的就近性访问的考虑,以提高服务品质,增加用户访问的满意度。   解决方案   针对某银行的目前需求现状和未来需求趋势,考虑到该银行数据中心的后台是通过中间件为基础架构搭建起来,梭子鱼提供了两台440梭子鱼服务器负载均衡设备机,并以服务器直接返回模式(DSR)将负载均衡设备接入网络,对每一层的应用服务器进行负载均衡。该方案具有以下优势:   1. DSR模式为梭子鱼独有负载均衡工作模式,是专门针对如金融行业这种对高并发连接数有严格要求的行业开发的模式。   2.简单快速的网络搭建,实现网络拓扑零改动。   梭子鱼负载均衡机是提供本地服务器群负载均衡和容错的产品,在充分利用现有资源以及对IT基础设施进行最小变动的前提下有效地进行流量的分配,从而提高服务器的处理性能。对客户端而言,这一切都是透明的。   两台梭子鱼负载均衡机做为一组,对应用服务器提供负载均衡服务,并且互为备份,采用“心跳”技术实时监控伙伴设备的同时,也实现了负载均衡设备的负载均衡。能够避免SPOF和单点瓶颈的问题,最大限度地发挥负载均衡的能力。   采用梭子鱼负载均衡440系列产品处理多ISP的多网段IP地址的情况,由该产品全权处理有关DNS解析和多数据中心的多ISP接入链路问题。开启该产品的健康检查功能,检查两个或多个数据中心的服务状况,以确保用户的正常访问。DNS服务器分别接在接入路由器上,负责用户的DNS访问请求。引导用户使用最快的链路进行访问站点。同时,梭子鱼附在均衡机负责检查线路的健康状态,一旦检测到线路的中断,则停止相应线路的地址解析。   客户价值   采用梭子鱼服务器负载均衡机440产品系列后,某银行系统可以达到以下益处:   @高可用性:梭子鱼负载均衡机的配合可以实现动态分配每一个流量请求到数据中心或后台的BEA WebLogic中间件服务器,并动态检查各个服务器的状态,将下一个请求分配给最有效率的服务器,任何服务器死机时,梭子鱼负载均衡机即刻将流量请求分配给其他的中间件服务器,从而达到99.999%系统有效性。   @高安全性:梭子鱼服务器负载均衡支持地址翻译技术和安全地址翻译,这样一来客户不可能知道真正提供服务的服务器的IP地址与端口,另外,产品的管理全部采用SSH和SSL技术,可以防止来自内部或互联网上的黑客攻击。   @高效率:采用梭子鱼负载均衡之后,可智能寻找最佳的服务器从而保证客户得到响应最快的服务器以提供最佳的服务。此外,产品能够充分利用中间件服务器的有效资源和处理能力,所以,每次客户请求都可以得到最快速的响应从而提高系统的工作效率。   @高可扩展性:梭子鱼服务器负载均衡机可以帮助用户根据访问客户的流量,数量和地理位置等多项指标合理规划和扩建分中心,并且对用户是透明的;产品可以支持动态增加或删除其负载均衡的服务器群组的任何数量的服务器,而不需要对客户端或后台做任何改变从而使得系统扩展轻松方便。   @高可管理性:梭子鱼负载均衡产品界面友好,且有统一的中央平台可以实时监控整个服务器群组的流量状态,并分析发展趋势帮助客户及时根据流量增长增加服务器。   从业务和应用层面而言,该银行数据中心的关键业务确保24小时不间断,提高了服务的效率,从而增加了客户满意度和竞争力。
 
 
 
 

吞吐量

中文名称:吞吐量英文名称:throughput

定义:网络、设备、端口、虚电路或其他设施,单位时间内成功地传送数据的数量(以比特、字节、分组等测量)。

应用学科:通信科技(一级学科);通信网络(二级学科)

 

对网络、设备、端口、虚电路或其他设施,单位时间内成功地传送数据的数量(以比特、字节、分组等测量)。

网络范畴下的吞吐量

  定义:吞吐量是指在没有帧丢失的情况下,设备能够接受并转发的最大数据速率。   相关知识:   1、吞吐量的大小主要由网络设备的内外网口硬件,及程序算法的效率决定,尤其是程序算法,对于象防火墙系统这样需要进行大量运算的设备来说,算法的低效率会使通信量大打折扣。因此,大多数防火墙虽号称100M防火墙,由于其算法依靠软件实现,通信量远远没有达到100M,实际只有10M-20M。纯硬件防火墙,由于采用硬件进行运算,因此吞吐量可以接近线速,达到90-95M,是真正的100M防火墙。   2、吞吐量和报文转发率是关系网络设备应用的主要指标,一般采用FDT(Full Duplex Throughput)来衡量,指64字节数据包的全双工吞吐量,该指标既包括吞吐量指标也涵盖了报文转发率指标。   3、吞吐量的测试方法是:在测试中以一定速率发送一定数量的帧,并计算待测设备传输的帧,如果发送的帧与接收的帧数量相等,那么就将发送速率提高并重新测试;如果接收帧少于发送帧则降低发送速率重新测试,直至得出最终结果。吞吐量测试结果以比特/秒或字节/秒表示。   
概念区别:   
吞吐量与带宽的区分:吞吐量和带宽是很容易搞混的一个词,两者的单位都是Mbps.先让我们来看两者对应的英语,吞吐量:throughput ; 带宽: Max net bitrate 。当我们讨论通信链路的带宽时,一般是指链路上每秒所能传送的比特数,它取决于链路时钟速率和信道编码在计算机网络中又称为线速。我们可以说以太网的带宽是10Mbps。但是,我们需要区分链路上的可用带宽(带宽)与实际链路中每秒所能传送的比特数(吞吐量)。我们倾向于用“吞吐量”一次来表示一个系统的测试性能。这样,因为实现受各种低效率因素的影响,所以由一段带宽为10Mbps的链路连接的一对节点可能只达到2Mbps的吞吐量。这样就意味着,一个主机上的应用能够以2Mbps的速度向另外的一个主机发送数据。

系统结构范畴下的吞吐量

定义:吞吐量是指在单位时间内中央处理器(CPU)从存储设备读取->处理->存储信息的量。  
影响吞吐量因素:   
1、存储设备的存取速度,即从存储器读出数据或数据写入存储器所需时间;   
2、CPU性能:1)时钟频率2)每条指令所花的时钟周期数(即CPI);3)指令条数;   
3、系统结构,如并行处理结构可增大吞吐量。

港口吞吐量

  (Port handling capacity)又称港口通过能力或港口吞吐能力。是衡量港口规模大小的最重要的指标。反映在一定的技术装备和劳动组织条件下,一定时间内港口为船舶装卸货物的数量,以吨数来表示。影响港口吞吐量的因素十分复杂。综合起来看,大体可以分为两种类型,一种是客观的区域因素,如腹地的大小,生产发展水平的高低,外向型经济发展状况和进出口商品的数量等等;另一种是港口本身的建港条件,包括自然条件和社会经济因素。在上述条件一定的情况下,劳动组织与管理水平、装卸机械数量和技术水平、船型、车型、水文气象条件、工农业生产的季节性、车船到港的均衡性,以及经由港口装卸的货物品种与数量,均可能成为影响港口吞吐能力的重要因素。但最直接最关键的要素是泊位能力的大小。

什么是港口吞吐量、操作量、装卸自然吨?

  港口吞吐量是指报告期内经由水路进、出港区范围并经过装卸的货物数量。该指标可反映港口规模及能力。   操作量是指报告期内装卸作业中,完成一个完整操作过程的货物数量。一个完整操作过程是指:船船、船驳、船 车场、车驳 车驳、管道船;车库场。操作量可衡量港口工人工作量太小。在同样装卸自然吨情况下操作量大,意味着港口成本也大。操作量在某种程度上也可反映港口生产组织是否科学。   装卸自然吨是指报告期内进、出港区并经装卸的货物自然吨数量。一吨货物进出港口,经过多个操作过程,可算为多个操作量但只能计算成一个自然吨。因此自然吨更为有效地反映港口实际工作成果。

物流范畴下的吞吐量

  参见货物吞吐量

机场吞吐量

  指的是一定时期内飞机起降次数和旅客运送数量。该指标可反映机场规模和能力。

中转站吞吐量

  中转站吞吐量又称中转中心通过能力。是衡量中转中心规模大小的最重要的指标。反映在一定的技术装备和劳动组织条件下,一定时间内中转中心中转的货物的数量,以吨数来表示。影响中转站吞吐量的因素十分复杂。综合起来看,大体可以分为两种类型,一种是客观的区域因素,如腹地的大小,生产发展水平的高低,外向型经济发展状况和进出口商品的数量等等;另一种是包括自然条件和社会经济因素。
 
扩展阅读:
  • IT168术语详解,《计算机网络系统方法》(美)Larry L.Peterson Bruce S.Davie 叶新铭 贾波 等译

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值