LVS-keepalived实现高可用

概念:

本章核心:

Keepalived为LVS应运而生的高可用服务。LVS的调度无法做高可用,预算keepalived这个软件,实现了调度器的高可用。

但是:Keeplived不是专门为LVS集群服务的,也可以做其他服务器的高可用

LVS的高可用集群:主调度器和备调度器(可以有多个)一般都是一主两备,一主一备

主调度器能够正常运行时,由主调度器进行后端真实服务器的分配处理,其余的备用调度器处在冗余状态,不参与集群的运转,主调度器挂了无法运行,此时备用调度器才会承担主调度器的工作,一旦主调度器恢复工作,继续由主调度器进行处理,备调度器用成了冗余。

VRRP:keepalived时基于vrrp协议实现LVS服务的高可用,解决了调度器单节点的故障问题

复习一下VRRP:

复习一下vrrp协议:提高网络路由器的可靠性开发的一种协议。

选举出主和备:预先设定好主和备的优先级,住的优先级较高,备的优先级低,一旦开启服务器,优先级高的,会自定抢占主的位置

VRRP组播通信:224.0.0.18  VRRP协议当中的主备服务器通过组播地址进行通信,交换主备服务器的之间的运行状态,主服务器会周期性的发送VRRP的报文消息,已告知其他备服务器,主服务器形现在的状态

主备切换:主服务器发生故障或者不可达,VRRP协议会把请求转义到备服务器,通过组播地址,VRRP可以迅速通知其他服务器发生了主备切换,确保新的主服务器可以正常的处理客户端的请求

故障恢复:一旦服务器恢复通信,由组播地址进行通信,发现在恢复的主服务器优先级更高,会抢占原主服务器的位置,成为主服务器,调度和接受请求。

LVS—DR模式结合keepalived

主的故障恢复之后,VIP地址转移

实验配置:

Test1:主调度器

Test2:备调度器

后端真实服务器1

后端真实服务器2

VIP地址

客户端

需要的工具

Keepalived的体系和模块

全局模块:core模块,负责整个keepalived启动加载和维护

VRRP模块:实现VRRP协议,包括主备切换

Check模块:负责健康检查,检查节点服务器,检查后端真实服务器的健康检查。配置在真实服务器的模块当中

关闭主调度服务器的转发功能

配置备服务器

备调度器远程复制

配置后端真实服务器

配置虚拟网卡

开一台客户机验证

验证keepalived机制是否工作正常

主调度器

备调度器

主调度器恢复工作之后

脑裂概念:

主和备同时拥有VIP地址,在高可用系统当中,联系两个系统的心跳线,本来是一体的,他是一个动作协调的高可用系统。

心跳线断开之后,分裂成两个独立的个体,主和备之间失去了联系,两个调度器,就像脑裂人一样开始抢占主的位置,抢占VIP,主也有VIP,备也有VIP,导致整个集群失败。

怎么解决脑裂问题:

软件层面:

  1. 配置文件问题
  2. Tcpdump抓包分析
  3. 先重启主,再重启备

网络层面:

  1. 高可用服务器之间他们的心跳线检测失败,主备之间无法进行通信

硬件层面:

  1. 连接主备之间的心跳线老化
  2. 网卡或者网卡驱动失败,IP地址配置冲突
  3. 防火墙导致的,防火墙没有配置心跳消息的传输通道,导致检测失败
  4. 后端服务器的配置问题,心跳方式不同,心跳广播冲突,软件bug

如何解决keepalived脑裂的问题:

  1. 硬件:准备两条心跳线,这样断了一条也无所谓,依然能够传送心跳消息
  2. 设置防火墙一定要让心跳的消息通过
  3. 依靠监控软件实时检测

生产当中常见的环境:

Dev 开发环境 开发人员专用

Sit 测试环境,测试人员使用(开发运维)

pre  预生产环境,运维和开发(和最终的生产环境保持一致)

Prd 生产环境(面向用户的环境)

Keepalived用于Nginx高可用:

核心图:

实验配置:

Nginx1:192.168.233.61主

