keepalived介绍:
专为LVS和HA设计的一款健康检查工具
- 支持故障自动切换(Failover)
- 支持节点健康状态检查(Health Checking)
判断LVS负载调度器、节点服务器的可用性,当master主机出现故障及时切换到backup节点保证业务正常,当master故障主机恢复后将其重新加入集群并且业务重新切换回master节点
keepalived是一个基于VRRP协议来实现的LVS服务高可用,可以解决静态路由出现的单点故障问题
集群要满足3个特点
- 负载均衡
- 健康检查
- 故障切换
健康检查对与节点服务器:
如果发现有故障的节点就会将其隔离或者剔除集群,待其恢复后再重新加入到集群当中
健康检查对于负载均衡器:
会定时检查主的状态(包括主机和服务的状态),如果主故障就自动切换到备机上;待主的恢复再重新让其去承载业务请求
keepalived实现的原理:
keepalived采用VRRP热备份协议实现Linux服务器的多机热备份功能
keepalived体系主要模块及其作用:
- core模块:为keepalived核心,负责主进程的启动、维护及全局配置文件的加载和解析
- vrrp模块:是来实现VRRP协议的
- check模块:负责健康检查,常见的方式有端口检查及URL检查
VRRP(虚拟路由冗余协议)
- 是针对路由器的一种备份解决方案
- 由多台路由器组成一个热备份组,通过共用的虚拟IP地址对外提供服务
- 每个热备份组内同时只有一台主路由器提供服务,其它路由器处于冗余状态
- 若当前在线的路由器失效,则其他路由器会根据设置的优先级自动接替虚拟IP地址,继续提供服务
- 可以实现一主多备的功能,从而解决单点故障
- 会把多台路由器组成一个虚拟路由器组vrid,VRRP会生成一个虚拟路由器(包含虚拟IP和虚拟mac)
- 局域网内的用户不关心哪个是主哪个是备,他们只用虚拟路由器的虚拟IP作为他们的网关
- 实际上虚拟IP是承载在master路由器,也就是说实际上的数据包是通过master进行转发
- master backup只是通过优先级来决定哪个是master, 优先级最大的那台就是master
- backup只是用来监听master定时发来的vrrp报文,如果超时未收到master发来的vrrp报文backup就会抢占master地位,虚拟IP也会一起漂移到backup上
LVS部署
1、配置负载调度器(主备相同)
(1)准备
(2)配置keepalived(主 备DR 服务器上都要设置)
(3)启动ipvsadm服务(主备)
(4)调整proc响应参数,关闭Linux内核的重定向参数响应
2、配置节点服务器
3、访问
Keepalived通过什么判断那台主机为主服务器,通过什么方式配置浮动IP?
keepalived首先做初始化检查state状态,master为主服务器,backup为备服务器
然后再对比所有服务器的priority,谁的优先级高谁是最终的主服务器
优先级高的服务器会通过ip命令为自己的电脑配置一个提前定义好的浮动IP地址
keepalived脑裂现象 是如何产生的 ?那又如何解决?
在某一次故障切换后,原来master并没有真正的挂掉,VIP还在
而backup则已经抢占master地位,也在本地配置了VIP
if ping backup 的 ip
ping不通 2种可能 中间链路断了 backup 宕机
if ssh 跳到某一台节点服务器上ping backup ,如果也ping不通 则判断backup宕机,如果ping通 则说明是中间链路的问题