Lvs-DR+Heartbeat+ldirectord高可用性群集


Heartbeat 四个层次

1messaging layer 心跳探测测 /etc/ha.d/ha.cf

2ccm 成员管理 /etc/ha.d/authkeys

3crm 群集资源管理 /etc/ha.d/haresources 控制脚本

4.resources



Lvs-DR+Heartbeat+ldirectord+web实现高可用性群集_第1张图片

首先请保证各个节点之间的物理连通性。试验目的:实现HA高可用性群集系统,LSA-DR直接路由进行负载均衡以及Directory和RealServer的健康探测。


一、配置Directory1:

1、确保director能够相互解析到对方的DNS需要编辑vim /etc/hosts.

Lvs-DR+Heartbeat+ldirectord+web实现高可用性群集_第2张图片

2.配置director1的本地主机名

[root@node1 ~]# vim /etc/sysconfig/network

155453921.jpg

3.配置eth0地址,及eth1来作为两个director之间的心跳探测.

Lvs-DR+Heartbeat+ldirectord+web实现高可用性群集_第3张图片

4挂载本地光盘,配置本地YUM

155530595.jpg

Lvs-DR+Heartbeat+ldirectord+web实现高可用性群集_第4张图片

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


Lvs-DR+Heartbeat+ldirectord+web实现高可用性群集_第5张图片

Lvs-DR+Heartbeat+ldirectord+web实现高可用性群集_第6张图片

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/



Lvs-DR+Heartbeat+ldirectord+web实现高可用性群集_第7张图片

② 编辑Directory的心跳探测配置文件ha.cf

[root@node1 ha.d]# vim ha.cf 第一层


155715697.jpg



155729529.jpg

③ 配置验证密钥(位了实现双方身份验证)

[root@node1 ha.d]# vim authkeys 第二层


Lvs-DR+Heartbeat+ldirectord+web实现高可用性群集_第8张图片

[root@node1 ha.d]# chmod 600 /etc/ha.d/authkeys


//注意:如果不修改权限的话,启动Heartbeat就会出错。


④ 编辑Heartbeat资源管理器:(用于管理Directory上的服务,如web,ftp,多个资源之间需要用“::来分隔”)

[root@node1 ha.d]# vim haresources 第三层


Lvs-DR+Heartbeat+ldirectord+web实现高可用性群集_第9张图片

安装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转发表

Lvs-DR+Heartbeat+ldirectord+web实现高可用性群集_第10张图片

//保存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运行状况


Lvs-DR+Heartbeat+ldirectord+web实现高可用性群集_第11张图片


//ifconfig来观察现在的VIP地址192.168.2.100是否在node1上


Lvs-DR+Heartbeat+ldirectord+web实现高可用性群集_第12张图片

二、配置动态的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


Lvs-DR+Heartbeat+ldirectord+web实现高可用性群集_第13张图片


//注:静默模式指的是不管后方有没有apache服务器ipvs链表都会显示后方服务器链表,这里我们需要把静默模式更改为no,


[root@node1 ha.d]# vim haresources


Lvs-DR+Heartbeat+ldirectord+web实现高可用性群集_第14张图片

[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

155951428.jpg

2、安装完Heartbeat后,启用Heartbeat服务:

[root@Directory2]# service heartbeat start

[root@Directory2]# ipvsadm -ln

Lvs-DR+Heartbeat+ldirectord+web实现高可用性群集_第15张图片

//Directory2处于备份状态,所以ipvs中虽然配置了转发规则,但是目前并未启用。


四、配置apache服务器


Lvs-DR+Heartbeat+ldirectord+web实现高可用性群集_第16张图片



Lvs-DR+Heartbeat+ldirectord+web实现高可用性群集_第17张图片

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服务器


Lvs-DR+Heartbeat+ldirectord+web实现高可用性群集_第18张图片


Lvs-DR+Heartbeat+ldirectord+web实现高可用性群集_第19张图片

说明: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

Lvs-DR+Heartbeat+ldirectord+web实现高可用性群集_第20张图片


//注:如果探测页面没有探测出后方服务器,则ipvs链表是无法显示后方服务器地址


Lvs-DR+Heartbeat+ldirectord+web实现高可用性群集_第21张图片

Lvs-DR+Heartbeat+ldirectord+web实现高可用性群集_第22张图片