Keepalived作用
若当前设备发生故障,启用备用设备,解决单点故障。
工作流程
1.将多台设备加入到一个虚拟组(拥有虚拟IP和虚拟MAC地址)
2.用户将数据发送至虚拟组,虚拟组会将目标地址转换成当前的master设备(主设备)的IP和MAC。
3.若master设备出现故障,则从其他备用设备中启用优先级最高的一台作为master设备。
使用协议
VRRP 虚拟路由冗余协议 Virtual Router Redundancy Protocol
裂脑
可能会出现的故障:裂脑,虚拟组中心跳线断开,有两台及以上的设备认为自己是主设备。
模拟环境
两台负载均衡服务器lb01(192.168.1.5) lb02(192.168.1.6)
安装Keepalived
yum install keepalived -y
systemctl start keepalived
systemctl enable keepalived
配置文件
位置:/etc/keepalived/keepalived.conf
注:这里只留下了最基本的几行,先跑通。
advert_int是主备设备通讯时间间隔,已确认对方还“正常活着”。(心跳线)
查看发现在lb01中的网卡ens33下多了一个IP地址
而在lb02中的网卡ens33下没有该IP,说明目前lb01是主设备
测试漂移
漂移即指当主设备宕机时,master状态从lb01漂到lb02
打开物理主机的cmd,输入arp -a
可以看到192.168.1.3也是有MAC地址的,并且与192.168.1.5相同。
在lb01中使用命令:tail -f /var/log/nginx/access.log
打开浏览器,在地址栏输入192.168.1.3,发现lb01中access.log文件中记录了此次请求。
将lb01关机,在lb02中使用命令tail -f /var/log/nginx/access.log,再刷新浏览器,发现可以正常访问,并且在lb02中的access.log中记录了此次请求。
说明漂移成功。(此时打开lb01,会发现主设备又变成lb01了,因为其优先级更高)