keepalived组件

keepalived组件介绍

说明:keepalived使用了4个Linux的内核组件
①LVS框架:使用getsocketopt和setsocketopt来获取和设置套接字上的选项
②Netfilter框架:支持NAT和Masquerading的IPVS代码
③NetLink接口,在网络接口上设置和删除VRRP虚拟IP
④组播:VRRP通告发送到保留的VRRP组播组(224.0.0.18)

一、keepalived组件图

keepalived组件图

二、组件说明

  1. 控制平面–Control Plane
    keepalived配置通过keepalived.conf文件完成,解析器使用关键字树层次结构来使用特定处理器映射每个配置关键字,中央多级递归函数读取配置文件并遍历关键字树,在解析期间,配置文件被转换为内部的内存表示
  2. 调度器–I/O多路复用器
    所有事件都在相同过程中进行调度,keepalived是一个单一的过程,由一个中央的select负责调度所有内部任务,该框架提供了自己的线程抽象,针对网络目的进行了优化,没有使用POSIX线程库
  3. 内存管理–Memory Mngt
    此框架提供了对一些通用内存管理方法的访问,如allocation、reallocation、release等,此框架可用于两种模式:normal_mode和debug_mode,在使用debug_mode时,它提供了一种消除和跟踪内存泄露的强大方式,这种底层环境通过跟踪内存分配和释放来提供缓冲区负载保护,使用的所有缓冲区都是固定长度的,以防止最终的缓冲区溢出
  4. 核心组件–Core components
    此框架定义了所有代码中使用的通用库和全局库:html解析、链表、定时器、向量、格式化字符串、缓冲区转储、网络工具、守护进程管理、pid处理、低级别4层TCP,目的就是为了避免代码冗余,增加模块化
  5. watchdog
    此框架提供子进程的监控,每个子进程都接收到自己的监视器unix域套接字的连接,主进程向子进程的unix域套接字发送hello数据包,hello数据包通过主进程的I/O多路复用器发送,并使用子进程的I/O多路复用器接收/处理,如果主进程检测到断开的管道,将使用sysV信号测试子进程是否存活并重启子进程
  6. 检查器–Checkers
    检查器负责真实服务器的健康检查,检查器检查真实服务器是否处于活动状态,此测试以二元的决策结束:从LVS拓扑中移除或添加真实服务器,检查器内部设计为实时网络软件,使用完全多线程的FSM(有限状态机)设计,此检查器提供对应4层到5/7层测试结果的LVS拓扑操作,在独立子进程中运行
  7. VRRP
    为路由器备份提供底层设计,实现了vrrp_sync_group扩展,可在协议接管后,保证持久性路由路径,使用MD5-96bit加密配置实现IPSEC_AH,以提供安全的协议通告交换,VRRP代码被设计为独立使用,可以支持在没有LVS的情况下使用,并且在独立子进程中运行
  8. 系统调用–system call
    此框架提供了运行额外系统脚本的能力,主要用于MISC检查器,在VRRP框架中,它提供了在协议状态转换期间启动额外脚本的能力,系统通过调用fork子进程来进行,避免扰乱全局调度定时器
  9. SMTP
    SMTP协议用来管理通知,在健康检查活动和VRRP协议状态转换时进行管理通知
  10. NETLINK反射器
    keepalived使用自己的网络接口表示,通过内核netlink通道设置和监控IP地址,netlink消息子系统用于设置VRRP VIP,netlink内核消息广播功能用于将与接口相关的任何时间反应到用户空间keepalived内部数据表示中,用户空间的netlink操作会通过netlink内核广播反应到我们的keepalived数据表示中
  11. IPVS封装器
    此框架用于将规则发送到内核IPVS代码中,它提供keepalived内部数据表示和IPVS rule_user表示之间的转换,使用IPVS libipvs来保持与IPVS代码的通用集成
  12. IPVS
    在Linux内核中实现传输层负载均衡
  13. NETLINK
    用于在内核和用户空间进程之间传输消息,由用于用户空间进程的标准套接字接口和用于内核模块的内部内核API组成
  14. Checkers–TCP
    工作在第四层,通过非阻塞/带超时时间的TCP连接进行常规检查,如果远程服务器未回复此请求,则服务器将从服务器池中移除
  15. Checkers–HTTP
    工作在第五层,对指定的URL进行HTTP GET,然后使用MD5算法对HTTP GET进行求和,如果此总和与预期值不匹配,则服务器将从服务器池中移除,此模块实现了对同一服务多url get检查
  16. Checkers–SSL
    与HTTP GET相同,但使用SSL远程连接到服务器
  17. Checkers–MISC
    此检查允许用户自己定义的脚本作为运行状况检查程序运行,结果必须为0或1
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值