欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

lvs负载均衡—DR模式

程序员文章站 2024-02-01 15:05:10
...

lvs介绍:

1 . LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。LVS集群采用IP负载均衡技术和基于内容请求分发技术。调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将一组服务器构成一个高性能的、高可用的虚拟服务器。
LVS的优点是:
1)、抗负载能力强、是工作在网络4层之上仅作分发之用,没有流量的产生,这个特点也决定了它在负载均衡软件里的性能最强的,对内存和cpu资源消耗比较低。
2)、配置性比较低,这是一个缺点也是一个优点,因为没有可太多配置的东西,所以并不需要太多接触,大大减少了人为出错的几率。
3)、工作稳定,因为其本身抗负载能力很强,自身有完整的双机热备方案,如LVS+Keepalived,不过我们在项目实施中用得最多的还是LVS/DR+Keepalived。
4)、无流量,LVS只分发请求,而流量并不从它本身出去,这点保证了均衡器IO的性能不会受到大流量的影响。
5)、应用范围比较广,因为LVS工作在4层,所以它几乎可以对所有应用做负载均衡,包括http、数据库、在线聊天室等等。

DR模式:

DR模式,即(Direct Routing)直接路由模式:
当一个client发送一个WEB请求到VIP,LVS服务器根据VIP选择对应的real-server的Pool,根据算法,在Pool中选择一台Real-server,LVS在hash表中记录该次连接,然后将client的请求包发给选择的Real-server,最后选择的Real-server把应答包直接传给client;当client继续发包过来时,LVS根据更才记录的hash表的信息,将属于此次连接的请求直接发到刚才选择的Real-server上;当连接中止或者超时,hash表中的记录将被删除。

lvs(DR模式)搭建:

CIP(客户端IP):192.168.13.250
VIP(负载均衡虚拟IP):192.168.13.100
DIP(负载均衡器IP):192.168.13.111
RIP1(后端请求处理服务器1):192.168.13.112
RIP2(后端请求处理服务器2):192.168.13.113

实验前:关火墙

1 . 由于要用到ipvsadm软件,所以先配好高可用yum源,他是linux系统自带的只是没有在内核中,但在镜像中可以找到,将他写进yum仓库中直接下载即可。
lvs负载均衡—DR模式
找到高可用源后添加进去

lvs负载均衡—DR模式
添加之后再次查看yum源

lvs负载均衡—DR模式
2 . 安装lvs管理工具ipvsadm,设置负载均衡调度策略

yum install ipvsadm -y        # 安装管理工具ipvsadm
ipvsadm -l                   # 查看策略,加不加-l都可以
lsmod				# 查看内核模块	
ipvsadm -A -t 192.168.13.100:80 -s rr    # 添加VIP,调度策略,rr轮询,ipvsadm --help看到,共10种调度算法
ipvsadm -a -t 192.168.13.100:80 -r 192.168.13.112:80 -g
ipvsadm -a -t 192.168.13.100:80 -r 192.168.13.113:80 -g    # 添加后端的两个rs
ip addr add 192.168.13.100/24 dev ens33       # 给调度器添加vip

lvs负载均衡—DR模式
然后在物理机上测试访问,发现不能返回结果,但是ipvsadm -l可以看到调度是成功的所以需要给rs上也添加vip
因为数据的走向是 client -> vs -> rs -> client

3 . rs配置(所有的服务器设置一致)

注意:该处为了验证负载均衡的效果,后端真实服务器设置不同的访问内容,明显标示内容来自不同的后端服务器。

ip addr add 192.168.13.100/24 dev ens33     ## 添加VIP
yum install httpd -y      
vim /var/www/html/index.html		安装httpd 启动设置访问页面
systemctl start httpd           启动服务

再次测试,成功调度

lvs负载均衡—DR模式
在物理机上,arp -an | grep 100 , 可以看到默认缓存的是server1的mac地址

lvs负载均衡—DR模式
arp -d 192.168.13.100清除缓存

lvs负载均衡—DR模式
再次访问时,可能就不轮询,因为可能缓存了某台rs的mac地址
这样对rs来说不安全,因为直接访问到了后端rs
访问量过大可能会宕机.

解决方法:
添加arptable策略解决
在两台rs上安装arptables

yum install arptables -y
arptables -L       ##查看策略
arptables -A INPUT -d 192.168.13.100 -j DROP  # 设置不回应对自己VIP的请求
arptables -A OUTPUT -s 192.168.13.100 -j mangle --mangle-ip-s 192.168.13.112     ##让返回的数据来自server1

另一台rs上设置返回数据来server2
然后在物理主机上测试:
lvs负载均衡—DR模式
目的达到,收工!