14.4. ldirectord

14.4.1. 下载

# 这个资源,需要科学上网的。
[root@centos-151 ~]#wget http://download.opensuse.org/repositories/network:/ha-clustering:/Stable/CentOS_CentOS-7/x86_64/
[root@centos-151 ~]# yum install ldirectord-3.9.6-0rc1.1.2.x86_64.rpm
[root@centos-151 ~]# rpm -ql ldirectord
/etc/ha.d
/etc/ha.d/resource.d
/etc/ha.d/resource.d/ldirectord
/etc/logrotate.d/ldirectord
/usr/lib/ocf/resource.d/heartbeat/ldirectord
/usr/lib/systemd/system/ldirectord.service
/usr/sbin/ldirectord
/usr/share/doc/ldirectord-3.9.6
/usr/share/doc/ldirectord-3.9.6/COPYING
/usr/share/doc/ldirectord-3.9.6/ldirectord.cf
/usr/share/man/man8/ldirectord.8.gz

14.4.2. 配置

[root@centos-151 ~]# cp /usr/share/doc/ldirectord-3.9.6/ldirectord.cf /etc/ha.d/
[root@centos-151 ~]# vim /etc/ha.d/ldirectord.cf
# 修改为如下内容

checktimeout=3
checkinterval=1
fallback=127.0.0.1:80
#fallback6=[::1]:80
autoreload=yes
#logfile="/var/log/ldirectord.log"
#logfile="local0"
#emailalert="admin@x.y.z"
#emailalertfreq=3600
#emailalertstatus=all
quiescent=no

# Sample for an http virtual service
virtual=10.0.46.151:80
        real=192.168.46.158:80 gate 1
        real=192.168.46.159:80 gate 2
        real=192.168.46.160:80 gate 3
        service=http
        scheduler=wrr
        #persistent=600
        #netmask=255.255.255.255
        protocol=tcp
        checktype=negotiate
        checkport=80
        request="test.html"
        receive="test"
        #virtualhost=www.x.y.z

# 添加测试页和sorry页面

[root@centos-158 ~]# echo "test" > /var/www/html/test.html
[root@centos-159 ~]# echo "test" > /var/www/html/test.html
[root@centos-160 ~]# echo "test" > /var/www/html/test.html
[root@centos-151 ~]# echo "sorry" > /var/www/html/index.html

# 重启服务
[root@centos-151 ~]# ipvsadm -C
[root@centos-151 ~]# systemctl enable ldirectord
Created symlink from /etc/systemd/system/multi-user.target.wants/ldirectord.service to /usr/lib/systemd/system/ldirectord.service.
[root@centos-151 ~]# systemctl start ldirectord

[root@centos-151 ~]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  10.0.46.151:80 wrr
-> 192.168.46.158:80            Route   1      0          0
-> 192.168.46.159:80            Route   2      0          0
-> 192.168.46.160:80            Route   3      0          0

[root@centos-152 ~]# curl 10.0.46.151
linuxpanda-160
[root@centos-158 ~]# systemctl stop httpd
[root@centos-159 ~]# systemctl stop httpd
[root@centos-152 ~]# curl 10.0.46.151
linuxpanda-160
[root@centos-152 ~]# curl 10.0.46.151
linuxpanda-160
[root@centos-152 ~]# curl 10.0.46.151
linuxpanda-160
[root@centos-160 ~]# systemctl stop httpd
[root@centos-152 ~]# curl 10.0.46.151
sorry
[root@centos-158 ~]# systemctl start httpd
[root@centos-152 ~]# curl 10.0.46.151
linuxpanda-158