一、三种模式

(一)、Virtual Servervia Network Address Translation(VS/NAT)

  通过网路地址转换,调度器重写请求报文的目标地址,根据预设的调度算法,将请求分派给后端真实服务器;真实服务器的响应报文通过调度器时,报文的源地址被重写,在返回给客户,完成整个负载调度过程。

请求过程:

数据返回:

(二)、Virtual Server via IP Tunneling(VS/TUN)

  采用NAT技术时,由于请求和响应报文都必须经过调度器地址重写,当客户请求越来越多时,调度器的处理能力将成为瓶颈,为了解决这个问题,调度器把请求报文通过IP隧道转发至真实服务器,而真实服务器将响应直接反回给客户,所以调度器只处理请求报文,由于一把网络服务应答比请求报文大许多,采用VS/TUN技术后,集群系统的最大吞吐量可以提高10倍

 

(三)、Virtual Server via Direct Routing(VS/DR)

  VS/DR通过改写请求报文的MAC地址,将请求发送到真实服务器,而真实服务器将响应直接返回给客户,同VS/TUN技术一样,VS/DR技术可极极大地提高集群系统的伸缩性,这种方法没有IP隧道的开销,对集群中的真实服务器都有一块网卡连在同一物理网段上。

二、十种算法

(一)、轮叫调度

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

(二)、加权轮叫

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

(三)、最少链接

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

(四)、加权最少链接

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

(五)、基于局部性的最少链接

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

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

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

(七)、目标地址散列

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

(八)、源地址散列

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

(九)、最短的期望的延迟

  基于WLC算法,举例说明:ABC三台机器分别千重123,链接数也分别是123,那么如果使用WLC算法的话一个新的请求进入时它可能会分给ABC中任意一个。使用sed算法后会进行这样一个运算A(1+1)/1 B(1+2)/2 C(1+3)/3根据运算结果,把链接交给C。即:(服务器当前链接数+1)/权重,比较结果,取最小值

(十)、最少队列调度

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

lvs模式及算法的更多相关文章

  1. LVS模式一:直接路由模式DR(Direct Routing)

    (一)LVS 一.LVS的了解 LVS(Linux Virtual Server)可以理解为一个虚拟服务器系统. Internet的飞速发展,网络带宽的增长,Web服务中越来越多地使用CGI.动态主页 ...

  2. MapReduce的模式、算法和用例

    英文原文:<MapReduce Patterns, Algorithms, and Use Cases> https://highlyscalable.wordpress.com/2012 ...

  3. MapReduce 模式、算法和用例(MapReduce Patterns, Algorithms, and Use Cases)

    在新文章“MapReduce模式.算法和用例”中,Ilya Katsov提供了一个系统化的综述,阐述了能够应用MapReduce框架解决的问题. 文章开始描述了一个非常简单的.作为通用的并行计算框架的 ...

  4. Java多线程--并行模式与算法

    Java多线程--并行模式与算法 单例模式 虽然单例模式和并行没有直接关系,但是我们经常会在多线程中使用到单例.单例的好处有: 对于频繁使用的对象可以省去new操作花费的时间: new操作的减少,随之 ...

  5. MapReduce 模式、算法和用例

    翻译自:http://highlyscalable.wordpress.com/2012/02/01/mapreduce-patterns/ 在这篇文章里总结了几种网上或者论文中常见的MapReduc ...

  6. 【甘道夫】并行化频繁模式挖掘算法FP Growth及其在Mahout下的命令使用

    今天调研了并行化频繁模式挖掘算法PFP Growth及其在Mahout下的命令使用,简单记录下试验结果,供以后查阅: 环境:Jdk1.7 + Hadoop2.2.0单机伪集群 +  Mahout0.6 ...

  7. 001.LVS简介及算法

    一 LVS简介 1.1 LVS介绍 LVS是linux virtual server的简写linux虚拟服务器,是一个虚拟的服务器集群系统,可以再unix/linux平台下实现负载均衡集群功能. 使用 ...

  8. LVS模式三:NAT模式

    一.NAT模式     NAT(Network Address Translation,网络地址转换).数据包传输过程就是把客户端发来的数据包的IP头的目的地址,在负载均衡器上换成其中一台RS的IP地 ...

  9. LVS模式二:隧道模式(Tun)

    一.IP隧道(IP Tunneling) ip隧道是一个将ip报文封装到另一个ip报文的技术,这可以使得目标为一个ip地址的数据报文被封装和转发到另一个ip地址.ip隧道技术也成为ip封装技术.    ...

随机推荐

  1. vim配置轻量级IDE

    安装VIM 安装YouCompleteMe的时候, 需要VIM的版本比较高, 一般一些Linux长期支持版的Vim包就比较老, 所以可能需要编译安装. 卸载之前系统中安装的版本: CentOS/Fed ...

  2. python3的类

    python3的类: python是一门面向对象的编程语言,学习python下的类,,能帮助自己形成一个基本的面向对象的概念.关于类和实例的理解,一个易懂的栗子就是动物类,我们把动物看做一个类,而狗啊 ...

  3. [WPF自定义控件库]好用的VisualTreeExtensions

    1. 前言 A long time ago in a galaxy far, far away....微软在Silverlight Toolkit里提供了一个好用的VisualTreeExtensio ...

  4. django基础知识之定义模型:

    定义模型 在模型中定义属性,会生成表中的字段 django根据属性的类型确定以下信息: 当前选择的数据库支持字段的类型 渲染管理表单时使用的默认html控件 在管理站点最低限度的验证 django会为 ...

  5. 什么是JDK什么是JRE?JDK和JRE的关系

    什么是JDK什么是JRE?JDK和JRE的关系 我们看看来自百度百科的解释: JDK是 Java 语言的软件开发工具包,主要用于移动设备.嵌入式设备上的java应用程序.JDK是整个java开发的核心 ...

  6. SQL Server 表结构操作

    一.创建表 --直接定义主外键 create table wallet( ID ) primary key, ,) not null, Name ) default '余额', Member_ID ) ...

  7. 《ElasticSearch6.x实战教程》之父-子关系文档

    第七章-父-子关系文档 打虎亲兄弟,上阵父子兵. 本章作为复杂搜索的铺垫,介绍父子文档是为了更好的介绍复杂场景下的ES操作. 在非关系型数据库数据库中,我们常常会有表与表的关联查询.例如学生表和成绩表 ...

  8. VUE v-for循环中每个item节点动态绑定不同函数方法

    一. 业务场景: 一个title 处 可能有 一个或多个按钮,  按钮对应不同的响应事件 二. 思路 : 按钮个数 根据传入的数据length 来循环渲染,  每条数据对应的事件名称 通过动态绑定 三 ...

  9. c语言进阶10-算法

    一.  数据结构和算法关系 为什么要学数据结构和算法? 通常,计算机解决问题的步骤如下: 在数学模型中,计算机处理的对象之间通常存在着一种最简单的线性关系,这类数学模型就是线性的数据结构.著名计算机科 ...

  10. 关于python3与python2同时存在情况下导入pyqt失败解决记录

    最近感觉tkinter功能还是比较不适合新手做出高大上的界面,故开始使用pyqt,通过pip安装好了之后,利用qt设计师设计好界面之后,cmd运行之,报错提示没有找到pyqt5模块,IDE运行能正常加 ...