高可用软件阐述

在高可用软件领域,我们可能常会听到Heartbeat、Corosync、Pacemaker、keepalived等软件。常见有人问Heartbeat、Corosync、Keepalived这三个集群组件我们到底选哪个好呢?

首先我想说明的是,Heartbeat、Corosync是属于同一类型,Keepalived与Heartbeat、Corosync,根本不是同一类型的。Keepalived使用的vrrp协议方式,虚拟路由冗余协议 (Virtual Router Redundancy Protocol,简称VRRP);Heartbeat或Corosync是基于主机或网络服务的高可用方式;

简单的说就是,Keepalived的目的是模拟路由器的高可用,Heartbeat或Corosync的目的是实现Service的高可用。所以一般Keepalived是实现前端高可用,常用的前端高可用的组合有,就是我们常见的LVS Keepalived、Nginx Keepalived、HAproxy Keepalived。而Heartbeat或Corosync是实现服务的高可用,常见的组合有Heartbeat v3(Corosync) Pacemaker NFS Httpd 实现Web服务器的高可用、Heartbeat v3(Corosync) Pacemaker NFS MySQL 实现MySQL服务器的高可用。

总结一下,Keepalived中实现轻量级的高可用,一般用于前端高可用,且不需要共享存储,一般常用于两个节点的高可用。而Heartbeat(或Corosync)一般用于服务的高可用,且需要共享存储,一般用于多节点的高可用。

下面主要介绍下keepalived。

Keepalived详解

Keepalived是什么?

Keepalived是集群管理中保证集群高可用的一个服务软件,用来防止单点故障。Keepalived起初就是为了LVS调度节点高可用而设计的,专门用来监控集群系统中各个服务节点的状态。如果某个服务节点出现异常,或工作出现故障,Keepalived将检测到,并将出现故障的服务节点从集群系统中剔除,也就是替LVS做了对后端realserver的健康状态监测。而当故障节点恢复正常后,Keepalived又可以自动将此服务节点重新加入到服务器集群中。这些工作全部自动完成,不需要人工干涉,需要人工完成的只是修复出现故障的服务节点。

keepalived也是模块化设计不同模块负责不同的功能,下面是keepalived的相关模块:core、check、vrrp、libipfwc、libipvs-2.4、libipvs-2.6。

core:是keepalived的核心,负责主进程的启动和维护及全局配置文件的加载解析等。

check:负责healthchecker(健康检查),包括了各种健康检查方式以及对应的配置的解析(包括LVS的配置解析)。

vrrp:VRRPD子进程就是来实现VRRP协议的。

libipfwc:liipfwc库是配置LVS时会用到的。

libipvs*:配置LVS时会用到。

PS:注意keepalived和LVS完全是两码事只不过他们各负其责相互配合而已。


后面会分享更多DEVOPS和DBA方面的内容,感兴趣的朋友可以关注下!!

keepalived是开源的吗(高可用软件keepalived详解)(1)

,