1.实验环境配置

Lvs调度器有两块网卡 一块仅主机和一块nat网卡,客户端nat模式,两台服务器为仅主机模式

2.集群和分布式简介

集群与分布式系统简介

集群 (Cluster)

集群是指将多台计算机(通常为同构的)通过高速网络连接起来,作为一个整体对外提供服务。

主要特点:

  • 高可用性:当某个节点故障时,服务可以快速转移到其他节点
  • 负载均衡:工作负载可以分配到多个节点上
  • 可扩展性:可以通过增加节点来提升整体性能
  • 共享存储:通常使用共享存储系统

常见集群类型:

  1. 高可用集群:确保服务持续可用(如数据库集群)
  2. 负载均衡集群:分散请求到多个节点(如Web服务器集群)
  3. 高性能计算集群:用于科学计算等需要大量计算资源的场景

分布式系统 (Distributed System)

分布式系统是由多台计算机通过网络连接,协同完成任务的系统,这些计算机可以位于不同地理位置。

主要特点:

  • 资源共享:可以共享硬件、软件和数据
  • 并发性:多个节点可以同时处理不同请求
  • 透明性:用户无需知道具体由哪个节点提供服务
  • 容错性:部分节点故障不影响整体系统运行
  • 可扩展性:可以方便地增加节点

关键技术:

  • 分布式计算:如MapReduce
  • 分布式存储:如HDFS、分布式数据库
  • 分布式通信:如RPC、消息队列
  • 一致性协议:如Paxos、Raft

集群与分布式的区别

特性集群分布式系统
节点位置通常在同一数据中心可以跨地域分布
节点类型通常同构可以异构
通信延迟低(局域网)可能较高(广域网)
管理复杂度相对简单更复杂
典型应用场景Web服务器、数据库集群云计算平台、大型互联网服务

两者在实际应用中常常结合使用,例如分布式系统可能由多个集群组成。

3.lvs-nat模式数据逻辑

1.客户端发送访问请求,请求数据包中含有请求来源(cip),访问目标地址(VIP)访问目标端口(9000port)
2.VS服务器接收到访问请求做DNAT把请求数据包中的目的地由VIP换成RS的RIP和相应端
3.RS1相应请求,发送响应数据包,包中的相应保温为数据来源(RIP1)响应目标(CIP)相应端口(9000port)
4.VS服务器接收到响应数据包,改变包中的数据来源(RIP1-->VIP),响应目标端口(9000-->80)5.VS服务器把修改过报文的响应数据包回传给客户端
6.Ivs的NAT模式接收和返回客户端数据包时都要经过lvs的调度机,所以vs的调度机容易阻塞

4.lvs-nat实验配置

首先利用事先编写的peizhi.sh 的shell脚本给四台主机配好ip

确保两台的http服务为开启状态

给两台http服务器的index编写内容,实际情况下两台服务器发布配置内容应该为一模一样,为方便后续实验验证,将两台服务区分开

将两台服务器的网关设置为调度服务器的vip 192.168.182.123

在lvs调度服务器上安装ipvsadm

首先将lvs调度服务器上开启ip转发功能

编写lvs调度策略

最后在客户机上访问http服务

修改策略再次验证一下

可以看见访问一次122 访问两次121

5.lvs的dr模式和nat模式的区别

LVS(Linux Virtual Server)的 NAT 模式DR 模式 是两种最常用的负载均衡实现方式,它们在架构、性能、配置复杂度等方面有显著区别。以下是两者的核心对比:

1. 数据包转发原理

特性NAT 模式DR 模式(Direct Routing)
修改内容修改请求和响应的 IP 地址/端口仅修改请求的 MAC 地址
请求路径客户端 → LVS → 真实服务器 → LVS → 客户端客户端 → LVS → 真实服务器 → 客户端(直接返回)
响应路径必须经过 LVS 调度器(SNAT)真实服务器直接返回客户端(不经过 LVS)

2. 性能对比

特性NAT 模式DR 模式
吞吐量较低(LVS 是瓶颈)极高(仅处理入站请求)
延迟较高(两次经过 LVS)低(响应不经过 LVS)
适用场景小规模集群、需要端口转换高性能场景(如大型网站)

3. 网络配置要求

特性NAT 模式DR 模式
真实服务器(RS)网关必须指向 LVS 调度器可指向其他路由器
IP 转发需启用 net.ipv4.ip_forward=1不需要
IP 地址RS 使用私有 IP,LVS 需要公网 IPRS 和 LVS 需在同一局域网,且 RS 可隐藏

4. 配置复杂度

