lvs集群

集群与分布式系统概念

1. 集群

定义 : 集群是由多台计算机组成的系统,这些计算机协同工作,以解决特定的问题或提供特定服务。

类型 :

  • 负载均衡 (Load Balancing, LB): 由多个主机组成,每台主机只承担一部分负载。负载均衡器根据负载情况将请求分配到不同的主机。
  • 高可用 (High Availability, HA): 通过冗余配置避免单点故障 (SPOF),确保系统持续可用。
  • 可扩展性: 可以通过增加更多主机来扩展系统的处理能力。

关键指标 :

  • MTBF (Mean Time Between Failures): 平均无故障时间。
  • MTTR (Mean Time To Restoration): 平均恢复时间。
  • 可用性 (A) : 计算公式为 A=MTBFMTBF+MTTRA =MTBF +MTTRMTBF。常见的可用性水平有 99%、99.5%、99.9%、99.99%、99.999%。
2. 分布式系统

定义 : 分布式系统将业务拆分为多个子业务或功能模块,这些模块在不同的服务器上运行,以提供服务或完成任务。

类型 :

  • 分布式存储: 例如 Ceph、GlusterFS、FastDFS 和 MogileFS。
  • 分布式计算: 例如 Hadoop 和 Spark。

常见应用 :

  • 分布式应用: 将服务按功能拆分,使用微服务架构。
  • 分布式静态资源: 静态资源存储在不同的存储集群中。
  • 分布式数据和缓存: 使用 Key-Value 缓存系统。
  • 分布式计算: 针对特定业务需求使用分布式计算框架。
3. 集群与分布式的比较
  • 集群: 在多台服务器上部署同一业务系统,每台服务器的功能和数据一致。集群通过增加并行处理能力提高效率,主要依靠负载均衡器分配请求。如果一台服务器故障,其他服务器可以接管其任务。

  • 分布式: 业务被拆分为多个子业务或功能,每台服务器负责不同的任务。分布式系统提高效率的方法是缩短单个任务的执行时间。如果某个节点出现故障,可能会导致对应的子业务失败。

4.通俗的解释

你的比喻很有趣,但可以稍微调整一下,以更准确地描述集群和分布式系统的特点:

集群

比喻 : 银行的多个服务窗口

解释: 想象银行有多个服务窗口(1号窗口、2号窗口等),每个窗口提供相同的服务(例如办理存款、取款等)。这些窗口一起工作,以提高处理客户的效率。如果一个窗口(服务器)忙碌或者出现问题,其他窗口(服务器)可以继续工作,确保服务的连续性和提高处理速度。所有窗口(服务器)都处理相同类型的任务,通过增加窗口数量(服务器),银行能够处理更多的客户(请求)。

分布式系统

比喻 : 搬家中的分工

解释: 想象你和你的朋友在搬家。你负责搬冰箱,另一个朋友负责搬电脑。虽然你们的目标都是完成搬家,但你们各自负责不同的任务。你们将工作分解成不同的部分,通过并行处理来提高整体搬家的效率。如果你负责搬冰箱时,另一个人同时负责搬其他物品,这样可以更快地完成整个搬家任务。每个人(节点)专注于不同的任务(子任务),但最终的目标是一样的,即完成搬家。

总结

  • 集群: 比如银行的多个服务窗口,所有窗口提供相同的服务,关注的是通过增加相同类型的服务窗口来提高处理能力(吞吐量)。

  • 分布式系统: 比如搬家时的任务分工,每个人负责不同的物品,关注的是通过任务分解和并行处理来提高整体工作效率(加速单个任务的完成)。

通过这两个比喻,可以清楚地看到集群关注的是增加相同类型服务的处理能力,而分布式系统关注的是通过任务分解和并行处理来提高处理效率。

LVS(Linux Virtual Server)简介

LVS(Linux Virtual Server)是一个由章文嵩博士发起的自由软件项目,提供高性能的负载均衡解决方案。LVS集成于Linux内核中,主要用于在多个后端服务器之间分发客户端请求,以实现高可用性和负载均衡。

LVS专业术语

  • DR: Director(负载均衡器,分发器)
  • VS: Virtual Server(负载均衡集群对外提供的IP+Port)
  • RS: Real Server(后端请求处理服务器)
  • CIP: Client IP(客户端访问的IP)
  • VIP: Virtual IP(外网访问的虚拟IP)
  • DIP: Director IP(负载均衡器IP)
  • RIP: Real Server IP(后端服务器IP)

工作原理

LVS根据请求报文的目标IP和端口,将请求调度到后端的某个RS。调度的选择基于配置的算法,从而实现负载均衡。用户请求LVS的VIP,LVS根据转发方式和调度算法,将请求转发给后端服务器,后端服务器处理请求并将结果返回给用户。用户无法感知到具体的后端服务器。

LVS调度算法

静态调度算法
  • RR(Round Robin): 轮询调度,每个RS按顺序处理请求。适用于RS能力相近的场景。
  • WRR(Weighted Round Robin): 加权轮询,根据RS的权重进行调度。性能差的RS被调度的次数较少。
  • SH(Source Hashing): 源IP哈希,将来自同一IP的请求始终发送到同一个RS,实现会话绑定(session sticky)。
  • DH(Destination Hashing): 目标地址哈希,将同一目标地址的请求始终发送到同一个RS,适用于正向代理缓存场景。
动态调度算法
  • LC(Least Connections): 最少连接数,将请求发送到活动连接数最少的RS。适用于长连接应用。
  • WLC(Weighted Least Connections): 权重最少连接数,根据RS的权重和连接数进行调度。
  • SED(Shortest Expectation Delay): 短期待延迟,优先调度初始连接数较高的RS,但权重较低的RS可能在初期会接收更多请求。
  • NQ(Never Queue): 第一轮均匀分配,之后使用SED算法。
  • LBLC(Locality-Based Least Connections): 基于位置的最少连接数,将请求分配给负载较轻的RS,适用于正向代理。
  • LBLCR(LBLC with Replication): 带复制功能的LBLC,解决LBLC负载不均衡的问题,通过将负载重的请求复制到负载轻的RS。

通过这些算法,LVS能够有效地在多台后端服务器之间分配负载,优化资源利用,提升系统的整体性能和可靠性。

相关推荐
七夜zippoe4 小时前
CANN Runtime任务描述序列化与持久化源码深度解码
大数据·运维·服务器·cann
盟接之桥4 小时前
盟接之桥说制造:引流品 × 利润品,全球电商平台高效产品组合策略(供讨论)
大数据·linux·服务器·网络·人工智能·制造
会员源码网5 小时前
理财源码开发:单语言深耕还是多语言融合?看完这篇不踩坑
网络·个人开发
米羊1215 小时前
已有安全措施确认(上)
大数据·网络
Fcy6485 小时前
Linux下 进程(一)(冯诺依曼体系、操作系统、进程基本概念与基本操作)
linux·运维·服务器·进程
袁袁袁袁满6 小时前
Linux怎么查看最新下载的文件
linux·运维·服务器
主机哥哥6 小时前
阿里云OpenClaw部署全攻略,五种方案助你快速部署!
服务器·阿里云·负载均衡
ManThink Technology6 小时前
如何使用EBHelper 简化EdgeBus的代码编写?
java·前端·网络
珠海西格电力科技7 小时前
微电网能量平衡理论的实现条件在不同场景下有哪些差异?
运维·服务器·网络·人工智能·云计算·智慧城市
QT.qtqtqtqtqt7 小时前
未授权访问漏洞
网络·安全·web安全