LVS-->Linux Virtual Server

实现算法-->静态/动态,共10种

静态算法:
    rr(round robin):
        解析:轮叫算法,即0-9循环选用Real Server
    wrr(weight round robin):
        解析:带有权重的轮叫,轮叫一遍后,根据记录信息+随后信息,选出资源空闲的进行选择
    sh(source hash):
        解析:以原地址为基准的hash,用于持久链接,以Client为基准,同一个Client发往上次的RealServer(内置一个hash表,key/value)
    dh(destination hash):
        解析:以目的地址为基准的hash,缓存命中高,以目的Real Server为基准,发往同一个Real Server,都走上次的路线
动态算法:
    lc(最少连接least connect):
        解析:不计算权重,仅依照连接数来判定,算法是active*256+inactive=N(N越小,越优先).
        问题:当active相同,反而会造成inactive很大的服务器,算法得出的结果越大,故不合理
    wlc(加权最少连接weight least connect):
        解析:在lc的基础上,添加weight,算法是[active*256+inactive]/weight=N(N越小,越优先)
        问题:初始第一次计算,active和inactive都是0,故此时依照算法,不管权重大小,结果都是0,所以总是默认选择第一个Real Server,如果第一个Real Server性能确实是最好的,那没有问题,但是如果第一个Real Server性能是最差的,则不合理
    sed:
        解析:在wlc的基础上,不计算inactive,即算法是(active+1)*256/weight=N(N越小,越优先)
        问题:因为刚开始active为0,故算法的结果就是weight越小,越不会被选择,故而其他服务器的active总是>=0,因此会造成weight最小的Real Server一直不被选中
    nq:
        解析:在sed的基础上,忽略初始的第一次计算
    lblc:动态dh算法,即dh+lc
    lblcr:lblc的加强版
工作模式-->
    类似于DNAT,不过LVS实现的是单C-->多S
模型类型-->DNAT;DR;tunnel
    DNAT
  • Real Server  使用私有地址
  • Real Server  网关指向DIP
  • 进出报文都经过Director,故Director成为瓶颈
  • 支持端口映射
  • Real Server 可以是任意OS
  • IN: PREROUTING-->INPUT-->POSTROUTING
  • OUT: PREROUTING-->FORWARD-->POSTROUTING
    DR:Director Routin(关键点在Director修改目标MAC,整个过程IP不修改从外在看,只有CIP和VIP两个公有)
  • Real Server 可以使用私有地址,也可以使用公网地址,使用公有的时候方便远程管理
  • Real Server 网关一定不能指向DIP,因为Real Server响应数据包的SIP是VIP,DIP是CIP,而Director也有VIP,直接IP冲突了,所以不能按原路径返回(linux的IP是在主机上,而不是在网卡上)
  • Real Server和Director要在同一物理网络内,否则ARP将从新进行MAC解析;DIP和RIP在同一网段内,否则Director不能得知Real Server的MAC地址
  • 入站报文经过Director,出站由Real Server直接响应Client
  • 不能做端口映射
  • Real Server可以为大多数常见OS
  • 禁止RS上的VIP直接跟前端路由通信的三种方案:

1、修改路由,使用静态ARP;
2、在RS上使用arptables,禁止响应对VIP的ARP广播请求;
3、在RS上修改其内核参数,并向VIP配置在与RIP不同的接口的别名上;

    Tun:Tunneling
  • RIP、DIP不能是私有地址;
  • RealServer的网关不能指向DIP;
  • 入站报文经过Directory,出站则由RealServer直接响应Client;
  • 不支持端口映射;
  • 支持IP tunneling的OS才能用于RealServer;

