LVS-NAT

LVS-NAT

是通过改变数据包中的目的IP地址,来实现调度的。

164432688.jpg

说明:

Director是调度服务、Real N为真实服务器(这里用四台)。实验用vmware虚拟机和小凡模拟器来完成,为了保证物理上确实是隔离开关的,需要不同的vmnet网卡相连。

l Client与路由器之间用vmnet1连接;

l 路由器与Director之间用vmnet3连接;

l Directoreth1Real Nvmnet5

所有服务器均为:Centos 5.5 _i386 内核版本为2.6.18-194.el5



步骤:

一、Install software:

1.安装内核源代码(因为安装ipvsadm时需要)

mount /dev/cdrom /media

cd /media/Centos

rpm -ivh kernel-devel-2.6.18-194.el5.i686.rpm

需要给源代码做个软连接,不然一会编译ipvsadm时会报错

ln -s /usr/src/2.6.kernel-devel-2.6.18-194.el5.i686 /usr/src/linux

2.安装ipvsadm

http://www.linuxvirtualserver.org/software/index.html,下载对应的ipvsadm

我下载的是:ipvsadm-1.24.tar.gz

tar -zxfv ipvsadm-1.24.tar.gz

cd ipvsadm-1.24.tar.gz

make all && make install

安装完成后运行一下ipvsadm命令,然后执行lsmod | grep ip_vs命令,若能显示如下,说明内核已经支持:

164549165.png



二、配置各主机的IP

主机

IP

网关

Client

192.168.1.100

f0/0

Route

f0/0:192.168.1.1---vm1

f1/0:192.168.2.1---vm2


Director

eth0:192.168.2.2(VIP)---vm2

eth1:192.168.3.1(DIP)---vm5

f1/0

Real server 1

eth0:192.168.3.10

192.168.3.1(DIP)

Real server 2

eth0:192.168.3.20

192.168.3.1(DIP)

Real server 3

eth0:192.168.3.30

192.168.3.1(DIP)

Real server 4

eth0:192.168.3.40

192.168.3.1(DIP)

Real server N

eth0:192.168.3.N

192.168.3.1(DIP)

由于是用NAT方式做负载均衡,所以Real server N 都要指向Director作为网关。


三、配置Real server N的主页服务

给每台Real server 服务器安装apache,并在每台服务器的/var/www/html/下建立index.html文件,为了看出效果,最好每台服务器上的index.html文件不一样,例如在Real server 1 上的index.html内容如下:

164710160.png

其他几台Real server 服务器的index.html内容,只需要把上面的红色框的部分对应更改一下即可,然后开启httpd服务.


四、配置Director

Director上面也建立个apache服务,写个与真实服务器不一样的index.html,例如:

164750823.png

建立这个index.html的目的是为验证集群效果。当没有配置集群时,看到的是Director上的index.html,如果配置了集群,再访问VIP,就能看到其他Real server服务器上的index.html.


1.开启路由转发:


vi /etc/sysctl

164831632.png

sysctl -p

此步非常重要!!!


2.增加虚拟服务

ipvsadm -A -t 192.168.2.2:80 -s rr

增加一个指向192.168.2.2:80 tcp虚拟服务,用轮叫(rr)算法


3.增加真实服务器

ipvsadm -a -t 192.168.2.2:80 -r 192.168.3.10 -m

ipvsadm -a -t 192.168.2.2:80 -r 192.168.3.20 -m

ipvsadm -a -t 192.168.2.2:80 -r 192.168.3.30 -m

ipvsadm -a -t 192.168.2.2:80 -r 192.168.3.40 -m

NAT的方式,增加指向各真实服务器.


五、测试

Client上用浏览器打开http://192.168.2.2地址,这时能看到真实服务的主页内容。反复按F5刷新,能看到不同的真实服务器的内容。说明集群已经建立成功。

我们也可以到Director服务器上,通过执行ipvsadm -L -n 来查看调度的状态,如下:

164925907.png


六、wrr算法的应用

上面用的是轮叫(rr)算法,每个Real server被调用的机会是均等的,假设Real server1Real server2的处理性能远比Real server3Real server4都强,用rr算法就不是很合理了。因为rr算法不会考虑权重(Weight),也就是优先级,所以需要换成wrr(加权轮叫)算法,此算法会考虑管理员设置的权重,权重高的Real server,会被优先选中,而被选中的频率也会多一些。

由于是接着上面的实验继续研究,所以可以有2种方法:①删除以前的内容重新开始 替换以前的内容。如果要删除,可以用ipvsadm -C 来清除所有配置,再按上面的步骤23做就可以了。下面采用替换的方法:


1.改变算法:

165004546.png


2.Real server1Real server2的权重高一些

165039888.png


权重值范围从0-65535之间,默认值为1,值越高,优先级就越高。如果值是0表示永远不被选中(在处理真是服务器故障和维护时很有用),如果只是65535表示永远只选中它。

改完后在Client 的浏览器里按F5刷新,director上可以看到Real server1Real server2被选中的频率是其他Real server5.倍值可以根据你工作的环境来合理设置。

165124168.png


注意:

当用rr算法时,即使设置了权重值,也不会起作用。只有用到wrr算法时,权重值才会发挥作用

可见ipvsadm -a 命令加入真实条目的先后顺序,并不能决定Real server 的优先级,而是靠权重来决定的。


七、lcwlc算法的应用

Lc是最少链接算法,此算法会检查哪台Real server 的链接请求最少,就优先选择它。所以当你的服务器硬件配置相同时,lc是个不错的选择,(个人感觉如果链接的起始数量一样的时候,rr算法没有区别)wlc是加权最少链接算法,此算法跟lc类似,只是增加了权重的考虑条件。能让管理员在指定的Real server,优先应用最少链接算法.rrwrr之间的关系式一种感觉。我们来实验一下:


1.改变算法:

165216626.png


2.改变Real server1Real server 2的权重高一些

165246810.png


改完后在Client 的浏览器里按F5刷新,director上可以看到Real server1Real server2被选中的频率是其他Real server5.倍值可以根据你工作的环境来合理设置。(好像跟wrr的效果差不多-_-!)

165318520.png

注意:

Lvs默认的算法时wlc

当用lc算法时,即便设置了权重值,也不会起作用.只用用到wlc算法时,权重才会发挥作用。

NAT方式小结:

原理比较好理解,配置相对简单些

如果Real server 20台以上时,Director将会是瓶颈


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章