LVS_NAT实现过程...

LVS-NAThtml

是经过改变数据包中的目的IP地址,来实现调度的.算法


拓扑图:apache

wKioL1NkXtyRXCgJAAIOjbp8AVw534.jpg

说明:vim

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

lClient与路由器之间用vmnet1链接;服务器

l路由器与Director之间用vmnet2链接;负载均衡

lDirectoreth1Real Nvmnet5tcp

全部服务器均为:Centos6.5_X86_64 内核版本为2.6.32-431.el6.x86_64ide


步骤:工具

1、Install software:

1.安装ipvsadm(用户空间工具)

配置好本地yum,使用本地yum源来安装此工具

[root@Director ~]# yum install -yipvsadm


2、配置各主机的IP

主机

IP

网关

Client

172.16.41.2

F0/0

Route

F0/0:172.16.41.1---vm1

F0/1:192.168.2.1---vm2


Director

eth0:192.168.2.2(VIP)---vm2

eth1:192.168.3.1(DIP)---vm5

F0/1

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方式作负载均衡,因此Realserver N 都要指向Director做为网关.


3、配置Realserver N的主页服务

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

wKiom1NkWiHxl_JpAAA2d69dhMA258.jpg

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


4、配置Director

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

wKioL1NkWhSinQu-AAAjjuwexos234.jpg

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


1.开启路由转发:

[root@Director ~]# vim/etc/sysctl.conf

wKiom1NkWj7yjAzxAAAaWFPk5RI929.jpg

[root@Director ~]# sysctl -p

此步很是重要!!!


2.增长虚拟服务

[root@Director ~]# ipvsadm -A -t 192.168.2.2:80 -s rr

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


3.增长真实服务器

ipvsadm -a -t192.168.2.2:80 -r 192.168.3.10 -m

ipvsadm -a -t192.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 -t192.168.2.2:80 -r 192.168.3.40 -m

NAT的方式,增长指向各真实服务器条目.


5、测试

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


咱们也能够到Director服务器上,经过执行ipvsadm -L-n 来查看调度的状态,以下:

wKioL1NkWivzpDB-AADaJqrpPrM596.jpg


能够看出,4Realserver,被调用的频率是均等的,由于用了rr算法.

而且用的是NAT方式实现调度.(Masq表明NAT方式)


6、wrr算法的应用

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

因为是接着上面的实验继续研究,因此能够有2种方法:①删除之前的内容从新开始②替换之前的内容.若是要删除,能够用ipvsadm -C来清除全部配置,再按上面的步骤23作就能够了.下面采用替换的方法:

1.改变算法:

wKiom1NkWlbCQmLDAAA3bfps3zg495.jpg

2.改变Real server1Realserver2的权重高一些

wKiom1NkWlaCxzGIAABhH9yehec458.jpg

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


改完后在Client 的浏览器里按F5刷新,director上能够看到Realserver1Real server2被选中的频率是其余Real server5.倍值能够根据你工做的环境来合理设置.

wKioL1NkWlWgSRaSAADzInRelJQ830.jpg


注意:

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

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


7、lcwlc算法的应用

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

1.改变算法:

wKiom1NkWoDwGgeuAAA7R4a4fus809.jpg

2.改变Realserver1Real server 2的权重高一些

wKioL1NkWlby8T39AADQXVaBlnU471.jpg

改完后在Client 的浏览器里按F5刷新,director上能够看到Realserver1Real server2被选中的频率是其余Real server5.倍值能够根据你工做的环境来合理设置.(好像跟wrr的效果差很少-_-!)

wKiom1NkWoDxNKctAADUqnaOqFw214.jpg


注意:

Lvs默认的算法是wlc

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


NAT方式小结:

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

若是Real server 5-10台以上时,Director将会是瓶颈....

相关文章
相关标签/搜索