20260730-lvs

发布时间:2026/9/19 12:15:06

20260730-lvs 一、什么是集群集群把多台独立服务器节点通过网络连接起来组成一个整体对外提供服务。 外部客户端看起来如同一台高性能服务器内部多机协同实现负载分担、故障冗余、算力扩容。二、集群主流分类分类 1按照用途1. 负载均衡集群 LB作用分发用户请求到后端多个节点特点所有节点同时对外提供服务典型产品Nginx、LVS、F5、HAProxy场景Web 网站、接口服务、网关2. 高可用集群 HA俗称主备集群作用防止单点故障故障自动切换模式Active/Passive主备也有双活 Active/Active典型软件Keepalived、PacemakerCorosync场景数据库主备、存储、核心业务系统3. 高性能计算集群 HPC作用多节点并行运算提升算力特点任务拆分给多个节点同时计算最后汇总结果场景气象模拟、仿真建模、大数据科学计算4. 分布式存储集群作用多节点共同组成统一存储池数据分片多副本典型Ceph、MinIO、GlusterFS特点数据分散存放支持扩容、数据自愈三、LVS 作用核心定义LVS 是Linux 内核层面的四层负载均衡软件工作在传输层 TCP/UDP由章文嵩开发集成在 Linux 内核性能极高。核心作用将客户端请求分发到后端多台真实服务器RS实现负载均衡集群。关键要点层级四层负载均衡基于 IP 端口转发只处理数据包的 IP、端口不解析 HTTP 协议。 对比Nginx 是七层负载均衡可以解析 http、host、url、cookie。角色划分VSDirector 调度器LVS 服务器RSReal Server 后端真实业务服务器三大核心功能① 请求调度根据调度算法把用户流量分配给不同后端 RS ② 集群屏蔽对外只暴露一个虚拟 IPVIP用户只访问 VIP感知不到后端多台服务器 ③ 构建 LB 集群横向扩展后端服务器提升并发承载能力。四、LVS 四种工作模式NAT 模式网络地址转换请求、响应流量都经过 Director后端 RS 网关指向 VS。 缺点Director 容易成为瓶颈。DR 模式直接路由生产最常用请求经过 VS响应数据包直接由 RS 返回客户端不经过调度器性能最高限制VS 和 RS 必须在同一个局域网。TUN 模式IP 隧道跨网段部署VS 封装 IP 报文发给 RSRS 直接回包支持跨机房。FULLNAT同时转换源 IP 和目标 IP可以跨网段内核新版本支持。常用调度算法静态轮询 rr、加权轮询 wrr、源地址哈希 sh 动态最少连接 lc、加权最少连接 wlc生产默认五、LVS 四种工作模式原理详解LVS 有四种工作模式通过ipvsadm的不同参数区分-mNAT、-gDR、-iTUN、FullNAT。5.1 NAT 模式网络地址转换流程说明请求阶段客户端发请求到 VIPVS 修改数据包的目标 IP为后端 RS 的 RIP转发给 RS响应阶段RS 处理完后响应报文发回 VS因为 RS 网关指向 VSVS 修改源 IP为 VIP返回给客户端关键要求RS 的默认网关必须指向 VS 的内网 IPNAT 模式完整部署步骤环境准备VS双网卡外网 VIP172.25.254.100内网 DIP192.168.0.100RS1192.168.0.10网关指向192.168.0.100RS2192.168.0.20网关指向192.168.0.100步骤 1VS 开启内核转发bash# 开启 IP 转发NAT 模式必须echo net.ipv4.ip_forward1 /etc/sysctl.confsysctl -p步骤 2安装 ipvsadmbashdnf install ipvsadm.x86_64 -y步骤 3配置 LVS 规则bash# 清空旧规则ipvsadm -C# 创建虚拟服务指定 VIP:端口 调度算法ipvsadm -A -t 172.25.254.100:80 -s wrr# 添加后端 RS-m 指定 NAT 模式-w 设置权重ipvsadm -a -t 172.25.254.100:80 -r 192.168.0.10:80 -m -w 1ipvsadm -a -t 172.25.254.100:80 -r 192.168.0.20:80 -m -w 1# 查看规则ipvsadm -Ln步骤 4RS 配置网关bash# 设置默认网关为 VS 内网 IPnmcli connection modify eth0 ipv4.gateway 192.168.0.100nmcli connection reloadnmcli connection up eth0# 验证网关route -n步骤 5RS 部署 Web 服务bash# RS1 上执行dnf install httpd -ysystemctl enable --now httpdecho RS1 - 192.168.0.10 /var/www/html/index.html# RS2 上执行dnf install httpd -ysystemctl enable --now httpdecho RS2 - 192.168.0.20 /var/www/html/index.html步骤 6测试验证bash# 在 VS 上测试轮询效果for i in {1..10}; do curl 172.25.254.100; done步骤 7规则持久化bash# 保存规则到文件ipvsadm-save -n /etc/sysconfig/ipvsadm# 设置开机自启systemctl enable --now ipvsadm.service5.2 DR 模式直接路由参数-gDirect Route直接路由流程说明请求阶段VS 仅修改数据包的目标 MAC 地址为 RS 的 MAC三层 IP 不变源 IP 还是 CIP目标 IP 还是 VIP响应阶段RS 收到请求后发现目标 IP 是自己 lo 网卡上的 VIP直接处理然后直接回包给客户端响应报文不经过 VS关键要求VS 和 RS 必须在同一个局域网同一二层网络RS 的 lo 网卡上必须绑定 VIPRS 必须抑制 VIP 的 ARP 响应避免 IP 冲突DR 模式配置命令bash# VS 端添加 RS-g 指定 DR 模式ipvsadm -a -t 172.25.254.100:80 -r 192.168.0.10 -g -w 1ipvsadm -a -t 172.25.254.100:80 -r 192.168.0.20 -g -w 1# RS 端lo 网卡绑定 VIPifconfig lo:0 172.25.254.100 netmask 255.255.255.255 up# RS 端抑制 ARP 响应echo 1 /proc/sys/net/ipv4/conf/lo/arp_ignoreecho 2 /proc/sys/net/ipv4/conf/lo/arp_announceecho 1 /proc/sys/net/ipv4/conf/all/arp_ignoreecho 2 /proc/sys/net/ipv4/conf/all/arp_announce5.3 TUN 模式IP 隧道流程说明请求阶段VS 在原始 IP 报文外层再封装一层 IP 隧道头外层源 IP 是 DIP目标 IP 是 RIP通过公网/跨网段发送给 RS响应阶段RS 收到后解封装外层隧道读取内层 VIP 请求处理后直接回包给客户端不经过 VS关键要求RS 内核必须支持ipip隧道模块RS 的 tunl0 网卡绑定 VIPTUN 模式配置命令bash# VS 端添加 RS-i 指定 TUN 模式ipvsadm -a -t 172.25.254.100:80 -r 192.168.1.10 -i -w 1# RS 端加载 ipip 模块modprobe ipip# RS 端tunl0 网卡绑定 VIPifconfig tunl0 172.25.254.100 netmask 255.255.255.255 up5.4 FULLNAT 模式工作原理FULLNAT 同时转换源 IP 和目标 IP请求方向CIP → VIP→ VS 转换为DIP → RIP响应方向RIP → DIP→ VS 转换为VIP → CIP六、LVS 13 种调度算法完整解析LVS 调度算法决定了流量如何分配到后端 RS分为静态算法和动态算法两大类。6.1 静态调度算法4 种静态算法不感知后端实时连接数按固定规则分配。算法全称说明适用场景rrRound Robin轮询请求依次平均分配到所有 RS后端性能相近的场景wrrWeighted Round Robin加权轮询按权重比例分配权重越高分到越多后端服务器性能不均的场景shSource Hash源地址哈希同一客户端 IP 固定分配到同一 RS需要会话保持但不想用持久化的场景dhDestination Hash目标地址哈希同一目标 IP 固定分配到同一 RS缓存集群、代理服务器场景6.2 动态调度算法9 种动态算法实时统计后端连接数和负载动态调整分配。算法全称说明适用场景lcLeast Connections最少连接新请求分给当前连接数最少的 RS后端性能相近连接时长差异大的场景wlcWeighted LC加权最少连接系统默认算法综合权重和连接数生产最常用后端性能不均的场景lblcLocality-Based LC基于局部性最少连接同一目标 IP 优先分配到同一 RSWeb Cache 缓存集群lblcrLocality-Based LC with Replication带复制的局部最少连接支持缓存节点间复制缓存集群提高缓存命中率sedShortest Expected Delay最短期望延迟计算单连接等待时间优先轻负载节点响应时间敏感的业务nqNever Queue永不排队有空闲服务器直接分配无空闲再走 sed避免请求排队追求低延迟foWeighted Failover加权故障转移主节点故障才切到备节点主备模式场景ovfOverflow溢出调度主节点满了才溢出到备节点峰值溢出场景lblcr_rLBLC with Replication (extended)扩展本地复制调度高级缓存场景七、LVS 多端口轮询问题解决方案防火墙标记 fwmark7.1 问题描述故障场景网站同时开放 80HTTP和 443HTTPS端口分别创建了两条 LVS 虚拟服务。用户访问 80 端口时被调度到 RS1登录后跳转到 443 端口结果被调度到 RS2导致会话丢失、购物车清空用户体验极差。7.2 根因分析不同端口属于独立的集群服务调度逻辑完全隔离无法保证同一用户的不同端口请求落到同一台 RS。7.3 解决方案防火墙标记 fwmark通过iptables给同一 VIP 下的所有业务端口打上相同的防火墙标记然后 LVS 基于标记创建统一的集群服务这样多个端口就共享同一套调度逻辑。7.4 完整配置步骤步骤 1iptables 打标记bash# 给 80 端口打标记 66iptables -t mangle -A PREROUTING -d 172.25.254.100 -p tcp --dport 80 -j MARK --set-mark 66# 给 443 端口打相同标记 66iptables -t mangle -A PREROUTING -d 172.25.254.100 -p tcp --dport 443 -j MARK --set-mark 66步骤 2基于标记创建 LVS 集群bash# 基于防火墙标记 66 创建集群-f 代替 -t 端口ipvsadm -A -f 66 -s wrr -p 3000步骤 3添加后端 RSbash# 向标记集群添加 RS无需指定端口ipvsadm -a -f 66 -r 192.168.0.10 -mipvsadm -a -f 66 -r 192.168.0.20 -m步骤 4验证查看bashipvsadm -Ln步骤 5删除标记集群bashipvsadm -D -f 667.5 原理总结客户端请求80/443端口|▼iptables mangle 表给数据包打上标记 66|▼LVS 基于标记 66 调度多端口共享同一套调度规则|▼同一用户的所有端口请求 → 同一台 RS八、LVS 会话粘滞解决方案持久连接 -p方案三PNMPP 标记持久生产最优方案特点fwmark 防火墙标记 -p持久化组合一次性解决多端口统一调度 会话粘滞双重问题。bash# 打标记iptables -t mangle -A PREROUTING -d 172.25.254.100 -p tcp --dport 80 -j MARK --set-mark 66iptables -t mangle -A PREROUTING -d 172.25.254.100 -p tcp --dport 443 -j MARK --set-mark 66# 标记集群 持久化ipvsadm -A -f 66 -s wrr -p 3000
延伸阅读

