目录
Keepalived
LVS集群的缺点就是不具备健康状态检查,而通过Keepalived就可以实现LVS的健康状态检查,如果发现有服务器故障了,就在调度策略中删除该服务器的策略
- 是专为LVS和HA设计的一款健康状态检查工具
- 支持故障自动切换(Failover)
- 支持节点健康状态检查(Health Checking)
原理
- Keepalived采用VRRP热备份协议来实现Linux服务器的多机热备功能
- 每个热备组可以有多台服务器
- 热备组的故障切换是由虚拟IP地址的漂移来实现,适用于各种应用服务器
Keepalived案例
- 企业应用中,单台服务器存在单点故障的问题,单点故障一旦发生,企业服务将会中断
双机高可用热备案例
本案例用于初步了解keepalived,如果想要直接结合LVS,请往下看第二个案例
双机热备的故障切换是由虚拟IP地址的漂移来实现,适用于各种应用服务器
- 漂移地址:192.168.10.72
- 主、备服务器:192.168.10.101、192.168.10.102
- 提供的应用服务:Web
操作系统 |
IP 地址 |
角色 |
CentOS7.9 |
192.168.10.101 |
Web服务器 |
CentOS7.9 |
192.168.10.102 |
Web服务器 |
配置
开启两个Linux虚拟机,连接上XShell,然后右键XShell终端空白处,开启会话同步
在101(Master)操作
关闭防火墙和内核安全机制,然后安装keepalived
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
[root@localhost ~]# yum -y install keepalived
cd进入keepalived安装目录下,该工具的配置文件就在该目录下,为了防止误操作,可以备份一份配置文件
[root@localhost ~]# cd /etc/keepalived/
[root@localhost keepalived]# ls
keepalived.conf
[root@localhost keepalived]# cp keepalived.conf keepalived.conf.bak
修改配置文件
打开keepalived的配置文件,修改下面几个参数,然后启动服务
[root@localhost keepalived]# vim keepalived.conf
router_id LVS_01 # 第12行,router_id用于区分设备,可以重复但不建议(不影响使用)
interface ens33 # 第21行,填写本机网卡插槽名
virtual_router_id 51 # 第22行,虚拟路由id,用于划分主机到同一个热备组
192.168.10.172 # 第30行
[root@localhost keepalived]# systemctl start keepalived
然后来到第33行,切换为命令模式,按下小写字母d,再按下大写G,删除剩下的内容。
这里我们只是为2个主机做高可用的环境,那么上面的配置就够了,删除的行是为服务做健康状态检查的
关闭会话同步,为102修改作为备份服务器的配置
在102(Backup)操作
修改以下内容,启动服务
[root@localhost keepalived]# vim keepalived.conf
state BACKUP # 第20行,角色
priority 90
# 第23行,Backup的优先级必须比Master低
[root@localhost keepalived]# systemctl start keepalived
在101、102分别操作
在两个主机分别在启动服务后,都使用ip a命令查看有没有虚拟ip
[root@localhost keepalived]# ip a
确保101主机显示虚拟IP(192.168.10.172)而102不显示
因为Master主机才会承载虚拟IP,除非Master故障,虚拟IP漂移到Backup主机
101主机(Master):
ens33:
inet 192.168.10.101/24
inet 192.168.