在VM虚拟机中,安装centos7环境下的keepalived
这里简短讲下在centos7中安装keepalived
首先是从keepalived官网中获取,这里我是放在/opt/目录下
wget http://www.keepalived.org/software/keepalived-1.4.4.tar.gz
解压缩
tar -zxvf keepalived-1.4.4.tar.gz
在安装前先下载LVS
Yum install ipvsadm
接下来是很关键的安装依赖,之前笔者在这步没作好,就会发现接下来的指定安装文件夹或是make编译时都会报错,所以这里的依赖大家最好都是按转下:
Yum install gcc-c++
Yum -y install libnl libnl-devel
Yum install -y libnfnetlink-devel
Yum -y install ncurses ncurses-devel
Yum install openssl
Yum install openssl-devel
安装完成后指定安装文件夹,这里我就直接放在下载的目录中
./configure --prefix=/opt/keepalived-1.4.4
之后就是编译与安装,我们可以放在一句命令中完成
make&&make install
若成功则出现界面大致如下(这里是网上找的一张图)
完成后我们就需要去配置keepalived.conf文件,首先我们先去安装目录下的/etc/下将配置文件拷贝一份到 /etc/keepalived中,因为keepalived启动时默认去这个路径加载配置文件,这里笔者就以自己的目录为例
cp /opt/keepalived-1.4.4/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf
然后用vim打开
vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
aaa@qq.com
}
notification_email_from aaa@qq.com
smtp_server localhost
smtp_connect_timeout 30
router_id NodeA
}
vrrp_instance VI_1 {
state MASTER #指定A节点为主节点 备用节点上设置为BACKUP即可
interface ens33 #绑定虚拟IP的网络接口
virtual_router_id 51 #VRRP组名,两个节点的设置必须一样,以指明各个节点属于同一VRRP组
priority 100 #主节点的优先级(1-254之间),备用节点必须比主节点优先级低
advert_int 1 #组播信息发送间隔,两个节点设置必须一样
authentication { #设置验证信息,两个节点必须一致
auth_type PASS
auth_pass 1111
}
virtual_ipaddress { #指定虚拟IP, 两个节点设置必须一样
192.168.1.220
}
}
其中网卡名称要大家自己去查看并更改,可以用ip a查看网卡
按同样的方法配置节点B并修改配置文件,可将A节点的配置文件复制到B节点,并修改以下几项:
router_id NodeB
state BACKUP
priority 99
其它项不必修改。
这时可以启动keepalived
/opt/keepalived-1.4.4/sbin/keepalived -D
就可以发现已经启动完成,我们可以用命令来查看下进程
ps aux | grep keepalived
Keepalived 正常运行时,共启动 3 个进程,其中一个进程是父进程,负责监控其子进程;一个是 vrrp 子进程;另外一个是 checkers 子进程
并且用ip a查看网卡会发现多了一个vip
测试:
这时,我们的主从机都配置完成。当主机宕机,vip会转移到从机。当从机宕机后,vip会转移到主机。
但是这里会发现一个问题,就是当主机重启后,vip出现在了主、从机上。这也就是所谓的“脑裂”了。网上查找解决该模式,多会关联到ngnix,笔者这里暂时不想用到ngnix。所以就在从机上编写了一个脚本,检测主机的vip是否能通。代码如下:
vim check_split.sh
#!/bin/bash
# 检查脑裂的脚本,在备节点上进行部署
LB01_VIP=192.168.73.127
while true
do
ping -c 2 -W 3 $LB01_VIP &>/dev/null
if [ $? -eq 0 -a `ip add|grep "$LB01_VIP"|wc -l` -eq 1 ];then
killall keepalived
else
systemctl start keepalived
fi
sleep 5
done
killall 是需要centos7安装psmisc的,命令如下:
yum install psmisc
之后我们在从机上后台运行脚本:
nohub bash check_split.sh &
这时脚本就在后台运行啦。
然后我们再来测试,当主机运行时,从机的keepalived进程就被killall了。主机宕机的时候,从机的keepalived进程又被启动接管vip。这时我们的热备就算完成一小阶段了。
当然,这里把脚本设置为开机启动是最好的,避免以后还要手动启动。
一、将脚本移到/etc/rc.d/init.d/目录下
mv /root/check_split.sh /etc/rc.d/init.d
二、增加脚本的可执行权限
chmod +x /etc/rc.d/init.d/check_split.sh
三、添加脚本到开机自动启动项目中
cd /etc/rc.d/init.d
chkconfig --add check_split.sh
chkconfig check_split.sh
至此,大功告成啦~
上一篇: 原生JavaScrpit中异步请求Ajax实现方法
下一篇: 怎么判断两个对象相等?
推荐阅读
-
Python环境下PyQt5的安装以及QT Desinger和PyUIC在Pycharm中的配置
-
在centos7的环境下安装fastdfs
-
怎么在Windows中phpnow1.5.6搭建的环境下安装ffmpeg
-
python中MySQLdb模块在linux环境下的安装方法介绍
-
怎么在Windows中phpnow1.5.6搭建的环境下安装ffmpeg
-
Python环境下PyQt5的安装以及QT Desinger和PyUIC在Pycharm中的配置
-
macos - 大家在Mac中开发PHP,是用虚拟机的方式还是直接在Mac下搭建环境
-
python中MySQLdb模块在linux环境下的安装方法介绍
-
macos - 大家在Mac中开发PHP,是用虚拟机的方式还是直接在Mac下搭建环境
-
在VM虚拟机中,安装centos7环境下的keepalived