通过网络地址转换,调度器重写请求报文的目标地址,根据预设的调度算法,将请求分派给后端的真实服务器;真实服务器的响应报文通过调度器时,报文的源地址被重写,再返回给客户,完成整个负载调度过程。
采用NAT技术时,由于请求和响应报文都必须经过调度器地址重写,当客户请求越来越多时,调度器的处理能力将成为瓶颈。为了解决这个问题,调度器把请求报文通过IP隧道转发至真实服务器,而真实服务器将响应直接返回给客户,所以调度器只处理请求报文。由于一般网络服务应答比请求报文大许多,采用VS/TUN技术后,集群系统的最大吞吐量可以提高10倍。
VS/DR通过改写请求报文的MAC地址,将请求发送到真实服务器,而真实服务器将响应直接返回给客户。同VS/TUN技术一样,VS/DR技术可极大地提高集群系统的伸缩性。这种方法没有IP隧道的开销,对集群中的真实服务器也没有必须支持IP隧道协议的要求,但是要求调度器与真实服务器都有一块网卡连在同一物理网段上。
调度器通过"轮叫"调度算法将外部请求按顺序轮流分配到集群中的真实服务器上,它均等地对待每一台服务器,而不管服务器上实际的连接数和系统负载。
调度器通过"加权轮叫"调度算法根据真实服务器的不同处理能力来调度访问请求。这样可以保证处理能力强的服务器处理更多的访问流量。调度器可以自动问询真实服务器的负载情况,并动态地调整其权值。
调度器通过"最少连接"调度算法动态地将网络请求调度到已建立的链接数最少的服务器上。如果集群系统的真实服务器具有相近的系统性能,采用"最小连接"调度算法可以较好地均衡负载。
在集群系统中的服务器性能差异较大的情况下,调度器采用"加权最少链接"调度算法优化负载均衡性能,具有较高权值的服务器将承受较大比例的活动连接负载。调度器可以自动问询真实服务器的负载情况,并动态地调整其权值。

2)正常的步骤应该是先编译内核,因为ipvsadm要求内核在2.4.24以后的版本,为了省事,我直接用的是AS5,它的内核是2.6.18(可以使用uname -an察看系统内核信息)
3)软件包下载完成后,就要编译和安装ipvsadm了。
先要对内核进行软连接,因为ipvsadm在安装的过程中先要去查找/usr/src/linux 这个信息,所以我们要先把内核信息做软连接到/usr/src/linux。如果不这么做,在安装的过程中会报错,如图

软连接方法:ln -s /usr/src/kernels/2.6.18-53.el5-i686 /usr/src/linux
tar -zxvf ipvsadm-1.24
cd ipvsadm-1.24
make all
make install
安装完成后 可以察看版本信息 ipvsadm --version
pvsadm v1.24 2005/12/10 (compiled with popt and IPVS v1.2.1)
5) 配置LVS
在虚拟主机中启用转发功能
echo "1">/proc/sys/net/ipv4/ip_forward (因为虚拟主机在服务前段主要是负责ip的转发的,所以这项要启动)
清除ipvsadm表
ipvsadm -C
安装LVS服务
ipvsadm -A -t 10.1.1.200:80 -s rr
增加第一台服务器
ipvsadm -a -t 10.1.1.200:80 -r 192.168.1.100:80 -m -w 1
增加第二台服务器
ipvsadm -a -t 10.1.1.200:80 -r 192.168.1.200:80 -m -w 1
注意-w 后的是1而不是l
6) 配置服务器端
在192.168.1.100和192.168.1.200里分别将网关设置为192.168.1.254,并启动WEB服务(192.168.1.254是虚拟主机的内网IP)
7)测试


在客户端多次浏览10.1.1.200(前端的虚拟主机ip),然后在虚拟主机上输入ipvsadm,会发现已经转发了4次


