http://roman.blog.51cto.com/864028/222407
下面开始配置 lvs-dr+heartbeat
还是先统一 hostname
172.16.1.1 cha.vs.com ip-SAN iscsi共享存储服务器
172.16.1.2 chb.vs.com realserver1
172.16.1.3 chc.vs.com realserver2
172.16.1.4 chd.vs.com 主负载均衡器
172.16.1.5 che.vs.com 备份负载均衡器 首先安装一大堆包: 有一堆包要安装,让我们看看
heartbeat-2.1.3-3.el5.centos.i386.rpm perl-Data-HexDump-0.02-1.2.el5.rf.noarch.rpm
heartbeat-devel-2.1.3-3.el5.centos.i386.rpm perl-Mail-POP3Client-2.18-1.el5.rf.noarch.rpm
heartbeat-gui-2.1.3-3.el5.centos.i386.rpm perl-MailTools-2.02-1.el5.rf.noarch.rpm
heartbeat-ldirectord-2.1.3-3.el5.centos.i386.rpm perl-Net-IMAP-Simple-1.17-1.el5.rf.noarch.rpm
heartbeat-pils-2.1.3-3.el5.centos.i386.rpm perl-Net-IMAP-Simple-SSL-1.3-1.el5.rf.noarch.rpm
heartbeat-stonith-2.1.3-3.el5.centos.i386.rpm perl-RadiusPerl-0.13-1.el5.rf.noarch.rpm
然后进入/etc/ha.d目录下 首先修改directord vim /etc/ha.d/l .cf #默认没有这个文件 模板在/usr/share/doc/heartbeat-ldirectord-2.1.3/ldirectord.cf
checktimeout=3
checkinterval=1
autoreload=yes
quiescent=yes
virtual=172.16.1.9:80
real=172.16.0.2:80 gate
real=172.16.0.3:80 gate
fallback=127.0.0.1:80 gate
service=http
request="test.html" #这个是测试页面,ldirectord通过这个文件来检查realserver是否还在
receive="ceshi" #测试页面内容
scheduler=rr #最简单的 轮询算法
#persistent=600 #这部是回话保存时间,为了测试方便我现注销了
protocol=tcp
checktype=negotiate
checkport=80
同步 ldirectord的设置
scp ldirectord.cf 172.16.1.3:/etc/ha.d/
vim /etc/ha.d/ha.cf #这个文件的模板在 /usr/share/doc/heartbeat-2.1.3/ha.cf 同时还有haresources文件和authkeys文件
ha.cf文件: logfile /var/log/ha-log# 生成日志,非常重要~~~~排除故障全靠他了!!切记
logfacility local0
keepalive 1
deadtime 10
warntime 3
initdead 100
udpport 694
ucast eth0 172.16.1.4 #主备输入对端地址即可
auto_failback on #就帮定两个网卡连接
node chb.vs.com #第一个是主,第二个是备,别弄反了
node chc.vs.com
ping 1.1.1.1 #仲裁
ping_group group1 172.16.0.3 172.16.0.100
respawn hacluster /usr/lib/heartbeat/ipfail
scp ha.cf 172.16.0.67:/etc/ha.d/
修改haresources
chb.vs.com IPaddr::172.16.1.9/24/eth0:0 lvs.sh(lvs的脚本,等下建立) ldirectord
修改authkeys
auth 2
#1 crc
2 sha1 HI!
#3 md5 Hello!
别忘了把auth 文件的权限设置为600 /etc/init.d/建立lvs.sh
chmod 755 lvs.sh #!/bin/sh
ifconfig eth0:0 172.16.1.9 broadcast 172.16.1.9 netmask 255.255.255.255
route add -host 172.16.1.9 dev eth0:0
ipvsadm -C
ipvsadm -A -t 172.16.1.9:80 -s rr
ipvsadm -a -t 172.16.1.9:80 -r 172.16.1.2 -g
ipvsadm -a -t 172.16.1.9:80 -r 172.16.1.3 -g (ipvsadm 各命令的参数这里就不介绍了 网上搜吧,一大堆) 修改sysctl.conf关闭arp响应 net.ipv4.ip_forward = 1
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.eth0.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.eth0.arp_announce = 2 以上命令必须在2个节点都执行
先启动主lvs的heartbeat服务 再启动备份llvs的heartbeat服务 如果配置无误 在主lvs节点 输入ifconfig eth0:0应该显示以下信息: eth0:0 Link encap:Ethernet HWaddr 00:0C:29:AC:4F:40
inet addr:172.16.1.9 Bcast:172.16.1.9 Mask:255.255.255.255
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Interrupt:67 Base address:0x2000 然后关闭 主lvs的heartbeat服务 再登陆备份lvs 输入ifconfig eth0:0应该也出现上述信息 (只有主节点的heartbeat停掉 备份节点才会接管 当主节点恢复正常马上又会重新接管备份节点的服务) 好的 接下来在你的windows真机上 打开IE输入http://172.16.1.9 将会出现 你realserver的index。html信息 然后不断刷新 最后在lvs节点上输入ipvsadm 将会显示下列信息 IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 172.16.1.9:http rr
-> chc.vs.com:http Route 1 0 80
-> chb.vs.com:http Route 1 0 80 OK配置完成~~~~