特性NAT 模式DR 模式
LVS 配置简单(只需 DNAT/SNAT)需配置 ARP 抑制和 MAC 重写
真实服务器配置简单(改网关即可)需绑定 VIP 到 lo 接口,并配置 ARP 规则
典型命令ipvsadm -A -t VIP:80 -s rripvsadm -a -t VIP:80 -r RIP:80 -mipvsadm -A -t VIP:80 -s rripvsadm -a -t VIP:80 -r RIP:80 -g

5. 优缺点对比

NAT 模式
  • 优点
    • 支持端口映射(VIP 和 RIP 端口可不同)。
    • 真实服务器可隐藏在内网。
  • 缺点
    • LVS 容易成为性能瓶颈。
    • 需要维护连接状态(消耗内存)。
DR 模式
  • 优点
    • 性能接近物理极限(响应直接由 RS 返回)。
    • LVS 仅处理入站请求,吞吐量高。
  • 缺点
    • 要求 RS 和 LVS 在同一局域网。
    • 需配置 ARP 抑制,防止 IP 冲突。

6.lvs的dr实验配置

1.客户端发送数据帧给vs调度主机帧中内容为客户端IP+客户端的MAC+VIP+VIP的MAC
2.VS调度主机接收到数据帧后把帧中的VIP的MAC该为RS1的MAC,此时帧中的数据为客户端IP+客户端的MAC+VIP+RS1的MAC
3.RS1得到2中的数据包做出响应回传数据包,数据包中的内容为VIP+RS1的MAC+客户端IP+客户端IP的MAC

我们将server服务器的vip配置在回环接口上,lvs的vip添加在仅主机网卡上。在添加一台主机模拟路由器装置。

两台服务器以及lvs调度器的网关都为路由器相应的网段;两台服务器上配置回环接口vip将lvs调度器的vip添加到网卡上;

编写回环接口配置vip为192.168.182.200

利用scp命令将配置文件直接传输给server2

然后将两台服务器和lvs的arp回应关闭

其他主机依次操作,在路由器上开启火墙的ip伪装服务,实现五台主机互相连通

在lvs调度服务器上配置调度策略

在客户端验证策略是否生效。

客户端成功访问服务器的http服务,且根据策略调度。

7.利用wireshark抓包软件验证dr模式的特性

可以观察到数据包里的ip只在CIP和VIP之间转换

数据包的mac地址一直在变化

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

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

相关文章

T5(Text-to-Text Transfer Transformer) 模型

