您的位置:首页 > 其它

使用LVS+DR搭建集群实现负载均衡

2017-03-01 22:42 676 查看
DR模式的概述与工作原理

DR模式服务概述: 

      Direct
Routing(直接路由) --在同一个地域,同一个网段

Director分配请求到不同的real
server。real server处理请求后直接回应给用户,这样director负载均衡器仅处理客户机与服务器的一半连接。负载均衡器仅处理一半的连接,避免了新的性能瓶颈,同样增加了系统的可伸缩性。Direct
Routing由与采用物理层(修改MAC地址)技术,因此所有服务器都必须在一个网段中。

 

LVS DR 模式工作原理: 修改MAC地址
    DR模式将报文直接路由给目标真实服务器。在DR模式中,调度器根据各个真实服务器的负载情况,连接数多少等,动态地选择一台服务器,不修改目标IP地址和目标端口,也不封装IP报文,而是将请求报文的数据帧的目标MAC地址改为真实服务器的MAC地址。然后再将修改的数据帧在服务器组的局域网上发送。因为数据帧的MAC地址是真实服务器的MAC地址,并且又在同一个局域网。那么根据局域网的通讯原理,真实复位是一定能够收到由LB发出的数据包。真实服务器接收到请求数据包的时候,解开IP包头查看到的目标IP是VIP。(此时只有自己的IP符合目标IP才会接收进来,所以我们需要在本地的回环借口上面配置VIP。另:由于网络接口都会进行ARP广播响应,但集群的其他机器都有这个VIP的lo接口,都响应就会冲突。所以我们需要把真实服务器的lo接口的ARP响应关闭掉。)然后真实服务器做成请求响应,之后根据自己的路由信息将这个响应数据包发送回给客户,并且源IP地址还是VIP。

 

DR模式实际拓扑图及LVS+DR方式的工作流程图: MAC转换过程



 

 

实例场景设备清单: director分发器,DIP:
192.1681.70,

                             VIP :192.168.1.63



 

① client发送的请求基本信息: IP:192.168.1.101 向目标vip发出请求,Director接收。此时IP包头及数据帧头信息如下:



 

② Director分发器根据负载均衡算法选择一台active的realserver(假设是192.168.1.62),将此RIP所在网卡的mac地址作为目标mac地址,发送到局域网里。此时IP包头及数据帧头信息如下:



 

③ realserver(192.168.1.62)在局域网中收到这个帧,脱掉数据帧后发现目标IP(VIP)与本地匹配,于是处理这个报文。随后重新封装报文,发送到局域网。此时回复请求的IP包头及数据帧头信息如下:



 

④如果client与VS同一网段,那么client(192.168.57.135)将收到这个回复报文。如果跨了网段,那么报文通过gateway/路由器经由Internet返回给用户。

 

DR模式小结:
1、通过在调度器LB上修改数据包的目的MAC地址实现转发。注意源地址仍然是CIP,目的地址仍然是VIP地址。
2、请求的报文经过调度器,而RS响应处理后的报文无需经过调度器LB,因此并发访问量大时使用效率很高(和NAT模式比)
3、因为DR模式是通过MAC地址改写机制实现转发,因此所有RS节点和调度器LB只能在一个局域网里面
4、RS主机需要绑定VIP地址在LO接口上,并且需要配置ARP抑制。
5、RS节点的默认网关不需要配置成LB,而是直接配置为上级路由的网关,能让RS直接出网就可以。
6、由于DR模式的调度器仅做MAC地址的改写,所以调度器LB就不能改写目标端口,那么RS服务器就得使用和VIP相同的端口提供服务。

 

一:实验目标

1:正确理解DR的工作原理  

2:使用LVS+DR搭建集群实现负载均衡

3:理解LVS的几种调度模式以及调度参数

4:了解ipvsadm命令参数

5:用ab命令测试网站压力

6:实战: 同时处理1000个请求。
一次要执行1000个并发请求。

 

二:实验拓扑



 

 

三:实验环境

1:准备3台

分发器:xuegod63  VIP:eth0:1:192.168.1.63

                DIP:eth0:192.168.1.70

Real server xuegod62:  RIP:eth0:
192.168.1.62

                          VIP:lo:1  192.168.1.63

