Linux HPC Cluster
HPC(高性能计算)虽然已经有很多年的历史了,但是其普及程度一直不是很高。主要原因不外乎以下几点:
价格昂贵。相对较小的生产规模使得相关的部件成本极高,价格常常使用户望而却步。
不容易扩展。由于没有使用市面上通用的模块,HPC系统的扩展要么不容易在技术上实现,要么成本难以令用户接受。
对使用环境要求苛刻。过去,一套大的HPC系统可能需要像篮球场那么大的机房去安装,可以想见配套的建筑、电源、布线和散热措施的准备会有多么复杂和昂贵。
近年来,随着计算机技术的进步,一种新的HPC系统正迅速崛起,这就是使用运行Linux操作系统的Intel平台的计算机来构建HPC Cluster。这是一种分布式内存的HPC架构,针对上面提出的三个问题,它能够提供如下的好处:
由于使用Linux操作系统和通用的Intel平台,集群中的各个节点(计算机)的价格将会相对低廉;
由于使用通用的硬件平台和标准的网络组件,集群的扩展容易实现而且价格低廉;
不难看出,Linux HPC最大的优点是廉价!这一特点使得更多的”计算饥渴”的用户可以选择使用HPC系统。作为HPC技术最先进的公司,几年前IBM就已经帮助包括壳牌石油在内的许多客户建立了1000节点以上的Linux HPC系统,这些系统至今仍然在全世界最快速的计算机系统中占据着一席之地。
一个好的Linux HPC系统完全不会在任何方面逊色于其它的分布式内存HPC系统,但问题是想要构建一个好的Linux HPC系统事实上是很难的。请考虑以下这些问题:
您想要一个廉价的Linux HPC系统。您应该购买什么样的计算机来构成这个系统才能避免在实施和使用中的问题?
您有64台Intel平台的计算机来运行Linux系统。为了把它们组建成为一个HPC系统,您还需要购买哪些硬件设备?
为了放置这些硬件设备,您需要多少个标准机架和什么样的机房来安装?
为了将新的HPC系统整合到您的网络环境中,您需要多少个额外的IP地址?您应该怎样分配它们?
为了将新的HPC系统整合到您的网络环境中,您需要多少根网线?如果数目很多的话,您如何保证在安装的时候不会弄错?
您打算怎么为这些计算机安装系统?如果系统崩溃了,您又如何保证在最短的时间里让它们恢复运作?
您的应用程序打算使用什么并行API开发?
您打算使用什么样的程序调度机制和哪一个调度器?
您如何做到像管理一台计算机一样管理这个HPC Cluster?
LoadBalance(负载均衡)群集
负载均衡群集系统使应用程序处理负载或网络流量负载可以在计算机群集中尽可能平均地分摊处理。这样的系统非常适合于运行同一组应用程序的大量用户。每个节点都可以处理一部分负载,并且可以在节点之间动态分配负载,以实现平衡。对于网络流量也如此。通常,网络服务器应用程序接受了太多的入网流量,以致无法迅速处理,这就需要将流量发送给在其它节点上运行的网络服务器应用。还可以根据每个节点上不同的可用资源或网络的特殊环境来进行优化。在网站,电子邮件提供商,VOD(Video On Demand)方面有广泛的应用。
以下将介绍负载均衡群集。
什么是负载均衡群集?– 解释(定义,一般的框架结构,策略,哪些产品,技术区别,发展)
负载均衡群集就是带均衡策略(算法)的服务器群集。负载均衡群集在多节点之间按照一定的策略(算法)分发网络或计算处理负载。负载均衡建立在现有网络结构之上,它提供了一种廉价有效的方法来扩展服务器带宽,增加吞吐量,提高数据处理能力,同时又可以避免单点故障。
一般的框架结构如下图(以Web访问为例,其它应用类似)。后台的多个Web服务器上面有相同的Web内容,Internet客户端的访问请求首先进入一台服务器,由它根据负载均衡策略(算法)合理地分配给某个Web服务器。每个Web服务器有相同的内容做起来不难,所以选择负载均衡策略(算法)是个关键问题。下面会专门介绍均衡算法。
负载均衡的作用就像轮流值日制度,把任务分给大家来完成,以免让一个人过度劳累。但是与轮流值日制度不同的是,负载均衡是一种动态均衡,它通过一些工具实时地分析数据包,掌握网络中的数据流量状况,把任务理分配出去。对于不同的应用环境(如电子商务网站,它的计 算负荷大;再如网络数据库应用,读写频繁,服务器的存储子系统系统面临很大压力;再如视频服务应用,数据传输量大,网络接口负担重压。),使用的均衡策略(算法)是不同的。 所以均衡策略(算法)也就有了多种多样的形式,广义上的负载均衡既可以设置专门的网关、负载均衡器,也可以通过一些专用软件与协议来实现。在OSI七层协议模型中的第二(数据链路层)、第三(网络层)、第四(传输层)、第七层(应用层)都有相应的负载均衡策略(算法),在数据链路层上实现负载均衡的原理是根据数据包的目的MAC地址选择不同的路径;在网络层上可利用基于IP地址的分配方式将数据流疏通到多个节点;而传输层和应用层的交换(Switch),本身便是一种基于访问流量的控制方式,能够实现负载均衡。
到目前为止,针对网络负载均衡的产品主要有两大类:一是硬件;二是软件。硬件产品比软件产品运行得快但是价格较高。著名的产品有:3Com的智能网卡和DynamicAccess技术结合起来,不用在交换机上做任何设置,就可以完成分担任务;Cisco路由器通过对动态环路、旁路技术等功能的提供实践着负载均衡;Win2000中,专门集成了针对服务器群集的负载均衡软件;IBM的Web专用服务器和Network Dispatcher软件;Lotus的ICM;还有许多厂商都支持的链路聚集、高层交换……实现方法还在不断地花样翻新,充实着”负载均衡”的内容。
负载均衡系统的几种负载均衡算法(负载均衡策)
目前,基于均衡算法主要有三种:轮循(Round-Robin)、最小连接数(Least Connections First),和快速响应优先(Faster Response Precedence)。轮循算法,就是将来自网络的请求依次分配给集群中的服务器进行处理。最小连接数算法,就是为集群中的每台服务器设置一个记数器,记录每个服务器当前的连接数,负载均衡系统总是选择当前连接数最少的服务器分配任务。 这要比”轮循算法”好很多,因为在有些场合中,简单的轮循不能判断哪个服务器的负载更低,也许新的工作又被分配给了一个已经很忙的服务器了。快速响应优先算法,是根据群集中的服务器状态(CPU、内存等主要处理部分)来分配任务。 这一点很难做到,事实上到目前为止,采用这个算法的负载均衡系统还很少。尤其对于硬件负载均衡设备来说,只能在TCP/IP协议方面做工作,几乎不可能深入到服务器的处理系统中进行监测。但是它是未来发展的方向。
综上所述,负载均衡群集的使用是非常广泛的,它的核心内容是运用越来越科学的负载分配算法开发出软件或硬件,来实现负载的更加合理地分配。
怎么用?——举例说明,并包含需求分析
采用负载均衡群集的场合很多,本文将以Web/Ftp服务器群集这个典型的应用为例进行介绍。 互联网的出现使信息访问产生了质的飞跃,但随之而来的是Web流量的激增(高并发访问),由于涉及的信息量十分庞大,用户访问的频率也高,许多基于Web的大型公共信息系统(如电子图书馆、BBS、搜索引擎和远程教育等)需要在实时性和吞吐量方面都具有较高性能的Web服务器支持。一些热门的Web站点由于负荷过重而变得反应迟缓。如何提高Web服务器的性能和效率成为一个亟待解决的问题。
实际上,服务器的处理能力和I/O已经成为提供Web服务的瓶颈。如果客户的增多导致通信量超出了服务器能承受的范围,那么其结果必然是宕机。显然,单台服务器有限的性能不可能解决这个问题,一台普通服务器的处理能力只能达到每秒几万个到几十万个请求,无法在一秒钟内处理上百万个甚至更多的请求。显然,采用高性能的主机系统(小型机乃至大型计算机)是可行的。但是,除了其价格价格昂贵外,这种高速、高性能的主机系统,很多情况下也不能解决同时处理几万个并发。因为,高速主机系统只是对于复杂单一任务和有限的并发处理显得 高性能,而Internet中的Web服务器绝大多数处理是”简单任务”、高强度并发处理,因此,即便有大资金投入采用高性能、高价格的主机系统 ,也不能满足Web应用的需要。这就是利用Web服务器群集实现负载均衡的最初基本设计思想。
早期的服务器群集通常以主从方式(Active-Passive)备份。令服务运营商头疼的问题是:关键性服务器一般档次较高,花了两台服务器的钱却只能得到一台服务器的性能。随着LSANT(Load Sharing Network Address Transfer)技术的推出,这个问题得到了解决。多台服务器的IP地址被翻译成一个虚拟IP地址(VIP:Virtual IP),使得每台服务器均时时处于工作状态。若能将10台这样的服务器组成一个系统,并通过软件技术将所有请求平均分配给所有服务器,那么这个系统就完全拥有每秒钟处理几百万个甚至更多请求的能力。这样原来需要用小型机来完成的工作现由多台PC服务器就可以完成,这种弹性解决方案对投资保护的作用是相当明显的——既避免了小型机刚性升级所带来的巨大设备投资,又避免了人员培训的重复投资。同时,服务运营商可以依据业务的需要随时调整服务器的数量。至此形成了Web服务器群集的理论。
Web服务器群集的概念最早由伊利诺斯州大学(UIUC:University of Illinois at Urbana-Champaign)的超级计算应用中心(NCSA:National Center of Supercomputing Applications)提出并实现了一个原型系统”NCSA Scalable Web Server Cluster”, 它通过连接一组计算机对客户同时提供服务,实现分布负载,降低对用户请求的响应时间,并扩展Web服务器的应用。后来Berkeley的NOW小组、NSC和科罗拉多大学的Harvest小组、Cisco及IBM公司等也加入此行列,很快推出相应产品。如NCSA使用几台工作站构成可扩展并行Web服务器群,提供使用其浏览器软件Mosaic、服务器软件httpd的用户查询帮助信息和下载软件的服务器系统,采用轮循算法选择群集中某台计算机为当前访问请求服务;加州大学SWEB系统采用DNS转发技术实现服务器IP地址重定向(Yahoo 采用的就是这种方法);Inktomi公司利用NOW构造并行的HotBot检索引擎,因而系统具有成本低和扩展能力强的特点;此外,IBM公司也提出类似的可扩展并行Web服务器群集系统的设计方案。这些系统的成功表明Web 服务器群集是改善Web服务的一种有效解决方案,并且正在成为主流技术。
在Web负载均衡群集的设计中,网络拓扑被设计为对称结构。在对称结构中每台服务器都具备等价的地位,都可以单独对外提供服务。通过负载算法,分配设备将外部发送来的请求均匀分配到对称结构中的每台服务器上,接收到连接请求的服务器都独立回应客户的请求。 如下图所示。
Web服务器群集有如下特点:
高性能 :一个Web服务器群集系统由多台Web服务器组成,对外部而言,整个群集就如同一台高性能Web服务器,系统只有一个对外的网络地址(主机名或IP地址),所有的HTTP请求都发到这个地址上。系统中有专门的机制能够将这些请求按照一定原则分发到群集中的各台服务器上,让它们各自分担一部分工作。
可扩展性 它是采用同样的方法或技术高效率地支持较大规模系统的能力。Web服务器群集系统的组成结构和工作原理决定了它能够比较容易地达到较好的可扩展性,因为扩大系统规模非常容易,只要在网络中增加新的Web服务器计算机即可。
高可用性 Web服务器群集系统将会在各种商业应用领域中占有举足轻重的地位。商用系统最重视系统的可靠性和容错性,二者合在一起称为系统的可用性。常用的系统可用性指标有系统平均无故障时间、期望不间断工作时间及年平均故障率等。由于Web服务器群集系统中各台Web服务器之间相对独立,采用一些不太复杂的技术就能使Web服务器群集系统达到很高的可用性。一些商用产品中已经部分实现了这种技术。
此外,Web服务器群集系统还具有价格便宜、能够保护原有投资等特点。
目前比较成熟的产品主要有Cisco的LocalDirector、IBM的Network Dispatcher、HydraWEB的HydraWEB Dispatcher和RND的Web Server Director等等。这些产品的应用非常广泛,如Yahoo、Net Center和MSN都是用几百到几千台计算机组成Web 服务器群集来对外提供服务,它们使用了上述产品。
以下是对2个Web服务器群集产品的分析:
Scalable Web Server Cluster UIUC的NCSA Scalable Web Server Cluster是世界上第一个Web服务器群集系统。1994年,NCSA为了缓解其Web站点面临的大量用户访问的压力,把4台Sun工作站用FDDI连接起来组成一个群集,代替原有单台Sun工作站的Web服务器,对外提供Web服务。NCSA把这个系统称为Scalable Web Server Cluster,它几乎具备了现代Web服务器群集系统所具有的一切特征:用高速局域网连接多台Web服务器,通过并行处理提高系统的吞吐能力;整个系统只有一个网络地址; 通过一台动态DNS服务器实现请求分配,该DNS服务器对DNS请求采用轮循算法依次返回群集中各台Web服务器的IP地址,引导Client将HTTP请求发送到群集中不同的Web服务器上,以实现群集的负载均衡; 采用AFS(UNIX支持的分布式文件系统)将多台服务器上的文件系统组合成一个逻辑上单一的分布式文件系统,用来存储站点内容,使请求不论被分配到哪台Web服务器上都能得到完全相同的应答服务;系统在其中一台Web服务器发生故障时仍能正常工作,并支持在线增加或减少Web服务器的数量等。
Scalable Web Server Cluster是一个实验性的Web服务器群集系统,现代Web服务器群集系统和产品的大部分概念和方法均来源于它。
LocalDirector Cisco的LocalDirector是一种用来实现请求分配的设备,通过它可以组成Web服务器群集系统。LocalDirector有2个网络接口,一个用于连接Internet,另一个用于连接局域网中的Web服务器群集。
LocalDirector采用IP NAT(Network Address Transfer)技术,整个系统对外只有一个IP地址,通过IP地址变换将HTTP请求分配到群集中不同的Web服务器。群集中的各台Web服务器上存储的页面信息要求完全一致。LocalDirector在请求分配时实现了2种不同的负载均衡算法:最小连接数和快速响应优先,用户在配置LocalDirector时可以选择使用其中一种。此外,LocalDirector还支持动态改变群集规模的大小,即在不停机的情况下增加或减少服务器。
LocalDirector具有很强的吞吐能力,自身延迟也小,因而能够支持较大规模的系统,并且可以通过级联进一步扩大系统的规模。像IBM的Network Dispatcher、HydraWEB的HydraWEB Dispatcher和RND的Web Server Director等在结构和功能上与LocalDirector类似。值得一提的是,这些产品的价格基本上与一台普通的工作站相当,比大多数高性能计算机要低许多。
总 结:
负载均衡群集的应用提高了Web服务器、FTP服务器,邮件服务器和其它关键应用服务器的可用性和可伸缩性。单一计算机只能提供有限级别的服务器可靠性和可伸缩性。但是,通过将两个或两个以上高级服务器的主机连成群集,网络负载均衡就能够提供关键任务服务器所需的高可靠性和高性能。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
相关推荐
-
托管OpenStack私有云能够获得支持or单打独斗?
OpenStack私有云托管作为一种服务可以简化企业的部署和运营,并强调了云计算的优势,而非Linux的优化……
-
从零开始构建属于自己的Linux发行版
当你从头开始构建Linux,就可以充分和完整地了解Linux平台。Linux管理员在IT界内更神秘,因为他比其他任何IT专业人员都更了解计算机内部工作。
-
使用Red Hat或Debian包管理器简化Linux管理
Linux软件包管理使用的软件库,它提供了软件包的安装源。Red Hat和Debian的软件包管理器功能类似,但结构上的差异将影响Linux管理。
-
关于apt-get:非Linux管理员应该知道的那些事
Apt-get是广泛应用在Unix和Linux系统中的应用程序管理器,Windows和Linux管理员也可以受益于其功能。