Keepalived及其工作原理

目录

一、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概述

Keepalived 是一个基于VRRP协议来实现的LVS服务高可用方案,可以解决静态路由出现的单点故障问题。

1.1.1 管理LVS负载均衡软件

keepalived可以通过读取自身的配置文件,实现通过更底层的接口直接管理LVS配置以及服务的启动 停止功能 这会使LVS应用更加简便

1.1.2 支持故障自动切换(failover)


两台已同时安装好keepalived并且启动服务

当启动的时候master主机获得所有资源并且对用户提供服务(请求)当角色backup的主机作为master热备

当master主机挂 了出现故障时,backup主机将自动接管master主机所有工作,包括接管VIP资源及相应资源服务

当master主机故障修复后,也会自动接管会它的原来处理的工作,

backup主机则同时释放master主机失效时接管的工作

此时此刻两台主机将恢复到最初的启动时各自的原始角色及工作状态

抢占模式:master从故障恢复后,会将VIP从BACKUP节点中抢占过来

非抢占模式:master从故障恢复后不抢占backu,backup升级为MASTER中的VIP

1.1.3 实现LVS集中节点的健康检查(health checking)


keepalived.conf文件配置LVS节点IP和相关参数来实现LVS直接管理

如果几个节点服务器同时发生故障无法提供服务,keepalived服务会自动将那个失效节点服务器从LVS正常转发列中清除出去,并将请求调度到别的正常节点服务器上,从而保证最终用户的访问不受到影响:当故障的节点服务器修复以后,keeplived服务又会自动把他们加入到正常转发列中,对外面客户提供服务

1.1.4 实现LVS负载调度器 节点服务器的高可用性(HA)

企业集群需要满足的三个特点:负载均衡 健康检查 故障切换

二、keepalived 服务的工作原理

在一个LVS服务集群中通常有主服务器(MASTER)和备份服务器(BACKUP)两种角色的服务器,但是对外表现为一个虚拟IP,主服务器会发送VRRP通告信息给备份服务器,当备份服务器收不到VRRP消息的时候,即主服务器异常的时候,备份服务器就会接管虚拟IP,继续提供服务,从而保证了高可用性。

三、Keepalived体系主要模块及其作用

keepalived体系架构中主要有三个模块,分别是core、check和vrrp

core模块

为keepalived的核心,负责主进程的启动、维护及全局配置文件的加载和解析。
vrrp模块

是来实现VRRP协议的。
check模块

负责健康检查,常见的方式有端口检查及URL检查。

四、keepalived高可用故障切换转移原理

keepalived高可用服务集群之间的故障切换转移,是通过VRRP(虚拟路由器冗余协议)来实现的

在keepalived服务正常工作时,主(master)节点会不断地向(backup)节点发送(多播的方式)心跳消息,用于告诉备节点告诉自己还活着,当主节点发生故障时,就无法发送心跳消息,备节点也就因此无法检测到来自主节点的心跳,于是调用自身的接管程序,接管主节点的IP资源及服务。而当主节点恢复时,备节点又会释放主节点故障时自身接管的IP资源及服务,恢复到原来的备用角色


五、实验

1.LVS 部署

systemctl stop firewalld.service
setenforce 0

yum -y install ipvsadm keepalived
modprobe ip_vs
cat /proc/net/ip_vs

Keepalived及其工作原理_第1张图片

 

2.配置keeplived(主、备DR 服务器上都要设置)

cd /etc/keepalived/

 cp keepalived.conf keepalived.conf.bak

vim keepalived.conf

Keepalived及其工作原理_第2张图片

Keepalived及其工作原理_第3张图片

Keepalived及其工作原理_第4张图片

3.设置虚拟网卡

vim /etc/sysconfig/network-scripts/ifcfg-ens33:0
DEVICE=ens33:0
ONBOOT=yes
IPADDR=192.168.146.188
NETMASK=255.255.255.255

Keepalived及其工作原理_第5张图片

重启网卡 systemctl restart network

ifup  ens33:0

systemctl start keepalived
ip addr    

 Keepalived及其工作原理_第6张图片

另一台同理

4.启动 ipvsadm 服务

192.168.146.100

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

Keepalived及其工作原理_第7张图片

 ipvsadm -ln

Keepalived及其工作原理_第8张图片

 192.168.146.20

调整 proc 响应参数,关闭Linux 内核的重定向参数响应

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
Keepalived及其工作原理_第9张图片

 sysctl -p

 Keepalived及其工作原理_第10张图片

5 .配置节点服务器

上一篇博客

6.测试验证

在客户端访问 http://192.168.146.188/ 
再在主服务器关闭 keepalived 服务后再测试, systemctl stop keepalived

Keepalived及其工作原理_第11张图片

 

你可能感兴趣的:(linux,运维,服务器)