LVS负载均衡在Ubuntu环境下部署详解

一、本地环境介绍:

负载均衡的三台机器均为Ubuntu Server 14.04 64位系统,内核中已集成ipvs模块( modprobe -l | grep ipvs 查看 )。为演示LVS负载均衡后的效果,需先在其中两台机器中安装apache服务(apt-get install apache2),并将位置在/var/www/html/目录下index.html文件修改成不同内容(如主机名)。
1
二、部署架构:

主机名 IP 角色

UbuntuServerEn64 192.168.226.149 负载均衡服务器 director
UbuntuServerEn64_2 192.168.226.145 真实服务器 real server(已安装apache)
UbuntuServerEn64_3 192.168.226.148 真实服务器 real server(已安装apache)

VIP为192.168.226.150(VIP为对外提供的IP,并不是真实物理IP)
1
2
3
4
5
6
7
部署成功后,所有发送到VIP的请求包都会由director按照设置的算法分发到不同的real server进行处理。

三、部署过程:

1、负载均衡服务器(director)配置:

#由于内核已集成ipvs模块,只需要安装ipvsadm即可
apt-get install ipvsadm

#在director上建立一个虚拟的ip地址进行消息广播
ifconfig eth0:0 192.168.226.150 netmask 255.255.255.0 broadcast 192.168.226.150

#将虚拟地址添加到路由表
route add -host 192.168.226.150 dev eth0:0

#此指令暂没发现有啥用处
echo "1">/proc/sys/net/ipv4/ip_forward

#使用ipvsadm安装LVS服务
ipvsadm -A -t 192.168.226.150:80 -s rr

#增加真实服务器
ipvsadm -a -t 192.168.226.150:80 -r 192.168.226.145 -g
ipvsadm -a -t 192.168.226.150:80 -r 192.168.226.148 -g
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2、真实服务器 (real server)配置:

ifconfig lo:0 192.168.226.150 netmask 255.255.255.255 broadcast 192.168.226.150 up

route add -host 192.168.226.150 dev lo:0

echo "1">/proc/sys/net/ipv4/ip_forward
1
2
3
4
5
director配置如下图所示:


(ipvsadm 命令未截图成功)

real server配置如下图所示:

 

四、负载均衡测试:
未使用LVS负载均衡前,在浏览器中输入各IP地址分别显示如下图

 

使用LVS负载均衡后,在浏览器中输入VIP地址分别显示如下图

 

浏览器显示不同内容代表发送到VIP的请求包可由director按照设置的算法分发到不同的real server进行处理。
至此,LVS负载均衡架构已搭建完成。

注:LVS是四层负载均衡,只能通过ip+port实现负载分发,可支持TCP&UDP。而Haproxy是七层负载均衡,可以实现更细粒度的负载分发,猷有专门的TCP和HTTP解决方案。但由于前者是操作系统层面支持,并发量和稳定性都表现较好而得到大量使用。

猜你喜欢

转载自www.cnblogs.com/ExMan/p/11831540.html