LVS集群及其它的NAT模式
1.lvs集群作用:是linux的内核层面实现负载均衡的软件;将多个后端服务器组成一个高可用、高性能的服务器的集群,通过负载均衡的算法将客户端的请求分发到后端的服务器上,通过这种方式实现高可用和负载均衡。
2.集群和分布式:主要应对系统的扩展方式
垂直扩展:以前计算机是向上扩张,起到增强计算机的性能,但是由于计算机本身设备的限制,使硬件本身的性能出现瓶颈。
水平扩展:现在计算机是向外扩张,增加设备,并行的运行多个服务,依靠网络解决内部通信的问题,形成cluster集群。
集群:为了解决某个特定的问题将多台计算机组合起来的单个系统。
3.集群的三种类型:
LB:负载均衡集群,多个主机组成,每个主机只承担一部分的访问请求。
HA:高可用,在设计系统时,采取一定的措施确保系统当中某一组件或者部分出现故障,整个系统依然可以正常的运行,为了维护整个系统的可用性,可靠性,容错性。
HPC:高性能集群,对响应的时间、处理能力要求更高。
4.系统可靠性指标:(都是以小时为单位)
MTBF(mean time between failure):平均无故障时间
MTTR(Mean Time Resotration repair):平均故障恢复时间
A=MTBF/(MTBF+MTTR):A指的是系统可用性的度量,A指标一般在0-1之间,越接近0表示系统越不可用,越接近1系统越可用,所以工作中A指标要无限接近1,一般接近98%-99%为合格。
计划内的时间可以忽略不记,如停机时间,但是现在也统计在内
计划外的故障时间,从故障发生到故障解决的总时间,尤其是运维,计划外时间是我们必须关注的一个指标。-----------当天事必须当天解决,没有解决之前,人是不可以离开的,解决完之后必须生成报告备案。
5.lvs适用场景:
小集群不需要使用lvs,大集群使用lvs。
6.lvs集群中的术语:
VS:lvs服务的逻辑名称,也就是我们外部访问lvs时使用的IP地址和端口。
DS:lvs的主服务器,也就是调度器,相当于nginx的代理服务器,是lvs集群的核心,调度器就是用来接受客户端的请求转发到后端的服务器。
RS:lvs集群中的真实服务器,后端服务器,用来接受DS调度器转发来的请求,并且响应结果。
CIP:客户端的IP地址,也是发起请求的客户端地址。
VIP:lvs集群使用的ip地址,对外提供集群访问的虚拟ip地址。
DIP:调度器在集群当中的地址,用来和RS进行通信用的。
RIP:后端服务器在集群中的IP地址。

7.lvs的工作方式:(常用的模式是NAT及DR模式)
NAT模式:由DS调度器响应客户端,适用小集群
DR模式(直接路由模式):真实服务器直接响应客户端,适用大集群
TUN:隧道模式
NAT模式的特点:地址转换,在nat模式下,lvs会将来自客户端的请求报文中的目标IP地址和端口修改为lvs内部的IP地址和端口,然后把请求转发到后端服务器,响应之后的结果返回客户端的过程中,响应报文也要经过lvs处理,把目标ip和端口修改成客户端的IP地址和端口。优点:对于客户端来说,请求的目标地址始终不变,客户端的配置不需要做特殊修改,只是调度器在对ip和端口进行转换,后端的服务器也不需要更改任何配置;缺点:性能损失,请求和响应都需要做地址转换,影响性能,nat模式只有一个调度器,调度器故障整个集群就不能正常工作。
内网(RS1和RS2)--------外网 转换的源ip
外网(客户机)--------内网 转换的是目的ip

8.lvs的工具:用来配置和管理lvs集群的工具
-A:添加虚拟服务器vip
-D:删除虚拟机服务器地址
-s:指定负载的调度算法 (rr默认轮巡,wrr加权轮巡,最小连接lc,加权最小连接wlc)
-a:添加真实服务器
-d:删除真实服务器
-t:指定vip的地址和端口
-r:指定rip的地址和端口
-m:使用NAT模式
-g:使用DR模式
-i:使用隧道模式
-w:设置权重
-p:设置连接保持时间
-l:列表查看
-n:数字化展示
二、NAT模式的部署方法:
192.168.127.10:设置为调度器
RS1:192.168.127.20
RS2:192.168.127.30
192.168.127.40:客户端
1.关闭所有的防火墙及安全机制: systemctl stop firewalld
setenforce 0
2.给调度器增加一个网卡:

3.给调度器安装ipvsadm的管理工具:yum -y install ipvsadm* -y
4.配置调度器的网关
首先把ens33内容复制到ens36

然后修改网关vim ifcfg-ens33 及 vim ifcfg-ens36:用调度器本机的IP地址做网关

