zoukankan      html  css  js  c++  java
  • LVS负载分担(DR模式)基础搭建(一)

    调度器和服务器组都必须在物理上有一个网卡通过不分段的局域网相连,即通过交换机或者高速的HUB相连,中间没有隔有路由器。VIP地址为调度器和服务器组共享,调度器配置的VIP地址是对外可见的,用于接收虚拟服务的请求报文;所有的服务器把VIP地址配置在各自的Non-ARP网络设备上,它对外面是不可见的,只是用于处理目标地址为VIP的网络请求。


    在VS/DR中,请求报文的目标地址为VIP,响应报文的源地址也为VIP,所以响应报文不需要作任何修改,可以直接返回给客户,客户认为得到正常的服务,而不会知道是哪一台服务器处理的。

    DR模式的网络的连接方式:

    1、RIP和DIP和VIP在一个网段内,也就是都是公网地址。

    image

    工作流程说明:

    客户端访问VIP,由director接收处理,选择调度相应的web服务器,服务器处理后直接返回给客户端。

    因此,real server的网关需指向A地址。

    1、地址规划

    image

    2、地址配置

    real server的VIP不能响应广播报文,也不能让其它接口把自己通告出去,也就是存在就行,不要出门和别人打招呼。

    director

    [root@filesystem ~]# ifconfig ens33
    ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet 192.168.94.132  netmask 255.255.255.0  broadcast 192.168.94.255
            inet6 fe80::93e8:3599:36a8:58bf  prefixlen 64  scopeid 0x20<link>
            ether 00:0c:29:a3:92:45  txqueuelen 1000  (Ethernet)
            RX packets 10619  bytes 10402504 (9.9 MiB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 3046  bytes 357957 (349.5 KiB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    [root@filesystem ~]# ifconfig ens33:0 192.168.94.200 netmask 255.255.255.0
    [root@filesystem ~]#
    

    web1

    不能从接口将VIP广播出去,也不要在接口上应答VIP网络的请求。

    [root@node1 ~]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
    [root@node1 ~]# echo 1 > /proc/sys/net/ipv4/conf/ens33/arp_ignore
    [root@node1 ~]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
    [root@node1 ~]# echo 2 > /proc/sys/net/ipv4/conf/ens33/arp_announce
    [root@node1 ~]# ifconfig lo:0 192.168.94.200 netmask 255.255.255.255 broadcast 192.168.94.200
    [root@node1 ~]#
    

    web2

    [root@node2 ~]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
    [root@node2 ~]# echo 1 > /proc/sys/net/ipv4/conf/ens33/arp_ignore
    [root@node2 ~]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
    [root@node2 ~]# echo 2 > /proc/sys/net/ipv4/conf/ens33/arp_announce
    [root@node2 ~]# ifconfig lo:0 192.168.94.200 netmask 255.255.255.255 broadcast 192.168.94.200
    [root@node2 ~]#
    

    测试

    我们用客户端ping一下VIP地址,然后arp –a 查看mac地址表,与director的mac对应,现在web1和web2实现了VIP不对外通告也不应答。

    image

    3、路由配置

    客户端请求报文的源地址和目标地址为CIP和VIP,回应报文的源地址和目标地址应该是VIP和CIP。

    默认情况回应报文会使用出接口的地址,也就是134、135、132等,不会使用VIP地址,我们需要增加一条路由,如果请求的目标IP是VIP,那么出去的数据包源地址也显示为VIP。

    命令:route add –host $VIP dev VIP的接口

    director

    [root@filesystem ~]# route add -host 192.168.94.200 dev ens33:0
    [root@filesystem ~]#
    

    web1和web2

    [root@node1 ~]# route add -host 192.168.94.200 dev lo:0
    [root@node1 ~]#
    
    [root@node2 ~]# route add -host 192.168.94.200 dev lo:0
    [root@node2 ~]#

    4、ipvsadm规则配置

    我们对web服务使用负载分担,real server上的httpd服务配置这里就省略了。

    [root@filesystem ~]# curl http://192.168.94.134
    this is web1 is node1
    [root@filesystem ~]# curl http://192.168.94.135
    this is web2 is node2
    [root@filesystem ~]#
    

    规则配置

    [root@filesystem ~]# ipvsadm -A -t 192.168.94.200:80 -s rr
    [root@filesystem ~]# ipvsadm -a -t 192.168.94.200:80 -r 192.168.94.134:80 -g
    [root@filesystem ~]# ipvsadm -a -t 192.168.94.200:80 -r 192.168.94.135:80 -g
    [root@filesystem ~]# ipvsadm -l -n
    IP Virtual Server version 1.2.1 (size=4096)
    Prot LocalAddress:Port Scheduler Flags
      -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
    TCP  192.168.94.200:80 rr
      -> 192.168.94.134:80            Route   1      0          0
      -> 192.168.94.135:80            Route   1      0          0
    [root@filesystem ~]#
    

    5、结果测试

    测试发现rr轮询的调度算法可以使用,实现了LVS的DR模型

    image

    image


    读书和健身总有一个在路上

  • 相关阅读:
    方便操作的命名范围scope
    使用Emmet加速Web前端开发
    Beanstalkd一个高性能分布式内存队列系统
    2000年互联网泡沫
    简单有效的kmp算法
    文本比较算法:计算文本的相似度
    字符串的四则运算
    文本比较算法:Needleman/Wunsch算法
    两则面试题(动态规划)
    文本比较算法:编辑距离
  • 原文地址:https://www.cnblogs.com/Renqy/p/13029855.html
Copyright © 2011-2022 走看看