- 论坛徽章:
- 0
|
上周以及这周去东城区政府做了lvs负载均衡集群的配置和实施,最后出了一些小问题。现在做一个总结,大家看看,希望有点帮助。
实施主要是参照登峰的lvs的配置文档。现在简单描述一下流程。
东城区政府做的是两台web服务器作负载均衡,系统是红旗DC5.0SP2,第三方软件tongweb提供服务。外部提供服务的是vip:172.25.0.17,在两台实际服务器是切换:www1:172.25.0.21 www2:172.25.0.22. www1为
主节点。
首先,确保heartbeat和rfcadmin已经安装上了。
开启rfcadmin, #service rfcadmin start ,然后用浏览器登录172.25.0.21:8000 admin/admin
可以打开配置界面:
1,heartbeat监视-设置选项:使用网络设备为心跳的ip:eth0(也可能为eth1);
节点工作方式:主主或者主备(测试无明显区别)
集群节点机列表:www1 www2*
#一定要为两服务器主机名,不对无法添加,如果无法添加请用hostname查看主机名是否正确。
2,heartbeat监视-集群资源:增加集群资源-主节点:www1
-ip地址:172.25.0.17
-服务:IPaddr stop-transproxy ldirectord
3,heartbeat监视-认证密钥:SHA1和MD5都要填写一致。
4,红旗cluster:增加cluster服务-IP地址:172.25.0.17 服务端口:80*
协议:tcp 调度算法:lblc
#在此端口为80,因为tongweb提供的是http服务。
#原来的文档里面里面的算法是加权最少连接(wlc),后来在测试的过程中,由于用户用帐号登录使用session来认证,但是我们的vip在双机不断的切换导致用户会话期中断,用户登录后会出现断掉连接导致失败,所以影响使用,最后在登峰研究了算法之后,决定用lblc算法来保持会话,问题得到基本解决。
有关session的资料:http://www.chinalinuxpub.com/read.php?wid=197
5,红旗cluster:172.25.0.17:http-增加实际服务器:172.25.0.21 端口:80 转发方式:直接路由
增加实际服务器:172.25.0.22 端口:80 转发方式:直接路由
以上是lvs的图形界面配置基本完成,下面还要手工配置一些:
1,首先修改/etc/hosts 里面添加两台主机和ip地址的对应关系;
172.25.0.21 www1
172.25.0.22 www2
2,需要修改/etc/ha.d/conf/transparent_proxy:
添加 TRANSPARENT_ADDRESSES="172.25.0.17"
#其中ip地址为vip,也就是lvs对外提供服务的ip.为什么172.25.0.21和172.25.0.22可以处理包头是
172.25.0.17的包,就是由这个文件加transparent_proxy服务来实现的。
由于以上的配置是我们在www1一台机器上完成的,并没有同步到www2,所以我们需要手工来同步一下配置:
scp -r /etc/ha.d/ 172.25.0.22:/etc/
注意:只在www1上来更改配置,每次更改完之后要手工同步到www2.
最后要设置一些必须的服务自启动:
[http服务要在两台机器上设置为开机自启动]
此项服务在东城区的实施中要将http服务关闭,因为tongweb提供的服务同样使用80端口,如果开启http之后,占用了80端口,tongweb启动之后不能正常访问。此项服务的开启根据需要选择。
transparent_proxy服务要在两台机器设置为开机自启动
heartbeat服务要在两台机器设置为开机自启动
rfcadmin只在www1设置为开机启动。集群运行不依赖此项服务。
然后重新启动集群就可正常运行。
测试:通过一台机器访问172.25.0.17,然后#watch -n -1 ipvsadm -l 就可以查看实时的连接变化。
最后需要说的就是我在这个过程中遇到的问题,当时的问题是两台服务器单独提供服务都正常,能够正常访问,如果启动集群联机之后,就无法访问,根本打不开页面。初步判断是转发服务出了问题,但是都没有得到解决,直到登峰来到之后,一查看出现这个问题:
# /etc/init.d/transparent_proxy status
/etc/init.d/transparent_proxy: line 85: iptables: command not found
经过回忆才记起来,当时用户提出,由于启用iptable之后,老是丢包,无法登录,估计就是建盛提出的iptable的问题。后来就干脆把iptable给卸载了。现在就是transparent_proxy这个服务启不来了。
通过查看/etc/init.d/transparent_proxy
# Start daemons.
echo -n "Turning on transparent proxy: "
iptables -t nat -F PREROUTING
for i in $TRANSPARENT_ADDRESSES; do
iptables -t nat -A PREROUTING -d $i -p tcp -j REDIRECT iptables -t nat -A PREROUTING -d $i -p udp -j REDIRECT
done
echo_success
才发现需要用的iptable的规则,于是把iptable又安装上,最后lvs运行正常。
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/45890/showart_384661.html |
|