负载均衡集群之LVS算法和模型的更多相关文章

  1. 负载均衡集群之LVS的DR模型详解(Diretor Routing)

    LVS的默认模型:默认模型DR DR模型原理图--> 在讲DR模型要点之前,需要了解网络的相关知识: 接收的报文拆解顺序:帧(MAC)-->数据包(IP)-->数据报文(port) ...

  2. 负载均衡集群之LVS配置命令

    ipvs/ipvsadm 添加集群服务--> ipvsadm -A|E -t|u|f VIP[:Port] -s scheduler [-p timeout] [-O] [-M netmask] ...

  3. 负载均衡集群介绍 LVS介绍 LVS调度算法 LVS NAT模式搭建

    LVS BAT模式搭建 更改主机名: hostnamectl set-hostname centos7-three bash 准备工作 • 三台机器 • 分发器,也叫调度器(简写为dir) • 内网: ...

  4. 负载均衡集群之LVS持久链接

    原理--> 通过构建一个hash表,利用CIP与RS的对应关系,来保持来自一个CIP的各种服务都走同一个RS 目的--> 保持持久链接的同时,将多个服务合并起来,例如http和https ...

  5. LVS+Keepalived搭建MyCAT高可用负载均衡集群

    LVS+Keepalived 介绍 LVS LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统.本项目在1998年5月由章文嵩博士成立,是中国 ...

  6. LB(Load balance)负载均衡集群--{LVS-[NAT+DR]单实例实验+LVS+keeplived实验} 菜鸟入门级

    LB(Load balance)负载均衡集群 LVS-[NAT+DR]单实例实验 LVS+keeplived实验 LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一 ...

  7. 通过LVS+Keepalived搭建高可用的负载均衡集群系统

    1. 安装LVS软件      (1)安装前准备操作系统:统一采用Centos6.5版本,地址规划如下: 服务器名 IP地址 网关 虚拟设备名 虚拟ip Director Server 192.168 ...

  8. LVS负载均衡集群服务搭建详解(二)

    lvs-nat模型构建 1.lvs-nat模型示意图 本次构建的lvs-nat模型的示意图如下,其中所有的服务器和测试客户端均使用VMware虚拟机模拟,所使用的CentOS 7 VS内核都支持ipv ...

  9. LVS负载均衡集群服务搭建详解(一)

    LVS概述 1.LVS:Linux Virtual Server 四层交换(路由):根据请求报文的目标IP和目标PORT将其转发至后端主机集群中的某台服务器(根据调度算法): 不能够实现应用层的负载均 ...

随机推荐

  1. Lambda表达式 之 C#

    Lambda表达式 "Lambda表达式"是一个匿名函数,是一种高效的类似于函数式编程的表达式,Lambda简化了开发中需要编写的代码量.它可以包含表达式和语句,并且可用于创建委托 ...

  2. Strange Grid

    def main(): r,c = map(int, raw_input().split(' ')) if r % 2 != 0: base = 5*(r-1) else: base = 5*(r-2 ...

  3. 添加AdMob 错误记录

    依照官方教程添加文件及其 frameWork后 发现运行报错 错误如下 Undefined symbols for architecture i386: "_OBJC_CLASS_$_ASI ...

  4. c# 大量拼接xml时内存溢出解决方法

    public static string SelectUNnormalPriceSTrans(EUNnormalPriceS rqInfo) { string guidStrJianJclFirst ...

  5. 【GNOME 边框】GNOME窗口无边框

    今天我新装了一台LINUX UBUNTU12.10,顺手就把UNITY换成了GNOME,但是发现边框消失. 大概原因:metacity 不同版本配置之间的冲突. 解决办法:删除home目录下的旧配置文 ...

  6. PowerShell3.0中,所有的命令

    Get-Command * >> cmd.txt CommandType Name ModuleName ----------- ---- ---------- Alias % -> ...

  7. juicer模板引擎使用

    http://www.juicer.name/ <script src="~/Scripts/jquery-1.8.2.min.js"></script> ...

  8. 使用Windows USB-DVD制作U盘启动安装系统盘

    第一步:到如下所示的地址下载所需要的*.iso系统镜像文件. http://msdn.itellyou.cn/ 第二步:下载Windows USB-DVD工具 https://www.microsof ...

  9. HashMap Java Doc

    原文 public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneab ...

  10. 【LeetCode练习题】Recover Binary Search Tree

    Recover Binary Search Tree Two elements of a binary search tree (BST) are swapped by mistake. Recove ...