环境信息:
10.1.13.75 master
10.1.13.140 slave
10.1.13.247 VIP
一,基础环境处理
1,修改主机名
master节点
hostnamectl set-hostname master
slave节点
hostnamectl set-hostname slave
2,修改/etc/hosts
vi /etc/hosts
10.1.13.75 master
10.1.13.140 slave
3,关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
4,关闭seLinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
getenforce
5,建立免密通道
ssh-keygen -t rsa # 一路回车
ssh-copy-id -i id_rsa.pub root@master
ssh-copy-id -i id_rsa.pub root@slave
6,同步时间
crontab -e
* */1 * * * /usr/sbin/ntpdate cn.pool.ntp.org
#重启crond服务
service crond restart
二,部署Heartbeat
1.安装依赖关系
yum install -y gcc gcc-c++ autoconf automake libtool glib2-devel libxml2-devel bzip2 bzip2-devel e2fsprogs-devel libxslt-devel libtool-ltdl-devel asciidoc
2.创建用户和组
groupadd haclient
useradd -g haclient hacluster
3.下载软件包
wget http://www.xxshell.com/download/heartbeat/Reusable-Cluster-Components-glue.tar.gz
wget http://www.xxshell.com/download/heartbeat/resource-agents-3.9.6.tar.gz
wget http://www.xxshell.com/download/heartbeat/Heartbeat-3.0.tar.gz
4.安装Reusable-Cluster-Components-glue
#解压
tar -xzvf Reusable-Cluster-Components-glue.tar.gz
#进入 Reusable-Cluster-Components-glue
cd Reusable-Cluster-Components-glue
#执行脚本
./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
5,安装resource-agents-3.9.6
#解压
tar -xzvf resource-agents-3.9.6.tar.gz
#进入resource-agents-3.9.6
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
#查看上一条命令的返回值,用来判断编译是否成功
echo $?
#返回到上一级目录
cd ..
6,安装Heartbeat-3.0
#解压
tar -xzvf Heartbeat-3.0.tar.gz
#进入Heartbeat-3.0
cd Heartbeat-3.0
#执行脚本
./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
#查看上一条命令的返回值,用来判断编译是否成功
echo $?
三HeartBeat配置
master上操作
1.复制HeartBeat包中doc下列文件到指定目录
cp doc/{ha.cf,haresources,authkeys} /usr/local/heartbeat/etc/ha.d/
2.编辑ha.cf配置文件
vim /usr/local/heartbeat/etc/ha.d/ha.cf
# 全部注释(文件里还有2行需要注释)
# 添加以下配置
# ipfail文件路径可能不同,使用 find 查找 --》find / -name 'ipfail'
debugfile /var/log/ha-debug
logfile /var/log/ha-log
logfacility local0
keepalive 1
deadtime 10
warntime 5
initdead 60
udpport 694
ucast ens33 10.1.13.140 # 主要网卡名字(我的是ens33)和IP地址(slave的ip地址)
auto_failback on
node master # 节点名字(master)
node slave # 节点名字(slave)
ping 10.1.13.1 # 网关
respawn hacluster /usr/local/heartbeat/libexec/heartbeat/ipfail
3.编辑haresources
vim /usr/local/heartbeat/etc/ha.d/haresources
#在第一行添加以下内容 vip
master 10.1.13.247/24/ens33
4.编辑authkeys,配置加密参数并附加权限
vim /usr/local/heartbeat/etc/ha.d/authkeys
#在最后添加加密参数
auth 2 # 表示使用id为2的验证,下边需要定义一个2的验证算法
2 md5 hello # id为2的验证加密为md5,并添加密码。
#给authkeys配置权限
chmod 600 /usr/local/heartbeat/etc/ha.d/authkeys
5,拷贝以上3个配置文件到slave服务器上
scp /usr/local/heartbeat/etc/ha.d/{ha.cf,haresources,authkeys} root@slave:/usr/local/heartbeat/etc/ha.d/
slave上操作
编辑ha.cf配置文件,其他配置文件不用操作
vim /usr/local/heartbeat/etc/ha.d/ha.cf
debugfile /var/log/ha-debug
logfile /var/log/ha-log
logfacility local0
keepalive 1
deadtime 10
warntime 5
initdead 60
udpport 694
ucast ens33 10.1.13.75 # 修改这个ip地址(masterIP地址)
auto_failback on
node master
node slave
ping 10.1.13.1
respawn hacluster /usr/local/heartbeat/libexec/heartbeat/ipfail
master和slave上操作
1、配置网卡支持文件,2台机器分别执行:
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/
2.启动heartbeat服务
systemctl enable heartbeat
systemctl start heartbeat
systemctl status heartbeat
3,查看IP是否有vip
ip a