Clvm+iscsi&GFS整合lvs-dr+Heartbeat+ldirectory实现高可用性负载均衡集群(下)

时间:2022-12-18 03:10:05

 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配置完成~~~~