最近有许多项目基于keeplived做的双机热备,总是会出现各种奇葩问题,比如apache连接vip的问题。等等
最近要上docker项目,领导要求用heartbeat,心跳检测是由两块网卡直接用以太网线直接相连。
一贯喜欢用yum直接装,苦逼的是centos7以上系统基于其他yum(比如epel)源没有。所以今天由我呢亲自去官网下载tar包二进制文件,进行编译安装
环境:两台centos7.3
两台lb负载均衡
vi /etc/hosts
192.168.9.148 gw01-idc.kgc.cn
192.168.9.149 gw02-idc.kgc.cn
首先去官网下载最新安装包:
我感觉命名很扯蛋,不知道大家有没有觉得
解压完以后,可以看出真身了
1、Reusable-Cluster-Components-glue--0a7add1d9996
2、resource-agents-3.9.6
3、Heartbeat-3-0-958e11be8686
以上是按照安装顺序排的。下面开始安装:
yum install gcc gcc-c++ autoconf automake libtool glib2-devel libxml2-devel bzip2 bzip2-devel e2fsprogs-devel libxslt-devel libtool-ltdl-devel asciidoc //先安装基础环境,不然后面编译安装肯定报错
groupadd haclient
useradd -g haclient hacluster //创建组及运行用户
cd /root/software/Reusable-Cluster-Components-glue--0a7add1d9996
./autogen.sh
./configure --prefix=/usr/local/heartbeat --with-daemon-user=hacluster --with-daemon-group=haclient --enable-fatal-warnings=no LIBS='/lib64/libuuid.so.1'
make && make install
cd resource-agents-3.9.6
./autogen.sh
./configure --prefix=/usr/local/heartbeat --with-daemon-user=hacluster --with-daemon-group=haclient --enable-fatal-warnings=no LIBS='/lib64/libuuid.so.1'
make && make install
cd Heartbeat-3-0-958e11be8686/
./bootstrap
export CFLAGS="$CFLAGS -I/usr/local/heartbeat/include -L/usr/local/heartbeat/lib" 添加环境变量
./configure --prefix=/usr/local/heartbeat --with-daemon-user=hacluster --with-daemon-group=haclient --enable-fatal-warnings=no LIBS='/lib64/libuuid.so.1'
make && make install
cp doc/{ha.cf,haresources,authkeys} /usr/local/heartbeat/etc/ha.d/
chkconfig --add heartbeat
chkconfig heartbeat on
chmod 600 /usr/local/heartbeat/etc/ha.d/authkeys
mkdir -pv /usr/local/heartbeat/usr/lib/ocf/lib/heartbeat/
cp /usr/lib/ocf/lib/heartbeat/ocf-* /usr/local/heartbeat/usr/lib/ocf/lib/heartbeat/
ln -svf /usr/local/heartbeat/lib64/heartbeat/plugins/RAExec/* /usr/local/heartbeat/lib/heartbeat/plugins/RAExec/
ln -svf /usr/local/heartbeat/lib64/heartbeat/plugins/* /usr/local/heartbeat/lib/heartbeat/plugins/
Heartbeat配置
Heartbeat的配置主要涉及到ha.cf、haresources、authkeys这三个文件。其中ha.cf是主配置文件,haresource用来配置要让Heartbeat托管的服务,authkey是用来指定Heartbeat的认证方式。
# cat /usr/local/heartbeat/etc/ha.d/ha.cf |grep ^[^#]
debugfile /var/log/ha-debug ##用于记录heartbeat的调试信息
logfile/var/log/ha-log ##用于记录heartbeat的日志信息
logfacilitylocal0 ##设置heartbeat的日志,这里用的是系统日志
keepalive 2 ##设定心跳(监测)时间时间为2秒
deadtime 30 ##指定若备用节点在30秒内未收到主节点心跳信号,则接管主服务器资源
warntime 10 ##指定心跳延迟的时间为10秒,10秒内备节点不能接收主节点心跳信号,即往日志写入警告日志,但不会切换服务
initdead 120 ##系统启动或重启后预留的忽略时间段,取值至少为deadtime的两倍
udpport 694 ##广播/单播通讯使用的Udp端口
bcast ens37 # Linux ##使用网卡ens37发送心跳检测
#mcast eth0 225.0.0.1 694 1 0 ##采用网卡eth0的Udp多播来组织心跳,一般在备用节点
##不止一台时使用。Bcast、ucast和mcast分别代表广播、单播和多播,是组织心跳的的方式,任选其一
#ucast ens37 192.168.10.133 ##采用网卡ens37的udp单播来组织心跳,后面跟的IP地址为双机对方IP地址
auto_failback on ##定义当主节点恢复后,是否将服务自动切回
#watchdog /dev/watchdog ##可选配置,通过Heartbeat监控系统运行状态。
node gw01.idc.kgc.cn ##主节点名称,与uname -n显示一致
node gw02.idc.kgc.cn ##备用节点名称
ping 192.168.9.254 ##通过ping网关检测心跳是否正常,仅用来测试网络
respawn hacluster /usr/local/heartbeat/libexec/heartbeat/ipfail ##指定和heartbeat一起启动、关闭的进程,可选
#apiauth ipfail gid=haclient uid=hacluster ##设置启动IPfail的用户和组
最后不忘记修改这里,集群资源配置文件
ha验证文件
[root@gw01 ~]# grep -v "#" /usr/local/heartbeat/etc/ha.d/authkeys
auth 2
2 sha1 HI!
以上主节点配置完毕
scp /usr/local/heartbeat/etc/ha.d/* root@192.168.9.249:/usr/local/heartbeat/etc/ha.d/ 拷贝到从节点
/etc/init.d/heartbeat start ##开启heartbeat
getenforce 0
systemctl stop firewalld
tail /var/log/ha-log
阅读(4171) | 评论(0) | 转发(0) |