Linux高可用之keepalived

Linux高可用之keepalived

  • keepalived简介
      • VRRP协议介绍
  • keepalived工作原理
  • Keepalived作用
  • Keepalived和Heartbeat之间的对比
  • keepalived的配置文件
      • 全局配置
      • 静态地址和路由配置范例
      • VRRPD配置
      • LVS配置
      • 健康检查方式

keepalived简介

keepalived是集群管理中保证集群高可用的一个服务软件(防止单点故障)
它能够保证当个别节点宕机时,整个网络可以不间断地运行,所以,Keepalived
一方面具有配置管理LVS的功能,同时还具有对LVS下面节点进行健康检查的功能,另一方面也可实现系统网络服务的高可用功能

VRRP协议介绍

网络在设计的时候必须考虑到冗余容灾,包括线路冗余,设备冗余等,防止网络存在单点故障,那在路由器或三层交换机处实现冗余就显得尤为重要。

在网络里面有个协议就是来做这事的,这个协议就是VRRP协议,Keepalived就是巧用VRRP协议来实现高可用性(HA)的发生。

VRRP全称Virtual Router Redundancy Protocol,即虚拟路由冗余协议。对于VRRP,需要清楚知道的是:

  • VRRP是用来实现路由器冗余的协议。
  • VRRP协议是为了消除在静态缺省路由环境下路由器单点故障引起的网络失效而设计的主备模式的协议,使得发生故障而进行设计设备功能切换时可以不影响内外数据通信,不需要再修改内部网络的网络参数。
  • VRRP协议需要具有IP备份,优先路由选择,减少不必要的路由器通信等功能。
  • VRRP协议将两台或多台路由器设备虚拟成一个设备,对外提供虚拟路由器IP(一个或多个)。然而,在路由器组内部,如果实际拥有这个对外IP的路由器如果工作正常的话,就是master,或者是通过算法选举产生的,MASTER实现针对虚拟路由器IP的各种网络功能,如ARP请求,ICMP,以及数据的转发等,其他设备不具有该IP,状态是BACKUP。除了接收MASTER的VRRP状态通告信息外,不执行对外的网络功能,当主级失效时,BACKUP将接管原先MASTER的网络功能。
  • VRRP协议配置时,需要配置每个路由器的虚拟路由ID(VRID)和优先权值,使用VRID将路由器进行分组,具有相同VRID值的路由器为同一个组,VRID是一个0-255的整整数,;同一个组中的路由器通过使用优先权值来选举MASTER。,优先权大者为MASTER,优先权也是一个0-255的正整数。

VRRP 工作机制

VRRP 工作流程

keepalived工作原理

  • keepalived可提供vrrp以及health-check功能,可以只用它提供双机浮动的vip(vrrp虚拟路由功能),这样可以简单实现一个双机热备高可用功能;
  • keepalived是以VRRP虚拟路由冗余协议为基础实现高可用的,可以认为是实现路由器高可用的协议,即将N台提供相同功能的路由器组成一个路由器组,这个组里面有一个master和多个backup,master上面有一个对外提供服务的vip(该路由器所在局域网内其他机器的默认路由为该vip),master会发组播,当backup收不到VRRP包时就认为master宕掉了,这时就需要根据VRRP的优先级来选举一个backup当master。这样的话就可以保证路由器的高可用了。

Keepalived作用

Keepalived主要用作RealServer的健康状态检查以及LoadBalance主机和BackUP主机之间failover的实现。Keepalived的作用是检测web服务器的状态,如果有一台web服务器死机,或工作出现故障,Keepalived将检测到,并将有故障的web服务器从系统中剔除,当web服务器工作正常后Keepalived自动将web服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的web服务器。

Keepalived和Heartbeat之间的对比

使用建议: 优先使用Keepalived,当Keepalived不够用的时候才选择Heartbeat
lvs的高可用建议用Keepavlived

keepalived的配置文件

keepalived只有一个配置文件keepalived.conf,配置文件里面主要包括以下几个配置项,分别是global_defs、static_ipaddress、static_routes、VRRP_script、VRRP_instance和virtual_server。

keepalived主要有三类区域配置,注意不是三种配置文件,是一个配置文件里面三种不同类别的配置区域:

  • 全局配置(Global Configuration)
  • VRRPD配置
  • LVS配置

全局配置

全局配置又包括两个子配置:
全局定义(global definition)
静态路由配置(static ipaddress/routes)

全局定义(global definition)配置范例:

全局配置解析
global_defs全局配置标识,表面这个区域{}是全局配置

静态地址和路由配置范例

这里实际上和系统里面用命令配置IP地址和路由的一样,例如:
192.168.1.1/24 brd + dev eth0 scope global 相当于: ip addr add 192.168.1.1/24 brd + dev eth0 scope global
就是给eth0配置IP地址
路由同理

VRRPD配置

VRRPD配置包括三个类:
VRRP同步组(synchroization group)
VRRP实例(VRRP Instance)
VRRP脚本

VRRP同步组(synchroization group)配置范例

VRRP实例(instance)配置范例

VRRP脚本范例

vrrp_script check_running {   script “/usr/local/bin/check_running”   interval 10   weight 10}vrrp_instance http {   state BACKUP   smtp_alert   interface eth0   virtual_router_id 101   priority 90   advert_int 3   authentication 来源:劲节子
                                                        

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年10月18日
下一篇 2020年10月18日

相关推荐