一 .Keepalived 简介
Keepalived :高可用的工具
1. Keepalived工具介绍
2. 工作原理:
-
Keepalived 是一个基于VRRP协议来实现的IVS服务高可用方案,可以解决静态路由出现的单点故障问题。
-
判断 LVS 负载调度器、节点服务器的可用性,当 master 主机出现故障及时切换到backup 节点保证业务正常,当 master故障主机恢复后将其重新加入群集并且业务重新切换回 master 节点。
3. 下载keepalived 软件包官网
官方网站: www.keepalived.org/
4. 普及
一个合格的集群应该具备以下几个特性
1. 负载均衡
提高响应能力,实现高并发,高负载能力,减少延迟
代表 :LVS Nginx
2. 健康检查(探针)能力
检查节点服务器和调度器的健康
for 调度器/节点服务器 keepalived Heartbeat
*检查方法
-
1.发送心跳消息 ping / pong
-
2.TCP端口检查,向一台主机,IP:PORT 发起TCP连接
-
3.HTTP URL 检查 向一个主机的 http://IP:port/URL路径 发送HTTP GET请求方法,主机响应返回 2xx 3xx 状态码则认为健康检查正常,如响应返回 4xx 5xx 状态码则认为健康检查异常。
3. 故障转移能力
二 . Keepalived实现原理剖析
- Keepalived采用VRRP热备份协议实现
- Linux服务器的多机热备功能
1. 原理剖析
VRRP(虚拟路由元余协议)
是针对路由器的一种备份解决方案
Keepalived案例讲解
双机热备
的故障切换是由虚拟IP地址的漂移
来实现,适用于各种应用服务器
实现基于Web服务的双机热备
-
漂移地址: 192.168.10.72
-
主、备服务器:192.168.10.73、192.168.10.74
-
提供的应用服务:Web
三. 实现主备漂移实验部署
Keepalived体系主要模块及其作用:
keepalived体系架构中主要有三个模块,分别是core、check和vrrp。
-
core模块:为keepalived的核心,负责主进程的启动、维护及全局配置文件的加载和解析。
-
vrrp模块:是来实现VRRP协议的。(调度器之间的健康检查和主备切换)
-
check模块:负责健康检查,常见的方式有端口检查及URL检查。(节点服务器的健康检查)
工作原理
-
Keepalived 是一个基于VRRP协议来实现的IVS服务高可用方案,可以解决静态路由出现的单点故障问题。
-
在一个WS服务集群中通常有主服务器(MSTER)和备份服务器(BACKUP)两种角色的服务器,但是对外表现为一个虚拟IP (P),主服务器会发送VRP通告信息给备份服 各器,当备份服务器收不到VRRP消息的时候,即主服务器异常的时候,备份服务器就会接管虚拟IP,继续提供服务,从而保证了高可用性。
1. 实验操作过程
Keepalived通过什么判断哪台主机为主服务器,通过什么方式配置浮动IP?
答案: Keepalived首先做初始化先检查state状态,master为主服务器,backup为备服务器然后再对比所有服务器的prioritv,谁的优先级高谁是最终的主服务器。优先级高的服务器会通过ip命令为自己的电脑配置一个提前定义好的浮动IP地址。
keepalived的抢占与非抢占模式:
抢占模式即MASTER从故障中恢复后,会将VIP从BACKUP节点中抢占过来。非抢占模式即MASTER恢复后不抢占BACKUP升级为MASTER后的VIP 非抢占式俩节点state必须为bakcup,且必须配置nopreempt 注意:这样配置后,我们要注意启动服务的顺序,优先启动的获取master权限,与优先级没有关系了
四. LVS+Keepalived实现部署
五.脑裂
1. 脑裂现象:
主服务器和备服务器同时拥有 VIP
2. 脑裂原因:
因为主服务器和备服务器之间的通信链路中断,导致备服务器无法正常收到主服务器发送的VRRP心跳报文
3. 脑裂的解决:
关闭主服务器或者备服务器其中一个的keepalived服务
脑裂的预防:
1)主服务器与备服务器之间添加双通信链路
2)在主服务器上定义运行脚本判断与备服务器通信链路是否中断,如果中断则自行关闭keepalived服务
3)利用第三方监控软件检测是否发生脑裂故障,如果发生则通过监控软件关闭主或者备服务器上的keepalived服务
六.
七. 课后练习题
keepalived
基于什么协议 ?
怎么选举master?
怎么生成VIP?-怎么故障切换?
抢占模式和非抢占模式是如何工作的?
如何配置非抢占模式 ?
脑裂现象如何?
产生脑裂的原因?
通信链路中断
防火墙没关
脑裂的解决方法?
脑裂的预防方案?
通过脚本检测主备链路中断
第三方监控软件
如何健康检查调度器和节点服务器?
如果调度器用的·LVS