LVS+Keepalived

本章结构

1、Keepalived概述

2、Keepalived体系,主要的模块

3、Keepalived工作原理

4、LVS+Keepalived的部署

一、Keepalived概述

Keepalived 是一个基于VRRP协议来实现的LVS服务高可用方案,可以解决静态路由出现的单点故障问题。

vrrp通信原理:vrrp就是虚拟路由冗余协议,它的出现就是为了解决静态路由的单点故障。

vrrp是通过一种竞选机制来将路由交给某个vrrp路由器

vrrp用ip多播的方式实现高可用之间的通信

工作时主节点发包,备节点接包,当备节点接收不到主节点发的数据包时,就启动并接管主节点的资源,备节点可以由多个,通过优先级来进行竞选,但一般Keepalived系统和运维工作是一对的

二、Keepalived体系,主要的模块

主要有三个模块:core、check和vrrp

core模块:Keepalived核心配置,负责主进程启动,维护并且调用全局的配置文件来加载和解析。

cheak模块:  负责健康检查

vrrp模块:来实现vrrp协议的

三、Keepalived工作原理

keepalived高可用应用(健康检查,故障切换)

底层基于VRRP协议实现的高可用

由优先级决定服务器的主备角色,Master服务器上会生成vip,客户端会把访问发送给vip,由Master服务器接收用户的请求,Master服务器会定期给Backup服务器发送VRRP报文,来告知Master服务器状态正常。

当Backup在超时时间内没有收到VRRP报文则会认为Master异常,此时会通过ip命令生成VIP,接替Master的工作接收用户请求。

四、Keepalived经常会出现的问题
脑裂现象

出现脑裂现象产生的原因

Master一直发送心跳消息给backup主机,如果中间的链路突然断掉,backup主机将无法收到master主机发送过来的心跳消息(也就是vrrp报文),backup这时候会立即抢占master的工作,但其实这时候的master是正常工作的,此时就会出现脑裂的现象。

怎么预防脑裂现象

1.使用shell脚本对这两个主机之间的连通性进行监测,如果发现有问题,就会立即关闭keepalived服务来防止脑裂的产生。

2.增加一条链路作为备用链路,即使主链路挂掉了,备用链路也会顶上来,master主机可以继续给backup主机发送心跳消息。

3.监控软件的方法,这边主要是采用的zabbix来监控的,主要就是创建监控项,创建触发器来测试关闭keepalived服务。
 

keepalived实验

框架图

 1.配置负载调度器(主、备相同)

 关闭防火墙和安全机制并安装keepalived服务

 加载并检查ip_vs模块

(1)配置keeplived(主、备DR 服务器上都要设置)修改配置前先做个备份

 

 10行--修改,邮件服务指向本地(即修改地址为回环地址)

 

 12行--修改,指定服务器(路由器)的名称,主备服务器名称须不同,主为LVS_01,备为LVS_02

 14行--注释掉,取消严格遵守VRRP协议功能,否则VIP无法被连接

#定义VRRP热备实例参数

 

 20行--修改,指定热备状态,主为MASTER,备为BACKUP

 21行--修改,指定承载vip地址的物理接口

 22行--修改,指定虚拟路由器的ID号,每个热备组保持一致

 

23行--修改,指定优先级,数值越大优先级越高,这里设置主为100,备为90

 

 27行--修改,指定验证密码,主备服务器保持一致

 指定群集vip地址

修改,指定虚拟服务器地址(VIP)、端口

 

 指定群集工作模式,直接路由(DR)

 指定第一个Web节点的地址、端口

 删除,添加以下健康检查方式#添加第二个 Web节点的地址、端口#删除后面多余的配置

192.168.88.10和20都需要配置vip(虚拟IP)

 

 

 重启网卡

 检查一下

 启动keepalived服务

 查看虚拟网卡vip

(2)启动 ipvsadm 服务

 保存一下ipvsadm规则并启动

 清空规则并重新添加配置规则

检查一下

 (3)调整 proc 响应参数,关闭Linux 内核的重定向参数响应

 

 

 刷新并查看

