免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2171 | 回复: 1
打印 上一主题 下一主题

ha-lvs [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-03-21 17:37 |只看该作者 |倒序浏览

REDHAT  LINUX  AS 4U4  HA- LVS配置


简介:ha-lvs在集群的负载均衡中用的比较多,本人因工作需要曾经做过,故把实践结果贴出来供大家分享,有解释不到的地方,希望大家跟贴补充,谢谢!

配置环境介绍:
调度器1地址:eth0:192.168.1.10/23;eth1:192.168.1.11/23
调度器2地址:eth0:192.168.1.20/23;eth1:192.168.1.21/23
应用服务器1地址:eth0:192.168.1.135/23;lo:0:192.168.1.130/23
应用服务器2地址:eth0:192.168.1.136/23;lo:0:192.168.1.130/23
VIP:192.168.1.130
结构图:

1.安装软件:
ipvsadm-1.24.tar.gz
heartbeat-2.0.5.tar.gz


2.安装过程:
(1)安装ipvsadm
rpm -ivh ipvsadm-1.24-5.i386.rpm
(2)安装heartbeat软件包
rpm -ivh heartbeat-pils-2.0.4-1.el4.i386.rpm
rpm -ivh heartbeat-stonith-2.0.4-1.el4.i386.rpm
rpm -ivh heartbeat-2.0.4-1.el4.i386.rpm-------------------(生成ha.cf、haresources、authkeys)
rpm -ivh perl-Parse-RecDescent-1.94-1.rh.el.um.1.noarch.rpm
rpm -ivh perl-Mail-IMAPClient-2.2.9-1.rh.el.um.1.noarch.rpm
rpm -ivh perl-Digest-SHA1-2.07-5.i386.rpm
rpm -ivh perl-Digest-HMAC-1.01-13.noarch.rpm
rpm -ivh perl-Net-DNS-0.48-1.i386.rpm
rpm -ivh perl-Authen-SASL-2.08-1.rh.el.um.1.noarch.rpm
rpm -ivh perl-Net-SSLeay-1.25-3.2.el4.rf.i386.rpm
rpm -ivh perl-IO-Socket-SSL-0.96-1.rh.el.um.1.noarch.rpm
rpm -e perl-LDAP
rpm -ivh perl-ldap-0.3202-1.rh.el.um.1.noarch.rpm
rpm -ivh perl-modules-5.8.5-3.i386.rpm
rpm -ivh --force perl-libnet-1.19-3.noarch.rpm (用force的原因:安装包中man3里有10
个文件与包perl.5.8.5-16中的相同)
rpm -ivh heartbeat-ldirectord-2.0.4-1.el4.i386.rpm----------(生成ldirectord.cf)

*两个调度器都按照以上步骤安装。

3.调度器配置
#chkconfig --del ldirectord
#chkconfig heartbeat on
ha配置文件样例在/usr/share/doc/heartbeat-2.0.4目录里
将文件ha.cf,haresource,authkey文件复制到 /etc/ha.d/
ldirectord样例文件在/usr/share/doc/heartbeat-ldirectord-2.0.4目录
将ldirectord.cf复制到/etc/ha.d/

#vi ha.cf
*********ha.cf**************************************************************
debugfile /var/log/ha-debug
logfile /var/log/ha-log
keepalive 2
deadtime 30
warntime 10
initdead 120
udpport 694
ucast eth 192.168.1.* //ucast方式 心跳线网卡 ,对端ip
auto_failback on
node lvs1
node lvs2  {//HA的两个节点,机器名要在hosts中定义(机器名可以自己指定只要在hosts中有定义就行)
vi /etc/hosts添加如下两行:
192.168.1.10 lvs1
192.168.1.20 lvs2

#vi haresources
*****************haresources文件********************************************
lvs1 IPaddr::192.168.1.130/23/eth0/192.168.1.255 ipvsadm ldirectord::/etc/ha.d/ldirectord.cf  LVSSyncDaemonSwap::master (如果配置不生效的话可以试着把/etc/ha.d/ 去掉试试)
注:
lvs1是指HA中的master
IPaddr::192.168.1.130/23/eth0/192.168.1.255是HA的VIP/掩码/网卡/广播地址
ipvsadm 是用HA来管理的服务(在/etc/init.d和/etc/ha.d/resource中定义的服务启动脚本)
ldirectord::/etc/ha.d/ldirectord.cf 同上,ldirectord指服务,后边是其配置文件。
haresources文件在HA的两个节点中,必须是相同的

#vi authkeys
******** ************authkeys文件***************************
定义HA节点间的认证方式,必须将此文件的权限设置为600 其书写格式如下
下面采用CRC认证方式
auth 1
1 crc  (把1 crc前面的#去掉就行)

配置ldirectord为服务转发提供ha冗余
#vi ldirectord.cf
***************************ldirectord文件*********************************
checktimeout=1
checkinterval=1
#fallback=127.0.0.1:80
autoreload=yes
logfile="/var/log/ldirectord.log"
#logfile="local0"
quiescent=yes ----------这个选项的意思表示调度器和realserver建立连接后,如果此时realserver down机后,他们之间的连接还会存在,如果quiescent=no的话,在realserver down机后,他们之间的连接会全部被踢掉,这时调度器会选择别的realserve 去建立连接。
virtual=192.168.1.130:80
real=192.168.1.135:80 gate
real=192.168.1.136:80 gate
fallback=127.0.0.1:80 gate
service=http
request="testpage"
receive="ok"
# virtualhost=some.domain.com.au
scheduler=rr
#persistent=600 ---------这个选项的意思是调度器和realserver建立连接后,如果此时realserver down机后,下一个连接到来时再600内如果还没有建立上连接,则调度器会跟别的realserver建立连接
#netmask=255.255.255.255
protocol=tcp
注:
virtual指定了虚拟的IP地址
real指定了后端真正web服务器的IP地址
fallback service指定服务
request指定测试web服务器状态的请求页面,需要在web服务器上添加这个页面
receive指定测试页面返回的值所包含的内容
scheduler指定了算法,rr为轮训,wlc为权重
virtualhost指定虚拟主机的域名

调度器配置
#vi /etc/sysctl.conf
net.ipv4.ip_forward = 1(设置转发,是两台主机有转发功能)

调度器heartbeat服务的启动:
# service  heartbeat  start
检查ipvsadm 服务的的装态
ipvsadm -L
配置完成

4.为web服务器增加VIP(这是在指real server 服务器进行配置
# vi /etc/sysconfig/network-scripts/ifcfg-lo:0
DEVICE=lo:0
IPADDR=192.168.1.130
(这个是指对客户端的虚拟ip即vip )
NETMASK=255.255.255.255
ONBOOT=yes
ARP=no

#vi /etc/sysctl.conf文件
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2


注:如果以上配置在没有成功的话,则可能是网络的问题,可能是网络缺少组件MailTools-1.77.tar,perl-ldap-0.34.tar等,装上缺少的组件再试试。

如果lvs中不用ldirectord来调度ipvsadm,此时可以手动配置ipvsadm如下
配置IPVS(/etc/sysconfig/ipvsadm),添加Real Server:
ipvsadm -A -t 172.20.68.222:80 -s rr
ipvsadm -a -t 172.20.68.222:80 -r 172.20.68.20:80 -g
ipvsadm -a -t 172.20.68.222:80 -r 172.20.68.22:80 -g


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/55199/showart_502681.html

论坛徽章:
0
2 [报告]
发表于 2008-07-11 14:46 |只看该作者
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP