【架构师之路】 LVS+Keepalived实现高可用负载均衡
一、原理
1、概要介绍
如果将TCP/IP划分为5层,则Keepalived就是一个类似于3~5层交换机制的软件,具有3~5层交换功能,其主要作用是检测web服务器的状态,如果某台web服务器故障,Keepalived将检测到并将其从系统中剔除,当该web服务器工作正常后Keepalived自动将其加入到服务器群中,这些工作全部自动完成,而不需要人工干预,只需要人工修复故障的web服务器即可。
2、工作原理
Keepalived基于VRRP协议来实现高可用解决方案,利用其避免单点故障,通常这个解决方案中,至少有2台服务器运行Keepalived,即一台为MASTER,另一台为BACKUP,但对外表现为一个虚拟IP,MASTER会发送特定消息给BACKUP,当BACKUP收不到该消息时,则认为MASTER故障了,BACKUP会接管虚拟IP,继续提供服务,从而保证了高可用性,具体如下图:
图1 Keepalived原理图
3层机理是发送ICMP数据包即PING给某台服务器,如果不痛,则认为其故障,并从服务器群中剔除。
4层机理是检测TCP端口号状态来判断某台服务器是否故障,如果故障,则从服务器群中剔除。
5层机理是根据用户的设定检查某个服务器应用程序是否正常运行,如果不正常,则从服务器群中剔除。
3、实际作用
主要用作RealServer的健康检查,以及负载均衡设备MASTER和BACKUP之间failover的实现。
二、架构
本系列文章以CentOS Linux release 6.0 (Final)为例,介绍用LVS+Keepalived实现高可用负载均衡。具体业务需求是用虚拟IP转发8080、25、21端口请求到后端的真实服务器来处业务逻辑,系统拓扑如下图所示:
图2 系统拓扑图
客户端通过VIP(Virtual IP)(172.28.14.227/228/229)来访问负载均衡服务器,负载均衡服务器通过MASTER/172.28.19.92或BACKUP/172.28.19.93将请求分别转发给真实服务器(Web服务器/172.28.19.100/101/102、邮件服务器/172.28.19.103/104/105、文件服务器/172.28.19.106/107/108)。
负载均衡服务器的MASTER和BACKUP上都必须安装LVS+Keepalived,下面开始安装和配置之旅。
三、LVS安装
Master和Backup都必须安装LVS,安装ipvsadm步骤如下:
(1)依赖包安装
(2)ipvsadm安装
OK,LVS就这么安装好了。
四、Keepalived安装
Master和Backup都必须安装Keepalive,安装步骤如下:
五、配置
1、服务脚本
将Keepalived做成服务启动(MASTER和BACKUP都是必须的),具体步骤如下:
(1)拷贝服务启动脚本
(2)拷贝配置文件
(3)拷贝可执行文件
(4)启动/停止服务
2、配置MASTER
4、配置Realserver
注意脚本中红色部分,每块网卡绑定一个虚拟IP地址,如果绑定多个虚拟IP,则需要为每块网卡创建一个脚本,并且指定lo:X(比如:lo:0,lo:1等),另外,.和/etc/rc.d/funtions之间有空格。
启动keepalived服务,并执行上述脚本,然后用ip a能确认是否有VIP地址。
输入ipvsadm -Ln查看LVS工作状态。
停止MASTER的keepalived服务,BACKUP能接管VIP地址,再次启动MASTER的keepalived服务,MASTER又能再一次接管VIP地址。
如果这些你都搞定了,恭喜你,你已经拥有高可用服务了