下面是对 T5(Text-to-Text Transfer Transformer) 模型的详细介绍,包括其原理、架构、训练方式、优势与局限,以及与其他模型(如 BERT、GPT)的对比。一、T5 是什么?T5(Text-to-Text T…

PostgreSQL技术大讲堂 - 第97讲:PG数据库编码和区域(locale)答疑解惑

PostgreSQL从入门到精通系列课程,近100节PG技术讲解,让你从小白一步步成长为独当一面的PG专业人员,点击这里查看章节内容。 PostgreSQL从入门到精通课程,持续更新,欢迎加入。第97讲:PostgreSQL 数据库编码…

【IEEE独立出版 】第六届机器学习与计算机应用国际学术会议(ICMLCA 2025)

第六届机器学习与计算机应用国际学术会议(ICMLCA 2025) 大会简介 第六届机器学习与计算机应用国际学术会议(ICMLCA 2025)定于2025年10月17-19日在中国深圳隆重举行。本届会议将主要关注机器学习和计算机应用面临的新的挑战问题和研究方向,着力…

对于编码电机-520直流减速电机

编码电机的介绍 编码器是一种将角位移或者直线位移转换成一连串电数字脉冲的一种传感器。我们可以通过编码器测量电机转动的位移或者速度信息。 编码器按照工作原理,可以分为增量式编码器和绝对式编码器,绝对式编码器的每一个位置对应一个确定的数字码&a…

Rust入门之并发编程基础(三)

Rust入门之并发编程基础(三) 题记:6月底7月初,结束北京的工作生活回到二线省会城市发展了,鸽了较久了,要继续坚持学习Rust,坚持写博客。 背景 我们平时使用计算机完成某项工作的时候&#xf…

一文读懂循环神经网络—深度循环神经网络(DRNN)

目录 一、从 RNN 到 DRNN:为什么需要 “深度”? 二、DRNN 的核心结构 1. 时间维度:循环传递 2. 空间维度:多层隐藏层 3. 双向 DRNN(Bidirectional DRNN) 三、DRNN 的关键挑战与优化 1. 梯度消失 / 爆…

磁悬浮轴承系统中由不平衡力引发的恶性循环机制深度解析

磁悬浮轴承系统中由不平衡力引发的 “振动-激励-更大振动”恶性循环 是一个典型的 正反馈失控过程,其核心在于 传感器信号的污染 与 控制器对真实位移的误判。以下是其逐步演进的原理详解: 恶性循环的触发与演进 1:不平衡力的产生(根源) 转子存在质量偏心,质心(CM)偏离…

优迅股份IPO隐忧:毛利水平“两连降”,研发费用率不及行业均值

撰稿|行星来源|贝多财经近日,厦门优迅芯片股份有限公司(下称“优迅股份”)的科创板IPO审核状态变更为“已问询”,中信证券为其保荐机构。天眼查App信息显示,优迅股份成立于2003年2月,是中国首批专业从事光通…

Linux探秘坊-------15.线程概念与控制

1.线程概念 1.什么是线程2.线程 vs 进程不同的操作系统有不同的实现方式: linux :直接使用pcb的功能来模拟线程,不创建新的数据结构windows: 使用新的数据结构TCB,来进行实现,一个PCB里有很多个TCB 3.资源划…

Github库镜像到本地私有Gitlab服务器

上一节我们看了如何架设自己的Gitlab服务器,今天我们看怎么把Github库转移到自己的Gitlab上。 首先登录github,进入自己的库复制地址。 克隆镜像库 在本地新建一个文件夹 在文件夹执行CMD指令 git clone --mirror gitgithub.com:thinbug/A.git–mirror参…

【C++】——类和对象(中)——默认成员函数

一、类的默认成员函数默认成员函数就是用户没有显示实现,不过编译器会自动生成的成员函数,称为默认成员函数。一个类默认成员函数一共有6个,在我们不写的情况下,编译器就会自动生成这6个成员函数,不过我们重点要学习的…

MATLAB知识点总结

1.将A图与B图相同范围内归一化显示在同一个figure上: figure, plot(A(150:450,500)/max(A(150:450,500))) hold on plot(D(150:450,500)/max(D(150:450,500)),‘R’) 将两幅图像的一定范围显示在同一图像上。 figure,plot(A(350,100:450)) hold on plot(G(350,100:4…

易天光通信10G SFP+ 1550nm 120KM 双纤光模块:远距离传输的实力担当

目录 前言 一、10G SFP双纤光模块概述 二、易天10G SFP 120KM 双纤光模块核心优势与应用 核心优势: 主要关键应用如下: 三、易天10G SFP 120KM 双纤光模块客户优势 总结 关于易天 前言 在构建高效稳定的网络架构时,10G SFP 光模块 12…

【深度学习】神经网络 批量标准化-part6

九、批量标准化是一种广泛使用的神经网络正则化技术,对每一层的输入进行标准化,进行缩放和平移,目的是加速训练,提高模型稳定性和泛化能力,通常在全连接层或是卷积层之和,激活函数之前使用核心思想对每一批…

【数据可视化-67】基于pyecharts的航空安全深度剖析:坠毁航班数据集可视化分析

🧑 博主简介:曾任某智慧城市类企业算法总监,目前在美国市场的物流公司从事高级算法工程师一职,深耕人工智能领域,精通python数据挖掘、可视化、机器学习等,发表过AI相关的专利并多次在AI类比赛中获奖。CSDN…

【科研绘图系列】R语言绘制分组箱线图

文章目录 介绍 加载R包 数据下载 导入数据 画图1 画图2 合并图 系统信息 参考 介绍 【科研绘图系列】R语言绘制分组箱线图 加载R包 library(ggplot2) library(patchwork)rm(list = ls()) options(stringsAsFactors = F)

基于Android的旅游计划App

项目介绍系统打开进入登录页面,如果没有注册过账号,点击注册按钮输入账号、密码、邮箱即可注册,注册后可登录进入系统,系统分为首页、预订、我的三大模块,下面具体详细说说三大模块功能说明。1.首页显示旅游备忘或旅游…

【LeetCode 2163. 删除元素后和的最小差值】解析

目录LeetCode中国站原文原始题目题目描述示例 1:示例 2:提示:讲解分割线的艺术:前后缀分解与优先队列的完美邂逅第一部分:算法思想 —— “分割线”与前后缀分解1. 想象一条看不见的“分割线”2. 前后缀分解&#xff1…

控制鼠标和键盘

控制鼠标和键盘的Python库Python中有多个库可以用于控制鼠标和键盘,常用的包括pyautogui、pynput、keyboard和mouse等。这些库提供了模拟用户输入的功能,适用于自动化测试、GUI操作等场景。使用pyautogui控制鼠标pyautogui是一个跨平台的库,支…

基于按键开源MultiButton框架深入理解代码框架(二)(指针的深入理解与应用)

文章目录2、针对该开源框架理解3、分析代码3.1 再谈指针、数组、数组指针3.2 继续分析源码2、针对该开源框架理解 在编写按键模块的框架中,一定要先梳理按键相关的结构体、枚举等变量。这些数据是判断按键按下、状态跳转、以及绑定按键事件的核心。 这一部分定义是…