PostgreSQL Keepalived 简介

1 背景知识

本文主要介绍Keepalived工作原理、模型、架构。

2 Keepalived工作原理

  1. Keepalived可提供 VRRP 以及 health-check 功能。

  2. 可以只用它提供双机浮动的vip(VRRP虚拟路由功能),这样可以简单实现一个双机热备高可用功能。

  3. Keepalived是以VRRP虚拟路由冗余协议为基础实现高可用的。

  4. VRRP虚拟路由冗余协议可以认为是实现路由器高可用的协议,即将N台提供相同功能的路由器组成一个路由器组,这个组里面有一个master和多个backup,master上面有一个对外提供服务的vip(该路由器所在局域网内其他机器的默认路由为该vip),

  5. Master 会发组播,当 standby 收不到VRRP包时,就认为 Master 已经宕机。

  6. 这时就需要根据VRRP的优先级来选举一个 standby 当master。可以保证路由器的高可用。

  7. 这是keepalived 的官方文档下载地址

3 Keepalived 工作的参考模型

Keepalived工作在TCP/IP参考模型的三层、四层、五层(物理层,链路层):

  1. 网络层(3):Keepalived通过ICMP协议向服务器集群中的每一个节点发送一个ICMP数据包(有点类似与Ping的功能),如果某个节点没有返回响应数据包,那么认为该节点发生了故障,Keepalived将报告这个节点失效,并从服务器集群中剔除故障节点。
  2. 传输层(4):Keepalived在传输层里利用了TCP协议的端口连接和扫描技术来判断集群节点的端口是否正常,比如对于常见的WEB服务器80端口。或者SSH服务22端口,Keepalived一旦在传输层探测到这些端口号没有数据响应和数据返回,就认为这些端口发生异常,然后强制将这些端口所对应的节点从服务器集群中剔除掉。
  3. 应用层(5):Keepalived的运行方式也更加全面化和复杂化,用户可以通过自定义Keepalived工作方式,例如:可以通过编写程序或者脚本来运行Keepalived,而Keepalived将根据用户的设定参数检测各种程序或者服务是否允许正常,如果Keepalived的检测结果和用户设定的不一致时,Keepalived将把对应的服务器从服务器集群中剔除。

4 Keepalived 运行架构

image

5 Keepalive 配置文件详解

请参考keepalived 配置文件参数详解_keepalived 启动参数_誠寜的博客-CSDN博客