Centos编译安装配置Heartbeat-2.1.4

来源:互联网 发布:快手直播配音软件 编辑:程序博客网 时间:2024/05/17 23:29

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 wgetlibnet       --> https://centos.pkgs.org/6/epel-x86_64/libnet-1.1.6-7.el6.x86_64.rpm.htmllibnet-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   行:167ret = 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.x2> 修改主机名:# vi /etc/sysconfig/network修改 HOSTNAME 改为HOSTNAME=master     ## 节点1注意:节点2需要改为backup3> 修改HOST配置:# vi /etc/hosts添加如下内容:# ----------------------------------------192.168.10.11 master192.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 21 crc2 md5  ha_1234563 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/bashlogger $0 called with $1case "$1" instart)# Start commands go hereecho "### test demo start !!!";;;stop)# Stop commands go hererecho "### test demo stop !!!";;;status)# Status commands go hereecho "### test demo status !!!";;;esac# ----------------------------------------拷贝到资源目录下:# cp TestDemo /etc/ha.d/resource.d/添加执行权限:# chmod +x /etc/ha.d/resource.d/TestDemo3> ha.cf:HA配置文件修改内容如下:# ----------------------------------------debugfile       /var/log/ha-debuglogfile         /var/log/ha-loglogfacility     local0keepalive       2deadtime        30warntime        10                   initdead        120udpport         694ucast   eth0    192.168.10.11   # 对端节点的 IPauto_failback   onnode    master  backupping    192.168.10.1            # 一般为网关 IPrespawn     hacluster   /usr/lib64/heartbeat/ipfail#respawn    hacluster   /usr/lib64/heartbeat/pingd -m 100 -d 5sapiauth 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 start2> 时间问题如果主备服务器时间不同步也会造成连接问题。解决:使用 ntp 保证时间同步!# yum install ntp# ntpdate cn.pool.ntp.org3> 防火墙问题主备节点双方在启动时都报如下警告: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/45341039http://ccschan.blog.51cto.com/11854461/1922193http://www.360doc.com/content/15/0529/21/21779270_474300119.shtml2. HB 源码编译http://renpeng.blog.51cto.com/623897/412101/        ## Heartbeat 2.xhttp://www.cnblogs.com/magialmoon/p/3618055.html    ## Heartbeat 3.x3. HB 参数配置http://www.cnblogs.com/liwei0526vip/p/6391833.htmlhttps://www.centos.bz/2012/03/heartbeat-ha-cf-haresources-authkeys/4. HB 运行问题http://blog.csdn.net/yanggd1987/article/details/43226049?locationNum=15
原创粉丝点击