keepalived是专门针对LVS设计的一款强大的辅助工具,主要用来提供故障切换(Failover)和健康检查(Health Checking)功能——判断LVS负载调度器、节点服务器的可用性,及时隔离并替换为新的服务器,当故障主机修复后将其重新加入群集。
Keepalived采用VRRP(Virtual Router Redundancy Protocl,虚拟路由冗余协议)热备份协议,以软件的方式实现Linux服务器的多机热备功能。VRRP是针对路由器的一种备份解决方案——由多台路由器组成一个热备组,通过共用的虚拟IP地址对外提供服务;每个热备组内同一时刻只有一台主路由器提供服务,其他路由器处于冗余状态。若当前在线的路由器失效,则其他路由器会自动接替(优先级决定接替顺序)虚拟IP地址,以继续提供服务。如图,
热备组内的每台路由器都可能称为主路由器,虚拟路由器的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高可用群集
案例拓扑图:
两台调度器,两台web服务器,一台NFS共享服务器,一台客户机做测试。
一、配置主调度器
1.安装ipvsadm软件包和支持软件
2.安装keepalived软件包
3.调整/proc响应参数
vim /etc/sysctl.conf
执行sysctl -p 立即生效
4.修改keepalived.conf文件,指定主调度器热备信息、服务器池等相关设置
5.配置完成后,重启keepalived服务
二、配置从服务器
1.安装ipvsadm、keepalived软件包(同主服务器)
2.调整/proc响应参数(同主服务器)
3.修改keepalived.conf文件,指定主调度器热备信息、服务器池等相关设置
与主服务器的不同之处在于:router_id(路由器名称)、state(热备状态)、priority(优先级,数值越大则取得VIP控制权的优先级越高)
4.配置完成后,重启keepalived服务
三、配置NFS共享服务器
1.安装支持软件
2.设置共享目录
3.启动NFS服务
4.查看本机发布的NFS共享目录
5.设置防火墙规则
四、配置wed节点服务器
1.配置虚拟IP地址(IP)
添加VIP本地访问路由
2.调整/proc响应参数
vim /etc/sysctl.conf
执行sysctl -p ,立即生效
3.连接NFS共享服务器(实验时可跳过)
4.为了测试效果明显,给两个web服务器搭建不同的网页
网站内容自定义
然后,开启服务
5.设置防火墙规则
五、客户机进行测试
在客户机的浏览器中,能够通过LVS+keepalived群集的VIP地址(172.16.16.172)正常访问web页面内容,当主、从调度器任何一个失效时,web站点仍然可以访问;只要服务器池有两台及以上的真实服务器可用,就可以实现访问量的负载均衡。