heartbeat双机热备配置

    该文档环境:rhel6.3 x86_64系统,http://linux-ha.org/wiki/Download,下载的Heartbeat glue agents,其他情况不一定适用,可能会出现各种报错,有个agents下载下来需改名为agents.tar.gz,其他均为*.tar.bz2格式,bzip2 -d *.tar.bz2,然后tar -xvf *.tar即可解开

更新并下载软件包

yum install glib2-devel libtool-ltdl-devl net-snmp-devel bzip2-devel ncurses-devel openssl-devel libtool libxml2-devel gettext bison flex zlib-devel mailx which libxslt docbook-dtds docbook-style-xsl PyXML shadow-utils opensp autoconf automake libaio-devel libxslt-devel gcc make pkgconfig libxml2 libuuid-devel

yum update(否则heartbeat装完后启动会报glib相关错误,无从查起,升级后一定需要重启一下)

配置主机名

配置每个节点的/etc/hosts文件,保证两个节点内容一致,/etc/hosts文件内容如下:

192.168.180.196 zjumaster

192.168.180.197 zjuslave

添加用户和组

grouadd haclient
useradd -g haclient -M -s /sbin/nologin hacluster

安装clusterglue

            cd Reusable-Cluster-Components-glue--glue-1.0.9
            ./autogen.sh
            ./configure LIBS='/lib64/libuuid.so.1'(32位的不用加64)
            make
            make  install

安装resourceagents

             cd  ClusterLabs-resource-agents-b735277
             ./autogen.sh

             ./configure 
LIBS='/lib64/libuuid.so.1'(32位的不用加64)
             make
             make install

安装heartbeat

             cd Heartbeat-3-0-7e3a82377fa8
             ./ConfigureMe configure LIBS='/lib/libuuid.so.1'

             gmake
             make install

编译安装3.0.7,make时出错了
ucast.c: 在函数‘HB_make_send_sock’中:
ucast.c:468: 错误:与‘i’类型冲突
ucast.c:465: 附注:‘i’的上一个声明在此
ucast.c:502: 错误:在非结构或联合中请求成员‘ifr_ifrn’
ucast.c:508: 错误:在非结构或联合中请求成员‘ifr_ifrn’
ucast.c:513: 错误:在非结构或联合中请求成员‘ifr_ifrn’
解决办法:
Heartbeat-3-0-7e3a82377fa8/lib/plugins/HBcomm/ucast.c
这个文件貌似有问题,删除468行int i = 1;应该就能make了

配置heartbeat

           cp -a /usr/etc/ha.d /etc/
            rm -fr /usr/etc/ha.d
            ln -s /etc/ha.d /usr/etc
            chkconfig add heartbeat
            cp /usr/share/doc/haresources /etc/ha.d/
            cp /usr/share/doc/authkeys /etc/ha.d
            cp /usr/share/doc/ha.cf /etc/ha.d
            chmod 600 /etc/ha.d/authkeys

 

修改配置文件
cd/etc/ha.d

vim authkeys#修改验证方式

auth 1 

1 crc

#2 sha1 HI!

#3 md5 Hello!

 

vim ha.cf#配置HA

debugfile /var/log/ha-debug

logfile /var/log/ha-log
logfacility     local0
#
心跳间隔
keepalive 2
#
死亡阀值
deadtime 30
#
警告时间
warntime 10
#
首次启动heartbeat,等待多久才启动主服务资源
initdead 60
#
连接端口
udpport 694
#
心跳线接口
#bcast   eth1

#主节点的网卡设备、备份机的心跳线接口IP
ucast eth0 10.11.16.170

auto_failback on
node smsmaster
node smsslave
ping 10.11.16.169

respawn hacluster /usr/lib64/heartbeat/ipfail

apiauth ipfail gid=haclient uid=hacluster

 

vimharesources#配置资源

主节点的hostname vipresource1 [::arg1 ::arg2] resource2 [::arg1 ::arg2],例如本例中主节点

Smsmaster IPaddr::180.153.153.27/32/eth2 smsresource.sh MailTo::[email protected]::hearbeat

 

定义heartbeat启动和关闭动作

详细启动和关闭动作可参考各节点/etc/ha.d/resource.d/smsresource.sh文件

各个动作具体内容参考/opt/sms/scripts内各脚本内容

主节点:

启动

${route_start}#添加静态路由,定义联通通道仍然走180.153.154.17这个IP,把所有以180.153.153.29出去的包源IP地址改成180.153.153.27出去,把所有以180.153.154.17出去的包源IP地址改成180.153.154.17出去。

${gate_service_start}#启动行短网关,先判定行短网关的3个进程是否存在,如不存在则启动

${sms_exchange_start}#启动Exchange服务,先判定exchange进程是否存在,如不存在则启动

#${sms_phoneserver_start}#这里手机服务暂不做主备切换,故无需任何操作

${sms_mqmonitor_start}#启动mq监控服务,先判定mqmonitor进程是否存在,如不存在则启动

${sms_monitor_start}#启动系统监控服务:先判定monitor.sh进程是否存在,如不存在则启动monitor,exchange、行短、mysql进程结束后会立即关闭当前节点heartbeat

关闭

${sms_monitor_stop}#停止系统监控服务

${sms_exchange_stop}#停止exchange服务

${route_stop}#删除启动时定义的静态路由

${gate_service_stop}#停止行短网关3个进程服务

#${sms_phoneserver_stop}#这里手机服务暂不做主备切换,故无需任何操作

${sms_mqmonitor_stop}#停止mq监控服务

备节点:

启动

${route_start}#添加静态路由,把所有以180.153.153.28出去的包源IP地址改成180.153.153.27出去,把所有以180.153.154.155出去的包源IP地址改成180.153.153.27出去。

${gate_service_start}#启动行短网关,先判定行短网关的3个进程是否存在,如不存在则启动

${sms_exchange_start}#启动Exchange服务,先判定exchange进程是否存在,如不存在则启动

#${sms_phoneserver_start}#这里手机服务暂不做主备切换,故无需任何操作

${sms_mqmonitor_start}#启动mq监控服务,先判定mqmonitor进程是否存在,如不存在则启动

${sms_monitor_start}#启动系统监控服务:先判定monitor.sh进程是否存在,如不存在则启动monitor,exchange、行短、mysql进程结束后会立即关闭当前节点heartbeat

关闭

${sms_monitor_stop}#停止系统监控服务

${sms_exchange_stop}#停止exchange服务

${route_stop}#删除静态路由

${gate_service_stop}#停止行短网关服务

#${sms_phoneserver_stop}#这里手机服务暂不做主备切换,故无需任何操作

${sms_mqmonitor_stop}#停止mq监控服务

 最后service heartbeat 启动的时候报错

 /usr/lib/ocf/lib//heartbeat/ocf-shellfuncs,该文件找不到

做下软连接即可ln -s /usr/local/ha/usr/lib/ocf /usr/lib/ocf

你可能感兴趣的:(用户,null,local,include,主机)