关于keepalived

专为LVS和HA设计的一款健康检查工具
支持故障自动切换(Failover)
支持节点健康状态检查(Health Checking)
官方网站:http://www.keepalived.org/

keepalived概述及安装

keepalived的热备方式
VRRP(Virtual Router Redundancy Protocol,虚拟路由冗余协议)
一主 + 多备,共用同一个IP地址,但优先级不同
Keepalived双机热备

安装及服务控制
-----先安装支持软件:
kernel-devel、openssl-devel、popt-devel、ipvsadm
-----再编译安装keepalived,需指定内核路径
--prefix、--with-kernel-dir=
-----使用Keepalived服务

双机热备应用环境

案例环境
漂移地址:172.16.16.172
主、备服务器:172.16.16.173、172.16.16.174
提供的应用服务:FTP、Web

Keepalived双机热备
配置文件keepalived.conf
全局设置:global_defs { ... }
热备设置:vrrp_instance 实例名称 { ... }
样例文件位于:/etc/keepalived/samples/...

主服务器配置
state:设置本节点状态,MASTER、BACKUP
priority:设置竞选优先级,数值越大优先级越高
virtual_ipaddress { ... }:设置漂移IP地址
……
备用服务器配置
router_id设为自有名称
state设为BACKUP
priority值低于主服务器
—— 其余所有配置均与主服务器相同
启用keepalived服务
主、备机中均启用keepalived服务
其中优先级最高的设备将获得VIP的控制权
VIP地址会由keepalived自动设置
测试双机热备的效果
主、备机均启用FTP、Web服务,内容相同
先后禁用、启用主服务器的网卡,执行以下测试
测试1:使用ping检测172.16.16.172的连通性
测试2:访问ftp://172.16.16.172/,确认可用性及内容变化
测试3:访问http://172.16.16.172/,确认可用性及内容变化
测试4:查看日志文件/var/log/messages中的变化

Keepalived双机热备实验步骤

楼主前言----keeplived是专门针对LVS设计的一款辅助工具,主要功能是实现故障切换,类似于我们以前学习过的HSRP热备份路由协议,HSRP是思科的私有协议,而VRRP是通用协议,都是为了实现故障切换,当一台路由器发生故障的时候,另一台马上接替工作,用户感觉不到服务器发生了问题,而且不会中断服务。我们今天学习的双机热备是就是利用了VRRP虚拟路由冗余协议,和HRSP一样都拥有一个虚拟的ip地址对外提供服务,而不是真正的服务器ip地址,也拥有一台主服务器和多台备份服务器,优先级高的做主路由器,备份服务器处于冗余状态,当主服务器发生故障的时候,从服务器会变成主服务器,当主服务器修好之后,会重新成为主路由器。这里和HSRP不同的是,HSRP需要配置占先权,而这里不用配置,默认都有占先权。

一、实验案例:LVS+Keepalived高可用群集

Keepalived双机热备
实验目标:
本实验的目的是实现双机热备的同时实现负载均衡群集,与上次的实验相比,多了一台从调度器,当主调度器发生故障的时候,从服务器会继续提供调度工作,保证用户的正常访问。
所以做这个实验之前需要把上次的lvs-DR负载均衡群集的实验做完,然后增加一台从调度器,添加两块网卡,配置从调度器和主调度器方法一样,但是在配置keepalived的时候从服务器优先级要设置的比主的低,主服务器修改成为MASTER,从服务器是BACKUP,服务器名称改成不一样的就可以,其他的配置一样。
在这里两台调度器的eth0的内网卡修改为vm1,eth1做外网卡修改为vm8,所以就是说192.168.7.0网段都是vm1,172.16.16.0网段都是vm8,ip地址如上图所示。
最终实验环境需要以下服务器和客户端,一共6台。
Keepalived双机热备
1、配置nfs服务器192.168.7.250
配置方法参考上一个博客,和上次的配置完全一样
Keepalived双机热备
在nfs服务器能看到上图所示内容就说明配置正确

2、配置web节点A
web节点A的内网卡是192.168.7.177,外部网卡是172.16.16.177,整个服务器的配置依然参考上一个(lvs负载均衡群集)即可,除了不用配置eth0:0的地址以外,其它配置完全一样。
Keepalived双机热备
可以挂载到NFS服务器即可,本次实验挂载到了nginx网站主目录下

3、配置web节点B
与web节点A的步骤完全一样,注意外网卡是172.16.16.178,内网卡是192.168.7.178。

4、配置LVS主调度器
依然参考上次的博客即可,配置步骤完全一样。

5、配置LVS从调度器
与主调度器的配置一样

二、配置LVS+Keepalived高可用群集
1、配置主调度器
1)安装支持软件
Keepalived双机热备
2)编译安装Keepalived
Keepalived双机热备
Keepalived双机热备
3)使用Keepalived服务
Chkconfig --add keepalived
Chkconfig keepalived on

4)配置主调度器
Vi /etc/keepalived/keepalived.conf
Keepalived双机热备
Keepalived双机热备
接上图
5)重启keepalived服务
Keepalived双机热备
6)从调度服务器的配置
首先安装keepalived,和主服务器一样,在配置的时候主要有三个地方不一样:优先级99,调度器名称R2,热备状态为BACKUP
Vi /etc/keepalived/keepalived.conf
Keepalived双机热备
Keepalived双机热备
7)重新从服务器的Keepalived服务
Keepalived双机热备

注意:主从配置完成之后请把主从调度器的外网卡断掉,然后再连接上,重新加载一下。

8)测试lvs+keepalived群集
在客户机上访问http://172.16.16.172,可以正常访问,效果如下

Keepalived双机热备

然后把主调度器的外网卡断掉,如果客户端依然可以访问网站,说明成功。

Keepalived双机热备
再次访问网站
Keepalived双机热备
在从调度器上查看网卡配置,可以看到虚拟ip显示了,说明现在从服务器成为了主调度器。
Keepalived双机热备
9)测试负载均衡
为了测试效果明显,把web节点A取消挂载NFS,默认页面为nginx欢迎页面。
Keepalived双机热备
Keepalived双机热备
Web节点b的网页保持不变
Keepalived双机热备
在客户端上访问
Keepalived双机热备

每次访问的网页都不一样,说明负载均衡没问题。

10)测试联通性
在客户机上ping 172.16.16.172 -t,然后断掉主调度器的外网卡,发现断掉一下之后马上又恢复通信,说明今天的实验成功了,当然最关键还是当主服务器故障之后,用户访问网站没有感觉,web节点的网页也要完全一样。