keepalive:
调度器的高可用
vip地址主备之间的切换,主在工作时,vip地址只在主上,主停止工作,vip飘移到备服务器。
在主备的优先级不变的情况下,主恢复工作,vip会飘回到主服务器。
1、配优先级
2、配置vip和真实服务器
3、主备的ip要一致
3、主备的id要区分
keepalive是专门为lvs打造的,但是不是为lvs专门服务的
keepalive也可以使用nginx,haproxy。
keepalive+nginx实现高可用
nginx+keepalive实现主备切换实验
客户端 test1 :192.168.233.10
服务器nginx1:192.168.233.100
服务器nginx2:192.168.233.110
首先关闭两台服务器的防火墙,安装keepalive
[root@nginx1 /]# systemctl stop firewalld
[root@nginx1 /]# setenforce 0
[root@test1 ~]# yum -y install keepalived.x86_64
在主服务器(nginx1)写一个监控主服务器状态脚本
[root@nginx1 opt]# vim check_nginx.sh
#!/bin/bash
/usr/bin/curl -I http://localhost &> /dev/null
if [ $? -ne 0]
then
systemctl stop keepalived
fi
设置脚本执行权限
[root@nginx1 opt]# chmod 777 check_nginx.sh
打开keepalive修改主配置文件
[root@nginx1 keepalived]# vim /etc/keepalived/keepalived.conf
把配置文件发送给备服务器(nginx2)
[root@test1 keepalived]# scp root@192.168.233.100:/etc/keepalived/keepalived.conf /etc/keepalived/
修改备服务器里的keepalive的配置文件
实验结果
Haporxy负载均衡:
nginx 四层转发,七层转发
lvs 四层转发 内核态 用户态
Haporxy 四层转发,七层转发
Haporxy的作用和使用场景:
1、场景 用于高并发的web场景,可以支持一万个以上的请求,高性能tcp和http的负载均衡器
2、作用
1、进行四层和七层转发
2、支持https
3、haproxy本身不自带缓存功能,请求当中添加cookie,使用缓存
4、支持主备切换(keepalive)
特定:
可靠性高,稳定性好
可以同时维护40000-50000个并发,单位时间内可以处理的最大请求数20000个(1秒,1分钟)
支持负载均衡算法,虽然不带缓存,但是可以支持会话保存。
面试题:
脑裂是什么
HA 高可用架构中的一个特殊现象,只要使用vip地址代理的高可用。都有可能出现脑裂的问题。主和备同时都有vip地址。
主和备无法确定各自的身份,同时出现了vip地址,两边都起来了,但是两边都无法使用。
原因和解决方法
1、keepalive的配置文件问题
查看/opt/keepalive/keepalive.conf的配置文件,检查两边的id是否相同,vip地址,两边的优先级是否不同,虚拟路由名称是否不同
2、心跳线(网线)断了,老化。
准备两条心跳线,这样断了一条,依然能够传送心跳消息。
3、网卡出了问题(硬件),ip地址配置冲突
Ifconfig或ip addr 命令检查ip地址,修改冲突的ip地址
4、防火墙的策略,iptables的策略,屏蔽了组播的地址广播。屏蔽了vrrp协议的报文
可以在配置文件中增加vrrp_iptables来让防火墙策略通过
或者iptables -F命令关闭防火墙策略
5、两台服务器的时间不同步也可能导致
使用date命令来手动同步两台服务器时间
6、其他的服务配置对心跳线的检测造成干扰
查看日志文件,修改相应的配置