当前位置: 首页 > news >正文

LVS 负载

一、集群概述

1.1 集群介绍

集群是由一组相互独立、通过高速计算机网络互联的计算机组成的群体,以单一系统模式管理。客户与集群交互时,集群如同独立服务器。其特点包括高性能、高性价比、可扩展性、高可用性、负载均衡、错误恢复、透明性、可管理性和可编程性。

1.2 集群类型

  • 负载均衡集群:所有节点均活动,分摊工作负载,如 Web 服务器集群等,通过算法分配请求,充分利用各节点资源。
  • 高可用集群:保障应用程序持续对外服务,常见为 2 个节点的 HA 集群,有主从、互为主从、多台服务器主从等实现方式,节点间可共享存储资源。
  • 科学计算集群:提供强大计算能力,采用并行计算,分为时间计算(流水线技术)和空间计算(多处理器并发执行),适用于科学计算领域。

1.3 负载均衡技术类型

  • 四层负载均衡器:也称 4 层交换机,基于 IP 加端口实现负载均衡,如 LVS、F5 等。
  • 七层负载均衡器:也称 7 层交换机,位于应用层,可根据报文内容和算法选择后端服务器,如 HAProxy、Nginx。

1.4 负载均衡实现方式

  • 硬件负载均衡产品:F5、深信服、Radware。
  • 软件负载均衡产品:LVS(Linux Virtual Server)、Haproxy、Nginx、Ats(apache traffic server)。

二、LVS 介绍

LVS 即 Linux 虚拟服务器,是虚拟服务器集群系统,1998 年 5 月由章文嵩博士成立,是国内最早的自由软件项目之一,在 linux 2.6 内核中已成为一部分,之前版本需重新编译内核。使用 LVS 可构建可扩展的网络服务系统,相比单服务器升级,能通过添加服务器满足增长的负载需求,更具伸缩性和成本效益。

三、LVS 和 nginx 区别

  • LVS 抗负载能力更强,性能更高,对内存和 cpu 资源消耗低。
  • LVS 工作在网络层,流量由操作系统内核处理;nginx 工作在应用层,可针对 http 应用实施分流策略。
  • LVS 安装配置较复杂,网络依赖性大,稳定性高,不支持正则表达式,不能实现动静分离。
  • LVS 使用的协议范围广,Nginx 仅支持 HTTP、HTTPS、Email 协议,适用范围小。

四、LVS 相关术语

  • DS:前端负载均衡器节点。
  • RS:后端真实的工作服务器。
  • VIP:向外部直接面向用户请求的虚拟 IP 地址。
  • DIP:Director Server 用于和内部主机通讯的 IP 地址。
  • RIP:后端服务器的 IP 地址。
  • CIP:访问客户端的 IP 地址。

五、LVS 负载均衡算法

5.1 静态负载均衡

  • rr(轮询):按预定顺序轮流分配请求给后端服务器。
  • wrr(加权轮询):考虑后端服务器权重,权重高的接收更多请求。
  • sh(源地址散列算法):根据请求源 IP 地址通过散列函数确定分发的服务器。
  • dh(目标地址 HASH):根据请求目标 IP 地址进行散列分发。

5.2 动态负载均衡

  • lc(最少连接):将新请求分配给当前活跃连接数最少的服务器,算法为 active * 256 + inactive,值小者优先。
  • wlc(加权最少连接):算法为(active * 256 + inactive) /weight,值小者优先。
  • sed(最少期望延迟):算法为(active + 1) * 256 /weight,值小者优先。
  • nq(永不排队):无服务器过载时,请求直接发至空闲服务器;服务器达容量限制,新请求被拒绝。
  • LBLC(基于局部性的最少连接):考虑全局和服务器所在局部负载情况。
  • LBLCR(基于局部性的带复制功能的最少连接):在 LBLC 基础上,服务器过载时可复制流量到其他服务器。

六、三种 LVS 工作模式详解

1. 基于 NAT 的 LVS 模式负载均衡

1.1 工作原理

用户请求到达调度器,经 PREROUTING 链送至 INPUT 链,IPVS 检查为集群服务后,修改目标 IP 为 RIP 送 POSTROUTING 链转发给 Real Server;Real Server 构建响应报文发回调度器,调度器修改源 IP 为 VIP 后响应客户端。

1.2 特性

RS 使用私有地址,网关指向 DIP;DIP 和 RIP 在同一网段;请求和响应报文都经调度器,调度器易成瓶颈;支持端口映射;RS 可使用任意操作系统。

1.3 优点

物理服务器可使用任何支持 TCP/IP 的操作系统,只需在调度器配置一个 IP 地址,服务器组可用私有 IP。

1.4 缺点

伸缩能力有限,服务器节点过多时,负载均衡器会成为瓶颈。

2. 基于 TUN 的 LVS 负载均衡

2.1 实现原理

