• LVS 负载均衡 (VS/DR模式 与 VS/TUN 模式)


    一、VS/DR模式

     

    ①.客户端将请求发往前端的负载均衡器,请求报文源地址是CIP,目标地址为VIP。

    ②.负载均衡器收到报文后,发现请求的是在规则里面存在的地址,那么它将目标MAC改为了RIP的MAC地址,并将此包发送给RS。

    ③.RS发现请求报文中的目的MAC是自己,就会将次报文接收下来,处理完请求报文后,将响应报文通过lo接口送给eth0网卡直接发送给客户端。

    注意:

    需要设置lo接口的VIP不能响应本地网络内的arp请求。

    优点

    和TUN(隧道模式)一样,负载均衡器也只是分发请求,应答包通过单独的路由方法返回给客户端。与VS-TUN相比,VS-DR这种实现方式不需要隧道结构,因此可以使用大多数操作系统做为物理服务器。

    DR模式的效率很高,但是配置稍微复杂一点,因此对于访问量不是特别大的公司可以用haproxy/nginx取代。日1000-2000W PV或者并发请求1万一下都可以考虑用haproxy/nginx。

    缺点

    所有 RS 节点和调度器 LB 只能在一个局域网里面。

     相比于其他两种模式性能最好!也可以实现跨机房,相对比较困难~

    二、实验

    1>准备环境

    #1、准备三台虚拟机,一台Dserver 端, 两台REserver端

    #2、三台主机ip 必须是同一网段

    REserver1 端  ip  : 192.168.206.4

    REserver2 端ip    : 192.168.206.5

    Dserver 端    ip     :   192.168.206.3

     

    #3、 vip (虚拟服务ip) : 192.168.206.22

    2>   Dserver端 下载 ipvsadm 包

     

    查看

    3> 添加对外服务的ip ( vip)

     

    4>添加两台REserver 主机

     

    5>查看

     

    6>配置网卡的子网口 为 vip   (ens33 :0 )

    &1临时方法

    &2永久方法

    再编辑一个网卡配置 文件,将DEVICE 改成 ens33:0 即可 回环地址 lo:0 同理

    查看

    注:执行可能会出现下面情况,找不到 ifconfig 这个命令

     

    #1原因是   sentos7 最小安装 没有自带 ifconfig这个命令的包,我可以来查找一下这个命令所在的包,然后去安装它

     

    #2,通过查找发现它在  net-tools 这个包里面,我们去下载它

     

    #3.查看

     

    再使用  ifconfig 这个命令就可以了

    7> 添加静态路由( 访问 192.168.206.22 ,都走 ens33:0 这个网卡)

    ^1

    ^2, 查看

    添加成功!

    REserver 1端  与 REserver 2 端

    8> 在回环地址上配置 vip  (   REserver 1端  与 REserver 2 端  都需要设置 )

     

    9> 分别添加静态路由

     

    10>定义接受请求的响应的级别与向外通告的级别 ,使它们不能向外宣告!

       arp_ignore:定义接收到ARP请求时的响应级别              

    0:默认,只用本地配置的有响应地址都给予响应               

    1:仅仅在目标IP是本地地址,并且是配置在请求进来的接口上的时候才给予响应         (仅在请求的目标地址配置请求到达的接口上的时候,才给予响应)  

       /proc/sys/net/ipv4/conf/lo/arp_ignore    

       arp_announce:定义将自己的地址向外通告时的级别              

      0:默认,表示使用配置在任何接口的任何地址向外通告               

      1:尽量仅向目标网络通告与其网络匹配的地址               

      2:仅向与本地接口上地址匹配的网络进行通告       

    /proc/sys/net/ipv4/conf/all/arp_announce

    配置如下

    REserver1:

     

    REserver2:

     

    11>全部开启 httpd 服务

    注:这里使用ansible 开启 REserver1 端 与 REserver2  端 的httpd 服务

    @1

    @2查看

     

    全部开始成功

    12> 测试 (记得在 REserver端创建测试文件)

    抓取成功

    二、VS/TUN模式

     

    ①.客户端将请求发往前端的负载均衡器,请求报文源地址是CIP,目标地址为VIP。

    ②.负载均衡器收到报文后,发现请求的是在规则里面存在的地址,那么它将在客户端请求报文的首部再封装一层IP报文,将源地址改为DIP,目标地址改为RIP,并将此包发送给RS。

    ③.RS收到请求报文后,会首先拆开第一层封装,然后发现里面还有一层IP首部的目标地址是自己lo接口上的VIP,所以会处理次请求报文,并将响应报文通过lo接口送给eth0网卡直接发送给客户端。

    注意:

    需要设置lo接口的VIP不能在公网上出现。

    优点

    负载均衡器只负责将请求包分发给后端节点服务器,而RS将应答包直接发给用户。所以,减少了负载均衡器的大量数据流动,负载均衡器不再是系统的瓶颈,就能处理很巨大的请求量,这种方式,一台负载均衡器能够为很多RS进行分发。而且跑在公网上就能进行不同地域的分发。

    缺点:

    隧道模式的RS节点需要合法IP,这种方式需要所有的服务器支持”IP Tunneling”(IP Encapsulation)协议,服务器可能只局限在部分Linux系统上。

                      相比于其他两种模式,TUN 模式用的不多

  • 相关阅读:
    技能的切实掌握 必须动手
    sqlite 网址
    android视频教程
    Windows Azure
    mysql 存储过程 获取统计结果
    “道家”幸福生活的组成
    [文摘20110724]徐鹤宁 语录
    eclipse swt
    mysq 存储过程 插入测试数据
    WPF 视频教程
  • 原文地址:https://www.cnblogs.com/myxxjie/p/10852970.html
Copyright © 2020-2023  润新知