本文共 20060 字,大约阅读时间需要 66 分钟。
file:///D:/soft/C59I0ML/setupdir/0804/readme.htm
http://www-01.ibm.com/software/webservers/appserv/doc/v60/ec/infocenter-zh/index.html
================================
Edge Components 6.0 安装设置摘要
================================
组件:
==========
Load Balancer
安装路径: C:\Program Files\IBM\edge\lb
安装语言: zh_CN
子组件:
=============
管理
许可证
度量服务器
分派器
站点选择器
基于内容路由
Cisco CSS 控制器
Nortel Alteon 控制器
Caching Proxy
安装路径: C:\Program Files\IBM\edge\cp
安装语言: zh_CN, en_US
子组件:
=============
高速缓存代理(基本服务器)
NT/2000/2003 服务
WSES-Admin - (必需)
安装路径: C:\Program Files\IBM\edge\admin
安装语言: N/A
WSES-ICU - (必需)
安装路径: C:\Program Files\IBM\edge\icu
安装语言: N/A
文档
安装路径: C:\Program Files\IBM\edge
安装语言: zh_CN
子组件:
=============
HTML 文档
Global Security Kit V7 - (必需)
安装路径: C:\Program Files\IBM\GSK7
安装语言: N/A
WebSphere Edge Server 负载均衡功能简介
[标题]WebSphere Edge Server 负载均衡功能简介 内容提要:概述 WebSphere Edge Server 负载均衡的功能及原理 正文: WebSphere Edge Server 在应用系统前端通过强大的高速缓存功能和负载平衡部件来对服务器系统的总体性能进行改善。它适用于见于市场上的任何应用软件服务器。 WebSphere Edge Server 中进行负载均衡的部件也称为网络分发器(eNetwork Dispatcher),它可以对TCP服务器和应用软件进行实时监控和负载平衡。负载平衡部件的一个最大优点就是它使得对访问量很大的系统网站进行平滑扩容和透明的进行故障检测与排除成为可能,而这源于它可以监控网络中每一个单独逻辑服务器的动态网络连接。 负载均衡器(Network Dispatcher)为您对HTTP、FTP或其它基于TCP的服务器之间的负载平衡请求提供了一种可扩展的解决方案。与单一服务器相比,这种方式能够提供更高的可用性和扩展性。 WebSphere Edge Server 负载平衡器根据服务器的状态、性能以及运行的应用程序、到达的用户请求数综合判断,新的服务请求被直接送往最合适的服务器。如果检查到了服务器或应用程序出现了问题,用户请求将被送往其它的服务器。负载平衡组件还可用于在多个地点的服务器之间进行负载分配。根据客户定义的客户机/服务器亲缘关系规则和需要,可以扩充用来制订负载平衡决策的动态加权因子。 WebSphere 负载均衡器的核心功能部件是执行器(Executor),它主要根据被负载均衡的服务器的权重值决定如何选择当前最适合的服务器进行负载分发。 服务器的权重值由WebSphere Edge Server的管理器(Manager)来动态设定。Edge Server 管理器根据如下四个因素来设定权值: 1. 被负载均衡的服务器的当前的活动连结数,此值存放在执行器中。 2. 从上一次管理器运行间隔周期开始的服务器接受的新连结数目,此值存放在执行器中。 3. 客户咨询器的反馈值。 Edge Server 提供了对各种服务器应用运行状态进行检查的标准的咨询器。详细的有关咨询器的信息见文后所述。 4. 对服务器的处理能力的动态检查值。由在服务器上运行的度量服务器(Metric Server)检查服务器的 CPU 和主存储器的能力状态,并间歇式报告给 Edge Server 管理器。 在您配置 WebSphere 负载均衡器时,您对 Edge Server 管理器设定上述四种参数的比例关系,Edge Server 管理器根据您设定的情况和各参数动态的输入值来计算服务器权值。 客户咨询器功能:客户咨询器是一个轻量级的应用客户端,它在 Edge Server 中运行,发送真正的客户请求给服务器,返回服务器对真实业务请求的响应速度。比如这一功能可创建一个对WebSphere 应用服务器中的一个 Web 应用的连接,同时返回此Web 应用的响应速度。
使用WebSphere Edge server 6.1 实现负载均衡和对称高可用
|
级别: 中级 (), 高级软件工程师, IBM (), 软件工程师, IBM2007 年 7 月 20 日 Load Balancer是随Webspere Application server 61 ND版本发行的负载均衡服务器组件,它基于不同的系统性能要求提供了一系列负载均衡方案,它无需特殊的硬件支持,是一个软件实现负载均衡的解决方案。Load balancer通过将客户请求分发到后端集群的多个server,从而提高系统性能。 当Load balancer和web server结合使用的时候,能够使企业站点实现灵活可扩展。在 WAS 61 中,LB提供新的userspace版本,实现了linux平台的内核无关性。 本文在介绍新特性的基础上,用一个客户实例作为demo阐述如何使用LB实现 High Availability 的负载均衡。 同时,本文还会总结在生产环境中LB性能调优的技巧。 WebSphere Edge Server主要有两大组成部分:Load Balancer (以下简记为LB)和 Cache Proxy,前者负责请求的负载均衡,后者为缓存代理。 它们都位于Internet客户端和实际应用服务器之间。在IBM推荐的最佳可扩展系统架构中,LB位于web server之前,提供对Web Server的负载均衡、可扩展和高可用支持。 但是LB的用途不仅限于和 Web Server 结合使用,LB支持 HTTP,FTP,SSL,SMTP,NNTP,IMAP,POP3,Telnet, 和所有其它基于TCP或UDP的请求的负载均衡。 LB能够探测到后端不响应服务器从而在分发请求时绕开问题服务器。 它根据后端服务器(backend server)的运行状况,来动态调节各个backend server的权重,从而将请求合理地分配到这些backend server上去。用户可以使用缺省权重或者在配置时改变权重值。 Edge Load Balancer常应用在高负荷的企业级应用系统上。我们先简单介绍一下Edge Server 61的新特性和发展趋势。 在Edge Server 6.1版本之前,LB使用kernel space代码实现,所以产品与操作系统内核相关。为了实现更好的可移植性,LB正逐步采用user space的实现方式。 在Edge Server 6.1中提供了Linux系统上user space的LB版本。因此,Edge Server61中的LB有两个版本,一个是支持IPV4的传统版本,一个是支持IPv4/IPv6的内核无关版本(仅在Linux上实现了内核无关)。另外,WebSphere Application Server 6.1提供了可以通过ND管理的代理服务器(proxy server)。代理服务器(proxy server)将逐步取代 Cache Proxy 完成代理服务器功能。WebSphere Application Server 6.1中的代理服务器能够完成http,https 和sip请求的缓存代理。它可以在ND控制台生成,配置,起动,停止和删除。很多用户在使用负载均衡服务的时候,要求LB具有高可用性。下面我们将就实例介绍如何配置LB的对称高可用性(Mutual High Availability,以下简记为MHA)。
LB具有两种高可用性的配置模式,一种是简单高可用(simple HA),一种是对称高可用(Mutual HA)。 前者在运行时只有一台LB处于工作状态,另一台处于备用状态。备用LB会检测主LB的状态,当主LB发生故障时接管请求。为了提高资源的利用率,用户可以使用后一种模式。对称高可用在运行时两个服务器都处于工作状态,每个LB负责处理各自主集群(primary cluster)上的请求,同时互为对方的备份。两台LB之间通过“心跳检测”(heartbeat)来监视对方的“健康”状况,一旦其中一台出现故障,另一台便能接管(takeover)其负责的请求,从而保障整个系统的高可用性。此外,两台LB之间还将保持同步,以保证在takeover发生时数据的一致性。用户可以配置当出现故障的LB恢复正常后,该LB自动还是手动接管回自己的主集群。 由于对称高可用模式在失效转移(failover)发生时,正常工作的LB服务器需要同时负担两个集群的负载均衡,所以选择硬件时需要考虑服务器能承受的压力。
我们搭建了对称高可用环境。下面将结合这个实例阐述如何使用LB实现负载均衡的高可用性。
我们来看看一个客户请求的处理流程:
那么如果LB服务器wastst32.cn.ibm.com发生故障,对称高可用会怎么工作呢?这时,另一台LB服务器wasdev05.cn.ibm.com将会接管它的所有请求。由于两台LB服务器之间会通过心跳检测来监测对方的状态,当发现对方不响应时,LB会触发脚本,进行IP重新配置,这时一台LB服务器会同时为两个集群地址的请求提供负载均衡。
在另一台LB服务器wasdev05.cn.ibm.cn上的配置基本和上面一样。除了将dscontrol highavailability heartbeat add 9.181.86.144 9.181.86.145 换成 dscontrol highavailability heartbeat add 9.181.86.145 9.181.86.144,注意“心跳检测”具有方向性。上面三个backend server和LB并不都在同一网段上,在此我们不能采取MAC地址转发方式,只能采取NAT转发方式。
在对称高可用配置中,我们还必须配置LB状态切换时执行的脚本。 在MHA环境中, LB的状态发生改变时, 会调用一系列go*脚本,做一些网络配置的操作, 主要是对网络接口添加别名地址或删除已设置的别名地址。 Edge服务器提供了go*脚本的样本。脚本样本位于 /opt/ibm/edge/lb/servers/sample 目录下。要使go*发挥作用,您需要把所需的go*脚本放在 /opt/ibm/edge/lb/servers/bin (Unix平台)目录下。
下面给出了其中一台LB(wastst32)上的goActive和goStandby的脚本实例。 清单 2. goActive脚本示例
goActive脚本被调用时,会被传入一个参数,指示该LB要为哪个cluster服务。第一个if段表示该LB要为地址为9.181.86.185的cluster服务,所以它要在自己的网络适配器上配置该cluster的地址及返回地址,同时卸载loopback接口上的地址(如果已经绑定过)。第二个if段表示要为地址为9.181.86.155的cluster服务,例如另一台LB(wasdev05)出现了故障, 此时wastst32上的LB将接管wasdev05上的LB负责的请求,从而该脚本被调用,传入的参数为wasdev05的主机地址。 假如LB机器上有多个网络适配器呢?那该把cluster地址和返回地址配置在哪一个上? 答案是您需要在配置文件中指定NFA地址, 用命令 executor set nfa x.x.x.x,然后cluster地址和返回地址配置在NFA地址所在的适配器上。 清单 3. goStandby脚本示例
可以看出,goStandby做的操作和goActive刚好互逆,即goActive在对网络适配器en0进行config和对lo0进行unconfig,而goStandby反之。 此外,这两个脚本中还可以添加一些平台特定的操作,取决于我们的需要。
以下介绍了对上述HA环境的基本使用过程,主要目的是测试HA对请求进行了正常转发,且满足一定的性能要求。在一些步骤中顺带提及了应该注意的事项。 通过以下命令启动LB: dsserver start dscontrol file newload configfile //加载上述的基本配置文件,避免手工一条条执行。 停止LB: dscontrol executor stop //在dscontrol的许多命令中,executor可以简写为edsserver stop 此时分别检查两台LB机器上的网络配置是否正确。用 ifconfig -a 检查IP地址的设置。
在wasdev05上的配置与之对称。可以看出两台LB的en0上配上了自己的primary cluster的地址和返回地址,loopback上配上了自己backup cluster的地址和返回地址。 当takeover发生时,负责接管所有cluster上请求的LB所在机器的配置与上面会有所不同,en0将配上所有的cluster地址及返回地址。 用netstat –nr查看路由表,确保没有重复或其它不正确的路由。
如果出现类似于上面的路由,数据包可能会通过回送地址,从而导致LB对backend server状态的不正确判断,如将backend server的状态识别为down。 您需要删除第二条路由:route delete 9.181.86/24 9.181.86.187 –if lo0 在该实例中,我们在三台linux上用IBM的压力测试工具akstress来分别向两个cluster发送请求。
其中调节压力大小的主要参数为 Clients 和 TimedRun。Clients 相当于打开的浏览器个数,通过 TimedRun 我们将压力测试的时间设为24小时。 注意,在长时间的压力测试中,我们通常关闭RequestLog和PagaLog,否则产生的Log文件过大会导致akstress崩溃。在运行前,先设置linux最多打开的文件句柄数: ulimit –n 30000 运行akstress: nohup akstress -host 9.181.86.155:9080 -config myedge.acf > output.log & nohup akstress -host 9.181.86.185:9080 -config myedge.acf > output.log & 可以通过tail –f output.log 来查看akstress的执行情况。 运行结束后,在 summary.log 中将有执行报告,其中有总共请求数,每秒请求数,每个请求数的平均时间等统计。 而LB的并发数 = requests/per second of client1 + requests/per second of client2 + requests/per second of client3。
在LB服务器上,我们一般通过几个report命令来监测LB的运行状况。以下每个 report 清单中的第一行是在LB(wastst32)上执行的命令语句。
该report报告了LB的当前版本和启动以来总的数据包和连接的处理情况。
上述manager report显示了各个backend server的当前状态和权重。权重是LB均衡请求的主要依据,LB根据四个指标计算Backend server的权重,这四个指标分别是:当前活动的连接数,新来的连接数,端口负载(由advisor统计得来),系统负载(从metric server处得来)。这四个指标对计算backend server权重的作用又不尽相同,即分别有一个计算权重,该计算权重通过配置指令来设定。上面显示中的50%,45%,5%,0%即为各自的计算权重。 先计算出每个server上的总的负荷(load):Was2sun:0.5*3 + 0.45*1214 + 0.05*125 = 1.5 + 546.3 + 6.25 = 554Axdev01:0.5*3 + 0.45*3498 + 0.05*20 = 1.5 + 1574.1 + 1 = 1576Nlsdev43:0.5*1 + 0.45*4098 + 0.05*20 = 0.5 + 1844.1 + 1 = 1846于是最终的权重为:Was2sun:554/(554+1576+1846) = 0.14Axdev01:1576(554+1576+1846) = 0.40Nlsdev43:1846(554+1576+1846) = 0.46该权重即为weight列中新的权重(new),weight列中的now值为当前使用中的权重。
该report输出cluster的基本信息和各类TCP包的数量。
该report的第一列为每秒连接数,第二列为每秒传输的kb数。根据CPS可以推算出LB当前的并发数(三个CPS 的值累加后折半)。 同时,通过LB的log来检查LB是否正常运行。其中hamon.log记录了HA的每次启动和停止。Mutualha.log是我们在goActive和goStandby里定义的log输出文件,可以记录HA状态改变的情况,以此判断有无takeover发生。
下面是在对Edge load balancer做性能测试时的常见参数调整。
Q. 执行dscontrol e stop或其它dscontrol命令后,长久没反应。 A. 分析:可能原因是您的LB在忙于处理其它请求(如来自于snmp agent的请求);或者您检查LB对本机的域名解析是否正常,因为dscontrol的命令都会发往LB内部的rmi server进行处理,连接rmi server会采用本机的hostname,简单的测试办法是ping hostname。 Q. 后端backend server是正常启动的,但用dscontrol manager rep查看时,backend server被标记为down了。 A. 分析:backend server被标记为down说明advisor和backend之间的通信出了问题,一般查看LB上的路由表能发现问题所在。看是否存在冲突的路由。 Q. 两台LB机器都在正常运行,从mutuallog里却发现有takeover发生。 A. 分析:一般原因也是两台LB之间的通信出了问题,可以检查路由表,删除多余的或冲突的路由。 Q. 在NAT转发方式中,LB是怎么完成数据包的转发的? A. LB自身不会对数据包进行处理(即不会修改IP包),而是通过配置所在系统的数据包转发规则来完成。 如在Linux上,LB会配置系统的NAT表,用iptables -t nat –L即可以查看配置后的nat表,如将本机9080端口上收到的所有IP包转到后端server 9.186.117.57的9080端口上去,LB执行的等价任务是 iptables -t nat -A PREROUTING -i eth0 -p tcp -d 9.186.117.241 --dport 9080 -j DNAT --to-destination 9.186.117.57:9080 。
本文描述了 WebSphere Edge Server Component--Load Balancer 在对称高可用环境中的基本使用,同时告诉了您使用中的一些注意事项。 本文对您快速建立MHA环境并规划性能测试方案很有帮助。
|
end
转载地址:http://crjni.baihongyu.com/