共计 2621 个字符,预计需要花费 7 分钟才能阅读完成。
基础知识
keepalived是一个类似于 layer3, 4 & 7 交换机制的软件,也就是我们平时说的第 3 层、第 4 层和第 7 层交换。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 将把服务器从服务器群中剔除。
系统环境
操作系统: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
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
make && make install
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 配置:
从 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
《Keepalived 权威指南》下载见 http://www.linuxidc.com/Linux/2012-05/60951.htm
Nginx+Keepalived 实现站点高可用 http://www.linuxidc.com/Linux/2016-12/137883.htm
Nginx+Keepalived 实现站点高可用(负载均衡) http://www.linuxidc.com/Linux/2016-12/138221.htm
构建高可用集群 Keepalived+Haproxy 负载均衡 http://www.linuxidc.com/Linux/2016-12/138917.htm
CentOS6.5 下 Keepalived 高可用服务单实例配置 http://www.linuxidc.com/Linux/2016-12/138110.htm
Keepalived 安装与配置 http://www.linuxidc.com/Linux/2017-02/140421.htm
本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-03/141441.htm