2.配置节点服务器30 40

 关闭防火墙和安全机制

 

 安装并启动httpd服务

 

 输入文字信息用于验证

 

 

 重启网络

 启动并查看虚拟端口

 修改配置文件并刷新查看

在浏览器浏览192.168.88.99进行验证

 再在主服务器关闭 keepalived 服务后再测试, systemctl stop keepalived并重启网络,再到浏览器进行验证

 因为高可用访问仍然成功,实验结束

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

学习笔记|课后练习解答|电磁炉LED实战|逻辑运算|STC32G单片机视频开发教程(冲哥)|第八集(下):课后练习分析与解答

课后练习解答 增加按键3,按下后表示启动,选择的对应的功能的LED持续闪烁,表示正在工作,且在工作的时候无法切换功能。 需求分解 1 增加按键3 #define KEY3 P34 //增加按键32 按下后表示启动 电平控制3 工作状态锁定 表示正在…

2023国赛数学建模A题B题C题D题资料思路汇总 高教社杯

本次比赛我们将会全程更新思路模型及代码,大家查看文末名片获取 之前国赛相关的资料和助攻可以查看 2022数学建模国赛C题思路分析_2022年数学建模c题思路_UST数模社_的博客-CSDN博客 2022国赛数学建模A题B题C题D题资料思路汇总 高教社杯_2022国赛a题题目_UST数模…

EasyExcel工具 Java导出Excel表数据

EasyExcel 优点坐标依赖读Excel最简单的读的对象写Excel最简单的写的对象最简单的读的监听器填充Excel简单填充(对象)复杂填充(对象和列表)官网:https://easyexcel.opensource.alibaba.com/ EasyExcel是一个基于Java的、快速、简洁、解决大文件内存溢出的Excel处理工具。…

电脑运行缓慢?4个方法,加速电脑运行!

“我电脑才用了没多久哎!怎么突然就变得运行很缓慢了呢?有什么方法可以加速电脑运行速度吗?真的很需要,看看我吧!” 电脑的运行速度快会让用户在使用电脑时感觉愉悦,而电脑运行缓慢可能会影响我们的工作效率…

C# 读取pcd点云文件数据

pcd文件有ascii 和二进制格式,ascii可以直接记事本打开,C#可以一行行读。但二进制格式的打开是乱码,如果尝试程序中读取,对比下看了数据也对不上。 这里可以使用pcl里的函数来读取pcd,无论二进制或ascii都可以正确读取…

lama-cleaner:基于SOTA AI 模型Stable Diffusion驱动的图像修复工具

介绍 由 SOTA AI 模型提供支持的图像修复工具。从照片中删除任何不需要的物体、缺陷、人物,或擦除并替换(由Stable Diffusion驱动)照片上的任何东西。 特征 1.多种SOTA AI模型 擦除模型:LaMa/LDM/ZITS/MAT/FcF/Manga 擦除和替…

Seaborn数据可视化(三)

1.绘制直方图 使用displot()绘制直方图。 import seaborn as sns import numpy as np import matplotlib.pyplot as plt# 生成随机数据 np.random.seed(0) data np.random.randn(1000)# 使用displot绘制直方图 sns.displot(data, bins10, kdeTrue)# 展示图形 plt.show() 结…

在数字化时代的挑战与解决:跨国大文件传输方法

随着当前数字化时代的迅猛发展,大文件跨国传输已经成为企业和个人工作中不可避免的挑战。尽管在这个过程中存在着许多技术障碍和困难,但是通过利用先进的技术和服务,我们仍然能够高效地完成跨国大文件传输的任务。本文将介绍几种常用的跨国快…

在C中使用Socket实现多线程异步TCP消息发送

