LVS+Keepalived 高可用群集

这篇具有很好参考价值的文章主要介绍了LVS+Keepalived 高可用群集。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一.背景

  企业应用中,单点服务器承担应用存在单点故障的危险

  单点故障一旦发生,企业服务将发生中断,造成极大的危害

  为解决单点故障,而引入keepalived

keepalived工具介绍

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

  • 支持故障自动切换(Failover)

  • 支持节点健康状态检查(Health Checking)

判断LVS负载调度器、节点服务器的可用性,当master主机出现故障及时切换到backup 节点保证业务正常,当master故障主机恢复后将其重新加入群集并且业务重新切换回master节点。

  • 官方网站: http://www.keepalived.org/

Keepalived实现原理剖析

Keepalived采用VRRP热备份协议实现Linux服务器的多机热备功能

VRRP(虚拟路由冗余协议)

  • 是针对路由器的一种备份解决方案

  • 由多台路由器组成一个热备组,通过共用的虚拟IP地址对外提供服务

  • 每个热备组内同时只有一台主路由器提供服务,其他路由器处于冗余状态

  • 若当前在线的路由器失效,则其他路由器会根据设置的优先级自动接替虚拟IP地址,继续提供服务

VRRP 相关术语
虚拟路由器:Virtual Router
虚拟路由器标识:VRID(0-255),唯一标识虚拟路由器
VIP:Virtual IP
VMAC:Virutal MAC (00-00-5e-00-01-VRID)
物理路由器:
master:主设备
backup:备用设备
priority:优先级
虚拟路由器的主备 是由priority:优先级决定的
VRRP工作过程
  • 选举Master,比较优先级,高的为Master,若优先级相同无Master时,比较接口IP地址,大的为Master,Master设备发送ARP报文,承担报文转发工作;

  • 状态维持,Master设备周期发送通告报文,公布配置信息和工作状态;

  • Backup设备根据收到的通告报文判断Master设备是否工作正常,如果Master设备主动放弃Master地位时,会发送优先级为0的通告报文,Backup设备收到后会快速切换成Master设备或者定时器超时后Backup设备认为Master设备无法正常工作,会切换状态为Master。

当Master设备出现故障后怎么办?

  • Master设备故障后,组内的备份设备一段时间(Master_Down_Interval定时器取值为:3×Advertisement_Interval+Skew_Time,单位为秒)内没有接收到来自Master设备的报文,则将自己转为Master设备。一个VRRP组里有多台备份设备时,短时间内可能产生多个Master设备,设备将会对收到的VRRP报文中的优先级与本地优先级做比较,从而选取优先级高的设备成为Master。

Master设备故障后恢复的时候会怎么样?

  • Master设备恢复后,若其优先级为255则立即为Master设备,若优先级小于255,先切换为Backup设备,当Backup优先级高于Master设备时,如果此时工作模式为抢占模式,则Backup设备切换为Master设备,如果工作模式为非抢占模式,Backup设备不会切换为Master。(当设备切换为Master地位时都会发送免费ARP报文,承担报文转发功能)

Keepalived案例讲解

LVS+Keepalived 高可用群集,lvs,服务器,运维

  • Keepalived可实现多机热备,每个热备组可有多台服务器
  • 双机热备的故障切换是由虚拟P地址的漂移来实现,适用于各种应用服务器
  • Keepalived配置目录位于/etc/keepalived/

Keeplived及其工作原理

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

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

Keepalived体系主要模块及其作用

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

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

keepalive服务

keepalive服务可以使用yum安装、以及编译安装

本地yum源自带的版本比较旧

编译安装可以从官网下载较新的安装包进行安装

安装keepalive

使用yum安装:yum  install keepalived.x86_64 -y

 LVS+Keepalived 高可用群集,lvs,服务器,运维

  默认的主配置文件有157行

cat /etc/keepalived/keepalived.conf |wc -l

LVS+Keepalived 高可用群集,lvs,服务器,运维

 配置文件详解

全局配置

LVS+Keepalived 高可用群集,lvs,服务器,运维

 global_defs
#全局配置
 
notification_email
#定义当VRRP实例状态发生变化时,系统将通过电子邮件发送通知给指定的收件人列表。
 
acassen@firewall.loc, failover@firewall.loc, sysadmin@firewall.loc
#邮件通知的接收者。
 
notification_email_from Alexandre.Cassen@firewall.loc
#设置发送邮件通知时显示的发件人地址,这里是 Alexandre.Cassen@firewall.loc。
 
smtp_server  192.168.200.1
#指定SMTP服务器地址,本例中为 192.168.200.1,该服务器用于发送邮件通知。
 
smtp_connect_timeout  30
#设置SMTP服务器连接超时时间,单位为秒,这里为30秒。
 
router_id LVS_DEVEL
#为当前运行的Keepalived实例设置一个唯一的标识符,用在日志和其他网络通信中
 
