LVS的持久化连接(搭建+详解)

参考阅读

LVS的DR模式搭建
LVS的NAT模式搭建

一、 LVS持久化连接

  • 类似于SH算法,即将同一源的IP的Client,发送给同一Server
  • 优先于通用算法 SH DH RR LBLC

如何持久连接?

  • C每次访问负载器时,持久化时间加30,即为了保证持久

  • 当持久化时间消耗殆尽后,以通用算法来计算

在这里插入图片描述

原理:内存分页分配一个缓存,记录C与RS的相关对应数据,保证每次连接可以优化

应用场景:LVS集群中

分类:

  • PCC 持久客户端连接

    根据客户端来做持久,只要客户端相同,分配的服务器就相同;每一个客户端有一个模板

  • PPC 持久端口连接

    根据端口来做持久,只要客户端请求的服务相同,分配的服务器就相同;每一个端口有一个模板

  • PFMC 持久防火墙标记连接

    根据标记做持久

注意:以下操作都是在LVS-NAT模式下的配置

1.1 负载均衡器

1、删除之前添加的集群及集群子节点

[root@localhost ~]# ipvsadm -Ln --stats
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port               Conns   InPkts  OutPkts  InBytes OutBytes
  -> RemoteAddress:Port
TCP  20.20.20.11:80                      6       30       31     4204     2980
  -> 10.10.10.12:80                      3       15       15     2115     1470
  -> 10.10.10.13:8080                    3       15       16     2089     1510
[root@localhost ~]# ipvsadm -D -t 20.20.20.11:80
[root@localhost ~]# ipvsadm -Ln 
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
[root@localhost ~]# 

2、添加集群子节点,并查看持久化连接

[root@localhost ~]# ipvsadm -a -t 20.20.20.11:80 -r 10.10.10.12:80 -m
[root@localhost ~]# ipvsadm -a -t 20.20.20.11:80 -r 10.10.10.13:80 -m
[root@localhost ~]# ipvsadm -Ln   --persistent-conn
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port            Weight    PersistConn ActiveConn InActConn 
  -> RemoteAddress:Port
TCP  20.20.20.11:80 rr persistent 120
  -> 10.10.10.12:80               1         0           0          0         
  -> 10.10.10.13:80               1         0           0          0  

真实服务器上,注意在部署LVS-NAT模式的实验时,使用了端口映射,在这里关闭即可,因为负载均衡器上添加集群子节点时用的时80端口

[root@localhost ~]# vim /etc/httpd/conf
Listen 80

修改完成后保存,并重启服务

[root@localhost ~]#  service httpd restart
停止 httpd:                                               [确定]
正在启动 httpd:httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain for ServerName
                                                           [确定]
[root@localhost ~]#

1.2 测试

访问负载均衡器,即20.20.20.11 可见跳转至RS2上,刷新几次后页面内容不会发生改变,这是因为集群部署了LVS持久化连接

在这里插入图片描述

查看ipvsadm状态可见,所有的连接服务都被定向至RS2上

在这里插入图片描述

此LVS集群配置的持久化时间是120s,那么120s后再次访问集群时,应该跳转至RS1上

在这里插入图片描述

可见与预期相符,查看状态;都跳转至RS1上,这说明LVS持久化时间到期后,执行了RR,即通用算法
在这里插入图片描述


二、PPC加强

注意,以上LVS持久化连接采用的是PPC,那么就可以设计两个不同的Web服务器,这里的不同仅仅时监听端口的不同,如生产环境中,有http,https这样的web服务

2.1 负载器上的配置

1、删除原来的集群,重新配置集群,并修改持久化时间

[root@localhost ~]# ipvsadm -D -t 20.20.20.11:80 
[root@localhost ~]# ipvsadm -Ln   
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

2、增加集群及子节点

[root@localhost ~]# ipvsadm -A -t 20.20.20.11:80 -p 20 -s rr
[root@localhost ~]# ipvsadm -Ln   
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  20.20.20.11:80 rr persistent 20
[root@localhost ~]# ipvsadm -a -t 20.20.20.11:80 -r 10.10.10.12:80 -m
[root@localhost ~]# ipvsadm -a -t 20.20.20.11:80 -r 10.10.10.13:8080 -m
[root@localhost ~]# ipvsadm -Ln   
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  20.20.20.11:80 rr persistent 20
  -> 10.10.10.12:80               Masq    1      0          0         
  -> 10.10.10.13:8080             Masq    1      0          0  

在这里插入图片描述

2.2 真实服务器

RS1不用动,RS2修改主配置文件 ,监听8080端口;重启服务

在这里插入图片描述

2.3 测试

访问负载均衡器,即20.20.20.11 可见跳转至RS2上,刷新几次后页面内容不会发生改变,这是因为集群部署了LVS持久化连接

在这里插入图片描述

查看ipvsadm状态可见,所有的连接服务都被定向至RS2的8080服务上
在这里插入图片描述

此LVS集群配置的持久化时间是20s,那么20s后再次访问集群时,应该跳转至RS1上
在这里插入图片描述

可见与预期相符,查看状态;都跳转至RS1上,这说明LVS持久化时间到期后,执行了RR,即通用算法

在这里插入图片描述

三、 PCC加强

操作大同小异,只是添加集群时,配置集群的端口号为0

3.1 负载器上的配置

1、删除原来的集群,重新配置集群,并修改持久化时间

[root@localhost ~]# ipvsadm -D -t 20.20.20.11:80 
[root@localhost ~]# ipvsadm -Ln   
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

2、增加集群及子节点

[root@localhost ~]# ipvsadm -A -t 20.20.20.11:0 -p 10 -s rr
[root@localhost ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  20.20.20.11:0 rr persistent 10
[root@localhost ~]# ipvsadm -a -t 20.20.20.11:0 -r 10.10.10.12:80 -m
[root@localhost ~]# ipvsadm -a -t 20.20.20.11:80 -r 10.10.10.13:80 -m
[root@localhost ~]# ipvsadm -Ln   
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  20.20.20.11:0 rr persistent 10
  -> 10.10.10.12:80               Masq    1      0          0         
  -> 10.10.10.13:80               Masq    1      0          0   

在这里插入图片描述

3.2 真实服务器

修改RS2的监听端口为80即可,然后重启服务

3.3 测试

Windows下的VMnet网卡的IP为20.20.20.22 访问负载器跳转至RS1

在这里插入图片描述

查看ipvadm连接状态

在这里插入图片描述

此时一台客户端IP为20.20.20.23的Centos7的机器访问这个负载均衡器直接跳转至RS2

在这里插入图片描述

查看ipvsadm状态

在这里插入图片描述

由于部署的LVS持久化是PCC,那么在持久化时间内,Windows客户端都会与RS1进行绑定;Centos客户端都会与RS2进行绑定;当超过超过持久化时间后,执行通用算法

持久化时间到时后,测试网页,可见与预期相符
在这里插入图片描述

在这里插入图片描述

注意:在PPC的测试中,没有因为两个客户端,内容也大同小异,PPC是将来自同一客户端的同一个服务的请求,始终定向至此前选定的RS上,持久化时间到期后,执行通用的算法(RR、WRR等)


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值