目录 基础知识开始实现主要函数说明结束语 在本篇文章中,我们会探讨如何在C语言中使用socket来实现多线程,异步发送TCP消息的系统。虽然C标准库并没有原生支持异步和多线程编程,但是我们可以结合使用POSIX线程(pthread&#xff09…

Python爬虫——scrapy_日志信息以及日志级别

日志级别(由高到低) CRITICAL: 严重错误 ERROR: 一般错误 WARNING: 警告 INFO: 一般警告 DEBUG: 调试信息 默认的日志等级是DEBUG 只要出现了DEBUG或者DEBUG以上等级的日志,那么这些…

【Java从入门到精通|1】从特点到第一个Hello World程序

写在前面 在计算机编程领域,Java是一门广泛应用的高级编程语言。它以其强大的跨平台性能、丰富的库和生态系统以及易于学习的语法而备受开发者欢迎。本文将引导您逐步了解Java的特点、如何安装和配置开发环境,以及如何编写您的第一个Java程序。 一、Java…

Map和Set详解

一、二叉搜索树搜索树 1.二叉搜索树的概念 二叉搜索树又称二叉排序树,它或者是一棵空树,或者是具有以下性质的二叉树: 若它的左子树不为空,则左子树上所有节点的值都小于根节点的值 若它的右子树不为空,则右子树上所有节点的值都…

再JAVA中如何使用qsort对类进行排序?

目录 结论&#xff1a; 解析&#xff1a; 结论&#xff1a; import java.util.Arrays;class Person implements Comparable<Person>{public String name;public int age;public Person(String name, int age) {this.name name;this.age age;}Overridepublic Stri…

win10 下运行 npm run watch-poll问题

背景&#xff1a;在本地练习laravel项目&#xff0c;windows 宝塔环境&#xff08;之前装过ubuntu子系统&#xff0c;很慢&#xff0c;就放弃了。有知道的兄弟说下&#xff0c;抱拳&#xff09;。以下命令我是在本地项目中用git bash里运行的&#xff0c;最好用管理员权限打开你…

CSS自学框架之动画

这一节&#xff0c;自学CSS动画。主要学习了淡入淡出、淡入缩放、缩放、移动、旋转动画效果。先看一下成果。 优雅的过渡动画&#xff0c;为你的页面添加另一份趣味&#xff01; 在你的选择器里插入 animation 属性&#xff0c;并添加框架内置的 keyframes 即可实现&#xff0…

实例041 获取桌面大小

实例说明 获取桌面分辨率可以使用API函数GetDeviceCaps&#xff0c;但API函数参数较多&#xff0c;使用不方便&#xff0c;如何更方便的获取桌面分辨率呢&#xff1f;在本例中&#xff0c;通过读取Screen对象的属性&#xff0c;来获取桌面分辨率信息&#xff0c;以像素为单位。…

温故知新之:接口和抽象类有什么区别?

本文以下内容基于 JDK 8 版本。 1、接口介绍 接口是 Java 语言中的一个抽象类型&#xff0c;用于定义对象的公共行为。它的创建关键字是 interface&#xff0c;在接口的实现中可以定义方法和常量&#xff0c;其普通方法是不能有具体的代码实现的&#xff0c;而在 JDK 8 之后&…

前端单点登录SSO面试回答

JWT鉴权机制 1.JWT用于登录身份验证 2.用户登录成功后&#xff0c;后端通过JWT机制生成一个token&#xff0c;返回给客户端 3.客户端后续的每次请求都需要携带token&#xff0c;放在header的authorization中 4.后端从authorization中拿到token后&#xff0c;通过secretKey进…

【报错】yarn --version Unrecognized option: --version Error...

文章目录 问题分析解决问题 在使用 npm install -g yarn 全局安装 yarn 后,查看yarn 的版本号,报错如下 PS D:\global-data-display> yarn --version Unrecognized option: --version Error: Could

激活函数总结(十六):激活函数补充(SReLU、BReLU)

激活函数总结&#xff08;十六&#xff09;&#xff1a;激活函数补充 1 引言2 激活函数2.1 S-shaped Rectified Linear Activation Unit&#xff08;SReLU&#xff09;激活函数2.2 Bipolar Rectified Linear Unit (BReLU)激活函数 3. 总结 1 引言 在前面的文章中已经介绍了介绍…