我们常用的负载均衡系统主要是LVS,这种linux下的软件很方便使用。那么针对LVS集群系统的介绍,这里我们主要针对IPVS负载均衡问题进行一个详细的说明。首先还是让我们简要了解一下IPVS的内容。
各服务器IP分配:
Virtual IP: | 192.168.136.10 |
Load Balancer: | 192.168.136.11 |
Backup: | 192.168.136.12 |
Real Server 1: | 192.168.136.101 |
Real Server 2: | 192.168.136.102 |
Real Server 3: | 192.168.136.103 |
IPVS是LVS集群系统的核心软件,它的主要作用是:安装在Load Balancer上,把发往Virtual IP的请求转发到Real Server上。
IPVS负载均衡机制有三种,这里使用IP Tunneling机制:
◆Virtual Server via NAT
◆Virtual Server via IP Tunneling
◆Virtual Server via Direct Routing
IPVS负载均衡调度算法有十种:
◆轮叫(Round Robin)
◆加权轮叫(Weighted Round Robin)
◆最少链接(Least Connections)
◆加权最少链接(Weighted Least Connections)
◆基于局部性的最少链接(Locality-Based Least Connections)
◆带复制的基于局部性最少链接(Locality-Based Least Connections with Replication)
◆目标地址散列(Destination Hashing )
◆源地址散列(Source Hashing)
◆最短期望延迟(Shortest Expected Delay)
◆无须队列等待(Never Queue)
IPVS安装主要包括三方面:
◆在Load Banlancer上安装IPVS内核补丁
◆在Load Banlancer上安装IPVS管理软件
◆在Real Server上安装ARP hidden内核补丁
关于如何编译内核请参考其他文档,这里使用从UltraMonkey下载的已编译好的内核。
在Load Banlancer、Backup和Real Server上使用同一内核,IPVS和ARP hidden都已编译在这个内核里:
wget http://www.ultramonkey.org/download/2.0.1/rh.el.3.0/RPMS/mkinitrd-3.5.13-1.um.1.i386.rpm
wget http://www.ultramonkey.org/download/2.0.1/rh.el.3.0/RPMS/kernel-2.4.21-27.0.2.EL.um.1.i686.rpm
wget http://www.ultramonkey.org/download/2.0.1/rh.el.3.0/RPMS/kernel-smp-2.4.21-27.0.2.EL.um.1.i686.rpm
rpm -Fhv mkinitrd-3.5.13-1.um.1.i386.rpm
rpm -Fhv kernel-2.4.21-27.0.2.EL.um.1.i686.rpm
在负载均衡器和Backup上安装IPVS管理软件:
wget http://www.linuxvirtualserver.org/software/kernel-2.4/ipvs-1.0.10.tar.gz
tar zxf ipvs-1.0.10.tar.gz
cd ipvs-1.0.10/ipvs/ipvsadm
make install
chkconfig --del ipvsadm
配置IPVS负载均衡(/etc/sysconfig/ipvsadm),添加Real Server:
-A -t 192.168.136.10:80 -s rr
-a -t 192.168.136.10:80 -r 192.168.136.11:80 -i
-a -t 192.168.136.10:80 -r 192.168.136.12:80 -i
-a -t 192.168.136.10:80 -r 192.168.136.101:80 -i
-a -t 192.168.136.10:80 -r 192.168.136.102:80 -i
-a -t 192.168.136.10:80 -r 192.168.136.103:80 -i