Keepalived介绍
Keepalived是一款用于保障服务高可用性的软件,它能自动侦测服务器状态、移出
故障服务器、切换到正常运行的服务器、添加恢复后的服务器到集群中。
n 实现的基本思路
Keepalived是基于VRRP协议的实现,主要用在IP层、TCP层和应用层。
1:IP层:Keepalived会定期向服务器群中的服务器发送一个数据包(既Ping),如果发现IP
地址没有激活,Keepalived便报告这台服务器失效,并将它从服务器群中剔除。
2:TCP层:类似IP层,只不过这里是检测服务的端口
3:应用层:Keepalived将根据用户的设定来检查服务程序的运行是否正常
  VRRP协议解决的问题
在现实网络中,两台服务器之间通常是没有直接连接的,那么A机如何选择到达B机
的路由呢?通常的解决方案有两种:
1:在A机上使用动态路由协议(问题:管理维护成本、是否支持等)
2:在A机上配置静态路由(问题:路由器或默认的网关成单点、需重启网络等)
VRRP协议的目的就是解决路由单点故障问题。

 VRRP协议1:
VRRP (Virtual Router Redundancy Protocol),虚拟路由冗余协议,是解决局域网
中配置静态网关出现单点故障的路由协议。
在具有多播或广播能力的局域网中,借助VRRP能在某台路由器出现故障时仍然提供
高可靠的缺省链路,有效避免单一链路发生故障后网络中断的问题,而无需修改动态路由
协议、路由发现协议等配置信息。
名词解释
1:VRRP路由器:物理的路由器,上面运行了实现VRRP协议的VRRPD程序
2:VRRP虚拟路由器:逻辑上的路由器,通常由多台路由器组成,可以看成是一个VRRP路由器
池,对外看起来是一个路由器,就是那个虚拟的路由器,其标识称为VRID(范围是0-255)
3:Master和Backup:一个虚拟路由里面的多个路由器,并不是同时工作的,工作的那台称为
Master,其他的就是Backup。

 对VRRP协议的理解
1:VRRP是一种选择协议,它可以把一个虚拟路由器的职责,动态转交给Master进行处理
2:VRRP是一种路由容错协议,也可以叫做备份路由协议。当Master宕掉后,虚拟路由将启用
备份路由器,从而实现网络通信可用

  VRRP协议工作机制
1:路由器开启VRRP功能后,会根据优先级确定出Master
2:Master会通过IP多播包的形式来发送公告报文,Backup会接收到这些报文
3:如果是抢占式:Backup会跟发送报文的Master比较优先级,如果Backup优先级更
高,那么Backup会抢占成为Master,而Master会让位成为Backup
4:如果是非抢占式:只要Master没有故障,不会出现新的Master。
5:如果备份路由器在连续三个公告间隔内收不到VRRP公告,或收到优先级为0的公
告的话,就会按照竞选协议来选出新的Master,以保证服务的可用
  VRRP负载分担
在实际组网中一般会进行VRRP负载分担方式的设置。负载分担方式是指多
台路由器同时承担业务,避免设备闲置。
同一台路由器可以加入多个备份组,在不同组中有不同的优先级,使得该
路由器可以在一个组中作为Master,在其他的备份组中作为Backup

keepalived安装:

下载并安装IPVS
Keepalived需要IPVS,首先要确保安装了IPVS(IP虚拟服务器,IP
Virtual Server,是一种提供负载平衡功能的技术)。
1:检查是否安装了IPVS:在任意路经下执行ipvsadm命令
2:去http://www.linuxvirtualserver.org/software/ipvs.html下载相应的包,注
意要跟你的linux内核版本匹配。察看linux版本的命令:cat /proc/version
3:创建一个连接文件,其命令为:ln -sv /usr/src/kernels/2.6.18-194.el5-
i686/ /usr/src/linux,注意一定要与当前的运行的内核相一致,因为
usr/src/kernels目录下可多个目录。如果不创建这个连接文件,在编译时会出
错,从而不能继续进行安装。
4:然后make , make install ,ipvsadm命令会被安转到/sbin下面
5:在任意路经下执行ipvsadm命令,检查是否正确安装

下载并安装Keepalived,去http://www.keepalived.org/下载最新的源码包
1:解压包,tar zvxf,然后进入到解压的文件夹里面
2:第一步:./configure --prefix=/usr/common/keepalived
(1)如果出现No SO_MARK declaration in headers 这样的错误提示,可以在命令上添加--
disable-fwmark
(2)如果要使用lvs,还需要指定内核的目录,也就是添加:--with-kernel-dir=具体的路
经,以指定使用内核源码里面的文件
第二步:make 第三步:make install
3:验证安装
(1)到sbin下,执行keepalived 命令
(2)察看进程,ps -ef | grep keepalived ,应该有三种进程,父进程(内存管理,监控子
进程),健康检查子进程,VRRP子进程
(3)察看内核模块ip_vs是否装载到内核空间,lsmod | grep ip_vs
(4)执行tail –f /var/log/messages来查看日志
(5)执行pkill keepalived来关闭keepalived