Nginx2:192.168.233.62 备

Nginx3:配置VIP

实验前提:

关闭防火墙和安全机制

三台Nginx安装keepalived

Nginx1:

配置文件后面的全部删除

随后添加内容

配置文件最后

Nginx2配置:

另一台nginx直接复制配置文件

改一下优先级,和主备 

写一个脚本文件:

把脚本复制到51主当中

赋权777

配置全部完成,停掉主服务

查看VIP地址是否转移

实现高可用

重启nginx服务,再重启keepalived,记得先后顺序,检测是否出现脑裂问题

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/123069.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STM32F103的中断

文章目录 STM32F103的NVICSTM32F103 的中断优先级分组 STM32F103的NVIC CM3 内核支持 256 个中断,其中包含了 16 个内核中断和 240 个外部中断,并且具有 256级的可编程中断设置。 CM3中每个中断通道都具备自己的8位中断优先级控制字节, 但ST…

【ROS入门】雷达、摄像头及kinect信息仿真以及显示

文章结构 雷达信息仿真以及显示Gazebo仿真雷达配置雷达传感器信息xacro文件集成启动仿真环境 Rviz显示雷达数据 摄像头信息仿真以及显示Gazebo仿真摄像头新建xacro文件,配置摄像头传感器信息xacro文件集成启动仿真环境 Rviz显示摄像头数据 kinect信息仿真以及显示Ga…

不做学习的奴隶,更要注重生活

下面是国外社交软件 i n s ins ins上近 40 40 40万点赞的帖子。 “睡8小时,而不是6小时。 锻炼1小时,而不是4小时。 学习3小时,而不是10小时。 读书2小时,而不是5小时。 深度工作3小时,而不是12小时。 你是人&#xff…

arch linux 安装 vsftpd 配置虚拟用户

后面操作会直接基于 yay 操作 自行查找如何安装 yay 公司经常会用到 ftp 服务 不想用 apache 的 ftp server 所以自己在小机器上撞了 arch linux 用来安装软件 跑程序等。 1. 安装 vsftpd yay vsftpd --noconfirm选择 1 安装 输入密码 2. 安装 pam_pwdfile 安装 pam_pwdf…

【软件安装】Windows系统中使用miniserve搭建一个文件服务器

