一、实验环境介绍 硬件:lenovo T410S
软件:VMWARE workstation
SO: Centos 6.6
二、实验目的
通过ldirectord实现LVS的高可用和后端RS的健康状态监控
三、网路拓扑
四、实验环境准备 1、配置NTP服务器确保时间同步 [iyunv@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服务器同步时间 [iyunv@node2 ha.d]# ntpdate s1a.time.edu.cn [iyunv@node2 ha.d]# service ntpd start
2、节点之间名称相互通信
[iyunv@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 [iyunv@node1 ha.d]# hostname node1.hailang.com [iyunv@node1 ha.d]# uname -n
3、SSH互相认证
[iyunv@node1 ha.d]# ssh-keygen -t rsa [iyunv@node1 ha.d]# ssh-copy-id ~/.ssh/id_isa.pub 192.168.239.134 [iyunv@node1 ha.d]# ssh node2.hailang.com
4、关闭防火墙和SELINUX
[iyunv@node1 ha.d]# service iptables stop [iyunv@node1 ha.d]# setenforce 0
5、配置yum源
[iyunv@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 #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)
[iyunv@node1 ha.d]# yum -y install httpd [iyunv@node1 ha.d]# service httpd statrt [iyunv@node1 ha.d]# vim /var/www/html/index.html node1
五、安装并配置herartbeat v1 和ldirectord
1、安装(133和134)
[iyunv@node1 ~]# yum install perl-TimeDate net-snmp-libs libnet PyXML [iyunv@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) [iyunv@node1 ~]# cp /usr/share/doc/heartbeat-2.1.4/{ha.cf,authkeys,haresources} /etc/ha.d/ [iyunv@node1 ~]# cp/usr/share/doc/heartbeat-ldirectord-2.1.4/ldirectord.cf /etc/ha.d/ 1)ha.cf [iyunv@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
[iyunv@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服务器上设置内核参数
[iyunv@dn2 ~]# echo 1 >/proc/sys/net/ipv4/conf/lo/arp_ignore
[iyunv@dn2 ~]# echo 1 >/proc/sys/net/ipv4/conf/all/arp_ignore
[iyunv@dn2 ~]# echo 2 >/proc/sys/net/ipv4/conf/all/arp_announce
[iyunv@dn2 ~]# echo 2 >/proc/sys/net/ipv4/conf/lo/arp_announce
[iyunv@dn2 ~]# ifconfig lo:0 192.168.239.200 netmask 255.255.255.255 broadcast 192.168.239.200
[iyunv@dn2 ~]# route add -host 192.168.239.200 dev lo
5)在128和135服务器上启动httpd服务并关闭防火墙且提供测试页面 [iyunv@dn2 ~]# service httpd start
Starting httpd: [ OK ]
[iyunv@dn2 ~]# service iptables stop
[iyunv@dn2 ~]# vim /var/www/html/index.html
3、启动(133和134)
[iyunv@node1 ha.d]# service heartbeat start
4、测试
结果:在128和135之间切换
2)停掉128服务器的http服务
[iyunv@dn2 ~]# service http stop 结果:显示135页面
3)停掉128和135服务器的http服务
结果:显示133的sorry页面
4)停掉133服务器的heartbeat
[iyunv@node1 ~]# cd /usr/lib64/heartbeat/ [iyunv@node1 heartbeat]# ./hb_standby 结果:显示134的sorry页面
|