集群及lvs基础知识

1.什么是集群:

2.集群分类

3.Ivs的作用

4.Ivs的4种模式及原理

5.Ivs的13种算法方案 2:sh 源地址哈希调度

使用静态 sh 算法,基于客户端源 IP 哈希永久绑定 RS,适合固定公网 IP 用户。

6.Ivs的多端口轮询问题解决方案

7.Ivs的会话粘滞解决方案

1.集群是将多台独立服务器通过网络组合成一个整体对外提供服务,对外表现为单一虚拟节点,分担流量、提升并发、实现故障容错,单台机器宕机不影响整体业务。

2.集群分为LB 负载均衡集群、HA 高可用集群、HP 高性能集群四层转发。工作在 TCP/IP 四层,仅处理 IP + 端口,不解析 HTTP 应用层,转发速度极快,百万级并发无压力

流量调度:接收用户请求,根据调度算法转发给后端真实服务器 RS

虚拟 IP 对外:统一 VIP 对外提供服务,用户只访问虚拟 IP,无感知后端多台机器

健康检测:配合 Keepalived 自动下线故障后端节点

高吞吐低消耗:内核转发不占用用户进程 CPU,性能远超七层 Nginx

3。LVS是内核级四层负载均衡,由章文嵩博士开发,集成在 Linux 内核 ipvs 模块。

4.模式 1:NAT 网络地址转换

原理

用户请求:客户端 IP → LVS-VIP

调度器修改数据包目标 IP为后端 RS 内网 IP,转发给真实服务器

RS 回包:源 IP 是内网 RSIP,数据包必须经过 LVS 调度器

调度器修改回包源 IP为 VIP,返回客户端

模式 2:DR 直接路由

原理

请求报文:客户端→LVS-VIP,调度器仅修改二层 MAC 地址,转发给 RS

RS 本地配置 VIP 环回网卡,接收目标为 VIP 的数据包处理

响应报文不经过 LVS:RS 直接把数据包回复给客户端,流量分离

模式3:TUN IP 隧道

原理

LVS 将用户原始 IP 数据包封装一层新 IP 隧道头,转发给跨网段 RS

RS 解封装隧道,识别内部 VIP 数据包处理

RS 直接回包客户端,不经过 LVS

模式 4:FULLNAT 全网络地址转换

原理(内核 3.2 + 新增)

请求:LVS 同时修改源 IP + 目标 IP,客户端 IP 转为调度器内网 IP,目标 VIP 改为 RSIP

回包:RS 回复调度器内网 IP,调度器再转换源 VIP、目标客户端 IP 返回

5.分为静态算法和动态算法

一、静态调度(4 种)

rr 轮询:请求依次平均分给每台 RS,不考虑服务器性能差异

wrr 加权轮询:给 RS 配置权重,权重越高分到请求越多

dh 目标地址哈希:根据客户端目标 IP 哈希,同一 IP 固定分配同一 RS

sh 源地址哈希:根据客户端源 IP 哈希,同一个用户 IP 永远访问同一 RS

二、动态调度(9 种,自动感知负载)

lc 最小连接:优先分配给当前活跃连接数最少的 RS

wlc 加权最小连接:活跃连接 / 权重比值最小的 RS 优先分配,生产最常用

lblc 基于本地最小连接:目标 IP 哈希 + 最小连接,缓存业务专用

lblcr 带复制本地最小连接:lblc 升级,支持缓存复制

sed 最短预期延迟:(连接数 + 1)*1000 / 权重,数值越小优先分配

nq 永不排队:空闲 RS 直接分配,无空闲再走 sed 算法

fo 加权故障:检测 RS 故障次数,故障多的降低分配优先级

ovf 溢出调度

pe 持久化均衡:会话持久专用调度

6.方案 1:fwmark 防火墙标记

iptables 给所有业务端口统一打上相同标记

复制代码
iptables -t mangle -A PREROUTING -d 192.168.1.10 -p tcp --dport 80 -j MARK --set-mark 10
iptables -t mangle -A PREROUTING -d 192.168.1.10 -p tcp --dport 443 -j MARK --set-mark 10

ipvs 基于标记创建一条虚拟服务,不再区分端口

复制代码
ipvsadm -A -f 10 -s wlc
ipvsadm -a -f 10 -r 192.168.1.2:80 -g
ipvsadm -a -f 10 -r 192.168.1.3:80 -g

方案 2:统一源哈希 sh 调度

每条端口规则配置 sh 源哈希,同一客户端 IP 固定分配同一 RS,缺点:哈希倾斜,流量不均。

7.方案 1:ipvs 持久化连接

创建虚拟服务时添加 -p

复制代码
ipvsadm -A -t 192.168.1.10:80 -s wlc -p 300

方案 2:sh 源地址哈希调度

使用静态 sh 算法,基于客户端源 IP 哈希永久绑定 RS,适合固定公网 IP 用户。

方案 3:fwmark 多端口 + 持久化

多端口业务结合防火墙标记 + 持久化,80/443 共用会话绑定。

方案 4:应用层统一会话存储

不依赖 LVS 会话保持,后端所有 RS 共享 session 存储:Redis/Memcached 统一存放登录会话,所有机器读取同一会话数据,完美规避四层粘滞缺陷,分布式系统标准方案。

相关推荐
小此方1 小时前
Re:Linux系统篇(四十九)线程篇 · 二:为什么现代操作系统选择分页式存储?分页如何解决物理内存碎片?分页结构如何演化到页表、页目录、MMU?
linux·运维·驱动开发
Huangjin007_2 小时前
【Linux 系统篇(十一)】基础开发工具(六) —— 版本控制器 Git
linux·运维·git
j7~2 小时前
【Linux】二十六.线程篇三《Linux多线程编程:线程控制、线程ID以及进程地址空间分布、线程局部存储__thread以及clone系统调用》---详解
linux·运维·服务器·开发语言·c++·多线程编辑·线程的控制
PC2005-cloud9 小时前
博文已索引但不展示:一次 Bing SEO 问题排查记录
服务器·人工智能
沸速存储9 小时前
整机瓶颈判断思路,自上而下定位卡顿根源
运维·服务器·电脑·内容运营
奈斯先生Vector10 小时前
告别工具碎片化:基于 Nano Banana 全模态 AI 聚合架构搭建“文本-图像-视频”自动化协同生产线
运维·数据库·人工智能·架构·自动化·aigc·音视频
乌萨奇也要立志学C++10 小时前
【Linux】网络基础 从零理解网络通信:局域网、跨网传输与 Socket 预备知识
linux·服务器·网络
DLYSB_11 小时前
AIOps 大模型实战:基于 LangChain 运维 Agent 的根因诊断与现场声光播报闭环
运维·langchain·报警灯
一可米13 小时前
gitHub.com Actions自动化发布
运维·自动化·github