更多相关文章

2026/9/19 2:11:10

AI 已经能生成多页面应用,为什么还需要一套“产品生成系统”?

从一次生成,走向可追踪、可执行、可验证的完整产品生产线 关于这个系列的表达方式 过去介绍 Mihua Design 时,我们更常展示结果,并把复杂结构压缩成便于快速理解的概念。随着系统进入产品建模、生成执行和质量验证,过度简化也会…

2026/9/13 10:55:01

玄铁E906 RISC-V开发环境搭建与编译实战指南

1. 项目缘起:为什么是玄铁 E906?最近在 RISC-V 的圈子里,平头哥的玄铁 E906 处理器核热度一直不低。无论是做 IoT 终端、边缘计算盒子,还是想深入理解 RISC-V 微架构,E906 都是一个绕不开的经典选择。它定位在低功耗、…

2026/9/18 14:57:28

STM32 ADC多通道DMA采集:原理、配置与实战避坑指南

1. 项目概述:为什么ADCDMA是嵌入式数据采集的“黄金搭档”在嵌入式开发,特别是基于STM32这类MCU的项目里,数据采集是家常便饭。无论是读取传感器数据、监控电池电压,还是做音频信号处理,都离不开模数转换器&#xff08…

2026/9/19 13:49:17

ADN8835单电感拓扑实现0.01℃高精度TEC温控

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/19 13:49:17

