基础知识

keepalived是一个类似于layer3, 4 & 7交换机制的软件,也就是我们平时说的第3层、第4层和第7层交换。Keepalived作用是检测服务器的状态,如果有一台web服务器死机,或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工作正常后Keepalived自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器。

 

 

Layer3,4&7工作在IP/TCP协议栈的IP层,TCP层,及应用层,原理分别如下:

Layer3Keepalived使用Layer3的方式工作式时,Keepalived会定期向服务器群中的服务器发送一个ICMP的数据包(既我们平时用的Ping程序),如果发现某台服务的IP地址没有激活,Keepalived便报告这台服务器失效,并将它从服务器群中剔除,这种情况的典型例子是某台服务器被非法关机。Layer3的方式是以服务器的IP地址是否有效作为服务器工作正常与否的标准。

Layer4:如果您理解了Layer3的方式,Layer4就容易了。Layer4主要以TCP端口的状态来决定服务器工作正常与否。如web server的服务端口一般是80,如果Keepalived检测到80端口没有启动,则Keepalived将把这台服务器从服务器群中剔除。

Layer7Layer7就是工作在具体的应用层了,比Layer3,Layer4要复杂一点,在网络上占用的带宽也要大一些。Keepalived将根据用户的设定检查服务器程序的运行是否正常,如果与用户的设定不相符,则Keepalived将把服务器从服务器群中剔除。


系统环境

操作系统:Linux version 3.10.0-229.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.2 20140120 (Red Hat 4.8.2-16) (GCC) )

 

keepalived版本:keepalived-1.2.24.tar.gz

 

keepalived服务器IP地址:172.16.34.61

keepalived服务器IP地址:172.16.34.69

keepalived虚拟IP地址:172.16.34.36

 

 

 

 

操作步骤

1. 下载keepalived安装包

下载最新版本的keepalived安装包keepalived-1.2.24.tar.gz,下载地址为http://www.keepalived.org/download.html

 

2. 安装keepalived安装包

1)将安装包下载到指定路径下(本例下载到/soft/src下), 解压安装包

 

cd /soft/src

tar zxvf keepalived-1.2.24.tar.gz 


wKiom1hMuyayRPQHAAAGZsIDHBE230.png


2) 将解压好的安装包转移到/usr/local下并重新命名为keepalived

 

mv keepalived-1.2.24 /usr/local/keepalived


wKiom1hMu0fyvWDzAAAGen70w-E539.png


3) 在编译之前先安装OpenSSL,否则会报错

 

 yum -y install openssl-devel

wKiom1hMu2OD2LytAAAHFVpyVNk075.png



4) 编译安装keepalived

cd /usr/local/keepalived

./configure

make && make install

wKioL1hMu4fhygk3AAAID4u9bdo115.png

wKiom1hMu4fQ_xiBAAAFoAjz6N8377.png



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

 

vim /etc/keepalived/keepalived.conf

 

keepalived配置:


wKioL1hMu6zhIAs0AAA3jw79YmE011.png



keepalived配置


wKiom1hMu8Hi9TyxAAA8lUCf7sQ827.png


5. 启动服务

 

注:这里建议使用service 来启动服务,而不是用systemctl,因为systemctl遇到权限错误不提醒。本例需要给/etc/init.d/keepalived执行权限,否则实验会失败

 

chmod +x /etc/init.d/keepalived

 

开启服务

 

service keepalived start

wKioL1hMu9ySgGIrAAAMIAxbMmw200.png


常见问题

问题一:使用systemctl启动服务没报错,但是实验不成功

解决:/etc/init.d/keepalived 没有执行权限,执行以下语句给予权限

 

chmod +x /etc/init.d/keepalived

 

问题二:OpenSSL安装不成功

解决:不要使用yum install openssl, 而要使用 yum install openssl-devel