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
cd Reusable-Cluster-Components-glue--glue-1.0.9
./autogen.sh
./configure LIBS='/lib64/libuuid.so.1'(32位的不用加64)
make
make install
cd ClusterLabs-resource-agents-b735277
./autogen.sh
./configure LIBS='/lib64/libuuid.so.1'(32位的不用加64)
make
make install
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了
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
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
详细启动和关闭动作可参考各节点/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