四种负载均衡技术大比拼
Linux下 基于lvs的keepalived
http://pwind.iteye.com/blog/1008372
当前,无论在企业网、园区网还是在广域网如Internet上,业务量的发展都超出了过去最乐观的估计,新的应用层出不穷,即使按照当时最优配置建设的网络,也很快会感到吃不消。比如电子商务网站,服务器计算负荷会很大;对于读写频繁的应用,比如网络数据库,存储系统面临考验;传输量大的应用,比如视频服务,数据总是堵在网络接口上;访问量大的应用,路由器与防火墙易成瓶颈。想要消除这些瓶颈,升级设备、改变拓扑是“笨办法”,相对取巧一些的,就是采用负载均衡策略,用多个设备共同完成任务。
负载均衡实现的几种方法有:
■基于DNS的负载均衡,它是通过DNS服务中的随机名字解析来实现的,但不能够按照Web服务器的处理能力分配负载,无法完全解决现在网络中面临的问题:如单点故障问题,服务器资源不够用问题等。
■如果是基于IIS,Windows 2003 Server本身就带了负载均衡服务,但这一服务也只是轮流分配,可能会造成额外的网络问题。
■软件方式,通过一台负载均衡服务器进行,上面安装软件。这种方式比较灵活,成本相对也较低。但是软件负载均衡解决方案缺点比较多,因为每台服务器上安装额外的软件运行会消耗系统不定量的资源,越是功能强大的模块,消耗得越多,所以当连接请求特别大的时候,软件本身会成为服务器工作成败的一个关键;软件可扩展性并不是很好,受到操作系统的限制。三种LVS、DNS、URL重定向
■硬件方式,通过专门的负载均衡设备实现。直接在服务器和外部网络间安装负载均衡设备,这种设备我们通常称之为负载均衡器,对于流量的分配可以有多种策略,但基本上都是应用无关的,独立于操作系统。这种方式往往适合大流量、简单应用。
一般而言,硬件负载均衡在功能、性能上优于软件方式。因为它能有效地解决数据流量过大、网络负荷过重的问题。硬件方式更适用于大量设备、大访问量、简单应用。
![四种负载均衡技术大比拼](http://img.zdnet.com.cn/1/425/li3lKgDNnsbEs.jpg?1315456747&random=5863.875359734946)
由上图所示,通过应用负载均衡机,使应用服务超过了一台服务器只能为有限用户提供服务的限制,可以利用多台服务器同时为大量用户提供服务。当某台服务器出现故障时,负载均衡服务器会自动进行检测并停止将服务请求分发至该服务器,而由其他工作正常的服务器继续提供服务,从而保证了服务的可靠性。由于专门的设备完成专门的任务,独立于操作系统,整体性能得到大量提高,加上多样化的负载均衡策略,智能化的流量管理,可达到最佳的负载均衡需求。
根据图中所示高并发连接数的要求,选用梭子鱼负载均衡机340型号的路由模式进行安装,并采用2台梭子鱼340型号的负载均衡机进行堆叠部署,两台梭子鱼负载均衡机互为备份,并采用“心跳”技术实时监控伙伴设备是否实时可用,以提供秒级的故障切换,从而在负载均衡的同时,最大程度地提高web服务系统的高可用性和可靠性。
梭子鱼负载均衡机结合快速稳定的4层负载均衡解决方案,配置千兆网口和内置IPS功能,提供:
·TCP / UDP服务负载均衡
·IP保持或者不间断服务
·服务失败自动恢复服务器机制
·所有负载均衡服务均加载负载入侵检测功能
·通过web界面操作,无比方便
·兼具速度、可信度和良好的支持
·最低端的型号都能够支持100个后端服务器
·不按照许可证点数收费
·开放的API支持,对ISP特别有价值
除了强大的负载均衡功能之外,梭子鱼负载均衡机还内置入侵检测(IPS)系统。即使有人已经设法突破了现有的安全防护设施,梭子鱼内嵌IPS功能也可以防止客户的价值不菲的服务器遭受系统漏洞的攻击。梭子鱼负载均衡最好的性能是能够在短短几分钟内完成安装并运行,不需要花费昂贵的实施顾问费用。
当前,无论在企业网、园区网还是在广域网如Internet上,业务量的发展都超出了过去最乐观的估计,新的应用层出不穷,即使按照当时最优配置建设的网络,也很快会感到吃不消。比如电子商务网站,服务器计算负荷会很大;对于读写频繁的应用,比如网络数据库,存储系统面临考验;传输量大的应用,比如视频服务,数据总是堵在网络接口上;访问量大的应用,路由器与防火墙易成瓶颈。想要消除这些瓶颈,升级设备、改变拓扑是“笨办法”,相对取巧一些的,就是采用负载均衡策略,用多个设备共同完成任务。
负载均衡实现的几种方法有:
■基于DNS的负载均衡,它是通过DNS服务中的随机名字解析来实现的,但不能够按照Web服务器的处理能力分配负载,无法完全解决现在网络中面临的问题:如单点故障问题,服务器资源不够用问题等。
■如果是基于IIS,Windows 2003 Server本身就带了负载均衡服务,但这一服务也只是轮流分配,可能会造成额外的网络问题。
■软件方式,通过一台负载均衡服务器进行,上面安装软件。这种方式比较灵活,成本相对也较低。但是软件负载均衡解决方案缺点比较多,因为每台服务器上安装额外的软件运行会消耗系统不定量的资源,越是功能强大的模块,消耗得越多,所以当连接请求特别大的时候,软件本身会成为服务器工作成败的一个关键;软件可扩展性并不是很好,受到操作系统的限制。三种LVS、DNS、URL重定向
■硬件方式,通过专门的负载均衡设备实现。直接在服务器和外部网络间安装负载均衡设备,这种设备我们通常称之为负载均衡器,对于流量的分配可以有多种策略,但基本上都是应用无关的,独立于操作系统。这种方式往往适合大流量、简单应用。
一般而言,硬件负载均衡在功能、性能上优于软件方式。因为它能有效地解决数据流量过大、网络负荷过重的问题。硬件方式更适用于大量设备、大访问量、简单应用。
由上图所示,通过应用负载均衡机,使应用服务超过了一台服务器只能为有限用户提供服务的限制,可以利用多台服务器同时为大量用户提供服务。当某台服务器出现故障时,负载均衡服务器会自动进行检测并停止将服务请求分发至该服务器,而由其他工作正常的服务器继续提供服务,从而保证了服务的可靠性。由于专门的设备完成专门的任务,独立于操作系统,整体性能得到大量提高,加上多样化的负载均衡策略,智能化的流量管理,可达到最佳的负载均衡需求。
根据图中所示高并发连接数的要求,选用梭子鱼负载均衡机340型号的路由模式进行安装,并采用2台梭子鱼340型号的负载均衡机进行堆叠部署,两台梭子鱼负载均衡机互为备份,并采用“心跳”技术实时监控伙伴设备是否实时可用,以提供秒级的故障切换,从而在负载均衡的同时,最大程度地提高web服务系统的高可用性和可靠性。
梭子鱼负载均衡机结合快速稳定的4层负载均衡解决方案,配置千兆网口和内置IPS功能,提供:
·TCP / UDP服务负载均衡
·IP保持或者不间断服务
·服务失败自动恢复服务器机制
·所有负载均衡服务均加载负载入侵检测功能
·通过web界面操作,无比方便
·兼具速度、可信度和良好的支持
·最低端的型号都能够支持100个后端服务器
·不按照许可证点数收费
·开放的API支持,对ISP特别有价值
除了强大的负载均衡功能之外,梭子鱼负载均衡机还内置入侵检测(IPS)系统。即使有人已经设法突破了现有的安全防护设施,梭子鱼内嵌IPS功能也可以防止客户的价值不菲的服务器遭受系统漏洞的攻击。梭子鱼负载均衡最好的性能是能够在短短几分钟内完成安装并运行,不需要花费昂贵的实施顾问费用。
集群的概念容易和一些概念(SMP 、NUMA、MPP、分布处理)相混淆,其主要区别在资源被共享和复制的级别不同。它们是按SMP、NUMA、MPP、集群、分布处理从最紧密到最松散的排列。
SMP(多处理系统):这种系统是在一台计算机里有多个CPU,CPU之间的地位是平等的,它们共享内存空间和I/O设备。其工作方法是由操作系统负责将任务分解成多个并发进程,然后让其在不同的CPU上运行。
NUMA(非统一内存存取):这种系统可以让多处理计算机的CPU比SMP更高效地共享本地内存,CPU可以更快速地存取单一的内存区域,不过如需要也可以用间接方式存取其他区域的内存,这种方法是让某些CPU在给定范围的物理内存中有更大的优先使用权。
MPP(巨型并行处理):这种系统的节点都有自己的CPU,并有自己的专有资源。此种结构相对独立,但各个节点一般没有完全存取I/O的能力。
集群:集群系统是由独立的计算机组成,但有控制管理工具统一管理。
分布处理:它是比我们要构筑的集群系统更松散的连接,一般是任务在不同的地方完成,没有可以作为整体管理的单一实体。
以上的聚合方式有紧有疏,它们都有自己的适用范围,这里就不多说了,有兴趣可自己找些资料看,这里只是想让大家了解它所处的位置。
实现负载均衡的方法
集群的目的是共享和高效地利用资源,提供大型运算,提供负载均衡分配请求压力以及出现故障时能够进行切换实现高可用性。
限于篇幅,本文只对负载均衡的实现做些介绍(针对TurboLinux Cluster Server)。通过对相关软件的分析,实现集群负载的功能是通过流量管理实现的,具体有这样几种实现方法:直接路由(Direct forwarding)、网络地址转换(NAT)、隧道技术(Tunneling)。
直接路由(Direct forwarding)
当参与集群的计算机和作为控制管理的计算机在同一个网段时可以用此法,控制管理的计算机接收到请求包时直接送到参与集群的节点。优点是返回给客户的流量不经过控制主机,速度快开销少。
网络地址转换(NAT)
这种方法可能大家较熟悉,地址转换器有能被外界访问到的合法IP地址,它修改来自专有网络的流出包的地址,外界看起来包是来自地址转换器本身,当外界包送到转换器时,它能判断出应该将包送到内部网的哪个节点。优点是节省IP地址,能对内部进行伪装;缺点是效率低,因为返回给请求方的流量经过转换器。
隧道技术(Tunneling)
这种方式是在集群的节点不在同一个网段时可用的转发机制,是将IP包封装在其他网络流量中的方法,为了安全的考虑,应该使用隧道技术中的VPN,也可使用租用专线。
集群所能提供的服务是基于TCP/IP的Web服务、Mail服务、News服务、DNS服务、Proxy服务器等等,下面我们将就具体的产品TurboLinux Cluster Server 来实现一个进行负载均衡集群系统,用于提供Web和FTP的服务。
四台服务器的负载均衡实例
所提供的服务:Web、FTP。
系统的实现目的:做一个较完善负载均衡的系统,以便能用到其中的较多的功能。
采用设备状况:使用四台服务器,其中3台装TurboLinux Cluster Server,1台安装Windows 2000 Sever。
系统安装
1.在两台服务器上安装TurboLinux, apache和wu-ftpd也要安装,因为集群要提供这种服务,安装完后重启,挂接光驱在目录/mnt/cdrom下,执 行./TLCS-install,然后按提示完全安装。
2.在一台服务器上安装Windows 2000 Server,要安装Internet Information Server 5.0。
系统配置
1.设置各台服务器的IP地址、子网掩码、路由等,调通网络,将一台TurboLinux服务器设置 成DNS服务器,使其能够正向解析和反向解析。服务器名此例为 pc1,域为test.com。
2.配置Cluster Server。执行Turbolinux clusteradmin,设置情况如下(注:箭头连接的是选单选项,箭头所指为下级选单,最后冒号后为设置情况)。
ClusterServer Configuration→Cluster Services→Application Stability Agents:
(1)http为默认的服务,不用设置
(2)ftp----/usr/lib/ftpAgent
ClusterServer Configuration→Cluster Services→Service Settings:
(1)http,80:TCP,sticky
(2)ftp,21:TCP,ftp
ClusterServer Configuration→Servers Configuration:
(1) pc1 (pc1.test.com),direct,ping
(2) pc2 (pc2.test.com),direct,ping
(3) pc3 (pc3.test.com),direct,ping
(4) pc4 (pc4.test.com),direct,ping
ClusterServer Configuration→Advance Traffic Managers:
(1)Advance Traffic Manager System: pc1.test.com
(2)Advance Traffic Manager Setting: 默认值
ClusterServer Configuration→Virtual Severs:
(1)主机为:pc1.test.com
(2)sendmail:master@pc1.test.com
(3)Server pool name: ServerGroup1
ClusterServer Configuration→Globle Settings:
网络设置:netmask 255.255.255.0
配置集群各节点
因为TurboLinux Cluster Server 本身能被工具自动同步,所以只需配置Windows 2000 Server:
开始→设置→控制面板→添加新硬件→下一步→添加/排除设备故障→添加新设备→否,我想从列表选择硬件→其他设备→Microsoft:Microsoft Loopback Adapter→完成。
桌面上右键单击“网上邻居”→属性→TCP/IP→设置IP地址、缺省网关,子网掩码(注:先设成:255.255.255.0)。
开始→运行→regedit→找到注册表中跟Microsoft Loopback Adapter相关的项,将子网掩码改成:255.255.255.255。
配置系统以便运行合适的服务、并配置适合控制管理器管理的配置,以便可在控制管理器中使用。
在管理选单中执行内容同步
选tlcs_content_sync,输入密码,将复制控制管理计算机中的服务内容。
在管理选单中执行设置同步
选tlcs_config_sync,输入密码,将复制控制管理计算机中的设置。
现在已经可以进入运行状态,可将客户端连接在服务器的交换机上,客户端可以请求Web和FTP服务,需要查看运行情况可以用控制台从https://pc1.test.com:910管理。
在计算机技术中集群负载平衡是自成体系的,目前它是一个热门技术也是一个高端应用,Internet/Intranet中使用集群负载平衡方案的地方十分广泛,尤其是大中型网站都难脱离这种技术,直接路由(Direct forwarding)、网络地址转换(NAT)、隧道技术(Tunneling)都会因需要而被采用。它在网络中的作用和被人们重视程度都是很高的,如果你也感兴趣的话,不妨也来试试。