当前位置: 首页 > 服务器 > 服务器知识 > 正文

Lvs如何解决服务器负载均衡

时间:2016-03-28

LVS 是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。目前有三种IP负载均衡技术(VS/NAT、VS/TUN和VS/DR);

十种调度算法(rrr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq)。

官方网站:http://www.linuxvirtualserver.org/

本次试用使用自己的小本,在小本上通过VMware安装3个redhat as 5作为测试环境。其中一台为虚拟主机,另外两台为realServer。

1.基础环境设置

VMware上3台虚拟机安装后,设置网络类型为NAT方式。

网关:192.168.91.2

(通过WMare --> Edit -> Virtual Network Editor,选择VMnet8,设置为静态IP)

DNS:192.168.91.2

分别配置IP为:

192.168.91.10(LVS主机)

192.168.91.11(Real Server 1)

192.168.91.12(Real Server 2)

2.下载和安装LVS

# uname -r    
2.6.18-8.el5    
# wget http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.24.tar.gz    
# ln -s /usr/src/kernels/2.6.18-53.el5PAE-i686/  /usr/src/linux    
# tar -xzvf ipvsadm-1.24.tar.gz    
# cd ipvsadm-1.24
# make    
# make install    
# cp ipvsadm /sbin/

3.配置虚拟IP服务和负载均衡

本栏目更多精彩内容:http://www.bianceng.cn/Servers/zs/

   以192.168.91.10(LVS主机)作为LVS的主机,为该主机的网卡配置双IP,其中一个虚拟IP作为LVS的虚拟IP.

192.168.91.9配置为LVS主机的虚拟IP。

LVS SERVER配置

在192.168.91.10LVS虚拟服务器上执行:

# 设置本机默认IP,如果已经设置,可以不能执行

ifconfig eth0 192.168.91.10 netmask 255.255.255.0 broadcast 192.168.91.255 up

# 设置本机第二IP,作为LVS的虚拟IP

ifconfig eth0:0 192.168.91.9 netmask 255.255.255.0 broadcast 192.168.91.255 up

# 打开IP转发开关

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

# 添加虚拟服务器,虚拟IP为192.168.91.9,端口为80,调度算法为:rr

ipvsadm -A -t 192.168.91.9:80 -s rr

# 为虚拟服务器192.168.91.9,添加RealServer,IP为192.168.91.11,指定LVS 的工作模式为直接路由模式

ipvsadm -a -t 192.168.91.9:80 -r 192.168.91.11 -g

# 为虚拟服务器192.168.91.9,添加RealServer,IP为192.168.91.11,指定LVS 的工作模式为直接路由模式

ipvsadm -a -t 192.168.91.9:80 -r 192.168.91.12 -g

# 启动lvs

ipvsadm

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

 -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

TCP  192.168.91.9:http rr

 -> 192.168.91.12:http           Route   1      0          0        

 -> 192.168.91.11:http           Route   1      0          0

LVS Real Server 配置

在192.168.91.11和192.168.91.12上执行

# 设置 Real Server 虚拟IP路由

ifconfig lo:0 192.168.91.9 netmask 255.255.255.0 broadcast 192.168.91.255 up

route add -host 192.168.91.9 dev lo:0

4.Real Server上安装tomcat

分别在两台RealServer上安装tomcat

192.168.91.11

192.168.91.12

省了,启动前,把端口修改为80端口

6.查看LVS状态

在192.168.91.10/9虚拟服务器上运行查询命令

[root@hadoop00 ~]# ipvsadm -l --stats

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port               Conns   InPkts  OutPkts  InBytes OutBytes

 -> RemoteAddress:Port

TCP  192.168.91.9:http                   0        0        0        0        0

 -> 192.168.91.12:http                  0        0        0        0        0

 -> 192.168.91.11:http                  0        0        0        0        0

7.测试完成

# stop lvs

ifconfig eth0:0 down

/sbin/ipvsadm -C

# stop real server

/sbin/ifconfig lo:0 down

正式应用可以把LVS虚拟服务启动和停止编写为脚步,加入到/etc/init.d/下,加入服务,设置为自动启动。

原文出自:http://acooly.iteye.com/blog/1151921