目录
一 高可用集群
1.1 集群类型
1.2 实现高可用
1.3 vrrp(Virtual Router Redundancy Protocol)
二 keepalived 部署
2.1 简介
2.2 keepalived 架构
2.3 keepalived 搭建
三 keepalived 应用示例
3.1 实现master/slave的keepalived单主架构
3.2 抢占技术和非抢占技术
3.2.1 非抢占模式(nopreempt)
3.2.2 抢占延时模式(preempt_delay)
3.3 VIP单播配置
3.4 keepalived 通知脚本配置
3.5 master/master的keepalived双主架构
3.6 实现ipvs的高可用性
一 高可用集群
1.1 集群类型
- LB(负载均衡类):由多个主机组成,每个主机只负责一部分访问,提高系统的响应能力,尽可能快的处理访问,以低延迟为目的,做到高并发,高负载。
- HA(高可用类):提高系统的可靠性,尽可能避免服务中断,一般采用主备的方式,在出现问题能自动快速进行切换,以可靠性为目标。
- HPC(高性能类):提高cpu运算效率,扩展硬件资源,一般指超级计算机这一类,例如云计算。
1.2 实现高可用
提升系统高可用解决方案:降低平均故障时间
解决方案:建立冗余机制
active/passive 主备
在这种模式只有一个节点(主节点)处于活动状态,当主节点出现问题时,备节点被激活接管主节点的工作
active/active 双主
两个节点都处于活动状态,他们分别处理不同的数据集,分担不同的工作负载
active --> HEARTBEAT --> passive
主备模式的变体,其中活动的主节点定期向备节点发送心跳信号(HEA),备份节点在一定时间内没有接收到心跳信号,默认主节点发生异常,接管主节点工作
active HEARTBEAT active
在这种模式下,两个活动节点互相发送心跳检测,监督对方状态,如果其中一个节点发生故障,另外一个节点承担起对方节点的工作
1.3 vrrp(Virtual Router Redundancy Protocol)
VRRP:Virtual Router Redundancy Protocol 虚拟路由冗余协议,解决静态网关单点风险
vrrp相关术语:
虚拟路由器:Virtual Router
虚拟路由器标识:VRID(0-255),唯一标识虚拟路由器
VIP:Virtual IP
VMAC:Virutal MAC (00-00-5e-00-01-VRID)
物理路由器:
master:主设备
backup:备用设备
priority:优先级
vrrp相关技术:心跳 优先级 抢占式 非抢占式
二 keepalived 部署
2.1 简介
它主要通过虚拟路由器冗余协议(VRRP)来实现故障转移和负载均衡。Keepalived 能够检测服务器的状态,确保服务的持续可用性。
1.监控服务器的健康状况:通过各种方式(如网络连接、服务端口检测等)来判断服务器是否正常运行
2.实现虚拟 IP(VIP)的漂移:当主服务器出现故障时,自动将 VIP 切换到备份服务器上,使得服务能够不间断地对外提供
3.与其他服务集成:能够与常见的服务(如 HTTPD、Nginx 等)配合工作,增强服务的可靠性。
4.配置简单灵活:通过修改配置文件,可以轻松地调整 Keepalived 的参数和行为。
2.2 keepalived 架构
用户空间核心组件:
vrrp stack:VIP消息通告
checkers:监测real server
system call:实现 vrrp 协议状态转换时调用脚本的功能
SMTP:邮件组件
IPVS wrapper:生成IPVS规则
Netlink Reflector:网络接口
WatchDog:监控进程
控制组件:提供keepalived.conf 的解析器,完成Keepalived配置
IO复用器:针对网络目的而优化的自己的线程抽象
内存管理组件:为某些通用的内存管理功能(例如分配,重新分配,发布等)提供访问权限
2.3 keepalived 搭建
keepalived 环境准备 | |
实验要求 | chrony/ntp时间同步 关闭防火墙和selinux |
相关软件 | 软件包名:keepalived 主程序文件:/usr/sbin/keepalived 主程序文件:/usr/sbin/keepalived 配置文件示例:/usr/share/doc/keepalived/ |
keepalived 安装:
搭建测试环境
下载启动keepalived,两台配置一样
然后改名字,另外一台一样
三 keepalived 应用示例
3.1 实现master/slave的keepalived单主架构
配置文件拷贝到ka2上,ka2为备份设备,只需到ka2里做稍微修改
然后注释点strict重启keepalived服务 在向rs配置临时ip
ka1优先级为100,ka2为80,并且keepalived默认为抢占,所以效果应为,ka1断了之后,往ka2浮动vip
远程登陆ka1停掉服务,看结果是否ip消失
然后查看ka2的,如果有的话证明设备故障切换成功,如果重启ka1的话,vip返回,即配置成功,并且证明keepalived默认是抢占的
重启ka1服务
vip返回
3.2 抢占技术和非抢占技术
3.2.1 非抢占模式(nopreempt)
非抢占模式,意思就是当ka1挂掉之后,vip切换到ka2上,然后等ka1恢复之后,不能立即切换到ka1上,只能等ka2挂掉之后,才能切换,目的是为了,反复切换导致网络抖动,不稳定
- 需要将服务器,均配置为backup状态,然后重启,再到backup上加上nopreempt选项
- vip在ka1上,此时断掉服务
- vip飘到ka2上,按照对实验的设想,重启ka1之后,应该不会回到ka1上,如果还在ka2就代表试验成功
3.2.2 抢占延时模式(preempt_delay)
- 配置ka1,ka2的延迟计划
- 重启服务之后,一段时间完,抢vip地址
3.3 VIP单播配置
- 在ka1和ka2上配置文件里面加上单播的配置,举例ka1,ka2类似
- 实验结果展现
3.4 keepalived 通知脚本配置
- 创建通知脚本
- 安装邮件发送工具
dnf install mailx -y #进入配置文件,进行配置 vim /etc/mail.rc
-
结果展示
3.5 master/master的keepalived双主架构
- 在10和20主机分别写入互为主备的规则
- 测试
3.6 实现ipvs的高可用性
1 两台rs主机安装httpd
2 临时配置ip地址,往默认界面加内容,在重启,rs2也一样
3 分别做arp抑制,rs2同样操作
4 ka1和ka2配置主机策略
5 检查最终结果