热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

LVS单机测试不负载

LVS单机测试不负载1、困惑当我们在个人PC上搭建虚拟机(Vmware)做LVS负载实验的时候,我们不论是在个人浏览器或者其他虚拟机上访问LVS的VIP都会出现上时间刷新都出现同一个页面的情况

LVS单机测试不负载

1、困惑

当我们在个人PC上搭建虚拟机(Vmware)做LVS负载实验的时候,我们不论是在个人浏览器或者其他虚拟机上访问LVSVIP都会出现上时间刷新都出现同一个页面的情况。

那么这种情况是我们的配置错误还是虚拟机的原因呢。

2、环境

下面简单交待下虚拟的环境:

服务器名称

IP以及内容

LB02

10.0.0.6 VIP:10.0.0.3

WEB01

10.0.0.8 VIP:10.0.0.3

页面内容 yangliheng

WEB01

10.0.0.9 VIP:10.0.0.3

页面内容 yyyy

 

LVS的配置以及WEB的配置的常规配置我们就省略了。

重点说下抑制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

这些配置的作用就是在与确保上端路由设备去访问VIP的时候能得到唯一的MAC地址。

arp_ignore = 1即不回应不是目标IP是物理网络IPARP请求。确保了客户端请求VIP的时候只会得到LBMAC地址。

arp_announce = 2RS在回复客户端的时候,发送的ARP请求不以自己的VIP的为源IP,确保了不会更新上端路由的ARP缓存,从而保证以后客户端请求VIP的时候读取路由器ARP缓存会得到LBMAC地址。

3、初步测试

当我们在另一台虚拟机上测试LVS的负载均衡的时候

[root@lb01 ~]# curl 10.0.0.3

yangliheng

[root@lb01 ~]# curl 10.0.0.3

yangliheng

[root@lb01 ~]# curl 10.0.0.3

yangliheng

[root@lb01 ~]# curl 10.0.0.3

yangliheng

[root@lb01 ~]# curl 10.0.0.3

yangliheng

[root@lb01 ~]# curl 10.0.0.3

yangliheng

可以看到不论刷新多少次都是这个内容(WEB01的)

我们在这个虚拟机上

[root@lb01 ~]# arp -n

Address                  HWtype  HWaddress           Flags Mask            Iface

10.0.0.3                 ether   00:0c:29:f4:80:e8   C                     eth0

这是查看10.0.0.3对应的MAC地址,正常来说10.0.0.3应该对应LB02上的MAC地址但是我们分别查看LB02WEB01MAC地址

 

[root@lb02 ~]# ifconfig

eth0Link encap:Ethernet  HWaddr 00:0C:29:3E:C2:E0 

inet addr:10.0.0.6Bcast:10.0.0.255Mask:255.255.255.0

          inet6 addr: fe80::20c:29ff:fe3e:c2e0/64 Scope:Link

UP BROADCAST RUNNING MULTICASTMTU:1500  Metric:1

RX packets:46221 errors:0 dropped:0 overruns:0 frame:0

TX packets:16725 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000

RX bytes:9061863 (8.6 MiB)  TX bytes:1574822 (1.5 MiB)

 

eth0:0Link encap:Ethernet  HWaddr 00:0C:29:3E:C2:E0 

inet addr:10.0.0.3Bcast:0.0.0.0  Mask:255.255.255.0

 

[root@web01 ~]# ifconfig

eth0Link encap:Ethernet  HWaddr 00:0C:29:F4:80:E8 

inet addr:10.0.0.8Bcast:10.0.0.255Mask:255.255.255.0

inet6 addr: fe80::20c:29ff:fef4:80e8/64 Scope:Link

UP BROADCAST RUNNING MULTICASTMTU:1500  Metric:1

          RX packets:12579 errors:0 dropped:0 overruns:0 frame:0

TX packets:9604 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:1727749 (1.6 MiB)  TX bytes:1840750 (1.7 MiB)

 

eth0:0Link encap:Ethernet  HWaddr 00:0C:29:F4:80:E8 

inet addr:10.0.0.3Bcast:0.0.0.0Mask:255.255.255.255

UP BROADCAST RUNNING MULTICASTMTU:1500  Metric:1

发现10.0.0.3对应的是WEB01上的MAC地址,即下次访问10.0.0.3的时候不会经过负载而是直接去访问WEB01,所以就不会有负载均衡的效果了。

上述是在LINUX客户端的测试,那么我们在我们的PC浏览器上测试的时候也会出现这个问题

多次访问都是同一个内容。

那么我们怀疑也有可能是ARP缓存的问题,我们来验证一下。

首先清空电脑的ARP缓存 arp –d

然后在浏览器访问10.0.0.3

得到的是

然后在CMD查看ARP缓存

发现了10.0.0.3对应的MAC地址,我们在虚拟机上查看发现这个MAC地址是WEB02MAC地址,所以他以后访问VIP的时候都是直接访问WEB02

4、正确测试

那么如何正确测试

1、LINUX客户端上

测试前先情况ARP缓存。

[root@lb01 ~]# arp -d 10.0.0.3 ; curl 10.0.0.3

yyyy

[root@lb01 ~]# arp -d 10.0.0.3 ; curl 10.0.0.3

yangliheng

[root@lb01 ~]# arp -d 10.0.0.3 ; curl 10.0.0.3

yangliheng

[root@lb01 ~]# arp -d 10.0.0.3 ; curl 10.0.0.3

yyyy

