文档章节

keepalived源码阅读(1)— 源码架构

holton
 holton
发布于 2016/08/26 16:43
字数 413
阅读 115
收藏 0

一、源码架构

keepalived从main函数出发,主要有两个分支,一个是start_check_child,一个是start_vrrp_child。

start_check_child:启动检查进程,实现了keepalived健康检查的相关功能。

start_vrrp_child:启动vrrp子进程,主要实现了vrrp协议,负责了keepalived主要的事件的调度。

从官方给的架构图可以更直观的了解到这两个进程的作用:

图片来源:http://www.keepalived.org/documentation.html

以下是我个人对于各个components的理解,可能理解的会有些偏颇。

watchdog:由主进程实现,在主进程中注册了一系列的信号的处理函数。比如对于keepalived reload产生的SIGHUP信号的响应、子进程退出的SIGCHLD信号的响应等。

VRRP Stack:VRRP协议的实现,主要为vrrp的状态的切换、自检脚本的执行、VIP的添加摘除等操作。

Netlink Reflector:netlink主要用于用户层和内核层的通信,在keepalived中的应用主要是用来获取IP/MAC等地址信息,同时,VIP的添加和摘除也是通过netlink通道完成的。

checkers和ipvs:这部分主要就是涉及到lvs部分的功能了,这部分没有详细看。

configuration file parser:读取配置文件,默认的路径是/etc/keepalived/keepalived.conf,keepalived针对配置文件,实现了一个类似于vector的数据结构。并且由于采用递归的形式读取,所以配置文件中是可以使用类似于#include xxx.file的形式引入其他配置文件的。配置信息被存放在全局的vrrp_t和vrrp_data_t等数据结构中。

© 著作权归作者所有

下一篇: RPM包制作
holton
粉丝 0
博文 16
码字总数 7331
作品 0
深圳
私信 提问
解决Keepalived启动“Fail to start LVS and VRRP Avaliability Monitor” 问题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zt15732625878/article/details/86493096 前言 小编最近在做nginx+keepalived 达到高可用的实验,配置好keepa...

大白快跑8
01/15
0
0
消息中间件(Kafka/RabbitMQ)收录集

本篇主要整理工作中遇到的一些消息中间件的相关知识,包括Kafka, RabbitMQ, RocketMQ, ActiveMQ等,不排除收录其他消息中间件的可能。 这里会持续收录相关知识,包括安装、部署、使用示例、监...

u013256816
2017/01/26
0
0
keepalive+nginx集群架构文档

1.准备两台机器 A机器:192.168.232.132 B机器:192.168.232.131 A级器作为master,B机器作为backup 2.两台机器都安装:keepalived A机器[root@aaa-01 ~]# yum install -y keepalivedB机器[...

小伟996
2018/08/07
0
0
linux学习路线

初级阶段: 了解linux的多种安装方式(光驱安装/U盘安装/硬盘安装) 熟练掌握linux的常见命令(约80个) 熟练掌握Linux软件包安装方法(源码安装/rpm方式安装/yum安装) 熟练掌握Linux的系统...

偏执与你
2017/06/18
0
0
MHA+MySQL实现mysql的高可用

1. MHA的简单介绍 简介 MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司youshimaton(现就职于Facebook公司)开发,是一套优秀的作为MyS...

wdw王大为
2018/05/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

最新【从零单排】系列流出,教你如何实现字典存储结构

昨天在星球的【从零单排】系列分享了一篇【字典存储结构的实现方式】,我觉得这篇文章写的还是蛮好的,就分享给大家了。 但由于篇幅太长了,微信没办法全部传上来,如果你觉得内容还不错,想...

上海小胖
36分钟前
0
0
JWT学习总结

官方 https://jwt.io 英文原版 https://www.ietf.org/rfc/rfc7519.txt 或 https://tools.ietf.org/html/rfc7519 中文翻译 https://www.jianshu.com/p/10f5161dd9df 1. 概述 JSON Web Token(......

冷基
今天
5
0
AOP的学习(1)

AOP 理解AOP编程思想(面向方法、面向切面) spring AOP的概念 方面 -- 功能 目标 -- 原有方法 通知 -- 对原有方法增强的方法 连接点 -- 可以用来连接通知的地方(方法) 切入点 -- 将用来插入...

太猪-YJ
今天
5
0
一张图看懂亮度、明度、光度、光亮度、明亮度

亮度、明度、光亮度,Luminance和Brightness、lightness其实都是一个意思,只是起名字太难了。 提出一个颜色模型后,由于明度的取值与别人的不同,为了表示区别所以就另想一个词而已。 因此在...

linsk1998
昨天
11
0
Python应用:python链表示例

前言 python链表应用源码示例,需要用到python os模块方法、函数和类的应用。 首先,先简单的来了解下什么是链表?链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是...

python小白1
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部