Real server xuegod64:  RIP:eth0:
192.168.1.64      

                          VIP:lo:1  192.168.1.63  
                                                                                                                      2:iptables
-F , 清除规则

3:selinux关闭

4:red had 6.5版本 64位操作系统

 

四:实验代码

分发器-xuegod63 

1:配置DIP和RIP地址

DIP :[root@xuegod63 ~]# ifconfig eth0 192.168.1.70 

VIP :[root@xuegod63 ~]# ifconfig eth0:1 192.168.1.63

[root@xuegod63 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 #以配置以下信息

IPADDR=192.168.1.70 

NETMASK=255.255.255.0

GATEWAY=192.168.1.1

DNS1=202.106.46.151

 

2:生成eth0:1配置文件

[root@xuegod63 network-scripts]# cp ifcfg-eth0 ifcfg-eth0:1

[root@xuegod63 network-scripts]# vim ifcfg-eth0\:1 #写入以下内容

DEVICE=eth0:1

NM_CONTROLLED=yes

IPADDR=192.168.1.63

NETMASK=255.255.255.0

ONBOOT=yes

TYPE=Ethernet

PREFIX=24

DEFROUTE=yes

IPV4_FAILURE_FATAL=yes

NAME="eth0:1"

HWADDR=00:0C:29:12:EC:1E #Mac地址必需要写成和eth0一样,否则出不来eth0:1这个网卡设备

[root@xuegod63 network-scripts]#service network restart

[root@xuegod63 network-scripts]# ifconfig #查看是否有eth0 和eth0:1  

inet addr:192.168.1.63 Bcast:192.168.1.255
Mask:255.255.255.0

inet addr:192.168.1.63 Bcast:192.168.1.255 Mask:255.255.255.0

 

3:配置LVS-DR规则:

[root@xuegod63 network-scripts]# rpm -ivh /mnt/Packages/ipvsadm-1.25-9.el6.x86_64.rpm

[root@xuegod63 ~]# ipvsadm -A -t 192.168.1.63:80 -s rr

[root@xuegod63 ~]# ipvsadm -a -t 192.168.1.63:80 -r 192.168.1.62 -g

[root@xuegod63 ~]# ipvsadm -a -t 192.168.1.63:80 -r 192.168.1.64 -g

注: -g 表示DR模式
, -m 表示IP tun 模式

 

[root@xuegod63 ~]# ipvsadm -L -n

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

-> RemoteAddress:Port Forward Weight ActiveConn InActConn

TCP 192.168.1.63:80 rr

-> 192.168.2.62:80 Route 1 0 0

-> 192.168.2.64:80 Route 1 0 0

注:三个LVS 模式中,只有NAT模式需要开启路由转发功能。 DR和TUN模式不需要开启。

 

4:LVS的规则配置文件:/etc/sysconfig/ipvsadm

找到配置文件方法: 因为:/etc/init.d/ipvsadm
save 可以保存。所以配置文件一定可以在/etc/init.d/ipvsadm 中找到相关保存路径。

 

[root@xuegod63 ~]# vim /etc/init.d/ipvsadm



 

[root@xuegod63 ~]# /etc/init.d/ipvsadm save

[root@xuegod63 ~]# cat /etc/sysconfig/ipvsadm

-A -t 192.168.1.63:80 -s wrr

-a -t 192.168.1.63:80 -r 192.168.1.62:80 -g

-a -t 192.168.1.63:80 -r 192.168.1.64:80 -g

 

 

RealServer:xuegod62:

1, 配置RIP eth0 ,桥接模式

[root@xuegod62 ~]# ifconfig eth0 192.168.1.62/24

 

2, 回环接口 -vip

[root@xuegod62 ~]# ifconfig lo:1 192.168.1.63 netmask 255.255.255.255

[root@xuegod62 network-scripts]# cp ifcfg-lo ifcfg-lo:1

[root@xuegod62 network-scripts]# cat ifcfg-lo:1

DEVICE=lo:1

IPADDR=192.168.1.63

NETMASK=255.255.255.255

ONBOOT=yes

NAME=loopback

[root@xuegod62 ~]#
service%
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: