一个纯净的实验环境是初学者完成实验部署的基础
一.keepalived概念
1.介绍
Keepalived的作用是检测服务器的状态,
如果有一台web服务器宕机,或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工作正常后Keepalived自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器。
vrrp 协议的软件实现,原生设计目的为了高可用 ipvs服务
官网:http://keepalived.org/
功能:
基于vrrp协议完成地址流动
为vip地址所在的节点生成ipvs规则(在配置文件中预先定义)
为ipvs集群的各RS做健康状态检测
基于脚本调用接口完成脚本中定义的功能,进而影响集群事务,以此支持nginx、haproxy 等
2.系统可用性
SLA:Service-Level Agreement 服务等级协议(提供服务的企业与客户之间就服务的品质、水准、性能等方面所达成的双方共同认可的协议或契约)
A = MTBF / (MTBF+MTTR)
指标 :99.9%, 99.99%, 99.999%,99.9999%
3.实现高可用
提升系统高用性的解决方案:降低MTTR- Mean Time To Repair(平均故障时间) 解决方案:建立冗余机制
active/passive 主/备
active/active 双主
active --> HEARTBEAT --> passive
active <–> HEARTBEAT <–> active
HEARTBEAT:(心跳)隔一段时间向组播地址发送通告信息以证明服务器正常工作,如果没有通告信息就会将虚拟IP地址迁移到可以
正常工作的主机上
二.keepalived部署
1.实验环境(linux7.9)
2.安装keepalived软件
主配置文件:/etc/keepalived/keepalived.conf
3.ka1
全局设置
设置VIP
查看VIP
4.ka2
与ka1配置一样只需要改成从服务器
关闭ka1的keepalived在ka2上查看VIP:
三.keepalived高级使用
1.独立子配置文件(ka1和ka2是一样的配置)
当生产环境复杂时, /etc/keepalived/keepalived.conf 文件中内容过多,不易管理将不同集群的配置,比如:不同集群的VIP配置放在独立的子配置文件中利用include 指令可以实现包含子配置文件
创建独立子配置文件目录
要在有文件/etc/keepalived/conf.d/*.conf
2.启动keepalived日志功能
vim /etc/sysconfig/keepalived
设置日志记录的规则: vim /etc/rsyslog.conf
启动时有先后顺序,否则不会生成/var/log/keepalived.log文件:
3.抢占模式
抢占模式: 默认为抢占模式preempt,即当高优先级的主机恢复在线后,会抢占低先级的主机的master角色,这样会使vip在KA主机中来回漂移,造成网络抖动。
4.非抢占模式
设置为非抢占模式 nopreempt ,即高优先级主机恢复后,并不会抢占低优先级主机的master角色 非抢占模块下,如果原主机down机,VIP迁移至的新主机, 后续也发生down时,仍会将VIP迁移回原主机
要关闭 VIP抢占,必须将各 keepalived 服务器state配置为BACKUP
5.延时抢占模式
抢占延迟模式,即优先级高的主机恢复后,不会立即抢回VIP,而是延迟一段时间(默认300s)再抢回 VIP
6.VIP单播配置
默认keepalived主机之间利用多播相互通告消息,会造成网络拥塞,可以替换成单播,减少网络流量
启用 vrrp_strict 时,不能启用单播
将ka1上的keepalived停掉,在ka2上测试,因为设置单播后是有vip的主机向没有vip的主机发送
7.邮件通知脚本
安装邮件软件
查看配置文件并编写
编写通知脚本
编辑keepalived配置文件
8.双主架构
即将两个或以上VIP分别运行在不同的keepalived服务器,以实现服务器并行提供web访问的目的,提高服务器资源利用率