目录
一、keepalived概述
1.1.1 管理LVS负载均衡软件
1.1.2 支持故障自动切换(failover)
1.1.3 实现LVS集中节点的健康检查(health checking)
1.1.4 实现LVS负载调度器 节点服务器的高可用性(HA)
二、keepalived 服务的工作原理
三、Keepalived体系主要模块及其作用
四、keepalived高可用故障切换转移原理
五、实验
1.LVS 部署
2.配置keeplived(主、备DR 服务器上都要设置)
3.设置虚拟网卡
另一台同理
4.启动 ipvsadm 服务
192.168.146.100
192.168.146.20
调整 proc 响应参数,关闭Linux 内核的重定向参数响应
5 .配置节点服务器
上一篇博客
6.测试验证
Keepalived 是一个基于VRRP协议来实现的LVS服务高可用方案,可以解决静态路由出现的单点故障问题。
keepalived可以通过读取自身的配置文件,实现通过更底层的接口直接管理LVS配置以及服务的启动 停止功能 这会使LVS应用更加简便
两台已同时安装好keepalived并且启动服务
当启动的时候master主机获得所有资源并且对用户提供服务(请求)当角色backup的主机作为master热备
当master主机挂 了出现故障时,backup主机将自动接管master主机所有工作,包括接管VIP资源及相应资源服务
当master主机故障修复后,也会自动接管会它的原来处理的工作,
backup主机则同时释放master主机失效时接管的工作
此时此刻两台主机将恢复到最初的启动时各自的原始角色及工作状态
抢占模式:master从故障恢复后,会将VIP从BACKUP节点中抢占过来
非抢占模式:master从故障恢复后不抢占backu,backup升级为MASTER中的VIP
keepalived.conf文件配置LVS节点IP和相关参数来实现LVS直接管理
如果几个节点服务器同时发生故障无法提供服务,keepalived服务会自动将那个失效节点服务器从LVS正常转发列中清除出去,并将请求调度到别的正常节点服务器上,从而保证最终用户的访问不受到影响:当故障的节点服务器修复以后,keeplived服务又会自动把他们加入到正常转发列中,对外面客户提供服务
企业集群需要满足的三个特点:负载均衡 健康检查 故障切换
在一个LVS服务集群中通常有主服务器(MASTER)和备份服务器(BACKUP)两种角色的服务器,但是对外表现为一个虚拟IP,主服务器会发送VRRP通告信息给备份服务器,当备份服务器收不到VRRP消息的时候,即主服务器异常的时候,备份服务器就会接管虚拟IP,继续提供服务,从而保证了高可用性。
keepalived体系架构中主要有三个模块,分别是core、check和vrrp
core模块
为keepalived的核心,负责主进程的启动、维护及全局配置文件的加载和解析。
vrrp模块
是来实现VRRP协议的。
check模块
负责健康检查,常见的方式有端口检查及URL检查。
keepalived高可用服务集群之间的故障切换转移,是通过VRRP(虚拟路由器冗余协议)来实现的
在keepalived服务正常工作时,主(master)节点会不断地向(backup)节点发送(多播的方式)心跳消息,用于告诉备节点告诉自己还活着,当主节点发生故障时,就无法发送心跳消息,备节点也就因此无法检测到来自主节点的心跳,于是调用自身的接管程序,接管主节点的IP资源及服务。而当主节点恢复时,备节点又会释放主节点故障时自身接管的IP资源及服务,恢复到原来的备用角色
systemctl stop firewalld.service
setenforce 0
yum -y install ipvsadm keepalived
modprobe ip_vs
cat /proc/net/ip_vs
cd /etc/keepalived/
cp keepalived.conf keepalived.conf.bak
vim keepalived.conf
vim /etc/sysconfig/network-scripts/ifcfg-ens33:0
DEVICE=ens33:0
ONBOOT=yes
IPADDR=192.168.146.188
NETMASK=255.255.255.255
重启网卡 systemctl restart network
ifup ens33:0
systemctl start keepalived
ip addr
ipvsadm-save > /etc/sysconfig/ipvsadm
systemctl start ipvsadm
ipvsadm -C ##清空规则
ipvsadm -A -t 192.168.146.188:80 -s rr
ipvsadm -a -t 192.168.146.188:80 -r 192.168.146.110:80 -g
ipvsadm -a -t 192.168.146.188:80 -r 192.168.146.111:80 -g
ipvsadm -ln
vim /etc/sysctl.conf
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0
sysctl -p
在客户端访问 http://192.168.146.188/
再在主服务器关闭 keepalived 服务后再测试, systemctl stop keepalived