keepalived是专门针对LVS设计的一款强大的辅助工具,主要用来提供故障切换(Failover)和健康检查(Health  Checking)功能——判断LVS负载调度器、节点服务器的可用性,及时隔离并替换为新的服务器,当故障主机修复后将其重新加入群集。

Keepalived采用VRRP(Virtual  Router  Redundancy  Protocl,虚拟路由冗余协议)热备份协议,以软件的方式实现Linux服务器的多机热备功能。VRRP是针对路由器的一种备份解决方案——由多台路由器组成一个热备组,通过共用的虚拟IP地址对外提供服务;每个热备组内同一时刻只有一台主路由器提供服务,其他路由器处于冗余状态。若当前在线的路由器失效,则其他路由器会自动接替(优先级决定接替顺序)虚拟IP地址,以继续提供服务。如图,

2018-02-02_140556.png

热备组内的每台路由器都可能称为主路由器,虚拟路由器的IP地址(VIP)可以在热备组内的路由器之间进行转移,所以也称为漂移IP地址。使用keepalived时,漂移地址的实现不需要手动建立虚接口配置文件。而是由keepalived根据配置文件自动管理。

LVS+Keepalived高可用群集

    keepalived的设计目标是构建高可用的LVS负载均衡群集,可以调用ipvsadm工具来创建虚拟服务器,管理服务器池,而不仅仅用作双机热备。使用keepalived群集更加简单易用,主要优势体现在:对LVS负载调度器实现热备切换,提高可用性;对服务器池中的节点进行健康检查,自动移除失效节点,恢复后再重新加入。

   使用keepalived构建LVS群集时,也需要用到ipvsadm管理工具,但大部分工作会由keepalived自动完成,不需要手动执行ipvsadm(除了查看和监控群集以外)。

   keepalived服务的配置目录位于/etc/keepalived/。其中keepalived.conf是主配置文件;另外包括一个子目录 sample/,提供了许多配置样例作为参考。在kkepalived的配置文件中,使用“global_defs {...}”区段指定全局参数,使用“vrrp_instance  实例名称 {...} ”区段指定VRRP热备参数,注释文字以“!”符号开头。

本案例我们以DR模式的LVS群集为基础,构建LVS+keepalived高可用群集

案例拓扑图:

2018-02-02_142210.png

两台调度器,两台web服务器,一台NFS共享服务器,一台客户机做测试。

一、配置主调度器

1.安装ipvsadm软件包和支持软件

2018-02-02_143800.png

2.安装keepalived软件包

2018-02-02_144319.png

2018-02-02_144426.png

2018-02-02_145136.png

3.调整/proc响应参数

vim  /etc/sysctl.conf

2018-01-31_204752.png

执行sysctl  -p 立即生效

4.修改keepalived.conf文件,指定主调度器热备信息、服务器池等相关设置

2018-02-02_145224.png

2018-02-02_145919.png

2018-02-02_150019.png

5.配置完成后,重启keepalived服务

2018-02-02_150327.png

二、配置从服务器

1.安装ipvsadm、keepalived软件包(同主服务器)

2.调整/proc响应参数(同主服务器)

3.修改keepalived.conf文件,指定主调度器热备信息、服务器池等相关设置

与主服务器的不同之处在于:router_id(路由器名称)、state(热备状态)、priority(优先级,数值越大则取得VIP控制权的优先级越高)

2018-02-02_145224.png

2018-02-02_151044.png

4.配置完成后,重启keepalived服务

三、配置NFS共享服务器

1.安装支持软件

2018-01-31_193306.png

2.设置共享目录

2018-01-31_194120.png

2018-01-31_193708.png

3.启动NFS服务

2018-01-31_194843.png

4.查看本机发布的NFS共享目录

2018-01-31_195005.png

5.设置防火墙规则

2018-01-31_200233.png

四、配置wed节点服务器

1.配置虚拟IP地址(IP)

2018-01-31_210009.png

2018-01-31_210040.png

2018-01-31_210110.png

添加VIP本地访问路由

2018-01-31_210147.png

2018-01-31_210256.png

2.调整/proc响应参数

vim  /etc/sysctl.conf

2018-01-31_210458.png

执行sysctl  -p ,立即生效

3.连接NFS共享服务器(实验时可跳过)

2018-01-31_200428.png


4.为了测试效果明显,给两个web服务器搭建不同的网页

2018-01-31_202854.png

网站内容自定义

然后,开启服务

2018-01-31_202935.png

5.设置防火墙规则

2018-01-31_203905.png

五、客户机进行测试

在客户机的浏览器中,能够通过LVS+keepalived群集的VIP地址(172.16.16.172)正常访问web页面内容,当主、从调度器任何一个失效时,web站点仍然可以访问;只要服务器池有两台及以上的真实服务器可用,就可以实现访问量的负载均衡。