在原有 IP 报文外封装一层 IP 首部,客户端数据包到 LVS 后,经 PREROUTING 链至 INPUT 链,LVS 选择 RS 后转发至 OUTPUT 链,最终到达后端服务器;后端服务器拆封后处理并响应客户端。

2.2 优点

单臂模式,LVS 负载压力小;数据包修改小,信息完整性高;可跨机房。

2.3 缺点

不支持端口映射;需在 RS 安装模块及配置 VIP;隧道头部 IP 固定,RS 网卡可能不均匀;隧道头部可能导致分片影响性能。

2.4 使用场景

对转发性要求较高且有跨机房需求的场景。

3. LVS(DR)负载均衡

3.1 实现原理

客户端请求到 LVS,经 PREROUTING 链至 INPUT 链,LVS 确认是定义的服务后选择 RS,修改数据包 MAC 地址后发至 RS;RS 处理后通过 lo 接口传至 eth0 网卡响应客户端。

3.2 优点

响应数据不经过 LVS,性能高;对数据包修改小,信息完整性好。

3.3 缺点

LVS 与 RS 必须在同一物理网络;RS 上必须配置 lo 和其他内核参数;不支持端口映射。

3.4 使用场景

对性能要求高,且需要透传客户端源 IP 地址的场景。

七、IPVS 模块概述

1. IPVS 的介绍

IPVS 是高效的 Layer-4 交换机,提供负载平衡功能。初始 SYN 报文到达时选择服务器转发,后继报文根据 IP 和 TCP 报文头地址转发到相同服务器。要求后端服务器组提供相同服务,部分应用中后端服务器功能可不同,此时需基于内容请求分发。

2. IPVS 的工作原理

IPVS 是 LVS 的关键,实现 LVS 的 IP 负载平衡技术。安装在 Director Server 上,虚拟出 VIP,用户通过 VIP 访问服务,请求经 VIP 到负载调度器,再由其从 Real Server 列表选节点响应用户。LVS 分为内核空间的 IPVS 模块(工作在 Netfilter 框架的 input 链上)和用户空间的 ipvsadm 工具(用于定义集群服务并传送给 IPVS 模块)。

3. ipvsadm 命令

ipvsadm 命令用于管理 LVS 集群,包括添加、修改、删除集群服务和真实服务节点,查看规则,清空规则,设置超时值等。常见选项及作用如下:

选项作用
-A添加虚拟服务节点
-D删除虚拟服务节点
-L查看虚拟服务节点列表
-n以数字形式显示查看内容
-a添加真实服务节点
-d删除真实服务节点
-l查看真实服务节点列表
-t指定虚拟服务器 IP 地址
-s指定调度算法
-r指定真实服务器节点 IP 地址
-w指定权重值
-g直接路由模式(默认)
-mNAT 模式
-i隧道模式
http://www.dtcms.com/a/560590.html

相关文章:

  • NFS服务器的搭建
  • 【高并发服务器】十三、TcpServer服务器管理模块
  • 15.套接字和标准I/O
  • Linux TcpSocket编程
  • 怎么可以在百度发布信息seo won jin
  • TensorFlow深度学习实战——自定义图神经网络层
  • 车陂手机网站开发学校网站群建设必要
  • 【Elasticsearch入门到落地】18、Elasticsearch实战:Java API详解高亮、排序与分页
  • Java Web学习 第1篇前端基石HTML 入门与核心概念解析
  • Kafka4.1.0 队列模式尝鲜
  • transformer记录一(输入步骤讲解)
  • 做生存分析的网站有哪些网站背景怎么弄
  • Tomcat 新手避坑指南:环境配置 + 启动问题 + 乱码解决全流程
  • 整理、分类、总结与介绍Vue前端开发日常常用的第三方库/框架/插件-收藏
  • 第九天~在Arxml中定义一对XCP-PDU用于测量标定
  • Tomcat 配置问题速查表
  • 第九天~AUTOSAR网络管理NM-PDU详解:在Arxml中定义唤醒节点的NM-PDU
  • 在centos 7上配置FIP服务器的详细教程!!!
  • 做网站三网多少钱wordpress 贴吧主题
  • 无锡网站建设营销型诸城公司做网站
  • 【Docker】容器网络探索(二):实战理解 host 网络
  • 《数据结构风云》:二叉树遍历的底层思维>递归与迭代的双重视角
  • Java EE初阶 --多线程2
  • 论文精读(七):结合大语言模型和领域知识库的证券规则规约方法
  • Linux shell sed 命令基础
  • 选 Redis Stream 还是传统 MQ?队列选型全攻略(适用场景、优缺点与实践建议)
  • 【JVM】详解 Java内存模型(JMM)
  • 做网站工作室广告网站建设
  • 小语种网站制作广州网站建设哪里有
  • 广州学做网站上饶网站建设多少钱