LVS概述

本文介绍了Linux虚拟服务器(LVS)的基本概念和工作原理,并通过模拟配置展示了如何设置LVS调度器、后端服务器,以及在客户端进行测试和压力测试。同时,还探讨了LVS与Varnish的区别。最后,讲解了如何配置LVS的健康监测,包括挂载高可用yum源和在LVS调度器中的配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.初步了解LVS

1、什么是LVS

LVS(Linux Virtual Server)即Linux虚拟服务器,是一个开源负载均衡项目,目前已经被集成到Linux内核模块中。LVS是一个做负载均衡的调度器,用的是四层协议。

2、LVS的大致工作原理

现有一个客户端A,一个LVS调度器,三个后端服务器1、2、3.
当客户端A访问LVS时,LVS在后端服务器中选其中一个来回答客户端A的问题,而自身不回答A的问题,LVS可以选择由哪个后端服务器来回答,所以可以选择压力较小的后端服务器,所以起到了负载均衡的作用。

3、LVS和Varnish的区别

在客户端访问LVS时,LVS选择一个后端服务器,让该后端服务器回答客户端的问题,而自身不去回答问题,只起调度后端服务器的作用。
当客户端访Varnish时,Varnish帮客户端询问后端服务器,得到答案,然后自身去回答客户端的问题,好处是这样Varnish可以有答案的缓存,再次回答时回答的会很快。

二.模拟配置LVS

将会用到1台客户端机:172.25.2.250,hostname为foundation2.ilt.example.com
将会用到1台配置LVS调度器的服务器:172.25.2.1,hostname为madao1
2台后端服务器:172.25.2.2,hostname为madao2;172.25.2.3,hostname为madao3

1、配置LVS调度器

命令功能
yum clean all
yum repolist
yum install ipvsadm -y安装ipvsadm
ipvsadm -ln查看当前的配置,此时无
ipvsadm --help查看ipvsadm怎么用
ipvsadm -A -t 172.25.2.100:80 -s rr添加虚拟IP,VIP:172.25.2.100,通过访问的端口是80端口,方式为轮循的方式,意为通过VIP访问本机时,转为轮循的方式访问后端服务器的80端口(httpd服务)
ipvsadm -a -t 172.25.2.100:80 -r 172.25.2.2:80 -g添加后端服务器1,意为通过VIP访问时转为访问172.25.2.2(后端服务器1的ip)的80端口(httpd服务)
ipvsadm -a -t 172.25.2.100:80 -r 172.25.2.3:80 -g添加后端服务器2,同义
ipvsadm -ln查看当前的配置,此时有3条
ip addr show查看当前机的网卡信息
ip addr add 172.25.2.100/24 dev ens3给网卡添加一个IP作为VIP
ip addr show查看是否添加成功

2、配置后端服务器

两台后端服务器的配置相同
命令功能
cd /var/www/html到该目录下
vim index.html创建该文件,两台后端服务器分别打不一样的内容,提示真实访问的服务器地址,便于测试
ip addr show查看本机网卡信息
ip addr add 172.25.2.100/32 dev ens3添加VIP
ip addr show查看是否添加成功
yum install arptables-0.0.4-8.el7.x86_64下载arptables,arptables是防止后端服务器直接响应客户端的访问(因为后端服务器也有VIP)而存在的,若直接响应,就不会走LVS服务器,不安全也达不到效果
arptables -nL查看当前策略
arptables -A INPUT -d 172.25.2.100 -j DROP在INPUT链中添加策略,意为当外界用VIP访问时,丢弃访问请求,不作回应
arptables -A OUTPUT -s 172.25.2.100 -j mangle --mangle-ip-s 172.25.2.2(或172.25.2.3)在OUTPUT链中添加策略,意为万一回应时,将自己的IP转为172.25.2.2(真实IP)回应,这样回应结果就会转回LVS中进行处理,然后正常反馈结果,而不直接向客户端回应

3、在客户端测试

命令功能
arp -angrep 172.25.2.100
arp -d 172.25.2.100删除IP172.25.2.100此时记录的对应MAC地址
arp -angrep 172.25.2.100
curl 172.25.2.100通过VIP访问LVS服务器
this is madao2提示为后端服务器1的反馈
curl 172.25.2.100通过VIP访问LVS服务器
this is madao3提示为后端服务器2的反馈
curl 172.25.2.100通过VIP访问LVS服务器
this is madao2提示为后端服务器1的反馈(开始轮循)
curl 172.25.2.100通过VIP访问LVS服务器
this is madao3提示为后端服务器2的反馈(显示轮循的成功)

4、在客户端进行压力测试

命令功能
ab -c 10 -n 50000 http://www.abc.org/index.html查看所需时间要多久(与varnish中的原理相同)

5、在LVS服务器做查看

命令功能
ipvsadm -ln可查看后端服务器分别被访问的次数

三.配置LVS的健康监测

1、配置一个高可用yum源

(1)挂载高可用yum源

命令功能
vim /etc/yum.repos.d/rhel7.5.repo修改该文件
[HighAvailability]		
name=HighAvailability		
baseurl=http://172.25.2.250/rhel7.5/addons/HighAvailability	|挂载路径在原yum源的路径下addons下的HighAvailability
gpgcheck=0		|做一个高可用yum源

(2)

2、在LVS调度器中配置

命令功能
get ldirectord的安装包下载安装包
mv ldirectord的安装包 /opt放到opt目录下
cd /opt进入该目录
yum clean all清除yum缓存
yum repolist重新加载yum源(此时为高可用yum源)
yum install *安装ldirectord
rpm -qpl ldirectord-3.9.5-3.1.x86_64.rpm查看ldirectord的配置文件,找到/etc/ha.d
cp /usr/share/doc/ldirectord-3.9.5/ldirectord.cf /etc/ha.d将文件复制到此目录
cd /etc/ha.d到该目录下
vim ldirectord.cf修改该文件
virtual=172.25.2.100:80		|修改VIP
real=172.25.2.2:80 gate		|修改后端服务器1
real=172.25.2.3:80 gate		|修改后端服务器2
fallback=127.0.0.1:80 gate	|当后端服务器1和2都出现故障时,本机充当后端服务器
#receive=“Test Page”		|将该行注释
#virtualhost=www.x.y.z		|将该行注释
命令功能
ip addr show查看本机网卡信息
ip addr add 172.25.2.100/24 dev ens3添加VIP
ip addr show查看是否添加成功
yum install httpd -y下载httpd服务,为本机充当后端服务器做准备
systemctl start httpd开启httpd服务
vim /var/www/html/index.html编辑该文件
this is madao1编辑提示语

3、在客户端中测试

命令功能
curl 172.25.2.100通过VIP访问LVS服务器
this is madao2提示为后端服务器1的反馈
curl 172.25.2.100通过VIP访问LVS服务器
this is madao3提示为后端服务器2的反馈
在后端服务器2关闭httpd服务模拟后端服务器2故障
curl 172.25.2.100通过VIP访问LVS服务器
this is madao2提示为后端服务器1的反馈
curl 172.25.2.100通过VIP访问LVS服务器
this is madao2提示为后端服务器1的反馈(不再轮循,因为后端服务器2故障,只有后端服务器1能用)
在后端服务器1关闭httpd服务模拟后端服务器1和2都故障
curl 172.25.2.100通过VIP访问LVS服务器
this is madao1提示为LVS调度器充当后端服务器的反馈
curl 172.25.2.100通过VIP访问LVS服务器
this is madao1提示为LVS调度器充当后端服务器的反馈(因为后端服务器1、2均故障)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值