lvs DR模式负载均衡实操

简介:

ps:做 dr 模式 之前,先把之前做过的操作清空掉

1、ipvsadm -ln 查看规则

2、ipvsadm -C 清空规则

3、ipvsadm -ln 确认

4、iptables -t nat -F: 清空iptables的nat规则

5、master和slave把网卡所对应的网关(GATEWAY)改回来

vim /etc/sysconfig/network-scripts/ifcfg-ens33

6、dr用不到ens37这个网卡(192.168.56.128)

ifdown ens37

[root@www ~]# ipvsadm -ln

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

 -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

TCP  192.168.0.133:80 rr

 -> 192.168.0.134:80             Route   1      0          4        

 -> 192.168.0.140:80             Route   1      0          4      

[root@www ~]# ipvsadm -C      //清空规则

[root@www ~]# ipvsadm -ln      //确认是否清空

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

 -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

[root@www ~]# iptables -t nat -F    //清空iptables的nat规则

5、master和slave把网卡所对应的网关(GATEWAY)改回来

vim /etc/sysconfig/network-scripts/ifcfg-ens33

[root@master ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33

[root@master ~]# systemctl restart network

[root@slave ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33

[root@slave ~]# systemctl restart network

一、DR  模式 VS  NAT 模式

缺点:比较浪费公网ip,每一个rs都必须要有一个独立的公网 ip

优点:用户的请求直接吐给客户端,不借助于分发器dir

 

实验环境:

(1)lvs_dir:192.168.0.139

(2)master:192.168.0.134

(3)slave:192.168.0.140

都看成对外的公网 ip

   另外,

   (a)还需要一个虚拟ip(192.168.0.133)

   (b)测试机器:192.168.0.130

二、分发器 dir 设置

1、编辑脚本

vim  /usr/local/sbin/lvs_dr.sh

#打开端口转发

echo 1 > /proc/sys/net/ipv4/ip_forward

ipv=/sbin/ipvsadm

vip=192.168.0.133

dengserver1=192.168.0.134

dengserver2=192.168.0.140

ifconfig ens33:0 $vip broadcast $vip netmask 255.255.255.255 up

#增加一条路由

route add -host $vip dev ens33:0

$ipv -C

$ipv -A -t $vip:80 -s rr

$ipv -a -t $vip:80 -r $dengserver2:80 -g -w 1

$ipv -a -t $vip:80 -r $dengserver1:80 -g -w 1

参数说明:

-g:表示 dr 模式

-m:表示 nat 模式

2、执行脚本 sh !$

3、ipvsadm -ln  多出一个vip 192.168.0.133

[root@www ~]# ipvsadm -ln

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

 -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

TCP  192.168.0.133:80 rr

 -> 192.168.0.134:80             Route   1      0          0        

 -> 192.168.0.140:80             Route   1      0          0    

三、真实服务器 real server 设置

1、rs1,rs2都写脚本: vim /usr/local/sbin/lvs_rs.sh

(1)配置vip,绑定的网卡不是eth0,而是在回环地址 lo 上

(2)增加路由,调整arp相关的内核参数

写入:

#!/bin/bash

vip=192.168.0.133

ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up

route add -host $vip lo:0

#调整内核参数

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内核参数的意义:

百度:

(a)ARP广播会产生的问题

 

当客户端发起访问VIP 对应的域名的请求(curl 192.168.131.100)时,根据网络通信原理会产生ARP 广播,因为负载均衡器dir和真实的服务器rs在同一网络并且VIP设置在集群中的每个节点上,此时集群内的真实服务器会尝试回答来自客户端计算机的查找VIP的ARP广播,这就会产生问题,大家都说我是"VIP"。

 

(b)为了达到负载均衡的目的,必须想法办让真实服务器忽略来自客户端计算机的ARP广播请求 ——》 调整arp内核参数

 

问题:lvs有vip,real server也有vip,但client请求只访问lvs的vip?

 ——》 在所有real server上要关闭所有arp请求,导致不能响应client发出的arp请求(相当于哑巴),只有lvs可以响应,这样请求就会传到lvs的vip中,这就是为什么要禁止real server 的 arp请求和响应

 

 

##############################

 

2、rs1,rs2执行脚本: sh  /usr/local/sbin/lvs_rs.sh

 

四、测试

1、浏览器访问vip :192.168.0.133 ——》 不精准(刷新无数次都是master,然后等一段时间,刷新无数次也是slave = =,所以才说不精准咯~~)

2、在另外一台linux服务器上进行测试:

[root@dengserver2 ~]# curl 192.168.0.133

this is master server

[root@dengserver2 ~]# curl 192.168.0.133

this is slave server

[root@dengserver2 ~]# curl 192.168.0.133

this is master server

[root@dengserver2 ~]# curl 192.168.0.133

this is slave server

[root@dengserver2 ~]# curl 192.168.0.133

this is master server

[root@dengserver2 ~]# curl 192.168.0.133

this is slave server



本文转自 IT_外卖小哥  51CTO博客,原文链接:http://blog.51cto.com/jinlong/1956187
相关实践学习
部署高可用架构
本场景主要介绍如何使用云服务器ECS、负载均衡SLB、云数据库RDS和数据传输服务产品来部署多可用区高可用架构。
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
1月前
|
运维 负载均衡 网络协议
LVS详解(六)——LVS DR模式实战
LVS详解(六)——LVS DR模式实战
25 5
|
1月前
|
运维 负载均衡 应用服务中间件
LVS详解(五)——LVS NAT模式实战
LVS详解(五)——LVS NAT模式实战
22 3
|
2月前
|
域名解析 移动开发 负载均衡
阿里云DNS常见问题之DNS负载均衡调加权模式失败如何解决
阿里云DNS(Domain Name System)服务是一个高可用和可扩展的云端DNS服务,用于将域名转换为IP地址,从而让用户能够通过域名访问云端资源。以下是一些关于阿里云DNS服务的常见问题合集:
|
5月前
|
负载均衡 网络协议 网络架构
VRRP负载均衡模式配置实用吗?
VRRP负载均衡模式配置实用吗?
|
6月前
|
负载均衡 应用服务中间件 Linux
Nginx系列教程(14) - LVS+KeepAlived+Nginx实现高性能负载均衡集群
Nginx系列教程(14) - LVS+KeepAlived+Nginx实现高性能负载均衡集群
217 0
|
18天前
|
负载均衡 算法 网络协议
LVS、Nginx和HAProxy负载均衡器对比总结
LVS、Nginx和HAProxy负载均衡器对比总结
|
18天前
|
负载均衡 监控 Linux
CentOS6.5高可用集群LVS+Keepalived(DR模式)
CentOS6.5高可用集群LVS+Keepalived(DR模式)
|
4月前
|
缓存 负载均衡 应用服务中间件
【分布式技术专题】「分析Web服务器架构」Tomcat服务器的运行架构和LVS负载均衡的运行机制(修订版)
在本章内容中,我们将深入探讨 Tomcat 服务器的运行架构、LVS 负载均衡的运行机制以及 Cache 缓存机制,并提供相应的解决方案和指导。通过理解这些关键概念和机制,您将能够优化您的系统架构,提高性能和可扩展性。
210 4
【分布式技术专题】「分析Web服务器架构」Tomcat服务器的运行架构和LVS负载均衡的运行机制(修订版)
|
5月前
|
负载均衡 监控 算法
负载均衡一般用什么模式
负载均衡可以采用多种模式,具体的选择取决于应用程序的需求、架构设计和性能目标。以下是一些常见的负载均衡模式: 1. **轮询(Round Robin):** 请求依次分发到每个后端服务器,循环进行。这是一种简单的负载均衡算法,适用于后端服务器性能相对均衡的情况。 2. **加权轮询(Weighted Round Robin):** 类似于轮询,但可以为每个后端服务器分配不同的权重,以便更灵活地分配负载。性能更高的服务器可以分配更高的权重。 3. **最小连接数(Least Connections):** 请求分发到当前连接数最少的后端服务器。这可以确保负载更平均地分布到服务器上,适用于处
173 0
|
5月前
|
负载均衡 监控 调度
Keepalived+Lvs(dr)调度器主备配置小实验
Keepalived和LVS(Linux Virtual Server)是两个常用的开源软件,通常结合使用以提供高可用性和负载均衡的解决方案。 Keepalived是一种用于实现高可用性的软件,它可以监控服务器的健康状态,并在主服务器出现故障时自动切换到备份服务器。
103 2