上一篇博客在整合HA和LB实现高可用负载集群的时候,有的是脚本实现两个HA之间的资源转移,这一个使用的是ldirectord来实现的,这就简化了配置,接下来就做具体的配置了,拓扑图依然如上篇博客《整合HA和LB来实现高可用的LB集群》所示:
一、RealServer1上的配置:
#ifconfig eth0 192.168.1.172/24
#ifconfig lo:0 192.168.1.80 broadcast 192.168.1.80 netmask 255.255.255.255 up
#route add -host 192.168.1.80 dev lo:0
#echo 1 >/proc/sys/net/ipv4/conf/lo/arp_ignore
#echo 1 >/proc/sys/net/ipv4/conf/all/arp_ignore
#echo 2 >/proc/sys/net/ipv4/conf/all/arp_announce
#echo 2 >/proc/sys/net/ipv4/conf/lo/arp_announce
#yum install httpd
#echo "<h1>RealServer1</h1>" >/var/www/html/index.html
#echo "ok" >/var/www/html/.test.html
#service httpd start
二、RealServer2上的配置:
#ifconfig eth0 192.168.1.178/24
#ifconfig lo:0 192.168.1.80 broadcast 192.168.1.80 netmask 255.255.255.255 up
#route add -host 192.168.1.80 dev lo:0
#echo 1 >/proc/sys/net/ipv4/conf/lo/arp_ignore
#echo 1 >/proc/sys/net/ipv4/conf/all/arp_ignore
#echo 2 >/proc/sys/net/ipv4/conf/all/arp_announce
#echo 2 >/proc/sys/net/ipv4/conf/lo/arp_announce
#yum install httpd
#echo "<h1>RealServer2</h1>" >/var/www/html/index.html
#echo "ok" >/var/www/html/.test.html
#service httpd start
三、Node1上的配置:
安装软件包:
#ls 安装如下软件包
 heartbeat-2.1.4-9.el5.i386.rpm
 heartbeat-devel-2.1.4-9.el5.i386.rpm
 heartbeat-gui-2.1.4-9.el5.i386.rpm
 heartbeat-ldirectord-2.1.4-9.el5.i386.rpm
 heartbeat-pils-2.1.4-10.el5.i386.rpm
 libnet-1.1.4-3.el5.i386.rpm
 perl-MailTools-1.77-1.el5.noarch.rpm
#yum localinstall * --nogpgcheck -y
#yum install ipvsadm
接下来就是配置了:
#ifconfig eth0 192.168.1.78/24
#ifconfig eth1 10.1.1.1/8
#vim /etc/hosts
 10.1.1.1 node1.a.org node1
 10.1.1.2 node2.a.org node2
#hostname node1.a.org
接下来就是关键的配置了
#cd /usr/share/doc/heartbeat
#cp ha.cf haresources authkeys /etc/ha.d/
#cd /usr/share/doc/heartbeat-ldirectord-2.1.4/
#cp ldirectord.cf /etc/ha.d/
#cd !$
#vim ha.cf
 添加如下内容:
 
 node node1.a.org
 node node2.a.org
#vim authkeys
 auth 2
 2 sha1 jljlllkllj
#chmod 400 authkeys
#vim haresources
 node1.a.org     192.168.1.80/24/eth0/192.168.1.255 ldirectord::ldirectord.cf
#vim ldirectord.cf
  # Global Directives
 checktimeout=3
 checkinterval=1
 #fallback=127.0.0.1:80
 autoreload=yes
 # pool then localhost:80 is added to the pool as a fallback measure.
 # Global Directives
 checktimeout=3
 checkinterval=1
 #fallback=127.0.0.1:80
 autoreload=yes
 #emailalert=" admin@x.y.z"
 #emailalertfreq=3600
 #emailalertstatus=all
 quiescent=yes
 # Sample for an http virtual service
 virtual=192.168.1.80:80
        real=192.168.1.172:80 gate
        real=192.168.1.178:80 gate
        fallback=127.0.0.1:80 gate
        service=http
        request=".test.html"
        receive="ok"
        scheduler=rr
        #persistent=600
        #netmask=255.255.255.255
        protocol=tcp
        checktype=negotiate
        checkport=80
截止到这里Node1上的都配置完成了!接下来是Node2上的配置:
四、Node2上的配置:
安装软件包:
#ls 安装如下软件包
 heartbeat-2.1.4-9.el5.i386.rpm
 heartbeat-devel-2.1.4-9.el5.i386.rpm
 heartbeat-gui-2.1.4-9.el5.i386.rpm
 heartbeat-ldirectord-2.1.4-9.el5.i386.rpm
 heartbeat-pils-2.1.4-10.el5.i386.rpm
 libnet-1.1.4-3.el5.i386.rpm
 perl-MailTools-1.77-1.el5.noarch.rpm
#yum localinstall * --nogpgcheck -y
#yum install ipvsadm
接下来就是配置了:
#ifconfig eth0 192.168.1.151/24
#ifconfig eth1 10.1.1.2/8
#vim /etc/hosts
 10.1.1.1 node1.a.org node1
 10.1.1.2 node2.a.org node2
#hostname node2.a.org
接下来还要回到Node1上进行下一步配置文件格式转换和拷贝的操作了
#cd /usr/lib/heartbeat/
#./haresources2cib.py   //转换成cib.xml格式的文件
#cd /etc/ha.d
#scp ldirectord.cf haresources node2:/etc/ha.d/
#cd /usr/lib/heartbeat/
#./ha_propagate //拷贝ha.cf和authkeys两个文件
配置完成,接下来就是启动服务了,我均在Node1上启动
#/etc/init.d/heartbeat start
#service ldirectord start
#ssh node2 -- '/etc/init.d/heartbeat start'
#ssh node2 -- 'service ldirectord start' (注:我这里的命令执行都是不用密码的,详细操作请看《整合HA和LB来实现高可用的LB集群》中的介绍)
五、验证:
1.首先在Node1上使用#ipvsamd -L -n查看,出现了ipvs的条目,而且使用 http://192.168.1.80访问,可以看到网页,同时使用#ifconfig可以看到一个eth0:0的接口,上面的IP就是我使用的VIP:192.168.1.80
2.现在使用/usr/lig/heartbeat/hb_standy脚本,我们可以清晰的看到网页一样可以访问,但是#ipvsadm -L -n 和#ifconfig的信息转移到了Node2上去了,实验成功!