keepalived 高可用故障切换转移原理是什么?
Keepalived 高可用服务对之间的故障切换转移,是通过 VRRP(Virtual Router Redundancy Protocol , 虚拟路由器冗余协
议)来切换的;
在 Keepalived 服务正常工作时,主 Master 节点会不断地向备节点发送(默认多播的方式)心跳消息,用以告诉备
Backup 节点自己还活着,当主 Master 节点发生故障时,就无法发送心跳消息,备节点也就因此无法继续检测到来自
主 Master 节点的心跳了,于是调用自身的接管程序,接管主 Master 节点的 vip,而当主 Master 节点恢复时,备
Backup 节点又会释放 vip,恢复到原来的备角色中。
什么是 VRRP(Virtual Router Redundancy Protocol , 虚拟路由器冗余协议)协
议?
VRRP,全称 Virtual Router Redundancy Protocol,中文名为虚拟路由器冗余协议,VRRP 的出现就是为了解决静态路由
的单点故障问题,VRRP 是通过一种竞选机制来将路由的任务交给某台 VRRP 路由器的。
VRRP 早期是用来解决交换机、路由器等设备单点故障的,下面是交换机、路由的 Master 和 Backup 切换原理描述,
同样适用于 Keepalived 的工作原理。
在一组 VRRP 路由器集群中,有多台路由 VRRP 路由器,但是这么多台物理的机器并不是同时工作的,而是由一台称
为 Master 机器负责路由工作,其他的机器都是 Backup。 Master 角色并非一成不变的,VRRP 会让每个 VRRP 路由
参与竞选,最终获胜的就是 Master 。获胜的 Master 有一些特权,比如拥有虚拟路由器的 IP 地址等,拥有系统资源
的 Master 负责转发给网关地址的包和响应 ARP 请求。
VRRP 通过竞选机制来实现虚拟路由器的功能,所有的协议报文都是通过 IP 多播(Multicast)包(默认的多播地址
224.0.0.18)形式发送的。虚拟路由器由 VRID (范围 0-255)和一组 IP 地址组成,对外表现为一个周知的 MAC 地
址:00-00-5E-00-10-{VRID}。所以,在一个虚拟路由器中,不管谁是 Master,对外都是相同的 MAC 和 IP (称之为
VIP)。客户端主机并不需要因 Master 的改变而修改自己的路由设置。对它们来说,这种切换是透明的。
在一组虚拟路由器中,只有作为 Master 的 VRRP 路由器会一直发送 VRRP 广播包(VRRP Advertisement messages),
此时 Backup 不会抢占 Master。当 Master 不可用时,Backup 就收不到来自 Master 的广播包了,此时多台 Backup
中优先级别最高的路由器会抢占为 Master。这种抢占是非常快速的(可能只有 1 秒甚至更少),以保证服务的连续性。
出于安全性考虑,VRRP 数据包使用了加密协议进行了加密。
keepalive 的原理是什么?
keepalive 是通过 VRRP 协议进行通信的,所以我从 vrrp 开始给您讲起:
1)VRRP,全称 Virtual Router Redundancy Protocol,中文名为虚拟路由冗余协议,VRRP 的出现是为了解决静态路由的
单点故障。
2)VRRP 是通过一种竞选协议机制来将路由任务交给某台 VRRP 路由器的。
3)VRRP 用 IP 组播的方式(默认组播地址(224.0.0.18 )实现高可用对之间通信。
4)工作时主节点发包,备节点接包,当备节点接收不到主节点发的数据包的时候,就启动接管程序接管主节点的资源。
备节点可以有多个,通过优先级竞选,但一般 Keepalived 系统运维工作中都是一对。
5)VRRP 使用了加密协议加密数据,但 Keepalived 官方目前还是推荐用明文的方式配置认证类型和密码。
介绍完了 VRRP,接下来我再介绍一下 Keepalived 服务的工作原理:
Keepalived 高可用对之间是通过 VRRP 进行通信的,VRRP 是通过竞选机制来确定主备的,主的优先级高于备,因此,