高可用集群KEEPALIVED
一.高可用集群
1.1 集群类型
- LB:Load Balance 负载均衡
LVS/HAProxy/nginx(http/upstream, stream/upstream)
- HA:High Availability 高可用集群
数据库、Redis
- SPoF: Single Point of Failure,解决单点故障
HPC:High Performance Computing 高性能集群
1.2 系统可用性
SLA : Service-Level Agreement 服务等级协议(提供服务的企业与客户之间就服务的品质、水准、性能等方面所达成的双方共同认可的协议或契约)A = MTBF / (MTBF+MTTR )99.95%:(60*24*30)*(1-0.9995)=21.6 分钟 # 一般按一个月停机时间统计指标 : 99.9%, 99.99%, 99.999%,99.9999%
1.3 系统故障
- 硬件故障:设计缺陷、wear out(损耗)、非人为不可抗拒因素
- 软件故障:设计缺陷 bug
1.4 实现高可用
提升系统高用性的解决方案:降低
MTTR- Mean Time To Repair(
平均故障时间
)
解决方案:建立冗余机制
- active/passive 主/备
- active/active 双主
- active --> HEARTBEAT --> passive
- active <--> HEARTBEAT <--> active
1.5.VRRP:Virtual Router Redundancy Protocol
虚拟路由冗余协议
,
解决静态网关单点风险
- 物理层:路由器、三层交换机
- 软件层:keepalived
1.5.1 VRRP 相关术语
- 虚拟路由器:Virtual Router
- 虚拟路由器标识:VRID(0-255),唯一标识虚拟路由器
- VIP:Virtual IP
- VMAC:Virutal MAC (00-00-5e-00-01-VRID)
- 物理路由器:
- master:主设备
- backup:备用设备
- priority:优先级
1.5.2 VRRP 相关技术
通告:心跳,优先级等;周期性
工作方式:抢占式,非抢占式
安全认证:
- 无认证
- 简单字符认证:预共享密钥
- MD5
工作模式:
- 主/备:单虚拟路由器
- 主/主:主/备(虚拟路由器1),备/主(虚拟路由器2)
1.6Keepalived 相关文件
- 软件包名:keepalived
- 主程序文件:/usr/sbin/keepalived
- 主配置文件:/etc/keepalived/keepalived.conf
- 配置文件示例:/usr/share/doc/keepalived/
- Unit File:/lib/systemd/system/keepalived.service
- Unit File的环境配置文件:/etc/sysconfig/keepalived
WarningRHEL7 中可能会遇到一下 bugsystemctl restart keepalived # 新配置可能无法生效systemctl stop keepalived;systemctl start keepalived # 无法停止进程,需要 kill 停
二、 全局配置
! Configuration File for keepalivedglobal_defs {notification_email {594233887@qq.com#keepalived 发生故障切换时邮件发送的目标邮箱,可以按行区分写多个timiniglee-zln@163.com}notification_email_from keepalived@KA1.timinglee.org # 发邮件的地址smtp_server 127.0.0.1 # 邮件服务器地址smtp_connect_timeout 30 # 邮件服务器连接 timeoutrouter_id KA1.timinglee.org #每个keepalived主机唯一标识# 建议使用当前主机名,但多节点重名不影响vrrp_skip_check_adv_addr # 对所有通告报文都检查,会比较消耗性能#启用此配置后,如果收到的通告报文和上一个报文是同一 #个路由器,则跳过检查,默认值为全检查vrrp_strict # 严格遵循 vrrp 协议# 启用此项后以下状况将无法启动服务 :#1. 无