阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

LVS-DR模型实现负载均衡

455次阅读
没有评论

共计 13688 个字符,预计需要花费 35 分钟才能阅读完成。

前言

前篇文章我们主要讲解了 LVS-DR 模型的架构方式以及如何实现,想了解的小伙伴点这个 LVS-NAT 模型实现负载均衡,今天我们来进行实践的 LVS 中三种模型中的 DR 模型的架构以及实现方式。(实验环境还以 Web 集群作为实验对象) http://www.linuxidc.com/Linux/2016-06/132387.htm

环境

此处我们 LVS-DR 模型环境架构也用四台 Linux 服务器, 都有以下配置。

环境架构图:

LVS-DR 模型实现负载均衡

工作原理:

基于 DR 机制实现。当用户请求到达 director 之后,此时 Director 知道 client 请求的为一个集群服务 (Director 有一块网卡,此块网卡配置了 DIP【对内】, 又配置了一个网卡别名 VIP【对外公网访问】),那么 director 不会改变原有的 IP 头部,通过指定的调度算法,选择任意一台 RealServer, 通过 DIP 和 RealServer 的 RIP 在同一个物理网络内进行 AIP 广播请求,请求到此台 RealServer 的 MAC 之后,再将 MAC 地址封装为此台 RealServer 的 MAC,然后发给此台 RealServer,注意此时的源地址和目标地址没有改变,RealServer 进行解包发现目标地址为 VIP(RealServer 有一块网卡:此块网卡配置了 RIP【对内】,还在本地回环接口 lookback 口配置了一个隐藏网卡别名的 VIP),自己有一个 VIP,那么进行解封装,再将源地址为 VIP 目标地址为 Client 的 CIP 进行封装然后把数据发送给用户 (此时不在经过 Director,直接发给客户端),完成整个负载调度过程。

特点:

  • RS 可以使用私有地址,还可以使用公网地址,此时可以直接通过互联网连入 RS,以实现配置、监控等
  • RS 的网关一定不能指向 DIP
  • RS 跟 Dirctory 要在同一物理网络内(不能有路由器分隔)
  • 请求报文经过 Directory,但响应报文一定不经过 Director
  • 不支持端口映射
  • RS 可以使用大多数的操作系统

硬件环境:

使用软件 VMware WorkStation 11,Director 的 DIP 和 RealServer 的 RS1、RS2 为桥接模式,让其在同一个物理局域网内。(只作为测试环境)

  • 一台 Director:
    • 版本:Red Hat Enterprise Linux Server release 6.4
    • 单网卡:
      • eth1: DIP: 192.168.40.11/24
      • eth1:0 VIP: 172.16.21.10/16

这里我们为了模拟的更切合真实环境,所以 Client 请求的和 RealServer 的 RIP 不在同一网段,那么就需要一个 Route 设备,这里可选,你也可以使用全部都在一个物理网络内

  • 一台 Route:
    • 版本:Red Hat Enterprise Linux Server release 6.4
    • 双网卡:
      • eth1: 192.168.40.254/24
      • eth2: 172.16.0.254/16
  • 两台 RealServer:
    • 版本:Red Hat Enterprise Linux Server release 6.4
    • 单网卡:
      • RealServer1:eth1:RIP1 192.168.40.12/24
        lo:0:172.16.21.10/32
      • RealServer2: eth1:RIP2 192.168.40.13/24
        lo:0:172.16.21.10/32

软件环境:

搭建 LVS 集群只需要在 Director 服务器上安装 ipvsadmin 工具,此处我们使用 RedHat 自带的 rpm 包进行安装
版本:ipvsadm-1.25-10.el6.x86_64.rpm

安装前准备

同步时间

  • 注意:时间同步是最重要的环节,Director 和后台的 RealServer 的时间必须同步,并且时间差小于 1 秒钟。
  • 本次我们使用 Route 服务器作为时间服务器,全部都向 RouteNTPServer 来同步时间。
