Centos编译安装配置Heartbeat-2.1.4

Linux-HA 官网
http://www.linux-ha.org/wiki/Main_Page
Heartbeat-2.1.4 资源地址:
http://download.csdn.net/download/godiors_163/9999762


最小化安装系统
Centos 6.5 x86_64 或 Centos 7.0 x86_64

安装依赖环境
# yum install gcc gcc-c++ make autoconf automake libtool ...
# yum install glib2-devel python-devel pam-devel e2fsprogs-devel
# yum install libxml2-devel gnutls-devel bzip2-devel libuuid-devel
# yum install swig wget
libnet       --> https://centos.pkgs.org/6/epel-x86_64/libnet-1.1.6-7.el6.x86_64.rpm.html
libnet-devel --> https://centos.pkgs.org/6/epel-x86_64/libnet-devel-1.1.6-7.el6.x86_64.rpm.html

添加用户组和用户
# groupadd haclient
# useradd -G haclient hacluster -M -s /sbin/nologin

编译 & 安装
解压 Heartbeat-2.1.4 源码后执行:
# ./ConfigureMe configure
# make && make install
编译可能遇到的问题:
1> [CentOS-6] treat warn as error...
解决:
# vi configure.in  行:1944 & 2042 
去掉 -Werror
-------
2> [CentOS-6] ucast.c:513: error: request for memberifr_ifrn’ ...
解决:
# vi lib/plugins/HBcomm/ucast.c 
行:466 注释掉此行 // int i = 1;
-------
3> [CentOS-7] 函数 gnutls_certificate_verify_peers 参数错误
解决:
# vi lib/plugins/quorum/quorumd.c       行:358
# vi membership/quorumd/quorumd.c       行:483
# vi membership/quorumd/quorumdtest.c   行:167
ret = gnutls_certificate_verify_peers (session);
改为:
int status;
ret = gnutls_certificate_verify_peers2 (session, &status);
-------
4> [CentOS-7] 有关 yacc 问题(缺少) 
解决:
# yum install byacc(centos)
-------
5> [CentOS-7] 有关 recoverymgrd 问题
解决:
# mv telecom/recoverymgrd/Makefile telecom/recoverymgrd/_Makefile
# vi telecom/recoverymgrd/Makefile
添加以下内容:
all:
    echo "fake make"
install:
    echo "fake install"
clean: 
    echo "fake clean"
-------
6> [CentOS-7] 有关 pod2man 问题
解决:
# mv /usr/bin/pod2man /usr/bin/_pod2man

添加到系统服务
# chkconfig --add heartbeat
# chkconfig heartbeat on

主机网络配置
1> 虚拟机配置双网卡:
我们配置 eth0 为外网网卡,IP 段设为 192.168.10.x
我们配置 eth1 为内网网卡,IP 段设为 192.168.20.x

2> 修改主机名:
# vi /etc/sysconfig/network
修改 HOSTNAME 改为
HOSTNAME=master     ## 节点1
注意:节点2需要改为backup3> 修改HOST配置:
# vi /etc/hosts
添加如下内容:
# ----------------------------------------
192.168.10.11 master
192.168.10.22 backup
# ----------------------------------------
注意:两个节点都要配置。

4> 配置网卡:
节点1配置:
# ifconfig eth0 192.168.10.11/24 up   // master-outer
# ifconfig eth1 192.168.20.11/24 up   // master-inner
节点2配置:
# ifconfig eth0 192.168.10.22/24 up   // backup-outer
# ifconfig eth1 192.168.20.22/24 up   // backup-inner

注意:
Centos 6.x7.x 配置网络的方法不太一样,请执行解决。

配置 Heartbeat
1) 常用的目录
/etc/ha.d/
/usr/share/doc/heartbeat-2.1.4/
2) 拷贝配置模板
# cp /usr/share/doc/heartbeat-2.1.4/ha.cf       /etc/ha.d/
# cp /usr/share/doc/heartbeat-2.1.4/haresources /etc/ha.d/
# cp /usr/share/doc/heartbeat-2.1.4/authkeys    /etc/ha.d/
3) 修改配置文件
1> authkeys:节点相互认证的文件
a. 修改内容如下:
# ----------------------------------------
auth 2
1 crc
2 md5  ha_123456
3 sha1 ha_123456
# ----------------------------------------
b. 修改文件权限:
# chmod 600 /etc/ha.d/authkeys
========================================

