Day18-lvs

LVS(Linux Virtual Sever )

  简介:LVS即Linux虚拟服务器,是一个虚拟的服务器集群系统,

  结构图示:

     Day18-lvs

  工作原理:

      lvs主要通过ipvsadm/ipvs来实现的。ipvs是lvs集群系统的核心软件。它的主要作用是:安装在 Director Server(调度器) 上,同时在 Director Server上虚拟出一个IP 地址,

      用户必须通过这个虚拟的 IP 地址访问服务器。这个虚拟 IP 一般称为 LVS 的VIP,即 Virtual IP。访问的请求首先经过 VIP 到达负载调度器,

      然后由负载调度器从Real Server 列表中选取一个服务节点响应用户的请求。 在用户的请求到达负载调度器后,调度器如何将请求发送到提供服务的 Real Server 节点,而 Real Server节点如何返回数据给用户,

  LVS数据流向:

      正向:CIP--->VIP--->DIP-->RIP

      逆向:RIP--->DIP--->VIP---CIP

  LVS类型:

      1.NAT(一般10个RS内才是用)

        解析:NAT类型是基于DNAT来的,当用户(CIP)请求虚拟ip(vip)的时候,直接将目标IP换成RIP中的一个真实IP,所有NAT类型相当于一个多目标的DNAT,这些目标就是真实主机的真实IP。

           这个时候,相应与请求都经过Director。

        特性:1.RS(real sever)应该使用私有地址。

           2.RS的网关必须指向DIP。

           3.RIP与DIP必须在同一网段内。

           4.请求和相应的报文都要经过Director,.在高负载环境中,Director很可能成为系统性能瓶颈。

           5.支持端口映射

           6.RS可以使用任何支持集群服务的OS

           7.

      2.DR(直接路由模型)

          需求模型:

            (1)在DR与RS上一个网卡配置两个地址,除了自己的地址之外都加一个VIP地址,同时前段路由请求的时候,VIP只能是DR上的VIP         

              (2)VIP、DIP、RIP在同一网段,则DR与RS一个网卡配置两个地址,一个是各自的DIP与RIP在配置一个VIP,也就是在DR与RS上都有VIP地址.

                (3)VIP、DIP、RIP不在同一网段,那么这个时候RIP的网关需要指向另一个路由,一定不能是前段进来的路由。

          DR特性:1.RS可以使用私有地址。也可以使用公网地址。

                2.RIP的网关不能指向DIP

              3.RS与DS要在同一物理网络内。(不能路由器分割)

              4.请求报文经过DR,相应报文一定不经过DR。

              5.不支持端口映射

          

      3.TUN(IP隧道)

          需求模型|:VIP、DIP、RIP都需要是公网地址。

          

      4.FULLNAT:

          fuallnat主要是原地址跟目的地址都转换了。

          LVS有两个地址:一个VIP一个LIP(本地IP)

          数据流:

            CIP   VIP  LIP    RIP

            请求:client----------------->DS转换---------------->RS

               sip:CIP      sip:LIP              

               dip:VIP         dip:RIP

            响应:RS---------------->DS转换---------------->client

               sip:RIP      sip:VIP              

               dip:LIP         dip:CIP

LVS的调度算法:

    固定调度算法:

      rr:轮询

     wrr:加权轮询

      dh:目标地址散列调度算法

      sh:原地址散列调度算法

      lc:最少连接数

      wlc:加权最少连接数

      lblc:基于局部性最少连接数

      lblcr:基于地址的带重复性的最少连接数     

    动态调度算法

IPVSADM命令解析:

    DR相关:

      -A:添加一个集群服务
        -t:tcp
        -u:udp
        -f: firewall make 通常应用于将两个或以上的服务绑定为一个服务进行处理时使用
        -t IP:port
        -u ip:port
        -f firewall_mark
        -s 调度算法,默认为wlc
        -p: timeout persistent connection 持久连接
     -E:修改定义过的集群服务

     -D -t|u|f service-address:删除指定的集群服务

     -L:显示规则

        -n 使用数字格式显示IP地址,不反解
        -c:查看连接数相关信息
        --stats:显示统计数据
        --rate:数据传输速率
        --timeout:显示tcp会话时长
        --daemon:守护进程的信息
        --sort:对虚拟服务进行排序,默认为升序
        --exact:精确显示,不做单位换算   

      -C清除所有的集群服务:

      保存规则(使用输出重定向)
      ipvsadm-save
      ipvaadm -S

      载入指定的规则:(使用输入重定向)
      ipvsadmin-restore
      ipvasdm -R

LVS配置:

    1.nat模式

        服务器端:

            1.配置两个网卡两个地址:内网地址

                地址1:为VIP、地址2:为与RS在同一网段能够相互通信的ip

            2.可以关掉DR与RS的iptables

            3.打开转发功能:vim /etc/sysctl.conf        net.ipv4.ip_forward = 1

              4.使转发功能立即生效:sysctl -p

       WEB1:

            1.设置ip在地址2网段,可以设置网关指向地址2:route add default gw  地址2

            2.打开http服务。

      

       WEB2:

            1.设置ip在地址2网段,可以设置网关指向地址2:route add default gw  地址2

            2.打开http服务。

      

      测试:找一台电脑访问vip的web,由于服务器没有web服务,所以会被转发到RS上。

 

上一篇:Day18_用户授权


下一篇:java学习day18--API-反射