Lvs-DR+Heartbeat+ldirectord高可用性群集
Heartbeat 四个层次
1)messaging layer 心跳探测测 /etc/ha.d/ha.cf
2)ccm 成员管理 /etc/ha.d/authkeys
3)crm 群集资源管理 /etc/ha.d/haresources 控制脚本
4.)resources
首先请保证各个节点之间的物理连通性。试验目的:实现HA高可用性群集系统,LSA-DR直接路由进行负载均衡以及Directory和RealServer的健康探测。
一、配置Directory1:
1、确保director能够相互解析到对方的DNS需要编辑vim /etc/hosts.
2.配置director1的本地主机名
[root@node1 ~]# vim /etc/sysconfig/network
3.配置eth0地址,及eth1来作为两个director之间的心跳探测.
4挂载本地光盘,配置本地YUM
5.安装Heartbeat的软件包
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
//下载地址:http://yunpan.cn/QbFZ4REqCjP8w
[root@node1 ~]# cd Heartbeat //存放Heartbeat的软件包目录
[root@node1 heartbeat]# #yum localinstall *.rpm --nopgpcheck
6配置Heartbeat服务
① 从模版中拷贝配置文件到Heartbeat对应的/etc/目录下
[root@node1 heartbeat]# # cd /usr/share/doc/heartbeat-2.1.4/
[root@node1 heartbeat]# # cp ha.cf /etc/ha.d/
[root@node1 heartbeat]# # cp haresources /etc/ha.d/
[root@node1 heartbeat]# # cp authkeys /etc/ha.d/
② 编辑Directory的心跳探测配置文件ha.cf
[root@node1 ha.d]# vim ha.cf 第一层
③ 配置验证密钥(位了实现双方身份验证)
[root@node1 ha.d]# vim authkeys 第二层
[root@node1 ha.d]# chmod 600 /etc/ha.d/authkeys
//注意:如果不修改权限的话,启动Heartbeat就会出错。
④ 编辑Heartbeat资源管理器:(用于管理Directory上的服务,如web,ftp,多个资源之间需要用“::来分隔”)
[root@node1 ha.d]# vim haresources 第三层
安装ipvsadm服务:
注意在前面,使用yum安装所有的rpm时,其中一个软件包heartbeat-ldirectord.rpm会依赖与ipvsadm,所以ipvsadm也就安装了。如果无法确定是否安装,可以使用命令查看:
[root@node1 heartbeat]# # rpm -qa |grep ipvsadm
[root@node1 ~]# rpm -ivh /mnt/cdrom/Cluster/ipvsadm-1.24-10.i386.rpm
⑤ 配置ipvs转发表
//保存ipvs规则
[root@node1 ~]# service ipvsadm save
[root@node1 ~]# chkconfig --list ipvsadm
//禁止ipvs开机自动起来
[root@node1 ~]# chkconfig ipvsadm on
//将ipvsadm的控制脚本复制到heartbeat资源管理目录,为了使heartbeat能对ipvsadm进行控制
[root@node1 ~]# cp /etc/init.d/ipvsadm /etc/ha.d/resource.d/ 第四层
[root@node1 ~]# service heartbeat start
//启动heartbeat服务
//通过查看日志文件,来观察heartbeat运行状况
//ifconfig来观察现在的VIP地址192.168.2.100是否在node1上
二、配置动态的ipvs规则表以及Directory之间的健康探测
在前面的试验中,我们使用的手动添加Directory的ipvs规则表。这样在Directory中的ipvsadm中就好永久保存,可是有的时候后方的RealServer可能会出现宕机,如果使用的轮询机制的话,Directory会轮流的将用户的请求转发给后方的RealServer,可是某个Server此时不能工作。这样以来,效率就会大大降低。为了实现ipvs规则表的动态更新(当某个Server宕机后,Directory会主动删除该Server的规则,当它又恢复之后,主动添加这个规则),我们可以使用Heartbeat中的一个插件ldirectord服务。
[root@node1 ~]# rpm -ivh heartbeat-ldirectord-2.1.4-9.el5.i386.rpm
① 删除手动添加的ipvsadm规则条目
[root@node1 heartbeat]# rm /etc/sysconfig/ipvsadm
②关闭heartbeat服务:
[root@Directory1 heartbeat]# service heartbeat stop
③拷贝ldirectord的控制脚本到heartbeat资源控制目录中
[root@node1 ~]# cp /usr/share/doc/heartbeat-ldirectord-2.1.4/ldirectord.cf /etc/ha.d/(相当于ldirectord的配置文件)
[root@node1 ~]# vim /etc/ha.d/ldirectord.cf
//注:静默模式指的是不管后方有没有apache服务器ipvs链表都会显示后方服务器链表,这里我们需要把静默模式更改为no,
[root@node1 ha.d]# vim haresources
[root@node1 ha.d]# chkconfig ldirectord off
三、配置Directory2
说明:Directory2上的配置和Directory1基本一样。需要注意的地方是:
①Directory2的主机名
②Directory2的本地DNS
③Directory2上不用配置eth0:0
1、编辑Heartbeat资源管理器:
[root@Directory2]# vim /etc/ha.d/haresources
2、安装完Heartbeat后,启用Heartbeat服务:
[root@Directory2]# service heartbeat start
[root@Directory2]# ipvsadm -ln
//Directory2处于备份状态,所以ipvs中虽然配置了转发规则,但是目前并未启用。
四、配置apache服务器
1、安装httpd
[root@Server1]# mkdir /mnt/cdrom
[root@Server1]# mount /dev/cdrom /mnt/cdrom
[root@Server1]# rpm -ivh /mnt/cdrom/Server/httpd-2.2.3-31.el5.i386.rpm
2、创建Server1测试页面;
[root@Server1]# cd /var/www/html
[root@Server1 html]# echo “Server1”>index.html
3、启动httpd服务:
[root@Server1]# service httpd start
4、探测页面
[root@localhost ~]# vim /var/www/html/.test.html
写入OK
五、配置apache2服务器
说明:Server2的配置和Server1的配置基本相同。
[root@Server2]# cd /var/www/html
[root@Server2 html]# echo “Server2”>index.html
[root@Server1]# service httpd start
探测页面
[root@localhost ~]# vim /var/www/html/.test.html
写入OK
测试:
图30
//注:如果探测页面没有探测出后方服务器,则ipvs链表是无法显示后方服务器地址