LVS实现Apache的负载均衡测试报告

1        简要说明

本文档主要目的是在Redhat6.5Linux上测试LVS实现Apache的负载均衡测试。系统配置信息如下:

 

RealServer1

RealServer2

Director

IP

192.168.2.101

192.168.2.102

192.168.2.101

机器名

lvs1

lvs2

lvs3

VIP(lvs-vip)

192.168.2.100

192.168.2.100

192.168.2.100

操作系统

RHEL 6.5 (Santiago)

RHEL 6.5 (Santiago)

RHEL 6.5 (Santiago)

2        软件安装

三台机器都需要安装ipvsadm包,RealServer需要安装arptables包。安装arptables的包的目的是通过arptables可以改变RealServer对vip的网络包的处理策略。

另外,需要提前准备好三个节点的hosts文件:

[root@lvs1 heartbeat-3.0.4]#cat /etc/hosts

127.0.0.1   localhost

192.168.2.101 lvs1

192.168.2.102 lvs2

192.168.2.103 lvs3

192.168.2.100 lvs-vip

由于ipvsadm在RHEL6.5的安装包中自带,建议配置一个本地的yum源,我的配置文件如下:

[root@lvs1 soft]# cat/etc/yum.repos.d/local.repo

[Server]

name=Server

baseurl=file:///mnt/Server

enabled=1

gpgcheck=0

 

[HighAvailability]

name=HighAvailability

baseurl=file:///mnt/HighAvailability

enabled=1

gpgcheck=0

 

[LoadBalancer]

name=LoadBalancer

baseurl=file:///mnt/LoadBalancer

enabled=1

gpgcheck=0

这些准备工作都做好了,就是软件的安装,在三个节点上安装ipvsadm包,安装命令如下:

[root@lvs1 ~]# yum installipvsadm -y

Loaded plugins: product-id,refresh-packagekit, security, subscription-manager

This system is not registeredto Red Hat Subscription Management. You can use subscription-manager toregister.

Setting up Install Process

Resolving Dependencies

--> Running transactioncheck

---> Package ipvsadm.x86_640:1.26-2.el6 will be installed

--> Finished DependencyResolution

 

Dependencies Resolved

 

================================================================================

 Package        Arch           Version              Repository            Size

================================================================================

Installing:

 ipvsadm        x86_64         1.26-2.el6           LoadBalancer          41 k

 

Transaction Summary

================================================================================

Install       1 Package(s)

 

Total download size: 41 k

Installed size: 78 k

Downloading Packages:

Running rpm_check_debug

Running Transaction Test

Transaction Test Succeeded

Running Transaction

  Installing : ipvsadm-1.26-2.el6.x86_64                                    1/1

  Verifying : ipvsadm-1.26-2.el6.x86_64                                    1/1

 

Installed:

  ipvsadm.x86_64 0:1.26-2.el6                                                  

 

Complete!

[root@lvs1 ~]#

另外两个节点输出类似,安装完成后,ipvsadm命令就可用。执行ipvsadm-l测试,输出如下:

[root@lvs1 ~]# ipvsadm -l

IP Virtual Server version 1.2.1(size=4096)

Prot LocalAddress:PortScheduler Flags

  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

由上可知,当前没有任何的调度策略。

3        添加vip

在三个节点添加vip(以lvs3为例):

ifconfig eth0:0 192.168.2.100netmask 255.255.255.0 up

ifconfig -a

[root@lvs3 ~]# ifconfig -a

eth0      Link encap:Ethernet  HWaddr 00:0C:29:8C:6E:DD 

          inet addr:192.168.2.103  Bcast:192.168.2.255  Mask:255.255.255.0

          inet6 addr:fe80::20c:29ff:fe8c:6edd/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500 Metric:1

          RX packets:8148 errors:0 dropped:0overruns:0 frame:0

          TX packets:184 errors:0 dropped:0overruns:0 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:1690078 (1.6 MiB)  TX bytes:19593 (19.1 KiB)

 

eth0:0    Link encap:Ethernet  HWaddr 00:0C:29:8C:6E:DD 

          inet addr:192.168.2.100  Bcast:192.168.2.255  Mask:255.255.255.0

          UP BROADCAST RUNNING MULTICAST  MTU:1500 Metric:1

 

lo        Link encap:Local Loopback 

          inet addr:127.0.0.1  Mask:255.0.0.0

          inet6 addr: ::1/128 Scope:Host

          UP LOOPBACK RUNNING  MTU:16436 Metric:1

          RX packets:8 errors:0 dropped:0overruns:0 frame:0

          TX packets:8 errors:0 dropped:0overruns:0 carrier:0

          collisions:0 txqueuelen:0

          RX bytes:584 (584.0 b)  TX bytes:584 (584.0 b)

 

