一、LVS简介

LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器, 是一个由章文嵩博士发起的自由软件项目,它的官方站点是www.linuxvirtualserver.org。现在LVS已经是 Linux标准内核的一部分,在Linux2.4内核以前,使用LVS时必须要重新编译内核以支持LVS功能模块,但是从Linux2.4内核以后,已经完全内置了LVS的各个功能模块,无需给内核打任何补丁,可以直接使用LVS提供的各种功能。

LVS 集群采用IP负载和基于内容请求分发技术。调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将一组服务器构成一个高性能的、高可用的虚拟服务器。整个服务器集群的结构对客户是透明的,而且无需修改客户端和服务器端的程序。为此,在设计时要考虑系统的透明性,可伸缩性,高可用性和易管理性。

LVS自从1998年开始,发展到现在已经是一个比较成熟的技术项目了。可以利用LVS技术实现高可伸缩的、高可用的网络服务,例如WWW服务、Cache服务、DNS服务、FTP服务、MAIL服务、视频音频点播服务等等,有许多比较著名网站和组织都在使用LVS架设的集群系统,例如:Linux的门户网站(www.linux.com)、向RealPlayer提供音频视频服务而闻名的Real公司(www.real.com)、全球最大的开源网站(sourceforge.net)、淘宝,阿里巴巴等。

二、LVS集群的组成

一般来说,使用LVS架设的服务器集群系统有三个部分组成:最前端的负载均衡层(Load Balancer,LB),中间的服务器群组层(Server Array),最底端的数据共享存储层(Shared Storage),在用户看来,所有的内部应用都是透明的,用户只是在使用一个虚拟服务器提供的高性能服务。

三、LVS集群的优缺点

优点:

(1)开源,免费

(2)可供参考学习的技术资料丰富

(3)负载均衡功能强大,经过良好优化lvs集群可与专业的硬件均衡设备(F5)BIG-IP相媲美

缺点:

(1)技术要求较高,实施难度大,若想将lvs的负载均衡功能最大的发挥出来,需要专业的维护团队,以便提供强大的技术支持

(2)仅能在四层实现调度,可控性不够精细

四、LVS四种工作模型

LVS-NAT, DNAT(多目标NAT)

LVS-DR(Direct Routing)

LVS-TUN (IPIP)

LVS-FULLNAT

五、LVS调度算法详解

到目前为止,LVS的调度算法一共有10种,具体内容如下所示

1.轮叫调度(Round Robin)(简称rr)

调度器通过“轮叫”调度算法将外部请求按顺序轮流分配到集群中的真实服务器上,它均等地对待每一台服务器,而不管服务器上实际的连接数和系统负载。

2.加权轮叫(Weighted Round Robin)(简称wrr)

调度器通过“加权轮叫”调度算法根据真实服务器的不同处理能力来调度访问请求。这样可以保证处理能力强的服务器能处理更多的访问流量。调度器可以自动问询真实服务器的负载情况,并动态地调整其权值。

3.最少链接(Least Connections)(LC)

调度器通过“最少连接”调度算法动态地将网络请求调度到已建立的链接数最少的服务器上。如果集群系统的真实服务器具有相近的系统性能,采用“最小连接”调度算法可以较好地均衡负载。

4.加权最少链接(Weighted Least Connections)(WLC)

在集群系统中的服务器性能差异较大的情况下,调度器采用“加权最少链接”调度算法优化负载均衡性能,具有较高权值的服务器将承受较大比例的活动连接负载。调度器可以自动问询真实服务器的负载情况,并动态地调整其权值。

5.基于局部性的最少链接(Locality-Based Least Connections)(LBLC)

“基于局部性的最少链接”调度算法是针对目标IP地址的负载均衡,目前主要用于Cache集群系统。该算法根据请求的目标IP地址找出该目标IP地址最近使用的服务器,若该服务器是可用的且没有超载,将请求发送到该服务器;若服务器不存在,或者该服务器超载且有服务器处于一半的工作负载,则用“最少链接” 的原则选出一个可用的服务器,将请求发送到该服务器。

6.带复制的基于局部性最少链接(Locality-Based Least Connections with Replication)(LBLCR)

“带复制的基于局部性最少链接”调度算法也是针对目标IP地址的负载均衡,目前主要用于Cache集群系统。它与LBLC算法的不同之处是它要维护从一个目标 IP地址到一组服务器的映射,而LBLC算法维护从一个目标IP地址到一台服务器的映射。该算法根据请求的目标IP地址找出该目标IP地址对应的服务器组,按“最小连接”原则从服务器组中选出一台服务器,若服务器没有超载,将请求发送到该服务器;若服务器超载,则按“最小连接”原则从这个集群中选出一台服务器,将该服务器加入到服务器组中,将请求发送到该服务器。同时,当该服务器组有一段时间没有被修改,将最忙的服务器从服务器组中删除,以降低复制的程度。

7.目标地址散列(Destination Hashing)(DH)

“目标地址散列”调度算法根据请求的目标IP地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空。

8.源地址散列(Source Hashing)(SH)

“源地址散列”调度算法根据请求的源IP地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空。

9. 最短的期望的延迟(Shortest Expected Delay Scheduling SED)(SED)

基于wlc算法。这个必须举例来说了ABC三台机器分别权重123 ,连接数也分别是123。那么如果使用WLC算法的话一个新请求进入时它可能会分给ABC中的任意一个。使用sed算法后会进行这样一个运算

A(1+1)/1

B(1+2)/2

C(1+3)/3

根据运算结果,把连接交给C 。

