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 [email protected]

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)