linux运维企业篇——LVS负载均衡之DR

一.LVS(Linux Virtual Server)

LVS是一个虚拟化的服务器集群(Cluster)系统,采用IP负载均衡技术和基于内容请求分发技术。调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障从而将一组服务器构成一个高性能,高可用的虚拟服务器。整个服务器集群的结构对客户是透明的而且无需修改客户端和服务器端的程序。

二.LVS的负载均衡方式(四种)

DR:直接路由模式
TUN:隧道模式
NAT:网络地址转换模式
FULLNAT:

三.DR直接路由模式

1.server1中:

yum源配置添加负载均衡的软件包(不配置找不到安装包)
不配置结果:
linux运维企业篇——LVS负载均衡之DR
配置yum源
linux运维企业篇——LVS负载均衡之DR
添加以下代码(注意自己的yum)

[LoadBalancer]
name=LoadBalancer
baseurl=http://172.25.6.250/iso/LoadBalancer
gpgcheck=0

linux运维企业篇——LVS负载均衡之DR
linux运维企业篇——LVS负载均衡之DR

2.server2和server3中:

安装打开httpd并设置默认界面,这里的server2和server3都已经安装httpd
linux运维企业篇——LVS负载均衡之DR
linux运维企业篇——LVS负载均衡之DR
打开serrver2的httpd服务
linux运维企业篇——LVS负载均衡之DR

linux运维企业篇——LVS负载均衡之DR
linux运维企业篇——LVS负载均衡之DR
打开server3的httpd服务
linux运维企业篇——LVS负载均衡之DR

3.在真机中测试两个客户端server2和server3能否访问

[[email protected] ~]$ curl 172.25.6.2
<h1>servers2.example.com</h1>
[[email protected] ~]$ curl 172.25.6.3
<h1>server3- www.westos.org</h1>

linux运维企业篇——LVS负载均衡之DR

4.server1中添加策略

(安装过ipvsadm后会有ipvsadm命令)

ipvsadm -l #查看策略

linux运维企业篇——LVS负载均衡之DR

lsmod #查看电脑中的模块

linux运维企业篇——LVS负载均衡之DR

ipvsadm -A -t 172.25.6.100:80 -s rr #80是入口,rr是ipvsadm十大调度之一轮循

linux运维企业篇——LVS负载均衡之DR

ipvsadm -a -t 172.25.6.100:80 -r 172.25.6.2:80 -g
ipvsadm -a -t 172.25.6.100:80 -r 172.25.6.3:80 -g
ipvsadm -l #查看策略

linux运维企业篇——LVS负载均衡之DR

/etc/init.d/ipvsadm save #保存策略

linux运维企业篇——LVS负载均衡之DR

ip addr add 172.25.6.100/24 dev eth0 # 临时加载ip到eth0并查看

linux运维企业篇——LVS负载均衡之DR

5.给server2和server3都添加临时ip到eth0

ip addr add 172.25.6.100/32 dev eth0 # 32:不接受外部请求只用来内部通信,请求只有一个来源

linux运维企业篇——LVS负载均衡之DR

linux运维企业篇——LVS负载均衡之DR

6.在真机上测试(不一定直接就出现想要的轮循结果,可以用命令删除多次尝试)

删除指定的ip地址缓存命令:arp -d ip

[[email protected] ~]# curl 172.25.6.100
<h1>server3- www.westos.org</h1>
[[email protected] ~]# curl 172.25.6.100
<h1>servers2.example.com</h1>
[[email protected] ~]# curl 172.25.6.100
<h1>server3- www.westos.org</h1>
[[email protected] ~]# curl 172.25.6.100
<h1>servers2.example.com</h1>

linux运维企业篇——LVS负载均衡之DR

ipvsadm -l #查看可以看加server2和server3每个都轮询了两次

linux运维企业篇——LVS负载均衡之DR

可能缓存地址到server端

linux运维企业篇——LVS负载均衡之DR
可以看出缓存地址到server3中,也可以用命令查看缓存到的MAC地址
arp -an | grep 100
linux运维企业篇——LVS负载均衡之DR

解决方法:
在server2和server3中:

[[email protected] ~]# yum install -y arptables_jf

linux运维企业篇——LVS负载均衡之DR

[[email protected] ~]# arptables -nL

linux运维企业篇——LVS负载均衡之DR

[[email protected] ~]# arptables -A IN -d 172.25.6.100 -j DROP

linux运维企业篇——LVS负载均衡之DR

[[email protected] ~]# arptables -A OUT -s 172.25.6.100 -j mangle --mangle-ip-s 172.25.6.2

linux运维企业篇——LVS负载均衡之DR

[[email protected] ~]# arptables -nL #查看策略是否写入

linux运维企业篇——LVS负载均衡之DR

[[email protected] ~]# yum install -y arptables_jf

linux运维企业篇——LVS负载均衡之DR

[[email protected] ~]# arptables -nL
[[email protected] ~]# arptables -A IN -d 172.25.6.100 -j DROP
[[email protected] ~]# arptables -A OUT -s 172.25.6.100 -j mangle --mangle-ip-s 172.25.6.3
[[email protected] ~]# arptables -nL #查看策略是否写入

linux运维企业篇——LVS负载均衡之DR

在真机中测试

[[email protected] ~]# arp -d 172.25.6.100 #先删除再测试
[[email protected] ~]# curl 172.25.6.100
<h1>servers2.example.com</h1>
[[email protected] ~]# curl 172.25.6.100
<h1>server3- www.westos.org</h1>
[[email protected] ~]# curl 172.25.6.100
<h1>servers2.example.com</h1>

linux运维企业篇——LVS负载均衡之DR
再次删除多次实验
linux运维企业篇——LVS负载均衡之DR