Keepalived高可用


一、高可用集群简介

1、什么是高可用集群

高可用集群(High Availability Cluster,简称HA Cluster)

减少服务中断时间为目的的服务器集群技术。它通过保护用户的业务程序对外不间断提供的服务,把因软件、硬件、人为造成的故障对业务的影响降低到最小程度。

2、高可用集群的衡量标准

通常用平均无故障时间(MTTF:mean time to failure)来度量系统的可靠性,用平均故障维修时间(MTTR:mean time to restoration)来度量系统的可维护性。于是可用性被定义为:HA=MTTF/(MTTF+MTTR)*100%

3、自动切换/故障转移(FailOver)

某一主机如果确认对方故障,则正常主机除继续进行原来的任务,还将依据各种容错备援模式接管预先设定的备援作业程序,并进行后续的程序及服务。

4、自动侦测

由主机上的软件通过冗余侦测线,经由复杂的监听程序,逻辑判断,来相互侦测对方运行的情况。
常用的方法是:集群各节点间通过心跳信息判断节点是否出现故障。

4.1、脑裂

在高可用(HA)系统中,当联系2个节点的“心跳线”断开时,本来为一整体、动作协调的HA系统,就分裂成为2个独立的个体。由于相互失去了联系,都以为是对方出了故障,两个节点争夺主导权。

脑裂产生的原因

因心跳线坏了(包括断了,老化)
因网卡及相关驱动坏了,ip配置及冲突问题(网卡直连)
因心跳线间连接的设备故障(网卡及交换机)
因仲裁的机器出问题(采用仲裁的方案)
高可用服务器上开启了 iptables防火墙阻挡了心跳消息传输
高可用服务器上心跳网卡地址等信息配置不正确,导致发送心跳失败
其他服务配置不当等原因,如心跳方式不同,心跳广插冲突、软件Bug等

常见的解决方案

1)添加冗余的心跳线

2)启用磁盘锁

3)设置仲裁机制

4)裂脑的监控报警

二、keepalived详解

1、keepalived是什么

keepalived是集群管理中保证集群高可用的一个服务软件,用来防止单点故障

2、keepalived工作原理

keepalived是以VRRP协议为实现基础的,VRRP全称Virtual Router Redundancy Protocol,即虚拟路由冗余协议。

N台提供相同功能的服务器组成一个服务器组,这个组里面有一个master多个backup,master上面有一个对外提供服务的vip(该服务器所在局域网内其他机器的默认路由为该vip)。master会发组播,当backup收不到vrrp包时就认为master宕机,这时就需要根据VRRP的优先级来选举一个backup当master

3、keepalived主要模块

core、check和vrrp

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

check负责健康检查,包括常见的各种检查方式

vrrp模块是来实现VRRP协议的

三、keepalived+lvs集群部署

在这里插入图片描述

1、环境

                     ip                            role
                 192.168.116.131			     client
                 192.168.116.132				 master
                 192.168.116.133				 backup
                 192.168.116.134				 web1
                 192.168.116.135				 web2

2、Web服务器端

添加虚拟IP

# cp /etc/sysconfig/network-scripts/ifcfg-lo /etc/sysconfig/network-scripts/ifcfg-lo:0
# vim /etc/sysconfig/network-scripts/ifcfg-lo:0
DEVICE=lo:0
IPADDR=192.168.116.200
NETMASK=255.255.255.255
ONBOOT=yes

添加主机路由

# vim /etc/rc.local
/sbin/route add -host 192.168.116.200 dev lo:0

配置ARP参数

# vim /etc/sysctl.conf
net.ipv4.conf.all.arp_ignore=1
net.ipv4.conf.all.arp_announce=2
net.ipv4.conf.lo.arp_ignore=1
net.ipv4.conf.lo.arp_announce=2
net.ipv4.conf.default.arp_ignore=1
net.ipv4.conf.default.arp_announce=2

重启

# reboot

3、Master端

# yum -y install keepalived.x86_64  ipvsadm
----------------------------------------------------------------------------------
# vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived
global_defs {
router_id 1
}
vrrp_instance VI_1 {
state MASTER
interface ens32
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1
}
virtual_ipaddress {
192.168.116.200 dev ens32               # 虚拟IP 服务接口
}
}

virtual_server 192.168.116.200 80 {    # 虚拟服务
delay_loop 3                           # 轮询延迟
lb_algo rr                             # 调度算法 rr
lb_kind DR                             # 集群类型 DR
protocol TCP                           # 协议类型
real_server 192.168.116.134 80 {       # 真实服务器
weight 1                               # 权重
TCP_CHECK {                            # 健康检查
connect_timeout 3
}
}
real_server 192.168.116.135 80 {
weight 1
TCP_CHECK {
connect_timeout 3
}
}
}
----------------------------------------------------------------------------------
# systemctl start keepalived.service

4、Backup端

# yum -y install keepalived.x86_64  ipvsadm
----------------------------------------------------------------------------------
# vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived
global_defs {
router_id 2
}
vrrp_instance VI_1 {
state BACKUP
interface ens32
virtual_router_id 51
priority 99
advert_int 1
authentication {
auth_type PASS
auth_pass 1
}
virtual_ipaddress {
192.168.116.200 dev ens32
}
}

virtual_server 192.168.116.200 80 {
delay_loop 3
lb_algo rr
lb_kind DR
protocol TCP
real_server 192.168.116.134 80 {
weight 1
TCP_CHECK {
connect_timeout 3
}
}
real_server 192.168.116.135 80 {
weight 1
TCP_CHECK {
connect_timeout 3
}
}
}
----------------------------------------------------------------------------------
# systemctl start keepalived.service

5、Client端

# curl 192.168.116.200
222
# curl 192.168.116.200
111
# curl 192.168.116.200
222
# curl 192.168.116.200
111
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值