[root@route ~]# service ntpd restart  # 重启 ntp 服务器 
Shutting down ntpd:                                        [OK  ]
Starting ntpd:                                             [OK  ]
[root@Director ~]# ntpdate 192.168.40.254 # 客户端同步三台都要同步这里我们就不多说了 

查看内核版本

现在 LVS 已经是 Linux 标准内核的一部分,在 Linux2.4 内核以前,使用 LVS 时必须要重新编译内核以支持 LVS 功能模块,但是从 Linux2.4 内核以后,已经完全内置了 LVS 的各个功能模块,无需给内核打任何补丁,可以直接使用 LVS 提供的各种功能。

[root@Director Packages]# uname -r  # 此处我们环境内核版本为 2.6.32-358.el6.x86_64,所以不需要再打补丁,如果你的内核低于 2.4 那么则需要提前打补丁 
2.6.32-358.el6.x86_64

查看内核是否支持 ipvs

[root@Director ~]# modprobe -l | grep ipvs  # 以下有之前所解释的十个内核所支持的算法 (如果能有以下搜索到那么你的内核就支持 ipvs)
kernel/net/netfilter/ipvs/ip_vs.ko
kernel/net/netfilter/ipvs/ip_vs_rr.ko
kernel/net/netfilter/ipvs/ip_vs_wrr.ko
kernel/net/netfilter/ipvs/ip_vs_lc.ko
kernel/net/netfilter/ipvs/ip_vs_wlc.ko
kernel/net/netfilter/ipvs/ip_vs_lblc.ko
kernel/net/netfilter/ipvs/ip_vs_lblcr.ko
kernel/net/netfilter/ipvs/ip_vs_dh.ko
kernel/net/netfilter/ipvs/ip_vs_sh.ko
kernel/net/netfilter/ipvs/ip_vs_sed.ko
kernel/net/netfilter/ipvs/ip_vs_nq.ko
kernel/net/netfilter/ipvs/ip_vs_ftp.ko

配置本地 YUM 源

我们使用本地光盘来作为 YUM 源

挂载本地光盘

[root@Director ~]# mount /dev/sr0 /media  # 挂载本地光盘到本地目录
mount: block device /dev/sr0 is write-protected, mounting read-only

配置编辑 YUM 源的配置文件

三台服务器我们都需要配置,因为后面两台 RealServer 我们还需要安装 web 服务来作为集群服务。

[root@Director ~]# vim /etc/yum.repos.d/rhel-source.repo   
[localhost]   # 库名称 (可随意)
name=localhost # 名称描述 (自定义)
baseurl=file:///media  # yum 源目录,源地址 
enabled=1   # 是否用该 yum 源,0 为禁用,1 为使用 
gpgcheck=0 # 检查 GPG-KEY,0 为不检查,1 为检查 

到此我们安装前准备就做好了,来下面进行下一步

配置 RouteServer

配置两个网卡的 IP 地址

