LVS负载均衡

负载均衡技术(模式):

1、lvs-DR(direct routing)直接路由模式:客户进来的请求先经过调度器,然后再丢给服务器,最后由服务器直接发送请求给客户端(不需要再次经过调度器,这个可以跟很多服务器,因为它回应请求不需要经过调度器)。一般是在公司,就是同一网络里用。 性能好,安全性差。但这个用的最多。

2、LVS-NAT(Network address translation):  客户进来的请求先经过调度器,然后再丢给服务器,接着服务器再把请求丢给调度器,从而最后是由调度器来回应给客户端。(这样的话,调度器比较忙,所以调度器后面不能跟太多服务器,3-5台即可,这个ddos攻击的时候相对来说更安全一些,因为服务器没有直接暴露在外面,是隐藏在调度器后面,相对性能会差一些)

3、LVS-TUN(IP tunneling):隧道模式 :  起到备份或是cdn加速的功能。备份:例如有3台服务器,其中一台坏掉了,那么请求就会分给其他两台服务器。cdn加速:北京的请求就分给北京的服务器,上海的请求就分给上海的服务器,武汉的就分给武汉的服务器,这样来平均负载。用的最少

lvs的IP地址类型

调度算法

lvs分为静态(四种)与动态(六种)

轮循调度(rr)

:将外部请求按顺序轮流分配到集群中的真实服务器上,它均衡的对待每一台服务器,而不管服务器上实际的连接数和负载数。

优点:速度快,将外部请求按顺序轮流分配到集群中的真实服务器上。

缺点:不管服务器上实际的连接数和负载数。权重无效,因为不管怎么设置,它总是均衡的将外部请求按顺序轮流分配到集群中的真实服务器上。

加权轮循(wrr):

数字越大,权重越高:调度算法根据真实服务器的不同处理能力来调度访问请求,这样可以保证处理能力强的服务器处理更多的访问流量。调度器可以自动问询真实服务器的附载情况,并动态的调整其权重值。

优点:可根据服务器的性能来设置权重,从而达到负载。

缺点:不管服务器忙与不忙,都会按照你之前的权重来进行负载访问。

根据权重来判断。

目标地址散列(DH)

:根据请表求的目标ip地址,作为散列键(hash key) 从静态分配的散列表找出对应的服务器,若服务器是可用的且未超载,将请求发送到服务器,否则返回空。(相当于给wrr策略做了一次扩展)

优点:1、首先根据权重来访问哪一个服务器,然后第一个请求访问服务器后,接着只要是这个ip进行的访问,都会在这个服务器上,有缓存来进行加速访问。2、原客户端ip进行访问的同时,不会去跑到第二个服务器上。

缺点:不管你忙与不忙,都会按照你之前的权重来进行访问。后端所跟的服务器不会太多,否则director server的压力就会变得过大。

源地址散列(SH)

:根据请表求的源ip地址,作为散列键(hash key) 从静态分配的散列表找出对应的服务器,若服务器是可用的且未超载,将请求发送到服务器,否则返回空。(从哪个接口出去,再从哪个接口回来,相当于给rr做了次扩展)

Iptables里有个状态跟踪,必须从哪个网关(接口)出去,再从哪个网关(接口)回来,否则这个状态就会没有意义。这个也是一样,必须是从哪个接口出去,再从哪个接口回来。(目的保证)

静态的有缓存,而动态的没有,静态的比较笨一些,动态的智能一些。

1、最少链接:(LC):

根据活动连接数与非活动链接数的总和进行判断。

活动连接:请求服务访问,例如提交数据或是在往数据库里写东西的时候。

非活动连接:例如:已经建立起3次握手了。在访问网页的同时,停留在网页中,不提交数据或是不写数据的时候。

连接数=活动连接数+非活动连接数 来判断的

开销:最后计算请求书哪个最小就丢给谁

Server1:共有1000个请求(例如),900个变成非活动连接,100个活动连接,就是用100*256+900(非活动连接)

Server2:共有1000个请求,结果全部成为非活动连接(都走了)0*256+1000(非活动连接)

根据以上算法,来判断哪个请求较少,谁小就丢给谁。

2、加权最少链接:(WLC):

不设置调度算法,默认是wlc,(开销除以权重(100*256+900)/3),

还是拿上面的那个例子说

Server1:权重是3  (100*256+900)/3

Server2:权重是1   (0*256+1000)/1

谁少就丢给谁。

3、基于局部性的最少链接(LBLC):

在DH的基础上做微调,简单的说就是把DH做成动态调度算法。

DH:访问一个请求的时候,会一直在第一次访问时的那台服务器上。

而LBLC就是尽量让它在第一次访问的服务器上,但如果发现访问的原来第一次服务器上的数据过大时,它便会去其它的服务器上。

算发还是用的WLC的算法。

4、带复制的基于局部性最少链接(LBLCR):

简单说就是又在LBLC的基础上做的微调,把自己已有的缓存复制给别人(缓存共享)

5、最短的期望的延迟(SED):在WLC的基础之上做的微调。

不考虑非活动连接数,只考虑活动连接数。(这种指的是特殊情况下做的微调)

