LVS

作者: 心水Diana | 来源:发表于2018-12-03 16:14 被阅读0次

    LVS工作原理

        >1. DS:Director Server。指的是前端负载均衡器节点。 
        >2. RS:Real Server。后端真实的工作服务器。 
        >3. VIP:向外部直接面向用户请求,作为用户请求的目标的IP地址。
        >4. DIP:Director Server IP,主要用于和内部主机通讯的IP地址。
        >5. RIP:Real Server IP,后端服务器的IP地址。 
        >6. CIP:Client IP,访问客户端的IP地址。 
    
    • DR模式

      • 用户请求LVS到达director,director将请求的报文的目标MAC地址改成后端的realserver MAC地址,目标IP为VIP(不变),源IP为用户IP地址(保持不变),然后Director将报文发送到realserver,realserver检测到目标为自己本地VIP,如果在同一个网段,然后将请求直接返给用户。如果用户跟realserver不在一个网段,则通过网关返回用户

        ![iOBmlT.png](https://img.haomeiwen.com/i12142434/a9c01b00614584d1.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
        
    • NTA模式

      • 用户请求LVS到达director,director将请求的报文的目标IP地址改成后端的realserver IP地址,同时将报文的目标端口也改成后端选定的realserver相应端口,最后将报文发送到realserver,realserver将数据返给director,director再把数据发送给用户。(两次请求都经过director,所以访问大的话,director会成为瓶颈)

        iOBl79.png
    • TUN模式

      • 用户请求LVS到达director,报文的源IP为CIP,目标IP为VIP。 IPVS比对数据包请求的服务是否为集群服务,若是,在请求报文的首部再次封装一层IP报文,封装源IP为为DIP,目标IP为RIP。 此时源IP为DIP,目标IP为RIP 。RS收到报文处理完请求,并响应,此时的源IP地址为VIP,目标IP为CIP。

        iOco4J.png
        负载均衡算法(常见)
        • 轮叫调度 rr
          • 依次循环的方式将请求调度到不同的服务器上,该算法最大的特点就是简单。轮询算法假设所有的服务器处理请求的能力都是一样的,调度器会将所有的请求平均分配给每个真实服务器,不管后端 RS 配置和处理能力,非常均衡地分发下去。
        • 加权轮叫 wrr
          • RS 设置权重,权重越高,那么分发的请求数越多,权重的取值范围 0 – 100。主要是对rr算法的一种优化和补充, LVS 会考虑每台服务器的性能,并给每台服务器添加要给权值,如果服务器A的权值为1,服务器B的权值为2,则调度到服务器B的请求会是服务器A的2倍。权值越高的服务器,处理的请求越多。
        • 最少链接 lc
          • 后端 RS 的连接数来决定把请求分发给谁
        • 加权最少链接 wlc
          • 比lc多出权重概念
    安装及命令
    • 安装

      2.6以后内核已经继承lvs,仅需下载lvs的管理工具ipvsadm
      yum install ipvsadm   -y
      
    • 命令

      -A                        增加一台虚拟服务器VIP地址;
      -t                        虚拟服务器提供的是tcp服务;
      -s                        使用的调度算法(rr,wrr,lc,wlc等);
      -a                        在虚拟服务器中增加一台后端真实服务器;
      -r                        指定真实服务器地址;
      -w                        后端真实服务器的权重;
      -m                        设置当前转发方式为NAT模式;
      -g                        设置当前转发方式直接路由模式;
      -i                        设置当前转发方式模式为隧道模式。
      
      
      • 案例

        yum install ipvsadm   -y
        # 增加vip 轮询模式
        ipvsadm  -A  -t  192.168.33.188:80  -s  rr
        #  vip 增加一台RS DR模式 权重为2
        ipvsadm  -a  -t  192.168.33.188:80  -r  192.168.33.12  -g  -w 2
        ipvsadm  -a  -t  192.168.33.188:80  -r  192.168.33.13  -g  -w 2
        # 网卡绑定vip
         ifconfig ens33:0 192.168.28.200 netmask 255.255.255.255 broadcast 192.168.28.200
        /sbin/route add -host 192.168.28.200 dev ens33:0
        
        

        RS设置

        • 在RS服务器运行脚本 绑定在lo网卡上
        #!/bin/sh
        #LVS Client Server
        VIP=192.168.33.188
        case  $1  in                                                                       
        start)                                                                                   
            ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP
            /sbin/route add -host $VIP dev lo:0
            echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
            echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
            echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
            echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
            sysctl -p >/dev/null 2>&1
            echo "RealServer Start OK"
            exit 0
        ;;
        stop)
            ifconfig lo:0 down
            route del $VIP >/dev/null 2>&1
            echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore
            echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce
            echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore
            echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
            echo "RealServer Stoped OK"
            exit 1
        ;;
        *)
            echo "Usage: $0 {start|stop}"
        ;;
        esac
        

    相关文章

      网友评论

          本文标题:LVS

          本文链接:https://www.haomeiwen.com/subject/gsgycqtx.html