CentOS安装HeartBeat服务
环境
- 主机:CentOS9
- 依赖
- Cluster Glue
- Resource Agents
安装
安装Cluster Glue
- 下载软件源码
- 安装编译所需依赖
yum install glib2-devel libtool-ltdl-devl net-snmp-devel bzip2-devel ncurses-devel openssl-devel libtool libxml2 libxml2-devel gettext bison flex zlib-devel mailx which libxslt docbook-dtds docbook-style-xsl PyXML shadow-utils opensp autoconf automake bzip2 e2fsprogs-devel libxslt-devel libtool-ltdl-devel make asciidoc libuuid-devel
- 配置编译软件
./autogen.sh
./configure --prefix=/usr/local/heartbeat
make -j 20
- 安装
make install
安装Resource Agent
- 下载软件源码,并上传到服务器中
- 解压软件源码压缩包
- 配置编译软件
./autogent.sh
export CFLAGS="${CFLAGS} -I/usr/local/heartbeat/include -L/usr/local/heartbeat/lib"
注意-I与-L与后接字段间无空格,如出现错误需要unset变量CFLAGS./configure --prefix=/usr/local/heartbeat
ln -s /usr/localheartbeat/lib/* /lib/
ln -s /usr/local/heart/lib/* /lib64/
make -j20
- 安装
make install
安装HeartBeat
- 下载软件源码,并上传到服务器中
- 解压软件源码
- 配置编译软件
./bootstrap
./configure --prefix=/usr/local/heartbeat
make -j20
- 编译会出现一个
HA_HBCONF_DIR" redefined [-Werror]
的错误提示,说明在glue.conf.h
中,宏HA_HBCONF_DIR
被定义多次,编辑文件glue_conf.h
,将代码define HA_HBCONF_DIR "/usr/local/heartbeat/etc/ha.d/"
删除掉,重新编译。文件位置/usr/local/heartbeat/include/heartbeat
- 编译会出现一个
- 安装
make install
cd doc cp -a ha.cf authkeys haresources /usr/local/heartbeat/etc/ha.d/
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/
groupadd haclient
useradd -r -s /bin/nologin -g haclient hacluster
配置
编辑HeartBeat的配置文件
cd /usr/local/heartbeat/etc/ha.d && cp ha.cf ha.cf.old && vi ha.cf
修改以下内容
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32# 保存调试信息文件
debugfile /var/log/ha-debug
# 日志文件
logfile /var/log/ha-log
# 使用系统日志
logfacility local0
# 心跳的时间间隔,单位秒
keeplive 2
# 超出该时间未收到对方节点的心跳,则判定对方死亡
deadtime 30
# 超出改时间未收到对方节点的心跳,则发出警告记录日志
warntime 10
# 在某系统上,系统启动或重启后需要经过一段时间网络才能正常工作,该参数就是为解决这个问题,取值至少时deadtime的2倍
initdead 120
# 设置广播通信使用的端口,默认694
udpport 694
# 传播心跳的广播网卡
bcast eth0
# 对方服务器心跳检测ip
ucast eth0 192.168.0.82
# 设置为on表示一旦主节点恢复运行,则自动获取资源并取代从节点
auto_failback off
# 配置主从节点
node centos-kvm
node centos1106-kvm
# 如果ping不通该地址,就认为当前断网
ping 192.168.0.1
# 指定与HeartBeat一同启动和关闭的进程,该进程自动监视,遇到故障则重新启动。
# 最常用的经常是ipfail,该进程用于检测和处理网络故障需要配合ping语句指定的ping
respawn heartbeat /usr/local/heartbeat/libexec/heartbeat/ipfail
# 指定用户和组
apiauth ipfail gid=haclient uid=hacluster在其他节点中配置HeartBeat时,只需要修改广播网卡和对方心跳检测的ip
编辑认证文件,并修改权限为600
auth 2
2 sha1 HI
编辑资源配置文件haresources
centos1 Ipaddr::192.168.0.80/24/eth0:0 mysqld
# centos1作为主结点,192.168.0.80作为vip,mysql是主机启动后执行的脚本,脚本所在目录与资源配置文件相同- 脚本mysqld内容
/etc/init.d/mysqld