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能够有效地在多台后端服务器之间分配负载,优化资源利用,提升系统的整体性能和可靠性。

相关推荐
petaexpress4 分钟前
容器云跟服务器有啥区别?五个区别要知道
运维·服务器
长安初雪12 分钟前
计算机网络 第三章: 总线型共享式以太网_CSMA/CD协议
网络·计算机网络
椰椰椰耶17 分钟前
【网络】DNS,域名解析系统
网络·dns
kaixin_learn_qt_ing29 分钟前
Qt与Udp
网络·网络协议·udp
三菱-Liu1 小时前
三菱FX5U CPU 内置以太网功能
网络·驱动开发·硬件工程·制造·mr
KookeeyLena41 小时前
如何搭建一个ip池用来做数据抓取用
服务器·网络·tcp/ip
小林熬夜学编程2 小时前
【Linux系统编程】第二十弹---进程优先级 && 命令行参数 && 环境变量
linux·运维·服务器·c语言·开发语言·算法
网安詹姆斯2 小时前
网络安全(黑客技术)2024年三个月自学计划
网络·数据结构·python·mysql·安全·web安全·github
CXDNW2 小时前
【Linux篇】TCP/IP协议(笔记)
linux·网络·网络协议·tcp/ip·计算机网络
666IDCaaa2 小时前
为什么需要DDos高防服务器呢?
服务器·网络·ddos