1、keepalived是什么?
keepalived是集群管理中保证集群高可用的一个服务软件,其功能类似于heartbeat,用来防止单点故障。
2、keepalived工作原理
keepalived是以VRRP协议为实现基础的,VRRP全称Virtual Router Redundancy Protocol,即虚拟路由冗余协议。
keepalived主要有三个模块,分别是core、check和vrrp。core模块为keepalived的核心,负责主进程的启动、维护以及全局配置文件的加载和解析。check负责健康检查,包括常见的各种检查方式。vrrp模块是来实现VRRP协议的。
3、keepalived实现双机热备
测试环境如下:
在上一篇nginx负载均衡中讲到212和213都是httpd服务。
10.10.252.211 nginx服务对212,213httpd服务实现负载均衡 keepalived主机
10.10.252.214 nginx服务对212,213httpd服务实现负载均衡 keepalived备机
10.10.252.212 httpd服务
10.10.252.213 httpd服务
4、keepalived的安装
4.1、两台机均安装keepalived
#yum 安装
yum install keepalived
#修改主配置文件,已经将不是必须的配置内容删掉了。
vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
router_id master
}
vrrp_script chk_nginx {
script "/etc/keepalived/nginx_check.sh"
interval 2
weight -20
}
vrrp_instance VI_1 {
state MASTER
interface ens33
virtual_router_id 51
mcast_src_ip 10.10.252.211
priority 100
nopreempt
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
track_script {
chk_nginx
}
virtual_ipaddress {
10.10.252.215
}
}
#从keepalived配置文件
! Configuration File for keepalived
global_defs {
router_id slave1
}
vrrp_script chk_nginx {
script "/etc/keepalived/nginx_check.sh"
interval 2
weight -20
}
vrrp_instance VI_1 {
state MASTER
interface ens33
virtual_router_id 51
mcast_src_ip 10.10.252.214
priority 50
nopreempt
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
track_script {
chk_nginx
}
virtual_ipaddress {
10.10.252.215
}
}
4.2、检查nginx进程的脚本,将脚本放在/etc/keepalived/目录下,主从端都要有,并授权。
#!/bin/bash
pid=`ps -C nginx --no-header |wc -l`
if [ $pid -eq 0 ];then
/usr/local/nginx/sbin/nginx
sleep 2
if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
killall keepalived
fi
fi
5、keepalived的启动和验证
systemctl restart keepalived
查看在wyl01和wyl04机器上是否有下面的进程
然后我们再看看机器wyl01上多了之前我们设定的vip的情况:
我们在页面上用10.10.252.215的ip去访问可以看到的wyl02机器上的httpd服务和wyl03上的机器上的httpd服务会依次出现。
当我们去关掉主keepalived服务后在查看情况:我们可以看到wyl04上多了虚拟vip。
我们再继续访问页面,查看效果,依然会出现依次出现wyl02和wyl03上的httpd服务。。