vrrp_skip_check_adv_addr
#跳过对通告地址(advertised address)的检查。如果启用此选项,在某些情况下
#可以避免错误,比如通告地址未在任何接口上配置。
 
vrrp_strict
#启用严格模式,要求配置必须符合RFC文档的标准规范,否则Keepalived服务可能不会启动。
#建议关闭
 
vrrp_garp_interval 0
#设置发送GARP(即无请求的ARP响应)消息的时间间隔,默认值通常为1秒。设为0表示禁用GARP功能。
 
vrrp_gna_interval 0
#设置发送GNA(即IPv6下的无请求邻居通告)消息的时间间隔。设为0表示禁用GNA功能

VRRP实例配置 

LVS+Keepalived 高可用群集,lvs,服务器,运维

vrrp_instance VI_1
'定义VRRP实例名称。'
 
state MASTER
'设置当前节点在VRRP组中的初始状态为MASTER。这意味着该节点将优先处理请求,
并拥有VIP(虚拟IP地址)的所有权'
 
'interface eth0'
'指定VRRP通告报文通过哪个网络接口发送,这里使用的是eth0接口。'
 
virtual_router_id 51
'每个VRRP实例需要一个唯一的标识符,这里用数字51表示。主备需要在同一个标识符内'
 
priority 100
'设置本节点在VRRP组中的优先级,数值越高代表优先级越高,优先级最高的节点将成为MASTER'
 
advert_int 1
'设置VRRP通告消息的时间间隔,单位为秒。此处设置为每秒发送一次心跳消息以确认其是否在线'
 
authentication:
auth_type PASS  '设置认证类型为密码认证。'
auth_pass 1111  '设置用于身份验证的共享密码。'
 
virtual_ipaddress
'列出此VRRP实例要管理的一系列虚拟IP地址' 

服务器配置

LVS+Keepalived 高可用群集,lvs,服务器,运维

 '虚拟服务器'
virtual_server 192.168.200.100 443
#定义了一个虚拟服务器,对外提供服务的地址为192.168.200.100,监听端口为443(即HTTPS服务)。
 
delay_loop 6
#健康检查间隔,每隔6秒对后端服务器执行一次健康检查。
 
lb_algo rr
#负载均衡算法采用轮询(Round Robin)策略。
 
lb_kind NAT
#负载均衡方式采用NAT,客户端与真实服务器之间的通信通过NAT进行转发。
 
#persistence_timeout 50
#会话保持超时时间,同一个客户端在50秒内发起的新请求都会被转发到同一台后端服务器上。
 
protocol TCP
#明确指出虚拟服务器处理的是TCP流量。
 
'真实服务器配置'
 
real_server 192.168.201.100 443
#定义一个真实服务器,其IP地址为192.168.201.100,同样监听443端口
 
weight 1
#权重值为1,表示该服务器在负载均衡中分配请求的相对权重。
 
SSL_GET
#使用SSL协议发送GET请求来进行健康检查。
 
url
#定义了两个需要检查的URL路径及其预期的HTTP响应摘要。一般不适用url,需要更改
 
connect_timeout 3    #设置连接到真实服务器的超时时间为3秒。
nb_get_retry 3       #如果首次请求未能得到正确的摘要,将重试3次。
delay_before_retry   #每次重试前等待3秒。

扩展

脑裂

脑裂:
在高可用(HA)系统中,当联系2个节点的“心跳线”断开时,本来为一整体、动作协调的HA系统,就分裂成为2个独立的个体。

由于相互失去了联系,都以为是对方出了故障。两个节点上的HA软件像“裂脑人”一样,争抢“共享资源”、争起“应用服务”,就会发生严重后果。共享资源被瓜分、两边“服务”都起不来了;或者两边“服务”都起来了,但同时读写“共享存储”,导致数据损坏

造成脑裂的原因有哪些?
高可用服务器对之间心跳线链路发生故障,导致无法正常通信。
因心跳线坏了(包括断了,老化)。
因网卡及相关驱动坏了,ip配置及冲突问题(网卡直连)
因心跳线间连接的设备故障(网卡及交换机)
因仲裁的机器出问题(采用仲裁的方案)
高可用服务器上开启了 iptables防火墙阻挡了心跳消息传输。
高可用服务器上心跳网卡地址等信息配置不正确,导致发送心跳失败
其他服务配置不当等原因,如心跳方式不同,心跳广插冲突、软件Bug等。
如何解决keepalived脑裂问题?
同时使用串行电缆和以太网电缆连接、同时使用两条心跳线路,这样一条线路断了,另外一条还是好的,依然能传送心跳消息
当检查脑裂时强行关闭一个心跳节点(这个功能需要特殊设备支持,如stonith、fence)相当于备节点接收不到心跳消息,通过单独的线路发送关机命令关闭主节点的电源
做好对脑裂的监控报警
解决常见方案:

