初识keepalived——keepalived介绍与安装

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了初识keepalived——keepalived介绍与安装相关的知识,希望对你有一定的参考价值。

keepalived介绍

keepalived作为高可用集群的一种实现方式,相对于proxy和heartbeat轻量得多,而集群根据实现的功能不同可以分为3种:

1.HA(high available)集群:由一组对外提供相同服务的设备组成,组内每一台设备故障不会影响到服务的正常提供。

2.LB(load balance)集群:有2个或2个以上的设备分摊用户请求。

3.HP(high poformance)集群:由一组设备组成,对外提供高计算和存储性能。

HA和LB的进群于大多场景都有应用,而HP集群除非是计算天气等场景企业中很少会用到。

keepalived实现方式

keepalived是vrrp(virtual route redundant protocol)协议的软件实现方式,vrrp协议是为了避免网络设备成为单点故障而产生的一种协议,其结构如下:

技术分享

2个设备分别在接口上配置地址1和地址2,创建一个vrrp实例,将每个设备上vrrp实例配置段中虚拟路由ID号设为相同,确保2台设备处于同一vrrp实例中,将地址3配置给该实例对外提供服务,客户端通过vrrp实例向系统发出请求。地址3同一时间只能在其中1个设备的接口或别名上生效,具体在哪个设备上生效,需要根据设备上vrrp实例配置段中优先级来决定。这种方案的特点是1台设备始终处于备机状态。为了避免1台设备始终处于备机状态,于是产生了第2种结构:

技术分享

类似上述方法创建2个vrrp实例,让使用地址3的实例在地址1服务器上拥有高优先级,而使用地址4的实例在地址2服务器上拥有高优先级,这样2台服务器同时工作且互为备份,即双主模式,通过DNS上添加多条A记录的方法使客户端的访问分散到不同的服务器上。具体到实际场景,还可分为多种情况,后面再做作介绍。

keepalived安装

keepalive可以直接通过yum进行安装,安装过程不再赘述,通过rpm -qc可以看到keepalived服务的2个配置文件

技术分享

keepalived.conf文件由全局配置段、vrrp实例配置段以及virtual_server配置段,其中virtual_server配置段中可以直接定义LVS的规则,定义方法后面再介绍。全局配置段如下图所示:

技术分享

上图中红框的地址设置了收件人和发件人的邮箱地址,router_id是使用字符串给这台主机做标记,可以使用主机名,下图是vrrp实例配置段

技术分享

vrrp_instance定义了实例名称;virtual_router_id使用同一实例的id号必须相同;

priority定义了该主机的优先级;authentication访问vrrpd的密码,最大8位,所有主机密码要相同;virtual_ipaddress对外提供服务的地址。

安装完成后,找不到keepalived的日志文件,从/etc/sysconfig/keepalived配置文件中得知keepalived默认使用的是LOG_DAEMON

技术分享

而/etc/rsyslog.conf配置文件中并没有设置LOG_DAEMON的记录位置,在rsyslog.conf文件中添加记录local3的日志位置,重启rsyslog服务

技术分享

keepalived配置文件中日志改为本地设备,再重启keepalived服务,就能看到日志了

技术分享

补充说明

keepalived默认工作在抢占模式下,即谁的优先级高,谁成为MASTER。非抢占模式只能配置在BACKUP角色的主机上,配置后即使BACKUP的优先级调高也不会抢夺MASTER角色,不过此处有个特殊情况:如果BACKUP角色配置完nopreempt后再将优先级调至大于MASTER的时候,角色不会发生转移,但是如果此时MASTER掉线后,再重新上线,尽管BACKUP配置了nopreempt,由于他的优先级比MASTER高,所以除非BACKUP掉线否则不会将MASTER角色还给MASTER主机

技术分享



本文出自 “兔样兔森破” 博客,请务必保留此出处http://arkling.blog.51cto.com/2844506/1971277

以上是关于初识keepalived——keepalived介绍与安装的主要内容,如果未能解决你的问题,请参考以下文章

初识keepalived——keepalived与nginx代理实现高可用

Web服务器群集——LVS-DR+Keepalived高可用集群

Nginx与keepalived实现负载均衡

LVS+Keepalived实现mysql的负载均衡

keepalived

keepalived