LVS和F5,在负载均衡领域已经是争锋相对了。那么都是做服务器负载均衡这方面的产品,到底他们有什么差异和特点呢。现在,我们来看看这个作者的文章,这篇文章语言很风趣,对两款产品的剖析很很到位,在此推荐给大家共通赏析。
F5全称大约是这个样子:F5-BIG-IP-GTM全球流量管理器.是一家叫F5Networks的公司开发的四~七层交换机,软硬件捆绑.据说最初用BSD系统,现在是LINUX;硬件是Intel的PC架构,再加周边的网络和专用加速设备.当然要提提售价,都是几十万RMB的身价.这宝贝是用于对流量和内容进行管理分配的设备,也就是负载均衡.从名字就能看出来:BIG-IP.外部看来是一个IP,内部可却是几十台应用服务器.表现为一个虚拟的大服务器.所以我才说:好大一个IP.
LVS=Linux Virtual Server。是俺们中国人,一个叫章文嵩的博士推创开发出来的,他的web:http://zh.linuxvirtualserver.org/。IBM网站的资料:集群的可扩展性及其分布式体系结构(4)
博士关于LVS和F5的对比:
关于和F5的差别,很难一句话说明白,都是做负载均衡的设备。
F5虽然也是基于BSD系统修改的(据说***的基于Linux了),但重要的交换部分,则是通过专门的交换芯片实现的(类似有了专门的图像处理芯片,就可以省去大量的CPU对图像处理的运算),这样他的性能就不会很依赖于主机的操作系统的处理能力。F5上负载均衡大多是基于NAT/SNAT,也可以实现Proxy,但用的较少,做为一个上市公司,F5自然在产品化程度上做的很好,无论配置管理方便性、灵活性,性能和稳定性上都比较好。
LVS在NAT模式下,和F5的功能基本上是一样的,但毕竟LVS是纯粹的软件,性能是依赖于主机的运算能力的。而且,LVS是开源的项目,不应该和一个商业产品来比较,人家那是卖钱的,有很多人来维护和开发,而LVS一直是章博士义务来维护开发的,想要更好的功能,就需要有更多的人参与进来才行。说的相当透彻了.DNS轮询是做负载均衡最简单有效的实现方法,各方面代价都极低.货好便宜量又足.缺点就是由于没有检测机制,不够均衡,容错反应时间长.国内门户用这个技术的很多,配合squid有很好的效果.当然,不做负载均衡,直接从多个ISP拉几根线,分别提供服务是最原始的方法.
F5功能介绍:
1.多链路的负载均衡和冗余
与互联网络相关的关键业务都需要安排和配置多条ISP接入链路以保证网络服务的质量,消除单点故障,减少停机时间。多条ISP接入的方案并不是简单的多条不同的广域网络的路由问题,因为不同的ISP有不同自治域,所以必须考虑到两种情况下如何实现多条链路的负载均衡:
内部的应用系统和网络工作站在访问互联网络的服务和网站时如何能够在多条不同的链路中动态分配和负载均衡,这也被称为OUTBOUND流量的负载均衡。互联网络的外部用户如何在外部访问内部的网站和应用系统时也能够动态的在多条链路上平衡分配,并在一条链路中断的时候能够智能地自动切换到另外一条链路到达服务器和应用系统,这也被称作为INBOUND流量的负载均衡。
F5的BIG-IPLC可以智能的解决以上两个问题:对于OUTBOUND流量,BIG-IPLC接收到流量以后,可以智能的将OUTBOUND流量分配到不同的INTERNET接口,并做源地址的NAT,可以指定某一合法IP地址进行源地址的NAT,也可以用BIG-IPLC的接口地址自动映射,保证数据包返回时能够正确接收。对于INBOUND流量,BIG-IPLC分别绑定两个ISP服务商的公网地址,解析来自两个ISP服务商的DNS解析请求。BIG-IPLC不仅可以根据服务器的健康状况和响应速度回应LDNS相应的IP地址,还可以通过两条链路分别与LDNS建立连接,根据RTT时间判断链路的好坏,并且综合以上两个参数回应LDNS相应的IP地址。
2.防火墙负载均衡
考虑到绝大多数的防火墙只能达到线速的30%吞吐能力,故要使系统达到设计要求的线速处理能力,必须添加多台防火墙,以满足系统要求。然而,防火墙必须要求数据同进同出,否则连接将被拒绝。如何解决防火墙的负载均衡问题,是关系到整个系统的稳定性的关键问题。F5的防火墙负载均衡方案,能够为用户提供异构防火墙的负载均衡与故障自动排除能力。典型的提高防火墙处理能力的方法是采用“防火墙三明治"的方法,以实现透明设备的持续性。这可满足某些要求客户为成功安全完成交易必须通过同一防火墙的应用程序的要求,也能够维护原来的网络安全隔离的要求。F5标准防火墙解决方案如图所示:
3.服务器负载均衡
对于所有的对外提供服务的服务器,均可以在BIG-IP上配置VirtualServer实现负载均衡,同时BIG-IP可持续检查服务器的健康状态,一旦发现故障服务器,则将其从负载均衡组中摘除。BIG-IP利用虚拟IP地址(VIP由IP地址和TCP/UDP应用的端口组成,它是一个地址)来为用户的一个或多个目标服务器(称为节点:目标服务器的IP地址和TCP/UDP应用的端口组成,它可以是internet的私网地址)提供服务。因此,它能够为大量的基于TCP/IP的网络应用提供服务器负载均衡服务。根据服务类型不同分别定义服务器群组,可以根据不同服务端口将流量导向到相应的服务器。BIG-IP连续地对目标服务器进行L4到L7合理性检查,当用户通过VIP请求目标服务器服务时,BIG-IP根椐目标服务器之间性能和网络健康情况,选择性能***的服务器响应用户的请求。如果能够充分利用所有的服务器资源,将所有流量均衡的分配到各个服务器,我们就可以有效地避免“不平衡"现象的发生。利用UIE+iRules可以将TCP/UDP数据包打开,并搜索其中的特征数据,之后根据搜索到的特征数据作相应的规则处理。因此可以根据用户访问内容的不同将流量导向到相应的服务器,例如:根据用户访问请求的URL将流量导向到相应的服务器。