Keepalived实现高可用负载均衡

高可用集群简介

网站的可用性
提供正常服务的时间 / 全年时间 = 99.9

脑裂现象

keepalived 的BACKUP 主机在收不到MASTER主机报文之后就会切换成为master,如果他们之间的通信线路出现问题,无法接受到彼此的组播通知,但是两个节点实际都处于正常工作状态,这时候两个节点均为master强行绑定虚拟IP,导致不可预料的后果,这就是脑裂

脑裂的解决方案

  • 添加更多的检测手段,比如冗余的心跳线(两块网卡做健康检测),ping对方等等,尽量减少”脑裂发生的机会”
  • 设置仲裁机制,双方都不可靠,就依赖第三方,比如启用共享磁盘锁,ping网关等
  • 算法保证,例如投票机制(keepalived似乎没有实现?)

其他高可用方案

heartbeat
pacemaker
piranha(web页面)

Keepalived

keepalived是什么
keepalived 是集群管理中保证集群高可用的一个服务软件,其功能类似于heartbeat,用来防止单点故障

keepalived工作原理

keepalived 是以VRRP协议为实现基础的,VRRP 全称Virtual Router RedundancyProtocol 即虚拟路由冗余协议
将N台提供相同功能的服务器组成一个服务器组,这个组里面有一个master 和多个backup ,master上有一个对外提供服务的VIP(该服务器所在局域网内其他机器的默认路由为该VIP),master会发组播,当backup 收不到vrrp 包时,就认为master 宕机了,这时就需要根据vrrp的优先级来选举一个backup来当master

VRRP协议

虚拟路由冗余协议,可以认为是实现路由器高可用的协议, 将 将N台提供相同功能的服务器组成一个服务器组,这个组里面有一个master 和多个backup ,master上有一个对外提供服务的VIP(该服务器所在局域网内其他机器的默认路由(网关)为该VIP),master会发组播,当backup 收不到vrrp 包时,就认为master 宕机了,这时就需要根据vrrp的优先级来选举一个backup来当master , 这样的话,就可以保证路由器的高可用

keepalived主要的三大模块

core ,check 和vrrp
core模块为keepalived的核心,负责进程的启动,维护以及全局配置文件的加载和解析。
check 负责健康检查,包括常见的各种检查方式。
vrrp模块是来实现VRRP 协议的。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据