[root@lb01 ~]# arp -d 10.0.0.3 ; curl 10.0.0.3

yyyy

[root@lb01 ~]# arp -d 10.0.0.3 ; curl 10.0.0.3

yangliheng

2、在浏览器上

同理,刷新浏览器页面前现在CMD中清空ARP缓存。

5、为什么

那么为什么会出现这种情况,会影响到我们的生产环境吗?

答案是不会,在生产环境中。

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

这些参数已经足够保证我们的局域网内的ARP正常

包括2个方面:不响应ARP请求,RSARP请求不会让上端路由器更新)

那么由于我们是在个人的电脑上去模拟这个LVS的环境,所以有些参数不会生效,比如arp_announce,所以还是会更新ARP缓存,从而得不到负载的效果。

这个原因可能是因为不论是LINUX客户端还是PC 上虚拟出来的路由,并不是真实的路由器,所以不支持这个参数吧。



来自为知笔记(Wiz)




推荐阅读
  • 在分析和解决 Keepalived VIP 漂移故障的过程中,我们发现主备节点配置如下:主节点 IP 为 172.16.30.31,备份节点 IP 为 172.16.30.32,虚拟 IP 为 172.16.30.10。故障表现为监控系统显示 Keepalived 主节点状态异常,导致 VIP 漂移到备份节点。通过详细检查配置文件和日志,我们发现主节点上的 Keepalived 进程未能正常运行,最终通过优化配置和重启服务解决了该问题。此外,我们还增加了健康检查机制,以提高系统的稳定性和可靠性。 ... [详细]
  • Keepalived 提供了多种强大且灵活的后端健康检查机制,包括 HTTP_GET、SSL_GET、TCP_CHECK、SMTP_CHECK 和 MISC_CHECK 等多种检测方法。这些健康检查功能确保了高可用性环境中的服务稳定性和可靠性。通过合理配置这些检查方式,可以有效监测后端服务器的状态,及时发现并处理故障,从而提高系统的整体性能和可用性。 ... [详细]
  • 在Linux系统中,网络配置是至关重要的任务之一。本文详细解析了Firewalld和Netfilter机制,并探讨了iptables的应用。通过使用`ip addr show`命令来查看网卡IP地址(需要安装`iproute`包),当网卡未分配IP地址或处于关闭状态时,可以通过`ip link set`命令进行配置和激活。此外,文章还介绍了如何利用Firewalld和iptables实现网络流量控制和安全策略管理,为系统管理员提供了实用的操作指南。 ... [详细]
  • 在学习LVM(逻辑卷管理)技术的过程中,我对MD(多设备)、DM(设备映射器)以及逻辑设备和RAID的实现有了深入的理解。LVM2架构主要由DM主模块及其多个子模块组成,其中linear子模块用于创建线性设备,类似于简单的磁盘分区拼接。此外,还探讨了其他子模块如striped、mirror等在提高性能和数据冗余方面的应用。通过实际操作,我掌握了LVM的基本配置和管理方法,能够灵活应对不同存储需求。 ... [详细]
  • 负载均衡基础概念与技术解析
    随着互联网应用的不断扩展,用户流量激增,业务复杂度显著提升,单一服务器已难以应对日益增长的负载需求。负载均衡技术应运而生,通过将请求合理分配到多个服务器,有效提高系统的可用性和响应速度。本文将深入探讨负载均衡的基本概念和技术原理,分析其在现代互联网架构中的重要性及应用场景。 ... [详细]
  • LVS-DR数据包流向分析介绍
    下文给大家带来LVS-DR数据包流向分析介绍,希望能够给大家在实际运用中带来一定的帮助,负载均衡涉及的东西比较多,理论也不多,网上有很多书籍, ... [详细]
  • 【Linux332】LVS的DR配置详解(ipvsadm+arptables)
    文章目录1.DR简 ... [详细]
  • java大数据量调优(超赞值得收藏)
    从总体上来看,对于大型网站,比如门户网站,在面对大量用户访问、高并发请求方面,基本的解决方案集中在这样几个环节: ... [详细]
  • Linux负载均衡LVS(IPVS)
    一、LVS简介LVS是LinuxVirtualServer的简称,也就是Linux虚拟服务器,是一个由章文嵩博士发起的自由软件项目,现在已经是Linux ... [详细]
  • LVS–基础–02–常用命令1、帮助命令ipvsadm--help2、添加虚拟服务器2.1、语法ipvsadm-A[-t|u|f][vip_addr:port][-s:指定算 ... [详细]
  • LVS实现负载均衡的原理LVS负载均衡负载均衡集群是LoadBalance集群。是一种将网络上的访问流量分布于各个节点,以降低服务器压力,更好的向客户端 ... [详细]
  • 护墙_搭建LVS负载均衡NAT和DR模式
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了搭建LVS负载均衡NAT和DR模式相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 本文介绍了几种常用的图像相似度对比方法,包括直方图方法、图像模板匹配、PSNR峰值信噪比、SSIM结构相似性和感知哈希算法。每种方法都有其优缺点,适用于不同的应用场景。 ... [详细]
  • LintCode 1218. 计算补数的 JavaScript 算法
    本题要求给定一个正整数,计算其补数。补数是指将该数字的二进制表示逐位取反,然后转换回十进制得到的新数。 ... [详细]
  • com.sun.javadoc.PackageDoc.exceptions()方法的使用及代码示例 ... [详细]
author-avatar
甘文靖
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有