一、实验环境介绍
硬件:lenovo T410S
软件:VMWARE workstation
SO: Centos 6.6
二、实验目的
通过ldirectord实现LVS的高可用和后端RS的健康状态监控
三、网路拓扑
四、实验环境准备
1、配置NTP服务器确保时间同步
[root@node2 ha.d]# vim /etc/ntp.conf
添加如下
restrict 192.168.239.0 mask 255.255.255.0 nomodify #允许哪些个网段的主机过来同步
注释下面的时间服务器
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
server server s1a.time.edu.cn #去该NTP服务器同步时间
[root@node2 ha.d]# ntpdate s1a.time.edu.cn
[root@node2 ha.d]# service ntpd start
2、节点之间名称相互通信
[root@node2 ha.d]# vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.239.133 node1.hailang.com node1
192.168.239.134 node2.hailang.com node2
[root@node1 ha.d]# hostname node1.hailang.com
[root@node1 ha.d]# uname -n
3、SSH互相认证
[root@node1 ha.d]# ssh-keygen -t rsa
[root@node1 ha.d]# ssh-copy-id ~/.ssh/id_isa.pub 192.168.239.134
[root@node1 ha.d]# ssh node2.hailang.com
4、关闭防火墙和SELINUX
[root@node1 ha.d]# service iptables stop
[root@node1 ha.d]# setenforce 0
5、配置yum源
[root@node1 ha.d]# vim /etc/yum.repos.d/epel.repo
[epel]
name=Extra Packages for Enterprise Linux 6 - $basearch
baseurl=http://mirrors.aliyun.com/epel/6/$basearch
http://mirrors.aliyuncs.com/epel/6/$basearch
#mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
failovermethod=priority
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
6、httpd(node1提供页面的内容为sorry node1,node2提供页面的内容为sorry node2)
[root@node1 ha.d]# yum -y install httpd
[root@node1 ha.d]# service httpd statrt
[root@node1 ha.d]# vim /var/www/html/index.html
node1
五、安装并配置herartbeat v1 和ldirectord
1、安装(133和134)
[root@node1 ~]# yum install perl-TimeDate net-snmp-libs libnet PyXML
[root@node1 ~]# rpm -ivh heartbeat-pils-2.1.4-12.el6.x86_64.rpm heartbeat-2.1.4-12.el6.x86_64.rpm heartbeat-stonith-2.1.4-12.el6.x86_64.rpm heartbeat-ldirectord-2.1.4-12.el6.x86_64.rpm
2、配置(133和134)
[root@node1 ~]# cp /usr/share/doc/heartbeat-2.1.4/{ha.cf,authkeys,haresources} /etc/ha.d/
[root@node1 ~]# cp/usr/share/doc/heartbeat-ldirectord-2.1.4/ldirectord.cf /etc/ha.d/
1)ha.cf
[root@node1 ~]# vim /etc/ha.d/ha.cf
logfile /var/log/ha-log
keepalive 2
deadtime 30
warntime 10
initdead 120
udpport 694
mcast eth0 225.0.0.1 694 1 0
auto_failback on
node node1.hailang.com
node node2.hailang.com
ping 192.168.239.1
2)authkeys
[root@node1 ~]# vim /etc/ha.d/authkeys
auth 1
1 crc
3)vim /etc/ha.d/ldirectord.cf
checktimeout=3
checkinterval=1
autoreload=yes
quiescent=yes
virtual=192.168.239.200:80
real=192.168.239.135:80 gate
real=192.168.239.128:80 gate
fallback=127.0.0.1:80 gate
service=http
request="index.html"
receive="ok"
scheduler=rr
3)haresources
node1.hailang.com 192.168.239.200/32/eth0/192.168.239.200 ldirectord::/etc/ha.d/ldirectord.cf
4)在128和135服务器上设置内核参数
[root@dn2 ~]# echo 1 >/proc/sys/net/ipv4/conf/lo/arp_ignore
[root@dn2 ~]# echo 1 >/proc/sys/net/ipv4/conf/all/arp_ignore
[root@dn2 ~]# echo 2 >/proc/sys/net/ipv4/conf/all/arp_announce
[root@dn2 ~]# echo 2 >/proc/sys/net/ipv4/conf/lo/arp_announce
[root@dn2 ~]# ifconfig lo:0 192.168.239.200 netmask 255.255.255.255 broadcast 192.168.239.200
[root@dn2 ~]# route add -host 192.168.239.200 dev lo
5)在128和135服务器上启动httpd服务并关闭防火墙且提供测试页面
[root@dn2 ~]# service httpd start
Starting httpd: [ OK ]
[root@dn2 ~]# service iptables stop
[root@dn2 ~]# vim /var/www/html/index.html
3、启动(133和134)
[root@node1 ha.d]# service heartbeat start
4、测试
1)访问http://192.168.239.200
结果:在128和135之间切换
2)停掉128服务器的http服务
[root@dn2 ~]# service http stop
结果:显示135页面
3)停掉128和135服务器的http服务
结果:显示133的sorry页面
4)停掉133服务器的heartbeat
[root@node1 ~]# cd /usr/lib64/heartbeat/
[root@node1 heartbeat]# ./hb_standby
结果:显示134的sorry页面