10.最少队列调度(Never Queue Scheduling NQ)(NQ)

无需队列。如果有台 realserver的连接数=0就直接分配过去,不需要在进行sed运算

转载于:https://blog.51cto.com/1757513075/1413891

构建高可用的LVS负载均衡集群 入门篇相关推荐

  1. 高性能Linux服务器 第11章 构建高可用的LVS负载均衡集群

    高性能Linux服务器 第11章 构建高可用的LVS负载均衡集群 libnet软件包<-依赖-heartbeat(包含ldirectord插件(需要perl-MailTools的rpm包)) l ...

  2. 集群(一)——LVS负载均衡集群

    集群(一)--LVS负载均衡集群 一.企业群集应用 1.群集的含义 2.问题出现 3.解决办法 4.根据群集所针对的目标差异进行分类 ①.负载均衡群集 ②.高可用群集 ③.高性能运算群集 二.负载均衡 ...

  3. 超详细!一文带你了解 LVS 负载均衡集群!

    作者 | JackTian 来源 | 杰哥的IT之旅(ID:Jake_Internet) 前言 如今,在各种互联网应用中,随着站点对硬件性能.响应速度.服务稳定性.数据可靠性等要求也越来越高,单台服务 ...

  4. LVS 负载均衡集群(一)| 超详细!一文带你了解 LVS 负载均衡集群

    前言 如今,在各种互联网应用中,随着站点对硬件性能.响应速度.服务稳定性.数据可靠性等要求也越来越高,单台服务器也将难以无法承担所有的访问需求.当然了,除了使用性价比高的设备和专用负载分流设备外,还有 ...

  5. LVS负载均衡集群概念

    LVS负载均衡集群概念 一.群集的含义 集群.群集 由多台主机构成,但对外,只表现为一个整体,只提供一个访问入口(域名或IP),相当于一台大型计算机. 1.群集存在的必要 互联网应用中,随着站点对硬件 ...

  6. LVS 负载均衡集群详细介绍

    目录 0 前言 1 什么是 LVS? 3 为什么要用 LVS? 4 LVS 的组成及作用 5 负载均衡的由来及所带来的好处 6 LVS 负载均衡集群的类型 7 DNS / 软硬件负载均衡的类型 8 L ...

  7. LVS负载均衡集群介绍(4种工作模式10种调度算法)

    文章目录 集群简介 集群的特点 集群的分类 负载均衡 负载均衡集群技术的实现 负载均衡分类 四层负载均衡(基于IP+端口的负载均衡) 七层的负载均衡(基于虚拟的URL或主机IP的负载均衡) 高可用性集 ...

  8. LVS负载均衡集群之NAT模式

    企业群集应用概述 群集的含义 群集又称为集群.Cluster.由多台主机构成,但对外,只表现为一个整体,只提供一个访问入口(域名或IP),相当于一台大型计算机. 集群的应用需求--为何存在? 互联网应 ...

  9. LVS负载均衡集群——NAT

    目录 一.集群与分布式 1.1.集群的含义 1.2.lvs模型 1.3.系统性能扩展方式 1.4.集群的三种类型 1.5.LVS的负载调度算法 1.6.集群设计原则 1.7.负载均衡集群架构 ​二.L ...

最新文章

  1. vue的$nextTick使用总结,this.$refs为undefined的解决办法,element Ui的树形控件setCheckedKeys方法无法使用
  2. logo下方显示技术支持信息_艺术与实用性的结合,iQunix Spider 屏幕显示器支架评测...
  3. Oracle linux R5-U7中YUM 源配置
  4. 实战:将企业域名解析委派给企业DNS服务器
  5. ZOJ - 2676 Network Wars(01分数规划+最小割)
  6. shlwapi常用的操作路径函数
  7. LeetCode MySQL 1517. Find Users With Valid E-Mails(正则表达式)
  8. 修改了字体变形的bug(4.9)
  9. Python yield 的基本概念和用法
  10. 周跃计算机网络安全基础,华图网校金领名师模块班:计算机基础知识
  11. 正则表达式应用(以手机号为例)
  12. 净推荐值(NPS):用户忠诚度测量的基本原理及方法
  13. Go chan的底层原理
  14. MySQL InnoDB 存储引擎写入磁盘(落盘)的原理\MySQL怎么保证持久性、原子性?(MySQL中是如何实现事务提交和回滚的)\隔离性
  15. Thales Speakers Bureau:专家云集,将探讨量子技术、5G、数字身份、网络安全和人工智能
  16. BP神经网络的Matlab实现——人工智能算法
  17. 在Windows 7 Media Center中创建幻灯片放映
  18. GitLab基础:如何将备份恢复至更高版本的GitLab
  19. VC++海康威视视频人数流量统计数据库连接
  20. 编写一个触发器:当修改一个学生专业的时候(转专业),则自动将本学期新专业同学全都选修的课程给该同学选修

热门文章

  1. mysql防注入pdo_mysql PDO和存储过程动态SQL注入
  2. 一加6升级android p,一加6手机升级安卓P攻略 教你怎么更新安卓P Beta版
  3. Java 输入流与输出流
  4. 【资源分享】数字图像处理MATLAB版冈萨雷斯+中文高清版+随书源码链接
  5. Pycharm中tensorflow框架下tqdm的安装
  6. 【 Vivado 】XDC文件的约束顺序
  7. 代码整洁之道(一)最佳实践小结
  8. 运维的shell小编(1)
  9. Windows 10将为大型企业提供订阅型服务
  10. Mvn+Jetty启动项目