pan0      Link encap:Ethernet  HWaddr 4A:1C:A2:F0:98:ED 

          BROADCAST MULTICAST  MTU:1500 Metric:1

          RX packets:0 errors:0 dropped:0 overruns:0frame:0

          TX packets:0 errors:0 dropped:0overruns:0 carrier:0

          collisions:0 txqueuelen:0

          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

4        RealServer安装arptables

现在Director和RealServer的节点都能够识别VIP(192.168.2.100),接下来我们要在提供服务的节点(RealServer)上添加策略,要安装一个额外的软件arptables,该软件在RHEL6.5的系统盘中自带,安装命令如下(以lvs1为例,lvs2输出类似):

[root@lvs1 ~]# yum installarptable* -y

......

--> Running transactioncheck

---> Packagearptables_jf.x86_64 0:0.0.8-23.el6 will be installed

--> Finished DependencyResolution

 

......

  Installing :arptables_jf-0.0.8-23.el6.x86_64                             1/1

  Verifying : arptables_jf-0.0.8-23.el6.x86_64                             1/1

 

Installed:

  arptables_jf.x86_64 0:0.0.8-23.el6                                           

 

Complete!

[root@lvs1 ~]#

5        网络策略配置

5.1 Director配置

添加vip的httpd服务的端口,并且采用了轮叫的算法(RR:RoundRobin),命令如下:

[root@lvs3 ~]# ipvsadm -A -t192.168.2.100:80 -s rr

[root@lvs3 ~]# ipvsadm -l

IP Virtual Server version 1.2.1(size=4096)

Prot LocalAddress:PortScheduler Flags

  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

TCP  lvs-vip:http rr

接着允许lvs1和lvs2的httpd服务作为轮叫的节点.

[root@lvs3 ~]# ipvsadm -a -t192.168.2.100:80 -r 192.168.2.101:80 -g

[root@lvs3 ~]# ipvsadm -a -t192.168.2.100:80 -r 192.168.2.102:80 -g

[root@lvs3 ~]# ipvsadm -l

IP Virtual Server version 1.2.1(size=4096)

Prot LocalAddress:PortScheduler Flags

  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

TCP  lvs-vip:http rr

  -> lvs1:http                    Route   1     0          0        

  -> lvs2:http                    Route   1     0          0        

[root@lvs3 ~]#

5.2 RealServer配置

RealServer配置的目的是添加策略,把直接进来访问192.168.2.100的包全部丢弃,让从192.168.2.100出去的包从192.168.2.101(lvs1)和192.168.2.102(lvs2)出去。

#lvs1

[root@lvs1 ~]# arptables -A IN-d 192.168.2.100 -j DROP

[root@lvs1 ~]# arptables -A OUT-s 192.168.2.100 -j mangle --mangle-ip-s 192.168.2.101

[root@lvs1 ~]#/etc/init.d/arptables_jf save

Saving current rules to/etc/sysconfig/arptables: [  OK  ]

#lvs2

[root@lvs2 ~]# arptables -A IN-d 192.168.2.100 -j DROP

[root@lvs2 ~]# arptables -A OUT-s 192.168.2.100 -j mangle --mangle-ip-s 192.168.2.102

[root@lvs2 ~]#/etc/init.d/arptables_jf save

Saving current rules to/etc/sysconfig/arptables: [  OK  ]

[root@lvs2 ~]#

6        测试

6.1 启动apache

为了测试分别为lvs1和lvs2写了一个index.html页面,将对应的文件放到/var/www/html目录下。对应内容如下:

[root@lvs1 /]# cat/var/www/html/index.html

<html>

<head>lvs1</head>

<body>

welcome from lvs1 by cdshrewd

</body>

</html>

 

[root@lvs2 /]# cat/var/www/html/index.html

<html>

<head>lvs2</head>

<body>

welcome from lvs2 by cdshrewd

</body>

</html>

测试步骤:

1.        启动apache

启动两个节点的servicehttpd start

2.        访问测试

打开浏览器访问:http://192.168.2.100/index.html


刷新页面http://192.168.2.100/index.html

多次刷新,可以看到轮流显示lvs1和lvs2的页面,说明轮询方式的负载均衡器测试正常。

3.        查看后台数据

[root@lvs3 ~]# ipvsadm -l

IP Virtual Server version 1.2.1(size=4096)

Prot LocalAddress:PortScheduler Flags

  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

TCP  lvs-vip:http rr

  -> lvs1:http                    Route   1     0          18       

  -> lvs2:http                    Route   1     0          19       

[root@lvs3 ~]# date

Tue Nov 15 21:00:36 CST 2016

[root@lvs3 ~]# ipvsadm -l

IP Virtual Server version 1.2.1(size=4096)

Prot LocalAddress:PortScheduler Flags

  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

TCP  lvs-vip:http rr

  -> lvs1:http                    Route   1     0          33       

  -> lvs2:http                    Route   1     0          33       

[root@lvs3 ~]#

从后台的统计数据,可以看到负载均衡器的负载很均衡。至此,LVS和apache的负载均衡测试结束。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值