Keepalived高可用模型
一、高可用集群与 VRRP
- 集群类型:负载均衡(LB,如 LVS)、高可用(HA,解决单点故障)、高性能计算(HPC)。
- 可用性指标:SLA 协议,公式
A=MTBF/(MTBF+MTTR)
,常见等级 99.9%(月停机 43.2 分钟)至 99.9999%(2.6 秒)。 - VRRP 协议:虚拟路由冗余协议,通过虚拟路由器(VRID)、VIP、VMAC 实现网关冗余,支持主备 / 主主模式,含优先级、心跳通告、认证机制。
二、Keepalived 部署
1.Keepalived 安装
dnf install keepalived -y
2.修改配置文件
IP地址
224.0.0.44 组播地址
192168.23.50 ka1的主机ip
192.168.23.60 ka2的主机ip
192.168.23.20 rs1的ip
192.168.23.30 rs2的ip
192.168.23.200 虚拟ip
192.168.23.201 虚拟ip
KA1
KA2
vrrp_strict要注释 #严格遵循vrrp协议 #启用此项后以下状况将无法启动服务
3.启用keepalived日志功能
vim /etc/sysconfig/keepalived
KEEPALIVED_OPTIONS="-D -S 6"
vim /etc/rsyslog.conf
local6.* /var/log/keepalived.log
systemctl restart keepalived.service rsyslog.service
三.Keepalived 企业应用示例
1 实现master/slave的 Keepalived 单主架构
见上方配置文件
2. 抢占模式和非抢占模式
默认抢占模式
非抢占模式
rs1优先级高
rs2优先级低
当把ka1关闭时ka2会自动获取虚拟ip,当ka1重启时不会获取虚拟ip
抢占延迟模式
ka1和ka2配置
优先级高的主机恢复后,不会立即抢回VIP,而是延迟一段时间(默认300s)再抢回 VIP
3 VIP单播配置
ka1
ka2
测试
4.Keepalived 通知脚本配置
ka1和ka2都一样
vim /etc/keepalived/mail.sh
vim /etc/mail.rc
keepalived的配置
enable_script_security
script_user root
发送测试邮件
dnf install s-nail sendmail -y
systemctl enable --now sendmail.service
echo test message |mail -s test 13814074602@163.com
当关闭或启动keepalived时,vip所处主机改变会发送邮件
5.master/master 的 Keepalived 双主架构
ka1
ka2
观察(两个或以上VIP分别运行在不同的keepalived服务器,以实现服务器并行提供web访问的目的,提高 服务器资源利用率)
6 .实现IPVS的高可用性
ka1和ka2相同
启动两台真实服务器
绑定VIP至web服务器lo网卡
启动客户端测试
7.双主分别实现httpd和mysql服务的调度
ka配置
ipvsadm策略
rs1和rs2安装mysql。创建用户和提供权限
测试
8.实现其它应用的高可用性 VRRP Script
利用脚本实现主从角色切换
运行脚本时,如果脚本没成功,echo $?时返回1,这时高优先级主机的优先级会降30,vip会被备用主机抢去,返回0的时候会再抢回来
创建脚本
提供权限
chmod +x /mnt/check_lee.sh
ka配置
interval 1#间隔时间,单位为秒,默认1秒
timeout 3#超时时间
weight #默认为0,如果设置此值为负数。#当上面脚本返回值为非0时 #会将此值与本节点权重相加可以降低本节点权重, #即表示fall。 #如果是正数,当脚本返回值为0, #会将此值与本节点权重相加可以提高本节点权重 #即表示 rise.通常使用负值
fall #执行脚本连续几次都失败,则转换为失败,建议设为2以上
rise #执行脚本连续几次都成功,把服务器从失败标记为成功
测试
实现HAProxy高可用
安装haproxy
进入 /etc/haproxy/haproxy.cfg配置
创建脚本并给权限
ka配置
测试结果跟上面差不多