例如:活动连接请求都为0

Server1:权重是1   (0+1)*256/1=256

Server2:权重是10  (0+1)*256/10=25.6

当数据少的时候使用这个

活动连接+1(加1目的是为了让它有误差,当连接数少的时候会有突出)*256除以权重

这样的目录就是为了当一台服务器的权重过高时,为了减少权重高一些的服务器的压力,让权重低的服务器帮忙也分担一些出来。

6、最少队列调度(NQ):只要是服务器端活动链接数为零,就丢给活动链接数为零的那台服务器。(这种是特殊情况下做的微调)

本文转自silence博客51CTO博客,原文链接http://blog.51cto.com/silencezone/1688672如需转载请自行联系原作者

a120518129

lvs十种调度策略+三种模式相关推荐

  1. LVS三种模式的区别及负载均衡算法

    转载自  LVS三种模式的区别及负载均衡算法 LVS简介 LVS(Linux Virtual Server)即Linux虚拟服务器,是一个虚拟的服务器集群系统,由章文嵩博士在1998年5月成立,在li ...

  2. 应用负载均衡之LVS(一):基本概念和三种模式

    本文转载地址:https://www.cnblogs.com/f-ck-need-u/p/8451982.html 本文目录: 1. LVS简介 2. LVS-ipvs三种模式的工作原理 2.1 VS ...

  3. LVS负载均衡(LVS简介、三种工作模式、持久化连接)

    一.LVS简介及原理 1.LVS概述 LVS(Linux Virtual Server)即Linux虚拟服务器,在Linux平台运行.LVS被集成到Linux内核模块中被分为2个部分,用户态(ipvs ...

  4. Oracle 11g dataguard三种模式以及实时查询(Real-time query)功能设置

    之前我们讨论过<Linux Oracle 11g dataguard物理standby 配置过程>, 但是在实际过程中会遇到不同的问题,首先我们讨论下ORACLE DATAGUARD的三种 ...

  5. SAP EWM 与 AGV 机器人对接的三种模式

    SAP EWM 与 AGV 机器人对接的三种模式 https://mp.weixin.qq.com/s/xGfUMSBTEMYKce5oXcWDqA 导读    本文转载自:弘毅供应链,跟随供应链专家 ...

  6. Tomcat三种模式及配置APR模式

    为什么80%的码农都做不了架构师?>>>    Tomcat三种模式 Tomcat Connector的三种不同的运行模式性能相差很大,有人测试过的结果如下: 这三种模式的不同之处如 ...

  7. 宠物乘机的三种模式【转】

    几天前微博用户@HUST_维维豆奶在网上控诉,他搭乘东航MU2544次航班(上海浦东-武汉)时,托运的金毛犬在天河机场被打成重伤(附1).机场方面给出了官方回应(附2与附3),并且已向事主支付了五万元 ...

  8. Vim编辑器的基本使用和三种模式

    Linux vi/vim 所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在. 目前使用比较多的是 vim 编辑器. vim 具有程序编辑的能力,可以主动的以字 ...

  9. DELL服务器安装过程中的三种模式AHCI, ATA, RAID

    BIOS 里的 SATA setting 有 AHCI mode, ATA mode, RAID mode三种模式. AHCI vs ATA ATA(AT Attachment) 是一个很久远的标准, ...

最新文章

  1. ML之xgboost:绘制xgboost的二叉树graphviz的两种方法代码实现
  2. [ZOJ 4014] Pretty Matrix
  3. Workflow Administration
  4. 数据结构与算法-- 二叉树后续遍历序列校验
  5. tableau度量值计算_Tableau图表界面组成介绍
  6. java简述常见的布局极其特点_请简要说明 Android 中五种常见布局的特点。_学小易找答案...
  7. 后端http缓存策略
  8. 钉钉自带浏览器版本过低,导致Object.assign不兼容...
  9. 金税盘时钟异常的处理方法及处理流程
  10. np.array_split()np.split()
  11. android studio多媒体播放器,Android支持全屏、小窗口的视频播放器
  12. 地址转换成百度经纬度,数据太多!不愿意花钱?
  13. call指令和ret指令【笔记+详解】
  14. unicode 生僻字_[微软拼音小技巧] 如何用Unicode输入生僻字
  15. You can't specify target table 'Person' for update in FROM clause
  16. 神经网络加深和加宽的影响
  17. 【毕业设计】人脸识别门禁系统
  18. java矢量图_java – 矢量图形在iText PDF
  19. day14_雷神_前端02
  20. 龙梦3A4000代码获Kernel 5.5合并

热门文章

  1. 安装python的rabbitmq扩展库
  2. Windows Server 2008 RemoteApp(四)---发布应用程序
  3. 从DataSet导出Txt
  4. jggrid应用于asp.net
  5. 突然想起来,前天是感恩节。
  6. (59)Linux操作系统深入应用
  7. HDFS集中式缓存管理(Centralized Cache Management)
  8. struts2拦截器遇到的问题
  9. 加强IIS安全机制 建立高安全性能Web服务器
  10. Spark数据分析实战:大型活动大规模人群的检测和疏散