高可用集群KEEPALIVED

目录

关于高可用集群的知识点

集群类型

什么是高可用集群

高可用的实现

虚拟路由冗余协议(VRRP)

keepalived 简介

Keepalived的主要功能

Keepalived的相关文件

Keepalived实验

keepalived基本配置

启用keepalived日志并自定义存放位置

实现独立子配置文件

keppalived的抢占模式和非抢占模式

​编辑VIP单播配置

 双主模式的实现

Keepalived 通知脚本配置

利用keppalived实现IPVS的高可用性

keepalived+haproxy使用


关于高可用集群的知识点

集群类型

集群类型主要包括高可用集群、负载均衡集群和高性能集群。集群,作为一组相互独立的计算机通过高速网络互联而构成的计算资源,以其出色的性能、扩展性和可靠性,在现代信息技术中发挥着至关重要的作用

什么是高可用集群

主要用于保障关键服务的持续运行。当集群中的某个节点发生故障时,其它健康的节点能够迅速接管工作,从而避免服务中断。此类集群通常以主备形式运作,能够在大型故障下实现快速恢复,是确保业务连续性和数据安全的重要基础设施

高可用的实现

提升系统高用性的解决方案:降低 平均故障时间
解决方案:建立冗余机制
active/passive /
active/active 双主
active --> HEARTBEAT --> passive
active <--> HEARTBEAT <--> active
通过监测心跳声来判断是否需要切换

虚拟路由冗余协议(VRRP)

VRRP的工作原理依赖于其三种状态机:Initialize(初始化状态)、Master(活动状态)和Backup(备份状态)。Master设备定期发送VRRP通告报文,告知其它设备其工作正常。如果Master设备出现故障,Backup设备会根据优先级选举出新的Master设备,继续提供网络连接。这种选举机制确保了网络在设备故障时能够迅速恢复服务,而不会导致长时间的中断

keepalived 简介

Keepalived是一个开源的、可靠的高可用和故障切换解决方案,主要用于Linux系统。它通过虚拟IP地址的方式,实现主服务器和备份服务器之间的无缝切换,确保服务的高可用性。

Keepalived的主要功能

  1. 虚拟IP地址:Keepalived可以为每个服务创建多个虚拟IP地址,当主服务器宕机时,备份服务器可以接管这些虚拟IP地址,继续提供服务。

  2. 健康检查:Keepalived通过心跳(heartbeat)机制,定期检查主服务器和备份服务器的健康状况,如果发现主服务器宕机,备份服务器可以立即接管。

  3. 故障切换:当主服务器宕机时,Keepalived可以自动将流量重定向到备份服务器,实现故障切换。

  4. 负载均衡:Keepalived可以配置为负载均衡模式,将流量均匀分配给主服务器和备份服务器,提高系统的处理能力。

  5. 日志记录:Keepalived可以记录健康检查和故障切换的日志,便于分析和诊断问题。

  6. 配置灵活:Keepalived的配置非常灵活,可以根据实际需求进行定制。

Keepalived的相关文件

主要包括以下几个:

  1. 软件包名:keepalived-------这是安装Keepalived时使用的软件包名称。

  2. 主程序文件:/usr/sbin/keepalived-------这是Keepalived的主程序文件路径,用于启动和停止Keepalived服务。

  3. 主配置文件:/etc/keepalived/keepalived.conf--------这是Keepalived的主配置文件路径,用于设置Keepalived的运行参数和故障切换规则。

  4. 配置文件示例:/usr/share/doc/keepalived/-------这个目录下存放了Keepalived的配置文件示例和文档,可以作为配置参考。

  5. Unit File:/lib/systemd/system/keepalived.service--------这是Keepalived的systemd服务单元文件路径,用于systemd管理系统服务。

  6. Unit File的环境配置文件:/etc/sysconfig/keepalived---------这是Keepalived的环境配置文件路径,用于设置Keepalived的一些环境变量。

Keepalived实验

实验环境

四台虚拟机:

KA1(172.25.254.10)KA2(172.25.24.120),

realserver1(172.25.254.110),realserver2(172.25.254.120)

各节点时间必须同步: ntp, chrony
关闭防火墙及 SELinux
各节点之间可通过主机名互相通信:非必须
建议使用 /etc/hosts 文件实现:非必须
各节点之间的 root 用户可以基于密钥认证的 ssh 服务完成互相通信:非必须
KA1和KA2下载好keepalived,
yum install keepalived -y
systemctl start keepalived
realservre1和realserver2下载httpd服务并且开启httpd服务并制作测试页面
realserver1:
yum install -y httpd
systemctl start httpd
echo 172.25.254.110-realserver1 > /var/www/html/index.html