真人漫画风格合成实战:从明星写真到私立高校女教师系列

1. 项目缘起与整体设计思路1.1 这个项目到底在做什么先把这个项目的核心说清楚:它是一组以“私立高校女教师”为统一主题的真人漫画风格合成作品,创作手法是把公开的明星写真素材,通过图像处理与绘画化渲染,转成具有漫画质感的角色…

2026/9/19 13:49:17

测试用例设计实战:等价类、边界值与缺陷根因分析

简介:《软件测试技术》综合实验报告是一份针对《仓库管理系统》的测试用例设计完整文档,适合软件测试初学者、计算机相关专业学生及需要完成实验报告的读者。内容从开发目的、需求分析、可行性分析到系统总体结构与功能模块设计均有展开,重点…

2026/9/19 13:49:17

数据要素入表技术指南:资产登记、价值评估与安全合规实践

简介:这份PPT系统梳理了数据要素资产化平台与数据入表解决方案的完整框架,面向企业数字化转型负责人、数据管理及合规岗位人员,帮助理解如何将数据资源转化为可计量、可交易的数据资产。内容从数据要素市场趋势切入,重点展开数据资…

2026/9/19 13:49:17

CubePlex与DeerFlow:面向个人与团队的Agent工作空间操作系统

1. 项目概述:这不是两个工具的简单对比,而是一场工作流范式的迁移CubePlex 和 DeerFlow 这两个名字最近在开发者社区里频繁出现,但很多人点开文档的第一反应是:“这到底是个啥?跟 LangChain、LlamaIndex 有啥区别&…

2026/9/18 14:13:01

拯救者Y7000黑屏故障排查与维修实战指南

1. 项目概述:一台黑屏的拯救者Y7000,到底卡在哪一步? 联想拯救者Y7000系列笔记本,从2018年第一代搭载i5-8300H开始,到后来的i7-9750H、i7-10750H、i5-11400H,再到2023年款的R7-7840HS,它始终是学…

2026/9/19 0:03:10

验证 OpenSpec 兼容性,Cursor 的 Token 从 TaoToken 出

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/19 0:03:10

书桌角落的 Mac mini,OpenClaw 通过 TaoToken 跑任务。

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/19 0:03:10

oh-my-hermes:打造跨工具的命令编排与插件化工作流

1. 项目概述与设计初衷1.1 它到底是什么先说结论:oh-my-hermes 是一个面向开发者日常终端操作的效率工具套件,核心定位是“把分散在各类命令行工具里的高频操作,统一收拢成一套插件化、可编排的工作流”。项目灵感来源很明显——oh-my-zsh 重…

2026/9/18 14:13:03

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/18 14:13:02

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/18 14:13:02

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码