balance:轻松实施负载均衡方案
当我们在布署负载均衡方案时,将面临许多选择。传统的DNS负载均衡方案有许多的缺点,如占用合法IP过多、没有故障检测功能等。而如果考虑用第四层交换机、专用负载均衡器、防火墙等来实施负载均衡方案时,一是代价过于高昂,并且企业暂时还没有这么高的业务需求;二是安装配置过于复杂,一般的网络管理员难以胜任。下面我要介绍的这款简单实用的负载均衡软件,大家在布署负载均衡方案时不妨多加考虑。
balance是一款自由软件,支持BSD、Linux和SunOS/Solaris等操作系统,作用于OSI参考模型的第四层,当客户端向负载均衡服务器发出一个TCP连接请求时,balance将以轮循的方式选择服务器群中的某台服务器与客户端建立连接,从而响应客户端的连接请求。
balance提供了TCP Open故障侦测,通过检测服务器上提供服务的tcp端口(如telnet的23口,http的80口等)是否开放来判断服务器是否正常,从而避免服务请求被丢失,达到不间断可用性的要求。
balance的安装配置很简单,先到http:/sourceforge.net/projects/balance/下载软件源代码包,当前版本是2.24。解压缩:tar zxvf balance-2.24-1.tar.gz,进入源代码文件目录。如果有必要,可以打开Makefile文件修改默认C编译器及软件的安装路径等,然后输入如下命令编译安装:make;make install
安装完成后,在/usr/local/bin目录下生成一个命令文件balance,所有的配置都用这一个命令完成,每个balance命令用于建立一个负载均衡策略组,一台负载均衡服务器上可以建立多个负载均衡策略组,其语法如下,[]表示可选项:
balance [-b host] [-t sec] [-dfp] port [h1[:p1[
xc1]] [ ... hN[:pN[
xcN]]]]
balance [-b host] [-id] port
各参数解释如下:
-b host 因为一台负载均衡服务器上可能有多个IP地址,此选项用于捆绑指定的IP,只有绑定的IP地址才会响应客户端发出的连接请求服务。如果不指定此项,则捆绑此均衡服务器上所有的IP地址。
port 指定均衡策略组向客户端提供服务的TCP端口号。每台负载均衡服务器上一个TCP端口号只能用于一个负载均衡策略组,多个负载均衡策略组上提供服务的TCP端口号不能冲突,否则将balance失败。
-d 开启调试状态。在调试状态下,可以看到连接请求的处理状况。
-f 指定balance在前台工作状态下,如果不指定此项,balance将转入后台服务。
-p 显示数据包的使用状况。
-t sec 指定均衡服务器与均衡策略组中服务器的连接时间,一旦超出这个时间,则均衡服务器认为该服务器发生故障,而不把来自客户端的连接请求引向这台服务器,直至故障恢复为止,单位是秒。缺省值是5秒。
host[:port[
xc]] 这里依次指明均衡策略组中各服务器的地址、端口号、最大通道数。均衡策略组中的服务器即可以是内部网络上的服务器,也可以是外部网络上的服务器,甚至是负载均衡服务器本身,重要的一点是负载均衡服务器能与均衡策略组中的服务器建立TCP连接。端口号是指服务器提供服务的TCP端口号,缺省值与均衡策略组的TCP端口号相同。最大通道数(max channel)是指每次轮循到该服务器上时所要建立的最大连接数。例如,服务器A的maxc值是3,则只有当服务器A与客户端建立了3个连接后,负载均衡服务器才会把来自客户端的连接请求引向下一个服务器。如果不指定maxc值,则相当于平均轮循;如果指定maxc值,则相当于权重轮循。
-i 进入交互配置模式。因为在交互配置模式下所有的功能配置均可以通过一条balance命令来替代,所以这里就不做过多介绍了,负载均衡具体配置信息可以在交互模式下通过命令?或help来获取帮助。
注意:
host表示主机地址,可以是确定的IP地址,也可以是/etc/hosts文件里对应的host名,也可以是DNS上能解析的internet主机名,最终都将对应成确定的IP地址。
port表示TCP端口号,可以是具体的阿拉伯数字,也可以用/etc/services文件中相对应的service名来替代。
负载均衡服务器并不一定要处于内部网络服务器与外部网络间的网关位置,也可以处于与均衡策略组中服务器并行甚至无关的位置,重要的一点是均衡服务器能与均衡策略组中各服务器建立TCP连接。一旦想停止某组负载均衡服务,也很简单。如果该组负载均衡服务在前台工作状态下,只要在命令行下按Ctrl+C键中断该组服务就可以,否则,用ps -ef|grep balance找出要停止的负载均衡服务的pid,然后kill就可以了。
下面是一个配置实例:内部网络上有三台硬件配置并不高的服务器,为了处理好来自Internet上大量的web连接请求,负载均衡因此需要将此三台服务器做为一个www服务均衡策略组来响应internet上的连接请求,同时,为了满足一定的发信需求,其中有台配置好一点的服务器同时做为smtp服务器。
在负载均衡服务器的hosts文件中分别建立不同的主机名与内部网络上三台服务器的IP地址相对应。然后在命令行输入如下配置命令即可:
balance -b 202.104.1.1 80 www1:www www2:80 www3
balance smtp www3
应用交换技术里主要包括四项关键的技术:
◆截获和检查流量
◆服务器监控健康检查
◆负载均衡算法
◆会话保持
截获和检查流量保证只有合适的数据包才能通过;
服务器监控和健康检查随时了解服务器群的可用性状态;
负载均衡和应用交换功能通过各种策略导向到合适的服务器;
会话的保持以实现与应用系统完美结合;
F5在应用交换技术中的优势:
A、截获和检查流量
◆BIG-IP 有最强的数据包截获和检查引擎去检查任何数据流量包中的任何部分,可以检测16384bytes包的深度, 理论上可以检测64Kbytes的包长度
◆这使得BIG-IP 明显有别于其他的厂商的产品
B、用于定制控制的iRules工具
◆可用来定义如何根据报头和/或TCP有效负载信息来引导、保存和过滤流量。
◆iRules增强了企业或服务提供商定根据业务需求定制应用流量的能力。
◆通用检查引擎和iRules分别是应用智能和业务决策来进行应用流量管理的方法和工具。
C、服务器监控和健康检查 负载均衡
◆服务器(Node)-Ping(ICMP)
◆服务(Port)-Connect
◆扩展的应用验证(EAV)
◆扩展的内容验证(ECV)
◆针对VOD服务器的专用健康检查机制
◆针对节点的检查频率和超时频度,e.g.10seconds响应,e.g.5seconds
相关信息: