2010年(20)
分类: LINUX
2010-03-23 17:17:22
LVS(4层)--------网络第四层
Nginx(7层)------------也就是网络应用层
负载均衡(负载均衡就是一个数据包重路由的过程):
lvs负载据均衡有三种:1.NAT(网络地址转换)
2.DR(直接路由)
3.IP隧道(IP TUN)
IP负载均衡主要有:
• VS/NAT(Virtual Server via Network Address Translation)通过网络地址转换将一组服务器构成一个高性能的、高可用的虚拟服务器。
• VS/DR(Virtual Server via Direct Routing)通过直接路由实现虚拟服务器
• VS/TUN (Virtual Server via IP Tunneling) 通过IP隧道实现虚拟服务器
F5(硬件)-------------F5价格高昂,有硬件交换芯片,所以吞吐量比PC SERVER做出来的LVS要大一些,相对于后端的服务器,前端的负载均衡的稳定性更重要一些。
************F5负载均衡器简明配置手册: http://blog.chinaunix.net/u1/36243/showart_396490.html
-----------------------------------------------------
Nginx负载均衡集群:
nginx负载均衡和 lvs负载均衡的比较分析
lvs的优势:
• 1、抗负载能力强
• 2、配置性低
• 3、工作稳定
• 4、无流量
• 5、基本上能支持所有应用
nginx的优势:
• 1、nginx工作在网络的7层,所以它可以针对http应用本身来做分流策略,比如针对域名、目录结构等,相比之下lvs并不具备这样的功能,所以 nginx单凭这点可利用的场合就远多于lvs了;但nginx有用的这些功能使其可调整度要高于lvs,所以经常要去触碰触碰,由lvs的第2条优点看,触碰多了,人为出问题的几率也就会大。
• 2、nginx对网络的依赖较小,理论上只要ping得通,网页访问正常,nginx就能连得通,nginx同时还能区分内外网,如果是同时拥有内外网的节点,就相当于单机拥有了备份线路;lvs就比较依赖于网络环境,目前来看服务器在同一网段内并且lvs使用direct方式分流,效果较能得到保证。另外注意,lvs需要向托管商至少申请多一个ip来做Visual IP,貌似是不能用本身的IP来做VIP的。要做好LVS管理员,确实得跟进学习很多有关网络通信方面的知识,就不再是一个HTTP那么简单了。
• 3、nginx安装和配置比较简单,测试起来也很方便,因为它基本能把错误用日志打印出来。lvs的安装和配置、测试就要花比较长的时间了,因为同上所述,lvs对网络依赖比较大,很多时候不能配置成功都是因为网络问题而不是配置问题,出了问题要解决也相应的会麻烦得多。
• 4、nginx也同样能承受很高负载且稳定,但负载度和稳定度差lvs还有几个等级:nginx处理所有流量所以受限于机器IO和配置;本身的bug也还是难以避免的;nginx没有现成的双机热备方案,所以跑在单机上还是风险较大,单机上的事情全都很难说。
• 5、nginx可以检测到服务器内部的故障,比如根据服务器处理网页返回的状态码、超 时等等,并且会把返回错误的请求重新提交到另一个节点。目前lvs中 ldirectd也能支持针对服务器内部的情况来监控,但lvs的原理使其不能重发请求。重发请求这点,譬如用户正在上传一个文件,而处理该上传的节点刚好在上传过程中出现故障, nginx会把上传切到另一台服务器重新处 理,而lvs就直接断掉了,如果是上传一个很大的文件或者很重要的文件的话,用户可能会因此而恼火。
• 6、nginx对请求的异步处理可以帮助节点服务器减轻负载,假如使用apache直接对外 服务,那么出现很多的窄带链接时apache服务器将会占用大量内存而不能释放,使用多一个nginx做apache代理的话,这些窄 带链接会被nginx挡住,apache上就不会堆积过多的请求,这样就减少了相当多的内存占用。这点使用squid也有相同的作用, 即使squid本身配置为不缓存,对apache还 是有很大帮助的。lvs没有这些功能,也就 无法能比较。
• 7、nginx能支持http和email(email的功能估计比较少人用),lvs所支持的应用在这点上会比nginx更多。
----------------------------------------------------------
高可用性集群
• Redhat Piranha
• Redhat RHCM
• Suse Heartbeat-ldirectord
• Suse Heartbeat