Beyond All Only Zest==包子
Home Articles Download Blog
 

关于layer 7负载均衡的一些
Date: 2007-03-03 17:06
Views:0

最近比较关注7层负载均衡(load balance,下称lb)的东西。其实就是针对web应用的了。  

为什么要做layer 7lb?因为ddos越来越容易。当然lb只能对抗ddos对系统资源的损耗,如果ddos流量耗尽了带宽,我们就没办法了。不过我不得不对ddos爱好者提一个友善的建议,不要D有钱人,不要D有权人,更不要D有钱又有权的人,D人之前先摸清楚别人的低,否则肯定吃不了兜着走。不说废话了。

l7lb有还是有一些的,按照他们的工作区间来分,分成用户空间的和内核空间的。显然,工作在内核空间的更高效,为什么?因为这个是所谓的零拷贝,zero copy。是这样的,系统收到了数据,先从接收缓冲区到用户缓冲区,再从用户缓冲区到发送缓冲区,这一切换需要耗费大量资源和时间(这个其实也是看别人这么说的,我没有用程序象这样操纵过数据,不懂最好不要装懂:p),也有说用户空间和内核空间之间的数据拷贝的,具体想清楚了解零拷贝的话,google去吧。反正不管怎么样,走内核的话,少了两次数据拷贝,这个节省显然是庞大的,这个也是我确信的。lvs作者也有在他的manual中这么说到。所以,我们在选型的时候,必须找一个工作在内核的调度器(load balancer)。

用户空间的:haproxy,lighttpd,apache mod_proxy_balance,ZXTM
对于用户空间的,我兴趣不是十分之大,虽然他们的用处也是比较大的,特别是想省事的时候,关于他们的效率,日后我会仔细测试的。不得不提的是ZXTM,zeus出的调度器,不知道怎么样呢,反正不少人推荐,并且zues有一套比较完整的东西监控web service,挺喜欢的,不过要钱的,呵呵。
内核空间的:lvs,l7sw。lvs不用说了,让中国人引以为荣的程序,这个应该是第一个进入官方linux kernel的东西,似乎也是唯一一个进入linux kernel的东西。他的ipvsadm的-p参数可以解决session的问题,遗憾的是貌似现在开发lvs项目的大大们比较忙,lvs里的很多东西都还处于2005年的那个时代,部分东西只能用在2.4内核,十分遗憾的事情,说不准这个东西到底会走到怎么样。至于l7sw,后起之秀,我比较看好他,虽然这个东西肯定不成熟,显然会有不少问题,虽然我还没发现。但是看作者更新的频率,蛮有冲劲的。lvs和l7sw都说到了tcp splicing和tcp handoff。结合词义蛮好理解的。下面有一个文章描述的十分详细,和大家分享一下。
http://www.ibm.com/developerworks/cn/linux/cluster/cluster_system/balance/part6/index.html
无可否认,术业有专攻,别人在2003年都玩的很遛的东西,我现在还拜读的津津有味,就像一个在沙漠里的渴汉遇到了琼浆 :)
有兴趣的话,从这里读起
http://www.ibm.com/developerworks/cn/linux/cluster/cluster_system/balance/part1/index.html
感谢此文的作者林凡

[addfavorite] [more] [top] [print] [close window]  
username: check code: 
content:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
 §new comment: