LVS-DR模型详解及演示

上次我们演示的是LVS-NAT模型,说到在LVS-NAT中的director在里面充当着连接客户端与realserver的作用,所有的请求报文和回复报文都将通过director,所以当后端realserver逐渐增多时候,LVS-NAT的性能将不甚理想,而LVS-DR模型却解决了这个问题。

如图所示,director,realserver1和realserver2一同连接在一个交换机上面,当用户请求报文进来时,交换机送往director,然后director通过调度算法转发至其中一台realserver,最后realserver直接送往外界,由上图可以看出,director只转发用户的请求,回复报文不在经过director,所以director的工作压力就减少很多。

操作环境 :  windows 7

VMware Workstation 9  redhat6.2

具体IP分配:

director

eth0: DIP  169.254.179.1

eth0:0 VIP  169.254.179.5

realserver1

eth0: RIP1  169.254.179.3

lo:0  VIP   169.254.179.5

realserver2

eth0   RIP2  169.254.179.2

lo:0  VIP   169.254.179.5

通过上面的ip分配可能有人发现了,不管是director还是realserver都配置了VIP地址,这是为什么呢,好,下面让我们来分析分析。

当用户报文传达到交换机上时候,此时的报文首部原地址是CIP,目标地址是VIP,那么问题来了,director和realserver都有VIP,这样一来报文送给谁呢?

linux有这么一组内核参数,arp_ignore和arp_announce,arp_ingore表示定义接受arp请求时候的响应级别,arp_announce表示定义将自己的地址向外通告时候的通告级别的,

arp_ingore

0:只要本地配置有相应地址,就给予响应。

1:仅在请求的目标地址配置请求到达的接口上的时候,才给予响应;

arp_announce

0:将本地任何接口上的任何地址向外通告;

1:试图仅向目标网络通告与其网络匹配的地址;

2:仅向与本地接口上地址匹配的网络进行通告;

所以我需要在RS1和RS2上配置好这两个参数,这样来自交换机的报文就会送往director了,当报文到达director上后,director发现到达的这个请求是定义好的集群服务,将会选择一个realserver,然后报文首部信息不变,原地址依然是CIP,目标地址依然是VIP,然后再封装一个mac首部,原mac是director,目标mac是realserver,将信息送达realserver。

当此报文到达realserver上后,realserver发现一切都没问题,然后回复。那么问题又来了,从上面我们发现配置在realserver上的VIP在lo接口上,然是报文的进来和出去都是通过eth0这个接口的,在linux上默认数据报文从那个接口出去,原IP地址尽可能使用那个接口的地址,但是realserver的eth0的IP为RIP,但是客户端可没有请求RIP!所以,我们还得添加一条独特的路由条目:route add -host VIP

dev lo:0  这条信息表示到达某个主机的路由,地址如果是VIP的话,要通过lo:0进来和出去,并且将lo:0上的地址作为原地址。所以realserver的回复报文,目标ip为CIP,原IP为VIP,没有问题。

好的,下面让我来配置一下吧:

注意:为避免其他因素干扰,请关闭每台机器上的iptables并将SElinux设置为0.

一 配置directorIP地址:

二 配置RS1和RS2arp_ignore和arp_announce参数

RS1

RS2

三 配置RS1和RS2 ip地址:

RS1

RS2

四 在RS1和RS2都添加如下路由条目信息

五 启动RS1和RS2的httpd服务,并且区别网站首页信息

RS1

RS2

六 在director上定义web集群服务

-g 参数表示使用LVS的DR模型

七 在director上先测试访问RS1和RS2

八 在windows上面输入VIP地址测试

通过刷新网页可以看到RS1和RS2主页轮回出现,LVS-DR模型实现的负载均衡简单实现。

总结: LVS-DR模型是现实中应用的较多的模型,成功释放了director的压力,但这次做的只是个简单LVS-DR模型,VIP,DIP,RIP地址都在同一网段,先掌握了再去解决复杂的。

时间: 2024-10-23 23:05:43

LVS-DR模型详解及演示的相关文章

LVS DR 配置详解

DR模式是通过改写请求报文的目标MAC地址,将请求发给真实服务器的,而真实服务器响应后的处理结果直接返回给客户端用户.同TUN模式一样,DR模式可以极大的提高集群系统的伸缩性.而且DR模式没有IP隧道的开销,对集群中的真实服务器也没有必要必须支持IP隧道协议的要求.但是要求调度器LB与真实服务器RS都有一块网卡连接到同一物理网段上,必须在同一个局域网环境. DR模式是互联网使用比较多的一种模式. DR模式原理图: DR模式原理过程简述: VS/DR模式的工作流程图如上图所示,它的连接调度和管理与

日志模型详解

日志模型详解 NET Core的日志模型主要由三个核心对象构成,它们分别是Logger.LoggerProvider和LoggerFactory.总的来说,LoggerProvider提供一个具体的Logger对象将格式化的日志消息写入相应的目的地,但是我们在编程过程中使用的Logger对象则由LoggerFactory创建,这个Logger利用注册到LoggerFactory的LoggerProvider来提供真正具有日志写入功能的Logger,并委托后者来记录日志. 目录一.Logger  

配置模型详解

ASP.NET Core的配置(2):配置模型详解 在上面一章我们以实例演示的方式介绍了几种读取配置的几种方式,其中涉及到三个重要的对象,它们分别是承载结构化配置信息的Configuration,提供原始配置源数据的ConfigurationProvider,以及作为“中间人”的ConfigurationBuilder.接下来我们将会对由这三个核心对象组成的配置模型进行详细介绍,不过在此之前我们有必要来认识配置信息在不同载体中所体现出来的三种结构. 目录一.配置的三种结构逻辑结构原始结构物理结构

负载均衡LVS—ipvsadm应用详解

负载均衡LVS-ipvsadm应用详解 环境:64位Centos 6.4 1.在director上安装ipvsadm工具(这里使用RPM包) //挂载光盘,搜索ipvsadm工具安装包 [[email protected] ~]# mount /dev/cdrom /media/cdrom/ [[email protected] ~]# cd /media/cdrom/Packages [[email protected] Packages]# ll |grep ipvsadm //安装ipvs

OSI七层模型详解 TCP/IP协议

总结 OSI中的层 功能 TCP/IP协议族 应用层 文件传输,电子邮件,文件服务,虚拟终端 TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet 等等 表示层 数据格式化,代码转换,数据加密 没有协议 会话层 解除或建立与别的接点的联系 没有协议 传输层 提供端对端的接口 TCP,UDP 网络层 为数据包选择路由 IP,ICMP,OSPF,EIGRP,IGMP 数据链路层 传输有地址的帧以及错误检测功能 SLIP,CSLIP,PPP,MTU 物理层 以二进制数据形式在物理媒体上

Extjs4.10Model模型详解

一.创建Model模型 Extjs4.10提供了两种方法来创建Model模型,也就是创建类 方法一: Ext.define('person',{ extend:'Ext.data.Model'     //必须继承类 fields:[ {name:'name',type:'auto'}, {name:'age',type:'int'}, {name:'email',type:'auto'}, ] }); 方法二: Ext.regModel('person',{ fields:[ {name:'n

ThinkPHP中视图模型详解.

很多TP的新手对于模型中的视图模型不甚了解,官方虽然有详细手册,但是对于初学者来说还是比较难以理解! 先简单说一下视图模型所能实现的功能,基本就是主表与副表之间各个字段的关联问题,实现多表关联查询,相对于使用原生SQL语句来说,着实是简单不少. 首先在数据表初始化的时候,用的不是传统的M('User'),在视图模型中使用的是D('UserView'),如下图: 需要主要的是几个单词的首字母大写. 之后在Lib/Model目录中新建名为XXXViewModel.class.php(XXX为任意控制

LVS集群DR、NAT模型配置, 及使用ldirectord完成LVS DR模型集群搭建

首先我们有三台主机:其中172.16.192.168作为前台主机:另外172.16.254.18和172.16.254.105作为后端主机,作为测试分别运行有web服务,并测试可用,如下图. 一.LVS NAT模型集群配置实验 1.首先在后端Real Server上设置默认网关,执行前端Virtual Server 2.在前端Virtual Server上开启路由转发功能 3.配置前端LVS集群 4.测试 总结:经过初步测试,我们可以看出已经可以实现rr轮询调度,修改相应的调度算法则可以实现不同

马哥学习笔记二十一——LVS DR模型

kernel parameter: arp_ignore: 定义接收到ARP请求时的响应级别: 0:只要本地配置的有相应地址,就给予响应: 1:仅在请求的目标地址配置请求到达的接口上的时候,才给予响应: arp_announce:定义将自己地址向外通告时的通告级别: 0:将本地任何接口上的任何地址向外通告: 1:试图仅向目标网络通告与其网络匹配的地址: 2:仅向与本地接口上地址匹配的网络进行通告: curl命令选项: --cacert <file> CA证书 (SSL) --capath &l