LVS+Keepalived+nfs 集群部署及实验

LVS+Keepalived群集实验

1Keepalived介绍

keeplived 软件起初是专门为LVS 负载均衡 软件设置的,用来管理并监控LVS集群中各个服务节点的状态,后来加入了可以实现高可用的VRRP 功能。因此,keepalived除了能管理LVS 集群以外,还可以为其它服务(如:Nginx、Haproxy、Mysql等)实现高可用。
keepalived 软件主要是通过 VRRP 协议 实现高可用的功能。VRRP是Virtual Router Redundancy Protocol(虚拟路由器冗余协议)的速写,VRRP出现的目的就是为了解决静态路由单点故障的问题,它能保证当个别节点出现问题时,整个网络可以不间断的运行。

1.1Keepalived是什么?

Keepalived是一款专为LVS 和HA 设计的一款健康检查工具。

  • 支持故障自动切换、支持节点健康状态检查。

1.2Keepalived工作原理

Keepalive是一个基于VRRP协议来实现的LVS服务高可用方案,可以解决静态路由出现的单点故障问题。
在一个LVS服务集群中,通常有 主服务器(MASTER) 和备服务器(BACKUP) 两种角色的服务器,但是对外表现为一个虚拟IP,主服务器会发送VRRP通告信息给备份服务器,当备服务器收不到VRRP消息的时候,即主服务器异常的时候,备份服务器就会接管虚拟IP,继续提供服务,从而保证高可用性。
在Keepalive服务之间,只有作为主的服务器会一直发送VRRP广播包,告诉备它还活着,此时备不会抢占主,当主不可用时,备监听不到主发送的广播包后,就会启动相关服务器接管资源,保证业务的连续性,接管速度最快可以小于1秒

1.3Keepalived 体系主要模块及其作用

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

  • core模块: 为keepalive的核心、负责主进程的启动,维护及全局配置文件的加载和解析
  • check模块: 负责健康检查,常见的方式有端口检查及URL检查
  • vrrp模块: 是来实现VRRP协议的。

2Keepalived服务主要功能

2.1管理LVS负载均衡软件

Keepalive可以通过读取自身的配置文件,实现通过更底层的接口直接管理LVS的配置以及控制服务的启动、停止功能。

2.2支持故障自动切换

Keepalived可以实现任意两台主机之间,例如:Master和Backup主机之间的故障转移和自动切换,这个主机可以是普通的不能停机的业务服务器,也可以是LVS负载均衡,Nginx反向代理这样的服务器。

Keepalived高可用功能实现的简单原理为,两台主机同时安装好Keepalived软件并启动服务,开始正常工作时,由角色为Master的主机获得所有资源并对用户提供服,角色为Backup的主机为Master主机的热备,当角色为Master的主机失效或出现故障时,角色为Backup的主机将自动接管Master主机的所有工作,包括接管VIP资源及相应资源服务,当角色为Master的主机故障修复后,又会自动接管回他原来处理的工作,角色Bachup的主机则同时释放Master主机时它接管的工作,此时,两台主机将恢复到最初启动时各自的原始及工作状态。

2.3实现LVS集群中节点的健康检查

Keepalived可以通过在自身的Keepalived.conf文件里配置LVS的节点IP和相关参数实现对LVS的直接管理;除此之外,当LVS集群中的某一个甚至是几个节点服务器同时发生故障无法提供服务时,Keepalived服务会自动将失效的节点服务器从LVS的正常转发队列中清除出去,并将请求调度到别的正常节点服务器上,从而保证最终用户的访问不受影响;当故障的节点服务器被修复以后,Keepalived服务又会自动地把它们加入到正常转发队列中,对客户提供服务。

2.4实现LVS负载调度器、节点服务器的高可用性

一般企业集群需要满足三个特点: 负载均衡、健康检查、故障切换 ,使用LVS+Keepalived完全可以满足需求。

keeplived的检查方式

ping方式检查(不全面)

基于脚本检查(周期检查master服务器的服务是否停止,停止之后使用停止keeplived,进行漂移,并邮件告警)

3脑裂的形成和解决

3.1什么是脑裂

当MASTER节点出现网络堵塞等现象时,BACKUP节点因无法及时检测到MASTER节点的heartbeat而认为MASTER节点已经挂掉了,就抢来了MASTER节点的VIP,并接管了MASTER节点的资源。而MASTER节点认为自己还是正常的,这就出现了同一个服务集群中,同一个VIP地址同时飘在两个节点上的现象,即产生了两个MASTER节点,正常情况下是一个节点对外提供服务,现在也变成了两个节点能同时被用户访问到,对于一个集群同时存在两个MASTER状态的现象,我们称之为脑裂。

3.2出现脑裂的原因

通常,脑裂现象的出现是由以下几种情况引起的:

①高可用集群服务器队列之间的心跳线链路发生了故障,如心跳线的断裂、老化等导致各节点之间无法正常通信;

②集群服务器队列之间的IP配置发生了冲突;

③网卡或交换机等负责连接心跳线的设备发生了故障;

④高可用服务器上未禁止iptables防火墙规则的生成,导致心跳消息无法传输;

⑤在同一个VRRP实例中,各节点上的virtual_router_id设置的参数不同;

⑥开启了抢占模式,但是未设置抢占延时。

3.3预防脑裂的发生

为了减少或避免HA集群中出现脑裂现象,我们可以采取以下措施:

①添加冗余心跳线,如双线条线等;

②启动“智能”磁盘锁,只有正在提供服务的MASTER节点才能锁住或者解锁共享磁盘,当MASTER节点出现了短暂的网络堵塞等情况时会自动加锁,BACKUP节点也无法接管资源,只有当MASTER出现故障无法提供服务时才会自动解锁共享磁盘,并交由BACKUP节点接管

③设置仲裁机制,例如出现检测不到心跳线的情况时,MASTER节点和BACKUP节点都去ping一下网关IP,如果ping不通则主动释放资源或者放弃抢占资源;

④通过脚本来监控和监测节点是否处于正常工作状态,如果MASTER节点出现了异常,并在脚本设定的期限内无法恢复正常,则杀死当前MASTER的服务进程,将资源交由BACKUP节点来接管。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值