简介
Keepalived的作用是检测服务器的状态,如果有一台web服务器宕机,或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工作正常后Keepalived自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器。
工作原理
Layer3,4&7工作在IP/TCP协议栈的IP层,TCP层,及应用层,原理分别如下:
Layer3:Keepalived使用Layer3的方式工作式时,Keepalived会定期向服务器群中的服务器发送一个ICMP的数据包(既我们平时用的Ping程序),如果发现某台服务的IP地址没有激活,Keepalived便报告这台服务器失效,并将它从服务器群中剔除,这种情况的典型例子是某台服务器被非法关机。Layer3的方式是以服务器的IP地址是否有效作为服务器工作正常与否的标准。
Layer4:如果您理解了Layer3的方式,Layer4就容易了。Layer4主要以TCP端口的状态来决定服务器工作正常与否。如web server的服务端口一般是80,如果Keepalived检测到80端口没有启动,则Keepalived将把这台服务器从服务器群中剔除。
Layer7:Layer7就是工作在具体的应用层了,比Layer3,Layer4要复杂一点,在网络上占用的带宽也要大一些。Keepalived将根据用户的设定检查服务器程序的运行是否正常,如果与用户的设定不相符,则Keepalived将把服务器从服务器群中剔除。
系统环境
CentOS Linux release 7.4.1708 (Core)
keepalived版本:keepalived-1.4.0.tar.gz
主keepalived服务器IP地址:192.168.30.201
备keepalived服务器IP地址:192.168.30.202
keepalived虚拟IP地址:192.168.30.203
操作步骤
1. 下载keepalived安装包
下载最新版本的keepalived安装包keepalived-1.4.0.tar.gz 下载地址为http://www.keepalived.org/download.html
2. 安装keepalived安装包
(1)将安装包下载到指定路径下(本例下载到/usr/src下), 解压安装包
cd /usr/src
tar zxvf keepalived-1.4.0.tar.gz
(2) 将解压好的安装包转移到/usr/local下并重新命名为keepalived
mv keepalived-1.2.24 /usr/local/keepalived
(3) 在编译之前先安装OpenSSL,否则会报错
yum -y install openssl-devel
(4) 编译安装keepalived
cd /usr/local/keepalived
./configure
3.修改配置文件路径
cp -a /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
cp -a /usr/local/etc/sysconfig/keepalived /etc/sysconfig/
mkdir /etc/keepalived
cp -a /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/
cp -a /usr/local/sbin/keepalived /usr/sbin/
4.修改配置文件
在主备配置文件中,只需要修改vrrp_instance VI_1 中三个地方即可:state , priority, virtual_ipaddress
vi /etc/keepalived/keepalived.conf
主keepalived配置:
从keepalived配置:
5.启动服务
注:这里建议使用service 来启动服务,而不是用systemctl,因为systemctl遇到权限错误不提醒。本例需要给/etc/init.d/keepalived执行权限,否则实验会失败
chmod +x /etc/init.d/keepalived
开启服务
service keepalived start
常见问题
问题一:使用systemctl启动服务没报错,但是实验不成功
解决:/etc/init.d/keepalived 没有执行权限,执行以下语句给予权限
chmod +x /etc/init.d/keepalived
问题二:OpenSSL安装不成功
解决:不要使用yum install openssl, 而要使用 yum install openssl-devel