LVS(Linux Virtual Server)项目知识点总结

📅 2026/7/30 4:15:18
LVS(Linux Virtual Server)项目知识点总结
1. 什么是集群集群是一组相互独立的计算机通过高速网络互联对外表现为单一系统协同完成特定任务。集群的核心目标是提升可用性、扩展性、性能并降低单点故障风险。2. 集群分类根据功能目标集群主要分为三类类型英文名核心目的典型场景负载均衡集群Load Balancing Cluster将请求分担到多节点提升系统吞吐量Web服务器群、LVS高可用集群High Availability Cluster通过冗余消除单点故障保证服务连续主备数据库、HAProxy高性能计算集群High Performance Cluster聚合多台计算能力解决复杂计算问题科学计算、渲染农场此外还有分布式存储集群等延伸形态但在LVS语境中以前两类为主3. LVS的作用实现负载均衡将客户端请求按调度算法分发到后端多台真实服务器。提高扩展性透明地增加/删除后端节点业务零中断。增强可用性配合健康检查自动剔除故障节点。节约公网IP在NAT模式下后端服务器可使用私有地址。高性能工作在内核空间转发效率极高支撑海量并发。4. LVS的4种模式及原理4.1 NAT模式网络地址转换原理调度器修改数据包的目标IP和端口发往后端服务器回包经调度器还原源地址后返回客户端。调度器成为网关。特点请求和响应均经过调度器易于实施但调度器易成瓶颈。环境要求调度器需双网卡一外一内后端服务器网关指向调度器。4.2 DR模式直接路由原理调度器改写请求帧的目标MAC地址为后端服务器的MAC服务器直接响应客户端无需回程经过调度器。特点调度器只处理入站请求出站流量不经过调度器性能强。要求服务器与调度器在同一物理网段。关键配置VIP必须绑定在真实服务器的环回接口并抑制ARP响应。4.3 TUN模式IP隧道原理调度器将原始IP包封装在新IP包中通过隧道发给后端服务器服务器解封装后直接响应客户端。特点支持跨地域、跨网段部署节点可分布不同机房。需要服务器支持IP隧道协议有一定封装开销。4.4 FULLNAT模式全地址转换原理同时修改请求包的源IP和目标IP使后端服务器完全感知不到客户端真实IP回包再经调度器还原。解决了跨网段和真实服务器默认网关问题。特点调度器承担所有流量转换性能低于DR但对网络部署要求最低可支持服务器在任意网络。四种模式对比图解5. LVS的13种调度算法LVS内核提供了丰富的调度算法可分为静态、动态两大类配合持久调度策略共可归纳为13种常用算法。静态调度算法仅凭算法规则不参考RS负载序号算法原理说明1RR(Round Robin)轮询依次分发请求不关心服务器性能差异。若服务器配置不均易导致负载失衡。2WRR(Weighted RR)加权轮询。根据权重比例分配请求权重高的服务器轮询次数更多。3SH(Source Hashing)源地址哈希。对客户端IP做哈希同一IP请求固定发往第一次选中的RS实现会话绑定session sticky。4DH(Destination Hashing)目标地址哈希。对目标IP做哈希相同目标的请求始终发往同一RS常用于正向代理缓存集群如运营商缓存。动态调度算法根据RS实时负载计算Overhead选值最小的RS调度5LC(Least Connections)Overhead active×256 inactive适用于长连接服务连接数最少的优先。不考虑权重。6WLC(Weighted LC)Overhead (active×256 inactive) / weight默认算法兼顾连接数与服务器权重最常用。7SED(Shortest Expected Delay)Overhead (active 1) × 256 / weight期望延迟最小初始连接高权重服务器优先。注意缺陷若RS1权重1RS2权重10初期所有请求都会堆积在RS2上直到负载值超过RS1。8NQ(Never Queue)先轮询给空闲服务器无空闲时按SED计算保证每个请求绝不排队对连接建立速度要求极高的场景。9LBLC(Locality-Based LC)动态的DH算法考虑服务器负载在正向代理场景下先根据目标IP分配再结合负载调整提高缓存命中率。10LBLCR(LBLC with Replication)在LBLC基础上增加缓存副本迁移当某服务器负载过高时将其服务的缓存目标IP复制到轻载服务器解决负载不均。.在4.15版本内核以后新增调度算法1.FO(Weighted Fai Over)调度算法常用作灰度发布 在此FO算法中遍历虚拟服务所关联的真实服务器链表找到还未过载(未设置IP_VS_DEST_F OVERLOAD标志)的且权重最高的真实服务器进行调度当服务器承接大量链接我们可以对此服务器进行过载标记IP_VS_DEST_F OVERLOAD那么vs调度 器就不会把链接调度到有过载标记的主机中2.OVF(Overflow-connection)调度算法基于真实服务器的活动连接数量和权重值实现。将新连接调度到权重值最高的真实服务器直到其活动 连接数量超过权重值之后调度到下一个权重值最高的真实服务器,在此OVF算法中遍历虚拟服务相关 联的真实服务器链表找到权重值最高的可用真实服务器。一个可用的真实服务器需要同时满足以下条 件:未过载(未设置IP_VS_DEST_F OVERLOAD标志)真实服务器当前的活动连接数量小于其权重值其权重值不为零环境说明主机网络模式功能是否设定网关lvsnat-172.25.254.100hostonly-192.168.0.100vsrs1hostonly-192.168.0.10rs2192.168.0.100rs2hostonly-192.168.0.20rs2192.168.0.100环境设定操作lvseth0-nat-172.25.254.100 eth1-hostonly-192.168.0.100rs1eth0-hostonly-192.168.0.10 在用脚本设定ip时 不设定网关后续手动设定rs2eth0-hostonly-192.168.0.20 在用脚本设定ip时 不设定网关后续手动设定LVS多端口轮询问题解决方案问题当一个应用需要多个端口如HTTP的80和HTTPS的443共享调度策略时普通方式无法将不同端口绑定为同一服务。解决方案使用防火墙标记Firewall Mark将多个端口的数据包打上同一标记然后LVS基于该标记进行调度。步骤配置iptables标记规则创建基于防火墙标记的虚拟服务添加真实服务器测试会话粘滞问题描述在负载均衡集群中某些应用如购物车、WebSocket、登录状态要求同一个客户端的所有请求必须始终被转发到同一台后端服务器。LVS通过持久性调度和源地址哈希算法来实现会话保持。实验拓扑真实服务器RS配置RS1 (192.168.0.10)RS2 (192.168.0.20)Director调度器配置执行查看命令确认所有规则测试附LVS整体架构示意图