heartbeat v2提供了完整的高可用方案,既包含了Messaging Layer,又包含CRM,其中CRM有haresource(默认)和crm,本文基于haresource配置
一、环境介绍:
Node1:
CentOS6 192.168.9.168 192-168-9-168
CentOS6 192.168.9.176 192-168-9-176
VIP: 192.168.9.144
heartbeat和httpd为yum安装
二、环境部署
服务器初始化脚本执行(主要时间同步,防火墙,主机名,ip配置,关闭不必要服务等)
1,更改yum源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
yum clean all
2,安装epel
rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -Uvh http://mirrors.kernel.org/fedora-epel/epel-release-latest-6.noarch.rpm
3,设置主机名
hostname
vim /etc/sysconfig/network
4,绑定host
cat /etc/hosts
192.168.9.168 192-168-9-168
192.168.9.176 192-168-9-176
可配置秘钥通信:
ssh-keygen -P ''
ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.9.168
ssh 192.168.9.168 'date'
5,安装heartbeat
yum install -y heartbeat
cp /usr/share/doc/heartbeat-3.0.4/{ha.cf,haresources} /etc/ha.d/
安装httpd
yum install -y httpd
6,配置
# grep -v ^# /etc/ha.d/ha.cf | grep -v ^$
debugfile /var/log/ha-debug
logfile /var/log/ha-log
keepalive 2
deadtime 30
warntime 10
initdead 120
udpport 694
mcast eth0 225.23.190.1 694 1 0
auto_failback on
node 192-168-9-168
node 192-168-9-176
ping 192.168.9.1
respawn hacluster /usr/lib64/heartbeat/ipfail
配置详解:
logfile /var/log/ha-log #日志文件
#logfacility local0 #日志记录设备
keepalive 2 #心跳间隔(秒)
deadtime 15 #脑裂等不正常事件后,多久认为对方故障(秒)
warntime 10 #在日志中发出"late heartbeat"警告之前等待的时间
initdead 120 #在某些配置下,重启后网络需要一些时间才能正常工作。要大于deadtime
udpport 694 #使用端口694进行bcast和ucast通信。这是默认的,并且在IANA官方注册的端口号。
#bcast eth0 # 集群消息的传递方式,广播,Linux可用
mcast eth0 225.23.190.1 694 1 0 #组播
#ucast eth0 192.168.1.2 #单播
auto_failback on #主节点重新恢复,将从从节点取回所有资源。若该选项设置为off,主节点便不能重新获得资源。
#stonith baytech /etc/ha.d/conf/stonith.baytech #定义STONITH设备
node 192-168-9-168 #定义集群所有节点,后面节点名称必须与"uname -n"一致
node 192-168-9-176 #定义集群所有节点
ping 192.168.9.1 #ping第三方设备(这里ping网关)
# cat /etc/ha.d/authkeys
auth 3
#1 crc
#2 sha1 HI!
3 md5 sinashow213
chmod 600 /etc/ha.d/authkeys
# grep -v ^# /etc/ha.d/haresources | grep -v ^$
192-168-9-168 IPaddr::192.168.9.144/24/eth0 httpd
配置详解:
#每一行表示一个资源(组),这里表示192-168-9-168节点为首先运行的主节点,然后通过~/ha.d/resource.d/目录下的资源代理IPaddr来配置VIP,使其配置在eth0的别名上,最后就是通过/etc/rc.d/init.d/目录下LSB资源代理脚本来管理httpd服务。
7. 启动heartbeat
/etc/init.d/heartbeat start && chkconfig heartbeat on
8. 查看ip addr
9. 测试自动切换(/usr/share/heartbeat/hb_standby)