Keepalived 工作原理
几个基础知识点
集群
在生产应用过程中,当单台主机的现状无法满足生产要求时,有以下两种解决方法
向上扩展:即提高单台主机的性能,如更换更好的硬件设备或程序来提高服务质量,此种方法投入/产出比值较高
向外扩展:即建立集群,用多台主机共同联合起来代替原来的单台主机从而提高服务质量,生产中一般采用此种方法来解决性能瓶颈的问题。
集群类型
LB(lvs/nginx(http/upstream, stream/upstream)) :负载均衡集群
HA :高可用集群
HP :高性能集群
SPoF: Single Point of Failure ,单点故障
单点故障是实际生产中经常出现的问题,而我们的工作就是消除单点,避免因为单点故障导致集群整体服务瘫痪。
HA 高可用
高可用的对象是服务
高可用的实现方案
vrrp协议的实现
常用解决方案:keepalived
ais:完备HA集群
如:RHCS(cman)
heartbeat corosync
Keepalived
keepalived 是 vrrp 协议的软件实现,原生设计的目的为了高可用ipvs服务
vrrp 协议特性
基于vrrp协议完成地址流动
为vip地址所在的节点生成ipvs规则(在配置文件中预先定义)
为ipvs集群的各RS做健康状态检测
基于脚本调用接口通过执行脚本完成脚本中定义的功能,进而影响集群事务
keepalived 组件
keepalived 组件:
核心组件:
vrrp stack
ipvs wrapper
checkers
控制组件:配置文件分析器
IO复用器
内存管理组件
keepalived 程序介绍
keepalived 的安装
CentOS 6.4+ 随base仓库提供
keepalived 程序环境
- 主配置文件:/etc/keepalived/keepalived.conf
- 主程序文件:/usr/sbin/keepalived
- Unit File:keepalived.service
- Unit File的环境配置文件:/etc/sysconfig/keepalived
配置文件组件部分
TOP HIERACHY , 配置文件分段:
GLOBAL CONFIGURATION
Global definitions
Static routes/addresses
VRRPD CONFIGURATION
VRRP synchronization group(s):vrrp同步组;
VRRP instance(s):每个vrrp instance即一个vrrp路由器;
LVS CONFIGURATION
Virtual server group(s)
Virtual server(s):ipvs集群的vs和rs
keepalived 配置
HA Cluster的配置前提
(1) 各节点时间必须同步;
ntp, chrony
(2) 确保iptables及selinux不会成为阻碍;
(3) 各节点之间可通过主机名互相通信(对KA并非必须);
建议使用/etc/hosts文件实现;
(4) 确保各节点的用于集群服务的接口支持MULTICAST通信;
D类:224-239;