[root@route ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.40.254
NETMASK=255.255.255.0

[root@route ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth2
DEVICE=eth2
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=172.16.0.254
NETMASK=255.255.0.0

[root@route ~]# service network restart # 重启 network 服务 
Shutting down interface eth1:                              [OK]
Shutting down interface eth2:                              [OK]
Shutting down loopback interface:                          [OK]
Bringing up loopback interface:                            [OK]
Bringing up interface eth1:                                [OK]
Bringing up interface eth2:                                [OK]

[root@route ~]# ifconfig  # 查看是否配置生效 
eth1      Link encap:Ethernet  HWaddr 00:0C:29:22:E7:C7  
          inet addr:192.168.40.254  Bcast:192.168.40.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe22:e7c7/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:609 errors:0 dropped:0 overruns:0 frame:0
          TX packets:292 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:57640 (56.2 KiB)  TX bytes:22985 (22.4 KiB)

eth2      Link encap:Ethernet  HWaddr 00:0C:29:22:E7:D1  
          inet addr:172.16.0.254  Bcast:172.16.255.255  Mask:255.255.0.0
          inet6 addr: fe80::20c:29ff:fe22:e7d1/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:5316 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4282 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:493923 (482.3 KiB)  TX bytes:598669 (584.6 KiB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:9965 errors:0 dropped:0 overruns:0 frame:0
          TX packets:9965 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:1049774 (1.0 MiB)  TX bytes:1049774 (1.0 MiB)

开启本地路由转发

[root@route ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1  # 将 0 更改为 1 即可 
[root@route ~]# sysctl  -p   # 刷新重新生效 
net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.shmall = 4294967296

配置 DirecotrServer

安装 ipvsadm 工具

[root@Director Packages]# yum install -y ipvsadm-1.25-10.el6.x86_64.rpm

配置网卡,并设置 IP

配置内网网卡 DIP

[root@Director ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth1  # 此处我们不指定 GATEWAY(真实生产跟其环境架构而定)
DEVICE=eth1
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.40.11
NETMASK=255.255.255.0

配置外网网卡别名 VIP

[root@Director ~]# cp /etc/sysconfig/network-scripts/ifcfg-eth1 /etc/sysconfig/network-scripts/ifcfg-eth1:0  # 拷贝 DIP 的配置文件 
[root@Director ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth1:0  # 此内网网卡可不指定 GATEWAY, 因为和后台 RealServer 在同一个局域网 (但也要根据真实环境而定)
DEVICE=eth1:0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=172.16.21.10
NETMASK=255.255.0.0

重启网卡服务

[root@Director ~]# service network restart 
Shutting down interface eth1:                              [OK  ]
Shutting down loopback interface:                          [OK  ]
Bringing up loopback interface:                            [OK  ]
Bringing up interface eth1:                                [OK  ]
[root@Director ~]# ifconfig  # 查看配置是否生效 
eth1      Link encap:Ethernet  HWaddr 00:0C:29:E5:9A:47  
          inet addr:192.168.40.11  Bcast:192.168.40.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fee5:9a47/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3289 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2421 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:305233 (298.0 KiB)  TX bytes:324497 (316.8 KiB)

eth1:0    Link encap:Ethernet  HWaddr 00:0C:29:E5:9A:47  
          inet addr:172.16.21.10  Bcast:172.16.255.255  Mask:255.255.0.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:17 errors:0 dropped:0 overruns:0 frame:0
          TX packets:17 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:1284 (1.2 KiB)  TX bytes:1284 (1.2 KiB)

清空本地防火墙策略

[root@Director ~]# iptables -F

配置 RealServer 服务器

配置 RealServer1 网卡的 RIP

[root@RS1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth1    # 根据我们此时的环境一定要将网关指向 RouteServer 的 192.168.40.254,因为 ReaServer 响应 Client 的时候不在一个网络不能直接路由 
DEVICE=eth1
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.40.12
NETMASK=255.255.255.0
GATEWAY=192.168.40.254
NM_CONTROLLED=yes

配置内核参数

由于我们 Director 和两台 RealServer 都配置 VIP 地址,那么客户在请求 VIP 时,都有配置 VIP,都会响应,这样的话网络就乱了,不知道包应该发给谁了,也就达不到我们所说的负载均衡的作用了,下面我们需要只要 Client 请求 VIP 时,只能 Director 来响应,那么我们有以下三个方案来解决这么问题。

让前段路由将请求发往 VIP 时,只能是 Dirctor 上的 VIP 响应

  • 解决方案
    • 静态地址绑定:有时候我们未必有 ISP 路由器的配置权限,Director 调用时静态地址绑定将难以使用 (Director 做 HA 的时候那么一台坏了,还得重新绑定)
    • arptables:设定 arptables 规则来实现
    • 修改 linux 内核参数:将 RS 上的 VIP 配置在 lo 接口的别名上,限制 linux 仅对对应接口的 ARP 请求做相应

第三种方法是我们最常用的,也是最实用的:

[root@RS1 ~]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore 
[root@RS1 ~]# echo 1 > /proc/sys/net/ipv4/conf/eth1/arp_ignore 
[root@RS1 ~]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce 
[root@RS1 ~]# echo 2 > /proc/sys/net/ipv4/conf/eth1/arp_announce 

配置 RealServer1 的隐藏的 VIP

  • 此配置步骤一定要在上一步配置完内核参数之后再进行配置,如果明白 arp 原理的小伙伴你懂的
[root@RS1 ~]# cp /etc/sysconfig/network-scripts/ifcfg-eth1 /etc/sysconfig/network-scripts/ifcfg-lo:0
[root@RS1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-lo:0  # NETMASK 要为三个 255,自己在一个广播域里,此网络只有自己 
DEVICE=lo:0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=172.16.21.10
NETMASK=255.255.255.255
GATEWAY=172.16.0.254

重启网卡配置

[root@RS1 ~]# service network restart
Shutting down interface eth1:                              [OK]
Shutting down loopback interface:                          [OK]
Bringing up loopback interface:                            [OK]
Bringing up interface eth1:                                [OK]
[root@RS1 ~]# ifconfig  # 查看配置是否生效 
eth1      Link encap:Ethernet  HWaddr 00:0C:29:41:4A:CC  
          inet addr:192.168.40.12  Bcast:192.168.40.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe41:4acc/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2749 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1871 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:265901 (259.6 KiB)  TX bytes:241716 (236.0 KiB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:2320 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2320 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:293374 (286.4 KiB)  TX bytes:293374 (286.4 KiB)

lo:0      Link encap:Local Loopback  
          inet addr:172.16.21.10  Mask:255.255.255.255
          UP LOOPBACK RUNNING  MTU:16436  Metric:1

添加路由条目

  • 此路由条目必须要添加的,意思就是只要是访问本地 VIP 地址的,都从本地 lo:0 口进行转发给 eth1(因为只有 eth1 才是对外出去的,lo 口只是本地回环地址,不能直接和外界通信) 记得是转发给 eth1,在从 eth1 进行传出去,这样 eth1 只是转发,不会作为源地址。
[root@RS1 ~]# route add -host 172.16.21.10 dev lo:0
[root@RS1 ~]# route -n   # 查看添加路由条目 
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
172.16.21.10    0.0.0.0         255.255.255.255 UH    0      0        0 lo
192.168.40.0    0.0.0.0         255.255.255.0   U     0      0        0 eth1
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth1
0.0.0.0         192.168.40.1    0.0.0.0         UG    0      0        0 eth1

安装 Web 服务

[root@RS1 ~]# yum install -y httpd
[root@RS1 ~]# service httpd start   # 启动 httpd 服务 
Starting httpd: httpd: apr_sockaddr_info_get() failed for RS1
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
                                                           [OK]
[root@RS1 ~]# service httpd status   # 查看 httpd 是否启动 
httpd (pid  11249) is running...
[root@RS1 ~]# netstat -an | grep :80  # 查看 web 服务 80 端口是否监听 
tcp        0      0 :::80                       :::*                        LISTEN    
[root@RS1 ~]# echo "RS1.xuxingzhuang.com" > /var/www/html/index.html  # 给 web 服务提供网页界面  
[root@RS1 ~]# curl http://localhost # 访问本地 web 是否可以正常访问 
RS1.xuxingzhuang.com

清空本地防火墙策略

[root@RS1 ~]# iptables -F  

配置 RealServer2 网卡的 RIP

[root@RS2 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.40.13
NETMASK=255.255.255.0
GATEWAY=192.168.40.254

配置内核参数

[root@RS2 ~]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore 
[root@RS2 ~]# echo 1 > /proc/sys/net/ipv4/conf/eth1/arp_ignore 
[root@RS2 ~]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce 
[root@RS2 ~]# echo 2 > /proc/sys/net/ipv4/conf/eth1/arp_announce 

配置 RealServer1 的隐藏的 VIP

[root@RS2 ~]# cp /etc/sysconfig/network-scripts/ifcfg-eth1 /etc/sysconfig/network-scripts/ifcfg-lo:0
[root@RS2 ~]# vim /etc/sysconfig/network-scripts/ifcfg-lo:0
DEVICE=lo:0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=172.16.21.10
NETMASK=255.255.255.255
GATEWAY=172.16.0.254

重启网卡配置

[root@RS2 ~]# service network restart
Shutting down interface eth1:                              [OK  ]
Shutting down loopback interface:                          [OK  ]
Bringing up loopback interface:                            [OK  ]
Bringing up interface eth1:                                [OK  ]
[root@RS2 ~]# ifconfig  # 查看配置是否生效 
eth1      Link encap:Ethernet  HWaddr 00:0C:29:9A:31:FB  
          inet addr:192.168.40.13  Bcast:192.168.40.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe9a:31fb/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3401 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3027 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:291858 (285.0 KiB)  TX bytes:1029009 (1004.8 KiB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:2242 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2242 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:273214 (266.8 KiB)  TX bytes:273214 (266.8 KiB)

lo:0      Link encap:Local Loopback  
          inet addr:172.16.21.10  Mask:255.255.255.255
          UP LOOPBACK RUNNING  MTU:16436  Metric:1

添加路由条目

[root@RS2 ~]# route add -host 172.16.21.10 dev lo:0
[root@RS2 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
172.16.21.10    0.0.0.0         255.255.255.255 UH    0      0        0 lo
192.168.40.0    0.0.0.0         255.255.255.0   U     0      0        0 eth1
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth1
0.0.0.0         192.168.40.254  0.0.0.0         UG    0      0        0 eth1

安装 Web 服务

[root@RS2 ~]# yum install -y httpd
[root@RS2 ~]# service httpd start   # 启动 httpd 服务 
Starting httpd: httpd: apr_sockaddr_info_get() failed for RS1
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
                                                           [OK]
[root@RS2 ~]# service httpd status  # 查看 httpd 是否启动 
httpd (pid  10833) is running...
[root@RS2 ~]# netstat -an | grep :80  # 查看 web 服务 80 端口是否监听 
tcp        0      0 :::80                       :::*                        LISTEN    
[root@RS2 ~]# echo "RS2.xuxingzhuang.com" > /var/www/html/index.html  # 给 web 服务提供网页界面  
[root@RS2 ~]# curl http://localhost # 访问本地 web 是否可以正常访问 
RS2.xuxingzhuang.com

清空本地防火墙策略

[root@RS2 ~]# iptables -F

配置 Driector,并将 RealServer 加入集群服务

ipvsadm 命令的用法

管理集群服务

  • 添加:-A -t|u|f service-address [-s scheduler]
    • -t: TCP 协议的集群
    • -u: UDP 协议的集群
      • service-address: IP:PORT
    • -f: FWM: 防火墙标记
      • service-address: Mark Number
  • 修改:
    • -E
  • 删除:
    • -D -t|u|f service-address

管理集群服务中的 RealServer

  • 添加:
    • -a -t|u|f service-address -r server-address [-g|i|m] [-w weight]
    • -t|u|f service-address:事先定义好的某集群服务
    • -r server-address: 某 RS 的地址,在 DR 模型中,可使用 IP:PORT 实现端口映射;
    • [-g|i|m]: LVS 类型
    • -g: DR
    • -i: TUN
    • -m: DR
    • [-w weight]: 定义服务器权重
  • 修改:
    • -e
  • 删除:
    • d -t|u|f service-address -r server-address

集群服务后续管理

  • 查看
    • -L|l
    • -n: 数字格式显示主机地址和端口
    • –stats:统计数据
    • –rate: 速率
    • –timeout: 显示 tcp、tcpfin 和 udp 的会话超时时长
    • -c: 显示当前的 ipvs 连接状况
      • 例:ipvsadm -L -n –stats
  • 删除所有集群服务
    • -C:清空 ipvs 规则
      • 例:ipvsadm -C
  • 保存规则
    • -S
      • 例:ipvsadm -S > /etc/sysconfig/ipvsadm
  • 载入此前的规则:
    • -R
      • 例:ipvsadm -R < /etc/sysconfig/ipvsadm

将 RealServer 加入 Web 集群服务

  • 我们此时使用内核的 rr 调度算法来作为实验,还不明白 LVS 的内核调度算法的小伙伴,请查看我们上一篇 LVS 集群服务详解

使用 rr 调度算法 (轮叫)

[root@Director ~]# ipvsadm -A -t 172.16.21.10:80 -s rr
[root@Director ~]# ipvsadm -a -t 172.16.21.10:80 -r 192.168.40.12 -g -w 2   # 此处的 - w 指定权重是没有意义的,因为我们使用的为 rr 调度算法 (轮叫), 不过你也可以指定,后边我们改变算法时就不用重新定义了,省去了时间 
[root@Director ~]# ipvsadm -a -t 172.16.21.10:80 -r 192.168.40.13 -g -w 1
[root@Director ~]# ipvsadm -L -n   # 查看集群服务 
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  172.16.21.10:80 rr
  -> 192.168.40.12:80             Route    2      0          0         
  -> 192.168.40.13:80             Route    1      0          0         

测试 web 集群服务 rr 算法

LVS-DR 模型实现负载均衡

END

到底我们就基于 LVS-DR 模型就搭建好了一个 web 服务集群,DR 模型在我们生活中用的还是比较多的,最主要的还是理解,后面我们还会继续写一下 HA 高可用集群。

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2016-06/132386.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计13688字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19350
评论数
4
阅读量
7963200
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
如何免费使用强大的Nano Banana Pro?附赠邪修的用法

如何免费使用强大的Nano Banana Pro?附赠邪修的用法

如何免费使用强大的 Nano Banana Pro?附赠邪修的用法 前言 大家好,我是星哥,今天来介绍谷歌的 ...
飞牛NAS玩转Frpc并且配置,随时随地直连你的私有云

飞牛NAS玩转Frpc并且配置,随时随地直连你的私有云

飞牛 NAS 玩转 Frpc 并且配置,随时随地直连你的私有云 大家好,我是星哥,最近在玩飞牛 NAS。 在数...
把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地

把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地

把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地 大家好,我是星哥,今天教大家在飞牛 NA...
小白也能看懂:什么是云服务器?腾讯云 vs 阿里云对比

小白也能看懂:什么是云服务器?腾讯云 vs 阿里云对比

小白也能看懂:什么是云服务器?腾讯云 vs 阿里云对比 星哥玩云,带你从小白到上云高手。今天咱们就来聊聊——什...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
星哥带你玩飞牛NAS-16:不再错过公众号更新,飞牛NAS搭建RSS

星哥带你玩飞牛NAS-16:不再错过公众号更新,飞牛NAS搭建RSS

  星哥带你玩飞牛 NAS-16:不再错过公众号更新,飞牛 NAS 搭建 RSS 对于经常关注多个微...
星哥带你玩飞牛NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手!

星哥带你玩飞牛NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手!

星哥带你玩飞牛 NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手! 作为动漫爱好者,你是否还在为...
开发者福利:免费 .frii.site 子域名,一分钟申请即用

开发者福利:免费 .frii.site 子域名,一分钟申请即用

  开发者福利:免费 .frii.site 子域名,一分钟申请即用 前言 在学习 Web 开发、部署...
颠覆 AI 开发效率!开源工具一站式管控 30+大模型ApiKey,秘钥付费+负载均衡全搞定

颠覆 AI 开发效率!开源工具一站式管控 30+大模型ApiKey,秘钥付费+负载均衡全搞定

  颠覆 AI 开发效率!开源工具一站式管控 30+ 大模型 ApiKey,秘钥付费 + 负载均衡全...
支付宝、淘宝、闲鱼又双叕崩了,Cloudflare也瘫了连监控都挂,根因藏在哪?

支付宝、淘宝、闲鱼又双叕崩了,Cloudflare也瘫了连监控都挂,根因藏在哪?

支付宝、淘宝、闲鱼又双叕崩了,Cloudflare 也瘫了连监控都挂,根因藏在哪? 最近两天的互联网堪称“故障...