Heartbeat+ipvsadm+ldirectord组建linux高可用集群
1. 系统环境:
RHEL6,组建选择base--默认,developmenttools—选择所有可选包。
对外虚拟IP:192.168.50.179
网关:192.168.50.254
负载节点:(eth0为外网卡)master-192.168.50.170
负载心跳:(eth1为心跳检查)192.168.94.10
备用节点:(eth0为外网卡)backup-192.168.50.171
备用节点心跳:(eth1为心跳检查)192.168.94.11
真实节点1:rs1-192.168.50.172
真实节点2:rs2-192.168.50.173
确保hostname==uname –n
编辑各机器/etc/hosts 文件,添加解析:
192.168.50.170 master
192.168.50.171 backup
192.168.50.172 rs1
192.168.50.173rs2
2.所需软件
Heartbeat2.1.3,ipvsadm1.24
安装heartbeat时需要:
Libnet (此包系统中未包含需要下载,我下载的是libnet-1.1.5.tar.gz)
glib2-devel (系统自带)
libxml2-devel (系统自带)
bzip2-devel (系统自带)
Ldirector服务需要的依赖几个perl包(CPAN下载):
Socket6-0.23.tar.gz
IO-Socket-INET6-2.65.tar.gz
MailTools-1.74.tar.gz
依次安装以上各包以后应该可以安装heartbeat了。官网最新版的heartbeat3.0已分成3个组件包,安装时每个包时都需要去INTERNET验证大量XML文件,耗费的时间惊人,依赖包也比较多。Heartbeat2.1.4版本在rhe6上安装时需要大量依赖包,而且make install时报错,在网上也没找到相关的解决方案,所以退而求其次选择了heartbeat2.1.3版,此版安装时比较顺利,下面记录了我的安装过程。其中大部分配置都能从网上找到,我也只是借来用的,此文档的目的只是自己备忘,以及提示一下在安装过程中和我有同样错误的菜鸟们。涉及到版权问题还请见谅。并给我留言。
3.安装ipvsadm
#ln -s/usr/src/kernels/`uname -r` /usr/src/linux
#tar zxvfipvsadm-1.24.tar.gz
#cdipvsadm-1.24
#make;make install
---------------------------------------------------------------------------------------------------------------------------
4. 安装heartbeat
[root@mastersrc]# tar zxvf heartbeat-2.1.3.tar.gz
[root@mastersrc]# cd heartbeat-2.1.3
[root@masterheartbeat-2.1.3]# ./ConfigureMe configure
[root@masterheartbeat-2.1.3]#groupadd haclient
[root@masterheartbeat-2.1.3]# useradd -g haclient hacluster
[root@masterheartbeat-2.1.3]# ./ConfigureMe make --enable-fatal-warnings=no
[root@masterheartbeat-2.1.3]# make install
[root@masterheartbeat-2.1.3]# cp doc/{authkeys,haresources,ha.cf} /etc/ha.d/
[root@master heartbeat-2.1.3]# cp ldirectord/ldirectord.cf /etc/ha.d/
配置heartbeat
-------------------------------------------------------------------------------------
(1)编辑authkeys文件:
[root@master heartbeat-2.1.3]# sed -e /^#/d /etc/ha.d/authkeys
auth 3
3 md5 Hello!
[root@masterheartbeat-2.1.3]#chmod 600 /etc/ha.d/authkeys
--------------------------------------------------------------------------------------
(2)编辑ha.cf文件:
[root@master heartbeat-2.1.3]# sed -e /^#/d /etc/ha.d/ha.cf
debugfile/var/log/ha-debug
logfile/var/log/ha-log
logfacility local0
keepalive 2
deadtime 5
initdead 15 #此数值大于等于deadtime的两倍
udpport 694
ucast eth1192.168.94.11
auto_failback on #负载节点重新恢复正常后从备用节点自动接管
node master
node backup
crm no #禁用crm
-----------------------------------------------------------------------------------------
(3)编辑haresources文件
[root@masterheartbeat-2.1.3]# sed -e /^#/d /etc/ha.d/haresources
master 192.168.50.179 cluster ldirectord
#负载节点主机名 虚拟IP地址 要有heartbeat管理的程序
---------------------------------------------------------------------------------------------------------------------------
(4)编辑ldirectord文件
[root@masterheartbeat-2.1.3]# sed -e /^#/d /etc/ha.d/ldirectord.cf
checktimeout=3
checkinterval=1
autoreload=yes
logfile="/var/log/ldirectord.log"
logfile="local0"
quiescent=no #自动删除down掉的真实节点
virtual=192.168.50.179:80
real=192.168.50.172:80 gate