轻量级高可用实现工具
一 、keepalived简介keepalived:它的诞生最初是为ipvs(一些服务,内核中的一些规则)提供高可用性的,最初最主要目的是能够自主调用ipvsadm来生成规则,并且能够自动实现将用户访问的地址转移到其他节点上进行实现的。
keepalived:核心包含两个ckechers和VRRP协议。
ckeckers
#检查服务检查reserved的健康状况的,基于脚本也可以服务本身的健康状况。这里是实现ipvs后端健康状况的检测的。
VRRP
# Virtual Router Redundancy Protocol 虚拟路由器冗余协议-----keepalived依赖的最重要的核心技术
二、VRRP协议详解
(一)VRRP技术优点
VRRP是一种容错协议,它保证当主机的下一跳路由器出现故障时,由另一台路由器来代替出现故障的路由器进行工作,从而保持网络通信的连续性和可靠性, VRRP中每个节点之间都有优先级的一般为0-255 (0,255有特殊用法)数字越大优先级越高。
1、简化网络管理。
#在具有多播或广播能力的局域网(如以太网)中,借助VRRP 能在某台设备出现故障时仍然提供高可靠的缺省链路,有效避免单一链路发生故障后网络中断的问题,而无需修改动态路由协议、路由发现协议等配置信息,也无需修改主机的默认网关配置。
2、适应性强。
#VRRP 报文封装在IP 报文中,支持各种上层协议。
3、网络开销小。
#VRRP 只定义了一种报文——VRRP 通告报文,并且只有处于
Master 状态的路由器可以发送VRRP 报文。
(二)VRRP协议中的相关术语
1 虚拟路由器
#由一个 Master 路由器和多个Backup 路由器组成。主机将虚拟
路由器当作默认网关。
2 VRID
#虚拟路由器的标识。有相同VRID 的一组路由器构成一个虚拟路由器。
3 Master 路由器
#虚拟路由器中承担报文转发任务的路由器。
4 Backup 路由器
#Master 路由器出现故障时,能够代替Master 路由器工作的路由器。
5 虚拟 IP 地址
#虚拟路由器的IP 地址。一个虚拟路由器可以拥有一个或多个IP 地址。
6 IP 地址拥有者
#接口IP 地址与虚拟IP 地址相同的路由器被称为IP 地址拥有者。
7 虚拟 MAC 地址
#一个虚拟路由器拥有一个虚拟MAC 地址。虚拟MAC 地址的格式为00-00-5E-00-01-{VRID}。通常情况下,虚拟路由器回应ARP 请求使用的是虚拟MAC 地址,只有虚拟路由器做特殊配置的时候,才回应接口的真实MAC 地址。
8 优先级
# VRRP 根据优先级来确定虚拟路由器中每台路由器的地位。
9 非抢占方式
#如果 Backup 路由器工作在非抢占方式下,则只要Master 路由器没有出现故障,Backup 路由器即使随后被配置了更高的优先级也不会成为Master 路由器。
10 抢占方式
#如果Backup 路由器工作在抢占方式下,当它收到VRRP 报文后,会将自己的优先级与通告报文中的优先级进行比较。如果自己的优先级比当前的Master 路由器的优先级高,就会主动抢占成为Master 路由器;否则,将保持Backup 状态。
(三)VRRP的工作过程
1 Master 路由器的选举;
2 Master 路由器状态的通告;
3 同时,为了提高安全性,VRRP 还提供了认证功能;
(四) VRRP主备备份
主备备份方式表示业务仅由Master路由器承担。当Master路由器出现故障时,才会
由选举出来的Backup路由器接替它工作,如图
http://s3.运维网.com/wyfs02/M00/25/E6/wKiom1NnlL2R380XAAC2QN-r0ik275.jpg
#初始情况下,Device A是Master路由器并承担转发任务,Device B和Device C是Backup路由器且都处于就绪监听状态。如果Device A发生故障,则虚拟路由器内处于Backup状态的Device B和Device C路由器将根据优先级选出一个新的Master路由器,这个新Master路由器继续为网络内的主机转发数据。
(五)VRRP负载分担
在路由器的一个接口上可以创建多个虚拟路由器,使得该路由器可以在一个虚拟路
由器中作为Master路由器,同时在其他的虚拟路由器中作为Backup路由器。
负载分担方式是指多台路由器同时承担业务,因此负载分担方式需要两个或者两个
以上的虚拟路由器,每个虚拟路由器都包括一个Master路由器和若干个Backup路
由器,各虚拟路由器的Master路由器可以各不相同,
http://s3.运维网.com/wyfs02/M01/25/E6/wKiom1NnlSjT-hJhAAEJFzmcuis273.jpg
三、keepalived 原理详解
#keepalived也是模块化设计,不同模块负责不同的功能,下面是keepalived的组件
corecheck vrrp libipfwclibipvs-2.4libipvs-2.6
core
#是keepalived的核心,负责主进程的启动和维护,全局配置文件的加载解析
check
#负责healthchecker(健康检查),包括各种健康检查方式,以及对应的配置的解析包括LVS的配置解析
vrrp
#VRRPD子进程,VRRPD子进程就是来实现VRRP协议的
libipfwc
#iptables(ipchains)库,配置LVS会用到
libipvs*
#配置LVS会用到
keepalived模块化结构
http://s3.运维网.com/wyfs02/M00/25/E6/wKiom1NnlgXwKm4jAAHI6Sgk68U327.jpg
keepalived 启动后会启动三个进程 如下所示:
PID
111Keepalived
页:
[1]