Heartbeat+ldirectord实现Web与DNS的高可用性
实验环境
vmware workstation 虚拟机
四台linux虚拟机均使用RedHat 5.4 内核版本号为:2.6.18-164.el5
使用192.168.10.0
实验拓扑
实验配置
分发器上 a.abc.com与分发器上 b.abc.com 的操作相同,如下:
设置本地的dns指向
[root@a ha.d]# vim /etc/resolv.conf
nameserver 192.168.10.101
修改服务器的名称
[root@a ha.d]# hostname a.abc.com
[root@a ha.d]# vim /etc/sysconfig/network
3 HOSTNAME=a.abc.com
安装heartbeat相关的软件
[root@a ~]# ls *.rpm
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
heartbeat-stonith-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 *.rpm -y --nogpgcheck
cp /usr/share/doc/heartbeat-2.1.4/authkeys /etc/ha.d/
cp /usr/share/doc/heartbeat-2.1.4/ha.cf /etc/ha.d/
cp /usr/share/doc/heartbeat-2.1.4/haresources /etc/ha.d/
设置分发器的验证方式及口令
[root@a ~]# cd /etc/ha.d
[root@a ha.d]# vim authkeys
27 auth 3
28 3 md5 123456
[root@a ha.d]# chmod 600 authkeys
定义群集中的节点及探测网卡
[root@a ha.d]# vim ha.cf
95 bcast eth0
214 node a.abc.com
215 node b.abc.com
定义群集中的资源及默认主节点
[root@a ha.d]# vim haresources
45 a.abc.com IPaddr::192.168.10.101/24/eth0/192.168.10.255 ldirectord::ldirectord.cf
[root@a ha.d]# vim ldirectord.cf
12 checktimeout=3 #检测的超时时间
13 checkinterval=1 #时间间隔
15 autoreload=yes #自动加载配置
21 quiescent=no #静态模式
24 virtual=192.168.10.101:80 #数据包的访问目标地址及端口
25 real=192.168.10.200:80 gate #内部的真正的服务器
26 real=192.168.10.201:80 gate #内部的真正的服务器
29 service=http #测试使用的服务类型
30 request=".test.html" #测试的请求网页
31 receive="ok" #请求的匹配内容
33 scheduler=rr #调度算法
36 protocol=tcp #连接的类型
37 checktype=negotiate #使用的探测手段,发送基于该服务的数据请求检测服务的可用性
319 virtual=192.168.10.101:53 #数据包的访问目标地址及端口
320 real=192.168.10.200:53 gate #内部的真正的服务器
321 real=192.168.10.201:53 gate #内部的真正的服务器
323 service=dns #测试使用的服务类型
324 scheduler=rr #调度算法
327 protocol=udp #连接的类型
328 checktype=connect #使用的探测手段,与服器之间建立tcp/ip连接
然后从新启动heartbeat
使用命令 “service heartbeat restart”
后方的web与dns服务器的配置
web1.abc.com与web2.abc.com服务器上的配置:如下以web1.abc.com站点为例
[root@web1 ~]# hostname web1.abc.com
[root@web1 ~]# vim /etc/sysconfig/network
3 HOSTNAME=web1.abc.com
[root@web1 ~]# mount /dev/cdrom /mnt/cdrom/
[root@web1 ~]# cd /mnt/cdrom/Server/
[root@web1 Server]# rpm -ivh bind-9.3.6-4.P1.el5.i386.rpm bind-chroot-9.3.6-4.P1.el5.i386.rpm caching-nameserver-9.3.6-4.P1.el5.i386.rpm httpd-2.2.3-31.el5.i386.rpm
[root@web1 ~]# echo "ok" > /var/www/html/.test.html
[root@web1 ~]# echo "web1" > /var/www/html/index.html