VIP:lvs集群使用的ip地址,对外提供集群访问的虚拟ip地址。


5.设置RS1及RS2的网关
RS1


设置完之后记得刷新

再index.html内修改RS1和RS2访问时的提示页面:



6.回到调度器做地址转换

7.配置调度器的ipvsadm
-A:添加虚拟服务器vip -s:指定负载的调度算法


8.开启调度器路由转发的功能



9.配置客户端192.168.127.40



10.附加: 如果设置完策略重启后出现VIP虚拟IP和配置的不一致,只能删除全部策略重新编辑。


11. 附加:ipvsadm加权轮巡的算法 当客户端访问调度器curl 12.0.0.1时RS1会明显增多

相关文章:
LVS集群及其它的NAT模式
1.lvs集群作用:是linux的内核层面实现负载均衡的软件;将多个后端服务器组成一个高可用、高性能的服务器的集群,通过负载均衡的算法将客户端的请求分发到后端的服务器上,通过这种方式实现高可用和负载均衡。 2.集群和分布式&#…...
【RNN练习】天气预测
🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 一、环境及数据准备 1. 我的环境 语言环境:Python3.11.9编译器:Jupyter notebook深度学习框架:TensorFlow 2.15.0 2. 导…...
prompt第四讲-fewshot
文章目录 前提回顾FewShotPromptTemplateforamt格式化 前提回顾 前面已经实现了一个翻译助手了[prompt第三讲-PromptTemplate],prompt模板设计中,有说明、案例、和实际的问题 # -*- coding: utf-8 -*- """ Time : 2024/7/8 …...
StarRocks分布式元数据源码解析
1. 支持元数据表 https://github.com/StarRocks/starrocks/pull/44276/files 核心类:LogicalIcebergMetadataTable,Iceberg元数据表,将元数据的各个字段做成表的列,后期可以通过sql操作从元数据获取字段,这个表的组成…...
阅读笔记——《Fuzz4All: Universal Fuzzing with Large Language Models》
【参考文献】Xia C S, Paltenghi M, Le Tian J, et al. Fuzz4all: Universal fuzzing with large language models[C]//Proceedings of the IEEE/ACM 46th International Conference on Software Engineering. 2024: 1-13.【注】本文仅为作者个人学习笔记,如有冒犯&…...
【C++】使用gtest做单元测试框架写单元测试
本文主要介绍在将gtest框架引入到项目里过程中遇到的问题。 我的需求如下: 用CMake构建项目。我要写一些测试程序验证某些功能,但是不想每一个测试都新建一个main函数。 因为新建一个main函数就要在CMakeList.txt里增加一个project,非常不方便。 于是我搜了下,C++里有没…...
Java类与对象
类是对现实世界中实体的抽象,是对一类事物的描述。 类的属性位置在类的内部、方法的外部。 类的属性描述一个类的一些可描述的特性,比如人的姓名、年龄、性别等。 [public] [abstract|final] class 类名 [extends父类] [implements接口列表] { 属性声…...
xlwings 链接到 指定sheet 从别的 excel 复制 sheet 到指定 sheet
重点 可以参考 宏录制 cell sheet.range(G4)cell.api.Hyperlinks.Add(Anchorcell.api, Address"", SubAddress"001-000-02301!A1")def deal_excel(self):with xw.App(visibleTrue) as app:wb app.books.open(self.summary_path, update_linksFalse)sheet…...
风光摄影:相机设置和镜头选择
写在前面 博文内容为《斯科特凯尔比的风光摄影手册》读书笔记整理涉及在风景拍摄中一些相机设置,镜头选择的建议对小白来讲很实用,避免拍摄一些过曝或者过暗的风景照片理解不足小伙伴帮忙指正 😃,生活加油 99%的焦虑都来自于虚度时间和没有好…...
python制作甘特图的基本知识(附Demo)
目录 前言1. matplotlib2. plotly 前言 甘特图是一种常见的项目管理工具,用于表示项目任务的时间进度 直观地看到项目的各个任务在时间上的分布和进度 常用的绘制甘特图的工具是 matplotlib 和 plotly 主要以Demo的形式展示 1. matplotlib 功能强大的绘图库&a…...
javascript设计模式总结
参考 通过设计模式可以增加代码的可重用性、可扩展性、可维护性 设计模式五大设计原则 单一职责:一个程序只需要做好一件事,如果结构过于复杂就拆分开,保证每个部分独立 开放封闭原则:对扩展开放,对修改封闭。增加需…...
gpt-4o看图说话-根据图片回答问题
问题:中国的人口老龄化究竟有多严重? 代码下实现如下:(直接调用openai的chat接口) import os import base64 import requests def encode_image(image_path): """ 对图片文件进行 Base64 编码 输入…...
【MySQL】7.MySQL 的内置函数
MySQL的内置函数 一.日期函数二.字符串函数三.数学函数四.其它函数 一.日期函数 函数名称说明current_date()当前日期current_time()当前时间current_timestamp当前时间戳(日期时间)date(datetime)截取 datetime 的日期部分date_add(date, interval d_value_type)给 date 添加…...
爬虫:Sentry-Span参数逆向
在抓某眼查数据太过频繁时会出现极验的验证码。极验的教程有很多,主要是发现在这里获取验证码的时候需要携带参数Sentry-Span。在这里记录一下逆向的主要过程,直接上补环境的代码。 window global; location {}; my_log console.log;(function () {l…...
音视频入门基础:H.264专题(12)——FFmpeg源码中通过SPS属性计算视频分辨率的实现
一、引言 在上一节《音视频入门基础:H.264专题(11)——计算视频分辨率的公式》中,讲述了通过SPS中的属性计算H.264编码的视频的分辨率的公式。本文讲解FFmpeg源码中计算视频分辨率的实现。 二、FFmpeg源码中计算视频分辨率的实现…...
基于颜色模型和边缘检测的火焰识别FPGA实现,包含testbench和matlab验证程序
目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 (完整程序运行后无水印) 将FPGA仿真结果导入到matlab显示结果: 测试样本1 测试样本2 测试样本3 2.算法运行软件版本 vivado2019.2 …...
golang json反序列化科学计数法的坑
问题背景 func CheckSign(c *gin.Context, signKey string, singExpire int) (string, error) {r : c.Requestvar formParams map[string]interface{}if c.Request.Body ! nil {bodyBytes, _ : io.ReadAll(c.Request.Body)defer c.Request.Body.Close()if len(bodyBytes) >…...
罗技K380无线键盘及鼠标:智慧互联,一触即通
目录 1. 背景2. K380无线键盘连接电脑2.1 键盘准备工作2.2 电脑配置键盘的连接 3. 无线鼠标的连接3.1 鼠标准备工作3.2 电脑配置鼠标的连接 1. 背景 有一阵子经常使用 ipad,但是对于我这个习惯于键盘打字的人来说,慢慢在 ipad 上打字,实在是…...
卸载wps office的几种方法收录
第一种方法: 1.打开【任务管理器】,找到相关程序,点击【结束任务】。任务管理器可以通过左下角搜索找到。 2.点击【开始】-【设置】-【应用】-下拉找到WPS应用,右键卸载,不保留软件配置 …...
SpringCloud第一篇Docker基础
文章目录 一、常见命令二、数据卷三、数据挂载四、自定义镜像五、网络 一、常见命令 Docker最常见的命令就是操作镜像、容器的命令,详见官方文档: https://docs.docker.com/ 需求: 在DockerHub中搜索Nginx镜像,查看镜像的名称 …...
【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15
缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下: struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...
Java 8 Stream API 入门到实践详解
一、告别 for 循环! 传统痛点: Java 8 之前,集合操作离不开冗长的 for 循环和匿名类。例如,过滤列表中的偶数: List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...
linux arm系统烧录
1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 (忘了有没有这步了 估计有) 刷机程序 和 镜像 就不提供了。要刷的时…...
postgresql|数据库|只读用户的创建和删除(备忘)
CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...
什么是EULA和DPA
文章目录 EULA(End User License Agreement)DPA(Data Protection Agreement)一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA(End User License Agreement) 定义: EULA即…...
unix/linux,sudo,其发展历程详细时间线、由来、历史背景
sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...
【Java_EE】Spring MVC
目录 Spring Web MVC 编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 编辑参数重命名 RequestParam 编辑编辑传递集合 RequestParam 传递JSON数据 编辑RequestBody …...
【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的“no matching...“系列算法协商失败问题
【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的"no matching..."系列算法协商失败问题 摘要: 近期,在使用较新版本的OpenSSH客户端连接老旧SSH服务器时,会遇到 "no matching key exchange method found", "n…...
搭建DNS域名解析服务器(正向解析资源文件)
正向解析资源文件 1)准备工作 服务端及客户端都关闭安全软件 [rootlocalhost ~]# systemctl stop firewalld [rootlocalhost ~]# setenforce 0 2)服务端安装软件:bind 1.配置yum源 [rootlocalhost ~]# cat /etc/yum.repos.d/base.repo [Base…...
【网络安全】开源系统getshell漏洞挖掘
审计过程: 在入口文件admin/index.php中: 用户可以通过m,c,a等参数控制加载的文件和方法,在app/system/entrance.php中存在重点代码: 当M_TYPE system并且M_MODULE include时,会设置常量PATH_OWN_FILE为PATH_APP.M_T…...
