集群技术主要分为三大类:
高可用性(High Available Cluster),例:Linux-HA
负载均衡(Load balancing Cluster),例:LVS、MOSIX
高性能计算(High Performance Computing),例:Beowulf
 
LVS(linux virtual server)针对高可伸缩、高可用网络服务的需求,给出了基于IP层和基于内容请求分发的负载平衡调度解决方法,并在Linux内核中实现了这些方法,将一组服务器构成一个实现可伸缩的、高可用网络服务的虚拟服务器。
在LVS框架中,提供了含有三种IP负载均衡技术的IP虚拟服务器软件:IPVS、基于内容请求分发的内核Layer-7交换机KTCPVS和集群管理软件。
 
IP虚拟服务器软件IPVS
IPVS软件实现了这三种IP负载均衡技术:VS/NAT、VS/TUN、VS/DR。
在调度器的实现技术中,IP负载均衡技术是效率最高的。VS/NAT技术(Virtual Server via Network Address Translation)有广泛的应用,如Cisco的LocalDirector、F5的Big/IP和 Alteon的ACEDirector。在分析VS/NAT的缺点和网络服务的非对称性的基础上,提出通过IP隧道实现虚拟服务器的方法VS/TUN (Virtual Server via IP Tunneling),和通过直接路由实现虚拟服务器的方法VS/DR(Virtual Server via Direct Routing),它们可以极大地提高系统的伸缩性。IP负载均衡技术参考:http://www.linuxvirtualserver.org/zh/lvs3.html
 
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)
具体参考:http://www.linuxvirtualserver.org/zh/lvs4.html
 
安装和配置ipvsadm实现lvs
网络拓扑图如下:
LVS/NAT学习笔记_LVS
uname –a
ln -s /usr/src/kernels/2.6.18-128.el5-i686/ /usr/src/linux
tar -zxvf ipvsadm-1.24.tar.gz
make&&make install
 
配置lvs/NAT
echo "1" > /proc/sys/net/ipv4/ip_forward
ipvsadm -C
ipvsadm -A -t 220.90.88.10:80 -s rr
ipvsadm -a -t 220.90.88.10:80 -r 192.168.0.10:80 -m -w 1
ipvsadm -a -t 220.90.88.10:80 -r 192.168.0.20:80 -m -w 1
 
相关ipvsadm的命令可查看http://junlee.blog.51cto.com/228061/247751
 
在客户段访问http://220.90.88.10 以轮询的方式调用真实服务器的页面!出现交替返回两台服务器的页面,表示成功实现了LVS/NAT。
 
后记:虽然实现了负载平衡,但是当真实的web服务器中有一台出现问题无法提供web服务时,会出现一部分请求没有响应,这样问题就出现了。要如何实现负载调度器监视realserver的状态,当realserver出现问题把他从集群中踢出,不再转发请求到这个故障realserver。从而解决这个问题。后面将会用lvs+keepalived解决以上的问题