2> haresources:群集资源文件
a. 修改内容如下:
# ----------------------------------------
master IPaddr::192.168.10.123/24/eth0 TestDemo     # 节点1
# ----------------------------------------
注意:节点2需要改为slaver。
b. 测试脚本 TestDemo 内容如下:
# ----------------------------------------
#!/bin/bash
logger $0 called with $1
case "$1" in
start)
# Start commands go here
echo "### test demo start !!!";
;;
stop)
# Stop commands go herer
echo "### test demo stop !!!";
;;
status)
# Status commands go here
echo "### test demo status !!!";
;;
esac
# ----------------------------------------
拷贝到资源目录下:
# cp TestDemo /etc/ha.d/resource.d/
添加执行权限:
# chmod +x /etc/ha.d/resource.d/TestDemo

3> ha.cf:HA配置文件
修改内容如下:
# ----------------------------------------
debugfile       /var/log/ha-debug
logfile         /var/log/ha-log
logfacility     local0

keepalive       2
deadtime        30
warntime        10                   
initdead        120

udpport         694
ucast   eth0    192.168.10.11   # 对端节点的 IP

auto_failback   on

node    master  backup

ping    192.168.10.1            # 一般为网关 IP

respawn     hacluster   /usr/lib64/heartbeat/ipfail
#respawn    hacluster   /usr/lib64/heartbeat/pingd -m 100 -d 5s

apiauth ipfail gid=haclient uid=hacluster
# apiauth ping gid=haclient uid=hacluster
#apiauth pingd gid=haclient uid=hacluster
# ----------------------------------------
注意:ucast要指定对端的IP。

运行 & 停止
# service heartbeat start
# service heartbeat stop
查看日志
# cat /var/log/ha-log
# cat /var/log/ha-debug

运行时可能遇到的问题:
1> UUID问题
如果部署 HB 是从其他机器拷贝的,则有可能导致 uuid 冲突。
解决:
重新生成uuid,先停止Heatbeat然后删除hb_uuid这个文件之后重启。
# rmrf /var/lib/heartbeat/hb_uuid
# service heartbeat start

2> 时间问题
如果主备服务器时间不同步也会造成连接问题。
解决:
使用 ntp 保证时间同步!
# yum install ntp
# ntpdate cn.pool.ntp.org

3> 防火墙问题
主备节点双方在启动时都报如下警告:WARN: node xxx: is dead
此时,都认为节点对方已死,然后自己又都启动了资源(脑裂)。
可以考虑是防火墙的问题:
解决:
文艺的做法:
# iptables -A INPUT -i eth0 -p udp -s 192.168.10.11 --dport 694 -m comment --comment "hb-backup" -j ACCEPT
# iptables -A INPUT -i eth0 -p udp -s 192.168.10.22 --dport 694 -m comment --comment "hb-master" -j ACCEPT
暴力的做法:
# iptables -F
# service iptables save
# service iptables stop     ## 关闭iptables
# setenforce 0              ## 关闭selinux
# sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

参考网址:
1. HB 原理解析
http://blog.csdn.net/beckdon/article/details/45341039
http://ccschan.blog.51cto.com/11854461/1922193
http://www.360doc.com/content/15/0529/21/21779270_474300119.shtml
2. HB 源码编译
http://renpeng.blog.51cto.com/623897/412101/        ## Heartbeat 2.x
http://www.cnblogs.com/magialmoon/p/3618055.html    ## Heartbeat 3.x
3. HB 参数配置
http://www.cnblogs.com/liwei0526vip/p/6391833.html
https://www.centos.bz/2012/03/heartbeat-ha-cf-haresources-authkeys/
4. HB 运行问题
http://blog.csdn.net/yanggd1987/article/details/43226049?locationNum=15
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值