Keepalived LVS群集

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

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

Keepalived体系主要模块及其作用:
keepalived体系架构中主要有三个模块,分别是core、check和vrrp。

core模块:为keepalived的核心,负责主进程的启动、维护及全局配置文件的加载和解析。
vrrp模块:是来实现VRRP协议的。(调度器之间的健康检查和主备切换)
check模块:负责健康检查,常见的方式有端口检查及URL检查。(节点服务器的健康检查)
一个合格的群集应该具备的特点:

负载均衡          用于提高群集的性能   LVS  Nginx  HAProxy  SLB  F5
健康检查(探针)  针对于调度器和节点服务器    Keepalived   Heartbeat
故障转移          通过VIP漂移实现主备切换     VRRP   脚本
健康检查(探针)常用的工作方式:

发送心跳消息    vrrp报文    ping/pong
TCP端口检查     向目标主机的 IP:PORT 发起TCP连接请求,如果TCP连接三次握手成功则认为健康检查正常,否则认为健康检查异常
HTTP URL检查    向目标主机的URL路径(比如http://IP:PORT/URI路径)发起 HTTP GET 请求方法,如果响应消息的状态码为 2XX 或 3XX,则认为健康检查正常;如果响应消息的状态码为 4XX 或 5XX,则认为健康检查异常。

LVS+Keepalived 高可用群集

主DR 服务器:20.0.0.100 (Linux1)
备DR 服务器:20.0.0.111 (Linux11)
Web 服务器1:20.0.0.101
Web 服务器2:20.0.0.103
vip:20.0.0.50
客户端:20.0.0.3

前提:关闭防火墙,yum下载ipvsadm。

配置DR群集

vim keepalived.conf

主:

备:vim keepalived.conf

主:

备:

 四层反向代理配置
修改主调度器配置

#配置四层反向代理
stream {
    upstream backends {
         server 192.168.9.140:80;
         server 192.168.9.150:80;
     }
    server {
         listen 8080;
         proxy_pass backends;
    }
}

修改备调度器配置

将192.168.9.210中的nginx.conf文件复制过来

浏览器测试两台nginx服务器
192.168.9.210

192.168.9.120

配置高可用
两台nginx服务器安装keepalived

yum install -y keepalived
准备检查nginx运行状态脚本
192.168.9.210主服务器

#!/bin/bash
 
if ! killall -0 nginx &> /dev/null
   then
   systemctl stop keepalived
fi


192.168.9.120备服务器


将192.168.9.210/etc/keepalived中所有文件复制到192.168.9.120

开启keepalived服务并测试
分别开启主备两台服务器keepalived

systemctl start keepalived
systemctl enable keepalived


浏览器测试:


主服务器模拟故障:


浏览器访问:

仍然可以继续访问


如何恢复主服务器?

Keepealived脑裂现象
主服务器和备服务器都同时拥有相同的VIP导致

产生脑裂的原因
Master一直发送心跳消息给backup主机,如果中间的链路突然断掉,backup主机将无法收到master主机发送过来的心跳消息(也就是vrrp报文),backup这时候会立即抢占master的工作,但其实这时候的master是正常工作的,此时就会出现脑裂的现象。

 解决方法
关闭主服务器或备服务器其中一个的Keepealived服务

7.3 如何预防
1.如果是系统防火墙导致,则关闭防火墙或添加防火墙规则放通VRRP组播地址(224.0.0.18)的传输

2.如果是主备服务器之间的通信链路中断导致,则可以在主备服务器之间添加双链路通信

3.在主服务器使用脚本定时判断与备服务器通信链路是否中断,如果判断是主备服务器之间的链接中断则自行关闭主服务器上的keepalived服务

4.利用第三方应用或监控系统检测是否发生了脑裂故障现象,如果确认发生了脑裂故障则通过第三方应用或监控系统来关闭主服务器或备服务器其中一个的keepalived服务

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值