这篇文章,主要介绍如何在Windows系统中使用miniserve搭建一个文件服务器。 目录 一、搭建文件服务器 1.1、下载miniserve 1.2、启动miniserve服务 1.3、指定根目录 1.4、开启访问日志 1.5、指定启动端口 1.6、设置用户认证 1.7、设置界面主题 (…

基于 ARM+FPGA+AD平台的多类型同步信号采集仪开发及试验验证(一)

对工程结构的服役状况进行实时的监测和诊断,及时地发现结构的损伤,评估其安 全性能,预判结构的性能变化趋势与服役期限并提出改进举措,对提高工程结构的使用 效率,保障人民生命财产安全具有极其重要的意义&#xff0…

Instant,LocalDate,LocalTime,LocalDateTime和ZonedDateTime

Instant 封装了从 1970-01-01T00:00:00Z 开始的秒数,相当于时间戳。 主要有两个属性: private final long seconds; private final int nanos;LocalDate 用于表示日期,包括年、月、日,例如 2017-12-03。 主要有三个属性&…

华为终端智能家居应用方案

PLC-IoT概述 华为智能PLC-IoT工业物联网系列通信模块是基于电力线宽带载波技术的产品,实现数据在电力线上双向、高速、稳定的传输,广泛适用于电力、交通、工业制造、智能家居等领域,PLC-IoT通信模块包含头端和尾端两种类型,头端配…

centos怎么禁用和关闭selinux

要禁用和关闭SELinux(Security-Enhanced Linux)在CentOS上,请按照以下步骤进行: 请注意:禁用SELinux会减少系统的安全性,因此只有在确切知道自己在做什么并且出于特定目的时才应该这样做。 1.打开终端并以超级用户(root)身份登录&…

el-table(vue2中)滚动条被固定列盖住

一、项目场景: vue2 el-table 二、问题描述 1、现场图片: 2、全局css环境配置了滚动条高度为6px /* 全局滚动条配置 */ ::-webkit-scrollbar {width: 6px;height: 6px; }::-webkit-scrollbar-track {background-color: #f1f1f1; }::-webkit-scrollbar-…

Java 工具类 列表动态维护

原本需求:一个二级 list 更新功能。 常规实现:先删除原来的全部数据,再重新插入,这样就很耗时了,所以这里写一个工具类出来。 1. 如果有新增的数据:仅对这些数据新增 2. 如果有删除的数据:仅…

STM32F4VGT6-DISCOVERY:uart1驱动

对于这款板子&#xff0c;官方并没有提供串口例程&#xff0c;只能自行添加。 一、PA9/PA10复用成串口1功能不可用 驱动测试代码如下&#xff1a; main.c: #include "main.h" #include <stdio.h>void usart1_init(void) {GPIO_InitTypeDef GPIO_InitStruct…

Cesium 展示——对每段线、点、label做分组实体管理

文章目录 需求分析需求 对多组实体的管理,每组实体中包含多个点和一条线,并可对该组进行删除操作 分析 删除操作中用到了 viewer.entities.remove(radarEntity); 根据ID获取实体var radar = viewer.entities.getById(radar); viewer.entities.remove(radar );

ubuntu 18 更新git版本到 2.80.1

前言 使用gitlab的时候&#xff0c;发现下面这条语句不能用 git init --initial-branch XXX查看git version git version下载 wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.38.1.tar.gz 或者 https://git-scm.com/download/linux 或者去github上面下载…

汇编语言-div指令溢出问题

汇编语言-div指令溢出问题 8086CPU中被除数保存在ax(16位)或ax和dx&#xff08;32位&#xff09;中&#xff0c;如果被除数为16位&#xff0c;进行除法运算时al保存商&#xff0c;ah保存余数。如果被除数为32位时&#xff0c;进行除法运算时&#xff0c;ax保存商&#xff0c;d…

从最简单基本开始 or 把问题复杂化还自诩为“设计了一个可扩展的系统”?

文章目录 Intro程序员“把问题复杂化”的职业病如何抉择 Intro 刚才看了一段关于在苹果系统中使用numbers表格软件制作记账本的视频教程&#xff1a;当 Excel 交给苹果来设计会变成…&#xff1f;#Numbers 新手教学&#xff0c;以下为最终界面效果&#xff1a; 有些触动&…

Python Flask

Python Flask是一个轻量级的web开发框架&#xff0c;用于快速地构建web应用程序。以下是Python Flask的基本使用步骤&#xff1a; 安装Flask&#xff1a;使用pip安装Flask包。在命令行中输入以下命令&#xff1a; pip install flask创建Flask对象&#xff1a;在Python文件中&am…

Spring中简单的获取Bean对象(对象装配)

获取Bean对象也叫做对象装配&#xff0c;是把对象取出来放到某个类中&#xff0c;有时候也叫对象注入&#xff01; 对象装配&#xff08;对象注入&#xff09;更加简单的读取Bean&#xff08;是从Spring容器中读取某个对象放到当前类里面&#xff09;的实现方法有以下3种&…

【iOS】——知乎日报第二周总结

文章目录 一、自定义cell内容乱序问题二、WKWebView加载网页三、通过cell的协议函数进入指定网页四、滚动视图左滑加载新的网页五、隐藏导航栏 一、自定义cell内容乱序问题 当我下拉刷新的时候一开始我自定义的cell的内容顺序没有问题&#xff0c;当我一直下拉刷新或者上滑看以…

mac电脑视频处理推荐:达芬奇DaVinci Resolve Studio 18 中文最新

DaVinci Resolve Studio 18是一款专业的视频编辑、调色和后期制作软件&#xff0c;由Blackmagic Design开发。它被广泛应用于电影、电视和广告等行业&#xff0c;提供了全面的工具和功能&#xff0c;使用户能够进行高质量的影片制作和后期处理。 以下是DaVinci Resolve Studio…