LVS类型及其调度算法

LVS类型:
    NAT:-->(DNAT) (多目标的DNAT)
    DR:
    TUN:
    FULLNAT:

LVS NAT的特性
    1.RS的应该使用私有地址
    2.RS的网关必须指向DIP
    3.RIP和DIP必须在同一网段内
    4.请求和响应的报文都得经过Director,在高负载场景中,Director很可能成为性能瓶颈
    5.支持端口映射
    6.RS可以使用任意支持集群服务的OS

LVS类型及其调度算法


LVS DR类型
    1.让前段路由将请求发往VIP时,只能是Dirctor上的VIP
        解决方案
        1.静态地址绑定
            未必有路由器的配置权限
            Director高可用时静态地址绑定将难以适用
        2.arptables(命令行工具):相当于iptables,限制ARP通告和应答
        3.修改linux内核参数,将RS上的VIP配置在lo接口的别名上,限制linux仅对对应接口的ARP请求做响应

    负载均衡器如何转发:
        如果修改目标IP为RIP,则响应时源IP为RIP,此时客户端并没有请求RIP,所以不能使用RIP响应
        此时,负载均衡器中有规则;定义那个是集群服务器,其下有哪些real server;
        RIP1:MAC1
        RIP2:MAC2
        RIP3:MAC3
        此时,转发时,会修改目标MAC地址

LVS DR类型的特性
    1.RS可以使用私有地址,还可以使用公网地址,此时可以直接通过互联网连入RS,以实现配置,监控等
    2.RS的网关一定不能指向DIP(负载均衡器不负责响应报文的转发)
    3.RS跟Dirctory(DIP)要在同一物理网络内(基于MAC地址通信),(不能有路由器分隔)
    4.请求报文经过Directory,但响应报文一定不经过Director
    5.不支持端口映射
    6.RS可以使用大多数的操作系统

LVS类型及其调度算法

LVS TUN类型:IP隧道(IP报文中,还存在IP)(容灾)
    1.RIP、DIP、VIP都得是公网地址
    2.RS的网关不会指向也不可能指向DIP
    3.请求报文经过Directory,但响应报文一定不经过Director
    4.不支持端口映射
    5.RS的OS必须得支持隧道功能

rs server 同样有vip
用于响应(此时客户端请求的vip,所以响应报文的源地址一定是vip)

LVS类型及其调度算法

LNS-FULLNAT类型:
    (需要向内核打补丁才可以使用)
    NAT模型缺陷:所有的real server和DIP必须在同一个网段内(real server的网关要指向DIP)
    DR模型缺陷:所有的real server直接暴露在互联网上、各主机要位于同一物理网络中
    fullnat:可以跨VLAN(网段),基于NAT实现

LVS类型及其调度算法

LVS的调度方法:10种
    静态方法:仅根据算法本身进行调度
        rr:Round Robin 轮询
        wrr:Weighted RR 权重轮询(根据后端服务器的承载能力,性能)
        sh:source hashing   源地址hash(可以实现session绑定;背后仍是rr,wrr算法) (hash会话表)
            能够将同一个IP地址的访问,定向至同一个RS
        dh:destination hashing 目标地址hash(背后仍是rr,wrr算法)
                将发往同一个目标地址的请求始终转发至第一次挑中的RS
                后端为缓存服务器(提高命中率)
            前端有多个防火墙时,为了保证从某一个防火墙进入,一定可以从该台防火墙出去
     动态方法:根据算法及RS当前的负载状况
         lc:Least Connection 最少连接(-c)
            计算当前的负载Overhead=Active*256+Inactive来实现
            TCP其中两种状态,活动连接和非活动连接
            活动连接占用资源多
            非活动连接占用资源少
         wlc:Weighted LC
            Overhead=(Active*256+Inactive)/weight(权重)
                        刚开始时默认为第一个提供服务
         sed:Shortest Expect Delay  最短期望延迟
            Overhead=(Active+1)*256/weight      
             nq:Nerver Queus: 永不排队
                第一次请求给权重最大的
                第二次请求给权重第二的
                第三次请求给权重第三的
                ..
                然后使用sed算法(增强改进的sed算法)
         lblc:Locality-based least connection 基于本地的最少连接
                 相当于dh+lc
         Lblcr:基于复制的基于本地的最少连接 Replicated and Locality-based least connection (lblc with replication)
                   适用于后端是缓存服务器的场景
                       缓存多的服务器复制一部分缓存给另一个缓存少的服务器

原创文章,作者:sixijie,如若转载,请注明出处:http://www.178linux.com/55328

(0)
sixijiesixijie
上一篇 2016-10-29 00:44
下一篇 2016-10-29 10:08

相关推荐

  • Linux系统启动流程

    对于linux系统的初学者来说,理解并掌握linux系统启动流程能够使你够深入的理解linux系统,还可以通过系统的启动过程来分析问题解决问题。   Linux系统的启动流程   关于linux系统的启动流程可以分为以下步骤:     POST(加电自检)–>加载BIOS(Basic Inp…

    Linux干货 2015-05-18
  • 计算机基础入门及Pyhton基础

    编程基础 计算机基础 程序(program识别并执行的指令 计算机是执行程序的机器 现代计算机 艾伦·麦席森·图灵奠定了现在计算机的逻辑工作方式的基础 冯·诺依曼提出计算机应该有五大部件组成:输入/输出设备、运算器、控制器、输出设备。这是现代计算机基本框架。 语言基础 计算机语言:与计算机之间交互的语言 机器语言:一定位数的二进制代码成为机器指令,指令集合则…

    2017-09-16
  • 文本处理三剑客之Sed(行编辑器)

    sed(流编辑器,行编辑器)     是一种流编辑器,一次处理一行内容,处理时把当前处理的行存储在临时缓存中,成为“模式空间”,接着用sed命令处理缓冲区的内容,处理完毕后吧缓冲区内容输出到屏幕接着处理下一行。这样不断重复到末尾。文件内容并没有改变。除非使用重定向输出才会改变内容。 sed:行编辑器(全屏编辑器:vi)   &n…

    Linux干货 2016-08-15
  • 交换分区创建和磁盘配额的使用

    一、交换分区的建立与启用:     交换分区是作为内存的一个辅助分区,在内存吃紧时,交换分区会作为内存的一部分使用,但是效率比起内存来说会很低下,在一个硬盘分区时最好使用柱面较小的柱面作为交换分区,因为在机械硬盘转速一定的情况下,越靠近外面的磁道,线速度越大,读取到的扇区越多,一定程度上有利于提高性能   &…

    Linux干货 2016-08-29
  • HTTP响应连接介绍

    HTTP即超文本传输协议,web站点的实现就是基于HTTP协议得以实现。本文将详细讨论HTTP。 1. HTTP协议版本: HTTP从诞生到现在一共有如下几个版本: HTTP 0.9:是最早的版本,为HTTP的原型版本,其功能非常简陋; HTTP 1.0:此版本增加了很多新特性,如cache,method,MIME等,MIME的出现让网页不再是单纯的纯文本界…

    2017-05-31
  • shell脚本编程基础(1)

    一.位置变量相关知识     1.位置变量定义:在脚本代码中调用通过命令行传递给脚本的的参数     2.位置变量种类:              &…

    Linux干货 2016-08-15