realserver2:
yum install -y httpd
systemctl start httpd
echo 172.25.254.120-realserver2 > /var/www/html/index.html

keepalived基本配置

在KA1上编辑配置文件,使KA1为主服务器,优先级为100

在KA2上编辑配置文件,使KA2为备用服务器,优先级为80

此时作为主服务器的KA1上已经有了vip

启用keepalived日志并自定义存放位置

1.编辑配置文件/etc/sysconfig/keepalived定义日志级别为6

2.编辑日志文件/etc/rsyslog.conf,定义存放位置

测试:重启服务查看日志文件

实现独立子配置文件

在主配置文件中添加内容

用于使主配置文件读取 /etc/keepalived/conf.d/ 目录下所有以 .conf 结尾的配置文件。这样可以让 Keepalived 在启动时自动加载这些配置文件,以便实现更复杂的负载均衡和高可用性功能。

keppalived的抢占模式和非抢占模式

抢占模式:在抢占模式下,当主节点(Master)从故障中恢复后,它会重新从备份节点(Backup)手中夺取VIP,并重新接管服务。这种模式不需要特殊配置,默认即为抢占模式。具体而言,当Master节点宕机后,Backup节点会接管服务。当Master节点恢复后,它会再次从Backup节点手中抢回VIP,并重新提供服务

非抢占模式:在非抢占模式下,即使主节点恢复,也不会从备份节点手中夺回VIP,从而避免VIP的频繁切换和不必要的服务中断。这种模式需要通过配置nopreempt标志来实现

keepalive中默认为抢占模式

非抢占模式配置:

在KA1和KA2中配置文件中更改,加入nopreempt,并且将两边都设置为备用

测试:在KA1上重启服务(keepalived中间会断线),然后查看ip,发现虽然KA1的优先级还是高于KA2,但因为中途短线vip飘向了KA2,此时重启vip也不会回来,这就是非抢占模式

VIP单播配置

在配置文件中编写单播源地址以及目标地址,并且注释掉vrrp_strict(与vip单播模式冲突)

测试 通过tcpdump -i eth0 -nn src host 172.25.254.10 and dst 172.25.254.20命令抓取单播包

 双主模式的实现

在KA1和KA2配置文件中创建第二个虚拟路由,第二个虚拟路由vip为172.25.254.200,KA1为备份服务器,KA2为主服务器

配置完成后查看KA2发现KA2已经有vip172.25.254.200

Keepalived 通知脚本配置

keepalived 的状态变化时,可以自动触发脚本的执行,发邮件通知用户
1.完成邮箱发送配置(vim /etc/mail.rc)
set smtp-auth-password需要去自己的邮箱安全中心获取
2.发送邮件进行测试
3.创建通知脚本(vim /etc/keepalived/mail.sh)
4.在配置文件中调用
测试:重启服务使主从发生变化后查看邮件

利用keppalived实现IPVS的高可用性

1.在realserver1和realserver2中配置临时ip(vip)

ip a a 172.25.254.100/32 dev lo

2.在realserver1和realserver2中关闭ARP响应(vim /etc/sysctl.d/arp.conf)

3.编辑KA1和KA2的配置文件

虚拟服务器(virtual_server)配置

  • IP地址:172.25.254.100
  • 端口:80
  • 延迟循环:6(用于在真实服务器之间平均分配请求的简单机制)
  • 负载均衡算法:wrr(加权轮询)
  • 负载均衡类型:DR(直接路由)
  • 使用的协议:TCP

真实服务器(real_server)配置

  • 第一个真实服务器的IP地址:172.25.254.110,端口:80,权重:1
  • 第二个真实服务器的IP地址:172.25.254.120,端口:80,权重:1

健康检查配置

  • URL路径:/(根路径)
  • 期望的HTTP状态码:200
  • 连接超时时间:3秒
  • 重试次数:2
  • 重试间隔:2秒

这个配置文件的主要目的是将流量平均分配到两个真实服务器上,同时通过健康检查确保只有健康的服务器接收流量

4.重启服务查看两边路由策略

测试:访问172.25.254.100

当KA1keepalived服务关闭时,依然正常

keepalived+haproxy使用

1.下载haproxy并完成基本配置

2.编写脚本监控haproxy的运行状态

3.在keepalived配置文件中启用监控,当优先级高的KA1宕机后vip移动至KA2,vip移动过程中haproxy的工作并没有中断

测试

过程中访问一直未中断

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值