zoukankan      html  css  js  c++  java
  • LVS--DR工作模式原理及加权轮询使用

    一、LVS--DR工作模式原理

    (流程图后续补上……)

    1、 Client向目标 VIP 发出请求,Director (负载均衡器)接收。
    2 、Director 根据负载均衡算法选择 RealServer_1 ,不修改也不封装 IP 报文,而是将数据帧 的 MAC 地址改为 RealServer_1 的 的 MAC 地址,然后在局域网上发送。
    3、 RealServer_1 收到这个帧,解封装后发现目标 IP 与本机匹配(RealServer 事先绑定了 VIP ,必须的!)于是处理这个报文,随后重新封装报文,发送到局域网。
    4 、Client 将收到回复报文。Client 认为得到正常的服务,而不会知道是哪台服务器处理的
    (注意,如果跨网段,那么报文通过路由器经由 Internet 返回给用户)

    二、DR工作模式采用加权轮询方式部署

    1.环境准备

    名称 IP地址 VIP地址
    负载均衡器          (LB) 192.168.1.128 192.168.2.128
    Web Server 1    (WS1) 192.168.1.130  
    Web Server 2    (WS2) 192.168.1.131   

    2.安装LVS

    下载地址:http://www.linuxvirtualserver.org/software/ipvs.html#kernel-2.6

    或直接wget http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.26.tar.gz

    3.编译安装

    tar -zxf ipvsadm-1.26.tar.gz
    cd ipvsadm-1.26 && make && make install
    lsmod |grep ip_vs
    ipvsadm #此时系统可能未加载ipvs模块,需要手动执行ipvsadm命令加载进去或者modprobe ip_vs。

    4.配置LVS

    4.1 负载均衡器配置VIP地址

    ifconfig eth0:1 192.168.2.128 netmask 255.255.255.0
    route add -host 192.168.2.128 dev eth0

    4.2 ipvsadm添加LVS服务

    参数 参数说明
    -A

    -A --add-service 添加一个带选项的虚拟服务。

    -t 指定虚拟服务器的IP地址和端口
    -s -s,--scheduler scheduling-method 调度算法
    -p 会话保持按秒计算
    -a

    -a在对应的VIP下添加RS节点

    -g 指定此LVS的工作模式为-g   -g为DR模式
    -l

    指定LVS的工作模式为-l  -l为tunnel模式

    -m 指定LVS的工作模式为NAT模式
    -w 指定RS节点的权重
    -D

    删除虚拟服务

    格式:ipvsadm-D -t|u|f service-address

    -C

    -C, --clear  Clear the virtual server table清空lvs原有的配置。

    -set 设置tcp  tcpfn udp  的连接超时时间
    ipvsadm  -C                                                  #请用LVS原有的配置
    ipvsadm -A -t 192.168.2.128:80 -s rr -p 30                   #添加虚拟服务指定VIP
    ipvsadm -a -t 192.168.2.128:80 -r 192.168.1.130:80 -g -w 20  #针对虚拟服务添加RS节点
    ipvsadm -a -t 192.168.2.128:80 -r 192.168.1.131:80 -g -w 20
    ipvsadm -L -n                                                #查看VIP和RS是否已经配置成功。

    4.3 LB上删除虚拟服务

    ipvsadm -D -t 192.168.2.128:80  

    5.配置RS(WS1-2)节点服务器

    5.1 添加lo端口的VIP&路由

    ifconfig lo 192.168.2.128 netmask 255.255.255.255  #RS的VIP不是用来通讯,并且这里一定要设置24位掩码
    route add -host 192.168.2.128  dev lo

    5.2 ARP抑制

    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_announce
    echo "2">/proc/sys/net/ipv4/conf/all/arp_announce

    6.测试LVS是否生效

    在LB上面输入命令ipvsadm -L -n就能够查看LB上面的会话分配。在前面加上watch可以动态的查看ipvsadm的会话分配。watch ipvsadm -L -n.

    6.1 测试RS节点是否正常访问

    6.2 测试从LB能否正常访问RS

    6.3 测试客户端能否正常访问VIP

    NAT模式:

    客户端同样需要配置VIP,进行ARP抑制,并且要服务器端开启内核转发功能,配置LB的DIP(内网IP地址)作为默认网关。

    开启内核转发功能:

    vim /etc/sysctl 在文件最后差入: net.ipv4.ip_forword = 1
    route add default gw 192.168.2.128

    Tunnel模式:

    客户端需要先开启Tunnel协议支持。

    /sbin/modprobe ipip
    /sbin/route add –host 192.168.2.128 devtun1
    echo”1”>/proc/sys/net/ipv4/conf/tun1/arp-ignore
    echo”2”>/proc/sys/net/ipv4/conf/tun1/arp_announce
    echo”0” >/proc/sys/net/ipv4/conf/tun1/rp_filter
    echo”1” >/proc/sys/net/ipv4/conf/tun1/forwarding
    echo”1” >/proc/sys/net/ipv4/conf/all/arp_ignore
    echo”2” >/proc/sys/net/ipv4/conf/all/ arp_announce
  • 相关阅读:
    Java拾遗补缺
    Spring boot整合shiro权限管理
    Maven项目使用阿里云的Maven库
    Spring Boot设置上传文件大小
    mysql悲观锁中的共享锁和排他锁
    MySQL命令show full processlist
    log4j配置文件中的additivity属性
    每天一个liunx命令2之rz和sz命令
    数据库锁表及阻塞的原因和解决办法
    Java加密技术(一)—— HMACSHA1 加密算法
  • 原文地址:https://www.cnblogs.com/Huang-Niu/p/11411005.html
Copyright © 2011-2022 走看看