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. PHP第二课笔记

    ★Php的基本概念 快速入门案例 test.php <html> <body> //<?php  ?>是运行在服务端 <?php   echo 'hello' ...

  2. INI文件格式

    最近在看git命令,遇到INI文件格式,上网查了一下,把它总结一下: 程序没有任何配置文件,那么它对外是全封闭的,一旦程序需要修改一些参数必须要修改程序代码本身并重新编译,为了让程序出厂后还能根据需要 ...

  3. 让WordPress的作者在后台只能看到自己的文章

    今天需要对WordPress后台进行调整,目的是为了只能让当前用户看见自己所发表的文章,而WordPress默认是登陆用户可以看到所有用户发表的文章. WordPress中的用户角色分的比较详细,作者 ...

  4. IOS面试问题总结

    IOS面试问题总结 分类: IOS开发2013-11-20 17:26 10458人阅读 评论(1) 收藏 举报   目录(?)[+]   通过网络搜寻和自己总结经历找了一些IOS面试经常被问道的问题 ...

  5. LeetCode_Palindrome Partitioning II

    Given a string s, partition s such that every substring of the partition is a palindrome. Return the ...

  6. KEIL里 Volatile的用法

    volatile用于防止相关变量被优化. 例如对外部寄存器的读写.对有些外部设备的寄存器来说,读写操作可能都会引发一定硬件操作,但是如果不加volatile,编译器会把这些寄存器作为普通变量处理,例如 ...

  7. 商派shopex

    http://www.shopex.cn/48release/shopexsingle_exper.php 在线体验 前台体验:http://demo.shopex.com.cn/485 后台体验:h ...

  8. Axure 原型设计工具画业务流程图

    加入人人都是产品经理[起点学院]产品经理实战训练营,BAT产品总监手把手带你学产品点此查看详情! 软件行业从业6年,流程图看过太多,大部分流程图是在考验阅读者的理解能力,近期在设计公司新版APP,对流 ...

  9. SQL server 中 COUNT DISTINCT 函数

    目的:统计去重后表中所有项总和. 直观想法: SELECT COUNT(DISTINCT *) FROM [tablename] 结果是:语法错误. 事实上,我们可以一同使用 DISTINCT 和 C ...

  10. xcode5下面安装Command Line Tools

    运行命令 sudo xcode-select --install 就会显示一行文字,并且弹出一个对话框,确认安装后他就会自己下载来安装了. 至此,Command Line Tools就能够重新复活了