美文网首页linux
LVS系列之三:部署LVS的DR模式

LVS系列之三:部署LVS的DR模式

作者: 小六的昵称已被使用 | 来源:发表于2019-02-22 12:41 被阅读43次

    title: LVS系列之三:部署LVS的DR模式
    categories: Linux
    tags:
    - LVS
    timezone: Asia/Shanghai
    date: 2019-02-04


    简介

    Virtual Server via IP Tunneling(VS/TUN)

    采用NAT技术时,由于请求和响应报文都必须经过调度器地址重写,当客户请求越来越多时,调度器的处理能力将成为瓶颈。为了解决这个问题,调度器把请求报 文通过IP隧道转发至真实服务器,而真实服务器将响应直接返回给客户,所以调度器只处理请求报文。由于一般网络服务应答比请求报文大许多,采用 VS/TUN技术后,集群系统的最大吞吐量可以提高10倍。

    环境

    [root@centos181001 ~]# cat /etc/centos-release
    CentOS Linux release 7.6.1810 (Core) 
    
    准备3台服务器
    Director节点: (ens34 11.11.11.61 vip ens34:0 11.11.11.60)
    Real server1: (ens34 11.11.11.62 vip lo:0 11.11.11.60)
    Real server2: (ens34 11.11.11.63 vip lo:0 11.11.11.60)
    

    第零步:关闭系统默认防火墙并设置本地YUM(by all)

    # 关闭防火墙
    setenforce 0
    sed -i -r "/^SELINUX=/c SELINUX=disabled" /etc/selinux/config
    which systemctl && systemctl stop firewalld
    which systemctl && systemctl disable firewalld
    which systemctl && systemctl stop iptables || service iptables stop
    which systemctl && systemctl disable iptables || chkconfig iptables off
    
    # 配置本地yum
    mkdir /mnt/cdrom
    mount /dev/cdrom /mnt/cdrom
    cat <<EOF >/etc/yum.repos.d/local.repo
    [local]
    name=local
    baseurl=file:///mnt/cdrom
    gpgcheck=0
    enabled=1
    EOF
    
    yum clean all       #清理本地缓存
    yum clean plugins   #清理插件缓存
    yum makecache       #构建缓存
    

    第一步:Director server节点设置

    在LVS方案中,虚拟ip地址与普通网络接口大大不同,这点需要特别注意。虚拟ip地址的广播地址是它本身,子网掩码是255.255.255.255。为什么要这样呢?因为有若干机器要使用同一个ip地址,用本身做广播地址和把子网掩码设成4个255就不会造成ip地址冲突了,否则lvs将不能正常转发访问请求。

    1. 安装ipvsadm

    yum install -y ipvsadm
    

    2.配置脚本并执行

    cat <<EOF >/usr/local/sbin/lvs_dr.sh
    #!/bin/bash
    # 启用ip转发功能
    echo 1 > /proc/sys/net/ipv4/ip_forward
    # 定义VIP
    vip=11.11.11.60
    # 定义两台真实服务器IP地址
    rs1=11.11.11.62
    rs2=11.11.11.63
    # 将VIP绑定到ens34
    ip address add \$vip/32 dev ens34
    # 添加主机路由
    ip route add 11.11.11.60 dev ens34
    # 清空ipvs转发列表
    /usr/sbin/ipvsadm -C
    # 添加一个虚拟服务
    /usr/sbin/ipvsadm -A -t \$vip:80 -s wrr 
    # 以直接路由的方式把请求转发到LVS后面的真实服务器,权重分别是3和1
    /usr/sbin/ipvsadm -a -t \$vip:80 -r \$rs1:80 -g -w 3
    /usr/sbin/ipvsadm -a -t \$vip:80 -r \$rs2:80 -g -w 1
    EOF
    cat /usr/local/sbin/lvs_dr.sh
    chmod +x /usr/local/sbin/lvs_dr.sh
    /usr/local/sbin/lvs_dr.sh
    

    第二步:配置两个Real server节点

    注意:在 DR 模式下,2台 rs 节点的 gateway 不需要设置成 dir 节点的 IP 。

    1.Real server节点1:

    yum install -y httpd
    systemctl start httpd
    echo "1111111111" > /var/www/html/index.html
    

    2.Real server节点2:

    yum install -y httpd
    systemctl start httpd
    echo "2222222222" > /var/www/html/index.html
    

    3.两个Real server节点配置脚本并执行

    # 如果你的RS的外部网络接口是eth0,那么
    # echo "1">/proc/sys/net/ipv4/conf/all/arp_ignore
    # echo "2">/proc/sys/net/ipv4/conf/all/arp_announce
    # 其实真正要执行的是:
    # echo "1">/proc/sys/net/ipv4/conf/eth0/arp_ignore
    # echo "2">/proc/sys/net/ipv4/conf/eth0/arp_announce
    # 所以我个人建议把上面两条也加到你的脚本里去,因为万一系统里上面两条默认的值不是0,那有可能是会出问题滴。
    cat <<EOF >/usr/local/sbin/lvs_dr_rs.sh
    #!/bin/bash
    vip=11.11.11.60
    # 关闭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_ignore
    echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
    ip route add \$vip dev lo
    ip address add \$vip/32 dev lo
    EOF
    chmod +x /usr/local/sbin/lvs_dr_rs.sh
    /usr/local/sbin/lvs_dr_rs.sh
    

    第三步:测试(在第四个节点上)

    因为在上边我们设置了节点1的权重是3,节点2的权重是1,所以这里结果每4次访问里有3次请求到节点1,一次访问请求到节点2

    [root@rehl6801 ~]# curl http://11.11.11.60
    1111111111
    [root@rehl6801 ~]# curl http://11.11.11.60
    1111111111
    [root@rehl6801 ~]# curl http://11.11.11.60
    1111111111
    [root@rehl6801 ~]# curl http://11.11.11.60
    2222222222
    [root@rehl6801 ~]# curl http://11.11.11.60
    1111111111
    [root@rehl6801 ~]# curl http://11.11.11.60
    1111111111
    [root@rehl6801 ~]# curl http://11.11.11.60
    1111111111
    [root@rehl6801 ~]# curl http://11.11.11.60
    2222222222
    

    http://zh.linuxvirtualserver.org/node/2585

    相关文章

      网友评论

        本文标题:LVS系列之三:部署LVS的DR模式

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