如果开启防火墙,一定要让心跳消息通过,一般通过允许IP段的形式解决
可以拉一条以太网网线或者串口线作为主被节点心跳线路的冗余
开发检测程序通过监控软件检测脑裂
 文章来源地址https://www.toymoban.com/news/detail-849137.html

到了这里,关于LVS+Keepalived 高可用群集的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【简单认识LVS+Keepalived负载均衡高可用群集】

    Keepalived 是一个基于VRRP协议来实现的LVS服务高可用方案,可以解决静态路由出现的单点故障问题。 在一个LVS服务集群中通常有主服务器(MASTER)和备份服务器(BACKUP)两种角色的服务器,但是对外表现为一个虚拟IP,主服务器会发送VRRP通告信息给备份服务器,当备份服务器收

    2024年02月15日
    浏览(43)
  • LVS-DR+keepalived实现高可用负载群集

    VRRP 通信原理: VRRP就是虚拟路由冗余协议,它的出现就是为了解决静态路由的单点故障。 VRRP是通过一种竞选的一种协议机制,来将路由交给某台VRRP路由。 VRRP用IP多播的方式(多播地址224.0.0.18)来实现高可用的通信,工作时主节点发包,备节点接收包,当备节点接收不到主

    2024年02月12日
    浏览(38)
  • 【LVS】3、LVS+Keepalived群集

    为什么用它,为了做高可用 服务功能 1.故障自动切换 2.健康检查 3.节点服务器高可用-HA Keepalived的三个模块: core:Keepalived的核心,负责主进程的启动、维护;调用全局配置文件进行加载和解析 vrrp:实现VRRP协议 check:负责健康检查         tcp端口检查:三次握手     

    2024年02月11日
    浏览(41)
  • LVS+Keepalived 群集部署

    目录 一、 Keepalived工具介绍 二、keepalived 服务重要功能  2.1 管理 LVS 负载均衡软件 2.2 支持故障自动切换(Failover) 2.3 实现 LVS 集群中节点的健康检查(Health Checking) 2.4 实现 LVS 负载调度器、节点服务器的高可用性(HA) 三、keepalived 高可用故障切换转移原理 四、keepalived 体

    2024年02月13日
    浏览(29)
  • 【集群】LVS+Keepalived群集

      在这个高度信息化的 IT 时代,企业的生产系统、业务运营、销售和支持,以及日常管理等环节越来越依赖于计算机信息和服务,对高可用(HA)技术的应用需求不断提高,以便提供持续的、不间断的计算机系统或网络服务。   Keeplived是一款专为LVS和HA设计的健康检查工具

    2024年02月09日
    浏览(38)
  • LVS+Keepalived群集

    专门为LVS 和 HA 设计的一款健康检查工具 专为LVS和HA设计的一款健康检查工具,支持故障自动切换(Failover)以及节点健康状态检查(Health Checking)。判断LVS负载调度器、节点服务器的可用性,当master主机出现故障及时切换到 backup 节点保证业务正常,当 master故障主机恢复后将

    2024年02月09日
    浏览(43)
  • LVS + Keepalived群集

    专为LVS和HA设计的一款健康检查工具支持故障自动切换 (Failover) 支持节点健康状态检查(Health Checking) 判断 LVS 负载调度器、节点服务器的可用性 当 master 主机出现故障及时切换到backup 节点保证业务正常,当 master故障主机恢复后将其重新加入群集并且业务重新切换回 master 节点

    2024年02月08日
    浏览(38)
  • LVS+Keepalived群集实验

    目录 Keepalived 是什么 Keepalived 功能 Keepalived 模块   工作原理 脑裂现象及解决方案   脑裂 形成脑裂的原因  解决脑裂的几种方法: 为了减少或避免HA集群中出现脑裂现象,我们可以采取以下措施: Keepalived服务主要功能(详细) 1、管理LVS负载均衡软件 2、支持故障自动切换

    2024年02月11日
    浏览(31)
  • LVS和keepalived群集

    1.keepalived服务的重要功能: (1)管理LVS负载均衡器软件:keepalived可以通过读取自身的配置文件,实现通过更底层的接口,直接管理LVS配置及服务的启动,停止功能,这会使LVS应用更健康。 (2)支持故障自动切换: ① 两台主机同时安装keepalived并启动服务,当启动的时候,

    2024年02月13日
    浏览(39)
  • 【Web服用应用】LVS+Keepalived群集

    Keepalived 是一个基于VRRP协议来实现的LVS服务高可用方案,可以解决静态路由出现的单点故障问题。 在一个LVS服务集群中通常有主服务器(MASTER)和备份服务器(BACKUP)两种角色的服务器,但是对外表现为一个虚拟IP(VIP),主服务器会发送VRRP通告信息给备份服务器,当备份服

    2024年02月09日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包