1  概述


keepalived基于vrrp协议实现,是复合组成的软件,具有vrrp功能,定制ipvs等等。原生设计目的为了高可用ipvs服务专门用于解决lvs单独故障的问题,最佳搭档,而且,keepalived可以通过脚本的功能实现其他服务的高可用。 支持SMTP协议,因此当发生报警的时候,可以通过发邮件给对应的管理员进行提醒。(邮件提醒方式可以灵活,达到更及时的效果,如设置139的邮箱,当139邮箱收到邮件时,会发短信提醒。当前主流社交工具是微信,所以绑定qq邮箱,qq邮箱收到邮件后,通过个人的微信会提醒新邮件。)在目录/usr/share/doc/keepalived-1.2.13/samples下有很多配置文件的脚本和检查的模板。可以参考该目录下的文件进行配置。如/usr/share/doc/keepalived-1.2.13/samples/keepalived.conf.vrrp.localcheck配置了本地检查的模板

本文将介绍vrrp协议和keepalive的相关概念


2  vrrp


vrrp协议:VirtualRouter Redundancy Protocol

vrrp主要解决地址的问题,相当于是充当网关了,是虚拟的路由器

.相关术语:

虚拟路由器:Virtual Router

虚拟路由器标识:VRID(0-255),唯一标识虚拟路由器

物理路由器:根据优先级(priority),将机器分为主设备(master)和备用设备(backup

VIPVirtual IP

VMACVirutal  MAC (00-00-5e-00-01-VRID)

.通告:心跳,优先级等;周期性

.工作方式:抢占式,非抢占式

.安全工作:配置认证机制,防止有其他机器假冒,发出更高的优先级,抢占,导致服务异常

认证:有三个方法

a)无认证

b)简单字符认证:预共享密钥

c)MD5lvs不支持该模式

.工作模式:

/备:单虚拟路径器

/主:主/备(虚拟路径器1),备/主(虚拟路径器2.这里是相对不同应用或者服务而言,比如公司发布了两个站点,为http://www.sunny.com http://www.tracy.com 有两台服务器A B ,对于站点http://www.sunny.com而言,A 服务器充当主设备,B服务器充当备用设备。对于http://www.tracy.com站点而言,B服务器充当主设备,A服务器充当备用设备。从而实现双主的工作模式。即实现双主模式,针对不同资源上是双主,同一资源还是主从模型


3  keepalive


keepalive有以下四点功能:

.vrrp协议完成地址流动

.vip地址所在的节点生成ipvs规则(在配置文件中预先定义)

.ipvs集群的各RS做健康状态检测

.基于脚本调用接口通过执行脚本完成脚本中定义的功能,进而影响集群事务,以此支持nginxhaproxy等服务

.组件:

.核心组件三个:

vrrp  stack

ipvs  wrapper

checkers

.控制组件:配置文件分析器

.IO复用器

.内存管理组件

 keepalived架构图