理论·部署LVS+Keepalived高可用集群
一、理解Keepalived实现原理
-
Keepalived使用场景
- 企业应用中,单台服务器承担应用存在单点故障的危险
- 单点故障一旦发生,企业服务将发生中断,造成极大的危害
-
Keepalived工具介绍
- 专为LVS和HA设计的一款健康检查工具
- 支持故障自动切换(Failover)
- 支持节点健康状态检查(Health Checking)
- 官方网站:http://www.keepalived.org
- 专为LVS和HA设计的一款健康检查工具
-
Keepalived实现原理剖析
- Keepalived采用VRRP热备份协议实现Linux服务器的多机热备功能
- VRRP(虚拟路由冗余协议)是针对路由器的一种备份解决方案
- 由多台路由器组成一个热备组,通过公用的虚拟IP地址对外提供服务
- 每个热备组内同时只有一台主路由器提供服务,其他路由器处于冗余状态
- 若当前在线的路由器失效,则其他路由器会根据设置的优先级自动接替虚拟IP地址,继续提供服务
二、掌握Keepalived的部署
2.1 Keepalived使用讲解
2.2 Keepalived安装与启动
- 在LVS群集环境中应用时,也需用到ipvsadm管理工具
- YUM安装Keepalived
- 启动Keepalived服务
2.3 配置Keepalived master服务器
- Keepalived配置目录位于/etc/keepalived/
- Keepalived.conf是主配置文件
- global_defs{…}区段指定VRRP热备参数
- 注释文字以"!"符号开头
- 目录samples,提供了许多配置样例作为参考
- 常用配置选项
- router_id HA_TEST_R1:本路由器(服务器)的名称
- vrrp_instance VI_1:定义VRRP热备实例
- state MASTER:热备状态,MASTER表示主服务器;BACKUP表示备用服务器
- interface ens33:承载VIP地址的物理接口
- virtual_router_id 1:虚拟路由器的ID号,每个热备组保持一致
- priority 100:优先级,数值越大优先级越高(1~100)
- advert_int 1:通告间隔秒数(心跳频率)
- auth_type PASS:认证类型
- auth_pass 123456:密码字串
- virtual_ipaddress{vip}:指定漂移地址(vip),可以有多个,以逗号隔开
- Keepalived备份服务器的配置与master的配置有三个选项不同
- router_id:设为自有名称
- state:设为BACKUP
- priority:值低于主master服务器
- 其他选项与master相同
2.4 Keepalived双机热备效果测试
- 测试双机热备的效果
- 主、备机军启用web服务,设置不同内容
- 先后禁用、启用主服务器的网卡
- 执行的测试
- 测试1:使用ping检测虚拟IP的连通性
- 测试2:访问http://VIP//,确认可用性及内容变化
- 测试3:查看日志文件/var/log/messages中的变化
三、掌握LVS+Keepalived高可用集群部署
- Keepalived的设计目标是构建高可用的LVS负载均衡群集,可以调用ipvsadm工具来创建虚拟服务器、管理服务器池,而不仅仅用作双机热备
- 使用Keepalived构建LVS群集更加简便易用
- 主要优势
- 对LVS负载调度器实现热备切换,提高可用性
- 对服务器池中的节点进行健康检查,自动移除失效节点,恢复后再重新加入
3.1 配置主调度器
- 全局配置、热备配置
- 应为主、从调度器实现热备功能,漂移地址使用LVS群集的VIP地址
- web服务器池配置
- 在Keepalived的热备配置基础上,添加"virtual_server VIP 端口{…}"区段来配置虚拟服务器
- 包括对负载调度算法、群集工作模式、健康检查间隔、真实服务器地址等参数的设置
- 重新启动Keepalived服务
3.2 配置web节点服务器
- 在DR模式的LVS集群中,除了需要调整/proc系统的ARP响应参数以外,还需要为虚拟接口lo:0配置VIP地址,并添加一条到VIP的本地路由
3.3 测试群集
- 客户机浏览器中,能够通过群集的VIP地址正常访问web页面内容
- 当主、从调度器任何一个失效时,web站点任然可以访问
- 只要服务器池有两台及以上的真实服务器可用,就可以实现访问量的负载均衡
- 通过主、从调度器的/var/log/messages日志文件,可以跟踪故障切换过程
b页面内容 - 当主、从调度器任何一个失效时,web站点任然可以访问
- 只要服务器池有两台及以上的真实服务器可用,就可以实现访问量的负载均衡
- 通过主、从调度器的/var/log/messages日志文件,可以跟踪故障切换过程
- 可执行"ipvsadm -ln"、"ipvsadm -lnc"等操作命令查看负载分配情况