当前位置: 首页 > news >正文

高可用方案组件,Keepalived详解

   Keepalived是Linux下一个轻量级的高可用解决方案,它与HeartBeat、RoseHA实现的功能类似,都可以实现服务或者网络的高可用,但是又有差别,HeartBeat是一个专业的、功能
完善的高可用软件,它提供了HA软件所需的基本功能,比如心跳检测和资源接管,监测集群中的系统服务,在集群节点间转移共享IP地址的所有者等,HeartBeat功能强大,但是部署和使用相对比较麻烦;与HeartBeat相比,Keepalived主要是通过虚拟路由冗余来实现高可用功能

参考官网:Keepalived for Linux

Keepalived是什么:

Keepalived起初是为LVS设计的,专门用来监控集群系统中各个服务节点的状态。它根据TCP/IP参考模型的第三、第四和第五层交换机制检测每个服务节点的状态,如果某个服务节点出现异常,或工作出现故障,Keepalived将检测到,并将出现故障的服务节点从集群系统中剔除,而在故障节点恢复正常后,Keepalived又可以自动将此服务节点重新加入服务器集群中,这些工作全部自动完成,不需要人工干涉,需要人工完成的只是修复出现故障的服务节点。

Keepalived后来又加入了VRRP的功能,VRRP(Virtual Router Redundancy Protocol,虚拟路由器冗余协议)出现的目的是解决静态路由出现的单点故障问题,通过VRRP可以实现网络不间断稳定的运行。因此,keepalived一方面具有服务器状态检测和故障隔离功能,另一方面也具有HA cluster功能。

工作原理

Keepalived通过VRRP(virtual router redundancy protocol)虚拟路由冗余协议来实现高可用。 在这个协议里会将多台功能相同的路由器组成一个小组,这个小组会有1个master角色和N(N≥1)个backup角色。 Keepalived有三个模块:core、check、vrrp。其中:
core模块为Keepalived的核心,负责主进程的启动、维护以及全局配置文件的加载和解析;
check模块负责健康检查;
vrrp负责实现vrrp协议。
配置文件说明
keepalived配置文件按层级和模块划分的,每层由"{ }"来界定。 在主配置文件中可以通过include来涵盖多个子配置文件。 语法说明:
BOOL: on|off|true|false|yes|no
TIMER: 以秒为单位的时间值,包括小数秒,如3,2.71828。计时器的分辨率是微妙。
关于脚本引用: 
双引号"字符串中嵌入其他双引号或空格,那么字符串将仅在带引号的字符串之后结束(如:"abcd" efg h jkl "mnop" 等同于 "abcd efg h jkl mnop";)。
对于使用参数指定脚本,不带引号的空格将分隔参数。如果参数需要包含空格,则应将其括在单引号(')中
配置文件结构
配置文件包括以下几个模块:
LOBAL CONFIGURATION
BFD CONFIGURATION
VRRPD CONFIGURATION
LVS CONFIGURATION

未完待续

相关文章:

  • [蓝桥杯2024]-PWN:fd解析(命令符转义,标准输出重定向)
  • Qt——实现滚动条添加小组件自动跳转到最后
  • Typora for Mac:轻量级Markdown编辑器
  • 【Diffusion实战】训练一个diffusion模型生成蝴蝶图像(Pytorch代码详解)
  • Visual Studio 对 C++ 头文件和模块的支持
  • mysql相关基础操作
  • 图神经网络实战——图论
  • Docker之数据卷
  • 个人建站前端篇(七)vite + vue3企业级项目模板
  • Unity将4个纹理图拼接成1个纹理
  • 2024-02-26(Spark,kafka)
  • ChatGPT 国内快速上手指南
  • MOSFET 和 IGBT 栅极驱动器电路的基本原理学习笔记(一)MOSFET技术
  • Ansible
  • 年产2万吨山楂酒工厂的设计-陈酿工段及车间的设计(lunwen+任务书+cad图纸)
  • Java项目:SSM教师师资管理系统
  • wasm 视频解码渲染实现
  • [YOLOv7/YOLOv5系列改进NO.40]融入适配GPU的轻量级 G-GhostNet
  • 华为机试真题 C++ 实现【连接器问题】【2022.11 Q4新题】
  • 50、IO流
  • Android入门第43天-Activity与Activity间的互相传值
  • 机器学习之过拟合和欠拟合
  • Postman进阶篇(十一)-在脚本中使用pm对象访问接口请求(pm.request.*)
  • mysql之SQL练习
  • List——顺序表与链表(二)
  • [附源码]Python计算机毕业设计SSM景区在线购票系统(程序+LW)
  • 时序数据库基本概念学习
  • [架构设计] 结构型模型
  • [附源码]计算机毕业设计基于springboot的汽车租赁系统
  • [附源码]Python计算机毕业设计SSM竞赛报名管理系统(程序+LW)
  • mssql(1433端口)介绍
  • 文华财经期货傻瓜式操作设置期货止盈止损指标公式,期货技术分析多空平仓离场信号