Keepalived搭建高可用LVS负载均衡器

Keepalived介绍

前面我们介绍了LVS的原理和DR模式的搭建,搭建完成后我们发现整个架构存在两个重要的隐患:

1、LVS解决了Real Server的过载的问题,但是LVS本身存在单点问题,如果LVS挂了,那么整个服务将不可用。

2、目前搭建的LVS无法识别后端Real Server是否存活,如果某个Real Server服务挂掉,那么任何请求到这个Real Server的请求将会失败。

本章就通过引入Keepalived来解决这两个问题。

学习任何组件首先我们应该有个习惯,就是首先要搞清楚学习目标组件两个问题:

1、what?(是什么)

2、why?(解决什么)

 

通常这两个问题都可以在组件的官方网站找到答案,所以下面我们进入keepalived官方网站:

https://www.keepalived.org/

从官网提取几句关键描述:

1、Keepalived是用C语言编写的路由软件。(what)

2、Keepalived是开源免费的软件。(what)

3、Keepalived基于Linux虚拟服务器LVS实现负载。(why)

4、Keepalived基于ARRP协议实现高可用性。(why)

5、Keepalived通过一组检查器检查负载后端Real Server存活状态。(why)

 

Keepalived原理

 

Keepalived启动时,首先会创建一个master主进程,然后由master父进程forked出来的两个孩子进程,这两个子进程分别是VRRP协议进程和Real Server检查器进程。每个子进程都有自己的I / O多路复用器。master父进程通过定期发送hello数据包来检测子进程是否存活,如果父进程无法将hello数据包发送给子进程,则重新启动子进程。

Keepalived使用四个Linux内核组件:

1、LVS框架:使用getsockopt和setsockopt调用来获取和设置LVS套接字上的参数。

2、Netfilter框架:支持NAT和Masquerading的IPVS代码。

3、Netlink接口:设置和删除网络接口上的VRRP虚拟IP。

4、Multicast:将VRRP通告发送到保留的VRRP MULTICAST组(224.0.0.18)。

 

下面是Keepalived架构图:

下面分别介绍每个模块的作用。

Control Plane

该模块主要负责解析并检查配置文件keepalived.conf,将解析后的keepalived.conf保存到内存中。

Scheduler-I/O Multiplexer

该模块通过selector多路I/O复用器模型提供调度进程中所有内部任务的支持。

Memory Management

该模块提供对某些通用内存管理功能的访问,例如分配,重新分配,发布等。可以在两种模式下使用:normal_mode和debug_mode。

Core Components

该模块定义了所有代码中都使用的一些通用库和全局库。这些库是:html解析,链接列表࿰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值