科技时代新浪首页 > 科技时代 > 滚动新闻 > 正文

计算机群集技术概述 一


http://www.sina.com.cn 2006年09月11日 18:46 ChinaByte

  随着计算机技术的发展和越来越广泛的应用,越来越多的依赖于计算机技术的应用系统走进了我们的工作和生活。在给我们带来方便和效率的同时,也使得各行各业对于计算机技术的依赖程度越来越高。尽管随着计算机技术以日新月异的速度发展,单台计算机的性能和可靠性越来越好,但还是有许多现实的要求是单台计算机难以达到的。看看下面的例子:

  • 某银行需要一台服务器来储存财务数据。他要求这台计算机即使是在机房坍塌的情况下也能够被各个业务网点访问。

  • 某科研单位需要用一台超级计算机来模拟气象变化。他们需要有相当于200GHz奔腾4处理器的浮点运算能力。

  • 某网络公司刚刚起步。他们想要一台现在5万人民币以下,但以后可以逐步升级到具有巨型计算机能力的服务器来运行数据库。

  在这些情况下,往往需要将多台计算机组织起来进行协同工作来模拟一台功能更强大解决问题。这种技术称为集群技术。目前应用最为广泛的集群计算技术可以分为三大类:高可用性集群技术、高性能计算集群技术和高可扩展性集群技术。下面我们将对这三种集群技术进行一下简单的介绍。

  高可用性集群技术

  高可用性集群,英文原文为High Availability Cluster, 简称HA Cluster,是指以减少服务中断(宕机)时间为目的的服务器集群技术。

  随着全球经济的增长,世界各地各种各样的组织对IT系统的依赖都在不断增加,电子贸易使得商务一周七天24小时不间断的进行成为了可能。新的强大的应用程序使得商业和社会机构对日常操作的计算机化要求达到了空前的程度,趋势非常明显,我们无时无刻不依赖于稳定的计算机系统。

  这种需求极速的增长,使得对系统可用性的要求变得非常重要,许多公司和组织的业务在很大程度上都依赖于计算机系统,任何的宕机都会造成严重的损失,关键IT系统的故障可能很快造成整个商业运作的瘫痪,每一分钟的宕机都意味着收入、生产和利润的损失,甚至于市场地位的削弱。

  Industry Business Operation Average Cost per Hour of Downtime

  Financial Brokerage operations $6.5 million

  Financial Credit card/sales authorization $2.6 million

  Media Pay-per-view television $1.1 million

  Retail Home Shopping (TV) $113.0 thousand

  Retail Home catalog sales $90.0 thousand

  Transportation Airline reservation $89.5 thousand

  根据1998年Garter Group的统计我们可以看出,我们需要可以不间断使用的计算机系统,并且这种对高可用性系统和技术的需求还会不断的增长。

  可用性是指一个系统保持在线并且可供访问,有很多因素会造成系统宕机,包括为了维护而有计划的宕机以及意外故障等,高可用性方案的目标就是使宕机时间以及故障恢复时间最小化,可以容忍的宕机时间明确的说明方案的全面性、复杂性和成本

  Percent Available downtime/Year Classification

  99. 5 3.7 days Conventional

  99. 9 8.8 hours Available

  99. 99 52.6 minutes Highly Available

  99. 999 5.3 minutes Fault Resilient

  99. 9999 32 seconds Fault Tolerant

  为了提高整个系统的可用性,除了提高计算机各个部件的可靠性以外,一般情况下都会采用集群的方案。

  所谓集群,就是共同为客户机提供网络资源的一组计算机系统。而其中的每一台提供服务的计算机,我们称之为节点。当一个节点不可用或者不能处理客户的请求时,该请求将会转到另外的可用节点来处理,而这些对于客户端来说,它根本不必关心这些要使用的资源的具体位置,集群系统会自动完成。

  集群中节点可以以不同的方式来运行,这要看它们是如何设置的。在一个理想的两个节点的集群中,两个服务器都同时处于活动状态,也就是在两个节点上同时运行应用程序,当一个节点出现故障时,运行在出故障的节点上的应用程序就会转移到另外的没有出现故障的服务器上,这样一来,由于两个节点的工作现在由一个服务器来承担,自然会影响服务器的性能。

  针对这种情况的解决方案是,在正常操作时,另一个节点处于备用状态,只有当活动的节点出现故障时该备用节点才会接管工作,但这并不是一个很经济的方案,因为你不得不买两个服务器来做一个服务器的工作。虽然当出现故障时不会对性能产生任何影响,但是在正常运行时的性能价格比并不太好。

  从上面的工作方式出发,我们可以把集群分为下面几种(特别是两节点的集群)

  主/主 (Active/active)

  这是最常用的集群模型,它提供了高可用性,并且在只有一个节点在线时提供可以接受的性能,该模型允许最大程度的利用硬件资源。每个节点都通过网络对客户机提供资源,每个节点的容量被定义好,使得性能达到最优,并且每个节点都可以在故障转移时临时接管另一个节点的工作。所有的服务在故障转移后仍保持可用,但是性能通常都会下降。

  主/从(Active/passive)

  为了提供最大的可用性,以及对性能最小的影响,Active/passive模型需要一个在正常工作时处于备用状态,主节点处理客户机的请求,而备用节点处于空闲状态,当主节点出现故障时,备用节点会接管主节点的工作,继续为客户机提供服务,并且不会有任何性能上影响。

  混合型(Hybrid)

  混合是上面两种模型的结合,只针对关键应用进行故障转移,这样可以对这些应用实现可用性的同时让非关键的应用在正常运作时也可以在服务器上运行。当出现故障时,出现故障的服务器上的不太关键的应用就不可用了,但是那些关键应用会转移到另一个可用的节点上,从而达到性能和容错两方面的平衡。

  高性能计算集群技术

  高性能计算集群,英文原文为High Performance Computing Cluster, 简称HPC Cluster,是指以提高科学计算能力为目的计算机集群技术。 HPC Cluster是一种并行计算(Parallel Processing)集群的实现方法。并行计算是指将一个应用程序分割成多块可以并行执行的部分并指定到多个处理器上执行的方法。目前的很多计算机系统可以支持SMP(对称多处理器)架构并通过进程调度机制进行并行处理,但是SMP技术的可扩展性是十分有限的,比如在目前的Intel架构上最多只可以扩展到8颗CPU。为了满足哪些"计算能力饥渴"的科学计算任务,并行计算集群的方法被引入到计算机界。著名的"深蓝"计算机就是并行计算集群的一种实现。

  由于在某些廉价而通用的计算平台(如Intel+Linux)上运行并行计算集群可以提供极佳的性能价格比,所以近年来这种解决方案越来越受到用户的青睐。比如壳牌石油(Shell)所使用的由IBM xSeries服务器组成的1024节点的Linux HPC Cluster是目前世界上计算能力最强的计算机之一。

  HPC Cluster向用户提供一个单一计算机的界面。前置计算机负责与用户交互,并在接受用户提交的计算任务后通过调度器(Scheduler)程序将任务分配给各个计算节点执行;运行结束后通过前置计算机将结果返回给用户。程序运行过程中的进程间通信(IPC)通过专用网络进行。

  HPC Cluster中使用的服务器通常可以分为用户节点、管理节点、存贮节点和计算节点四种。它们的角色分别是:

  用户节点:

  提供用户界面的计算机。它从用户那里接受任务,运行调度器(在本地或独立的"控制节点"上)将任务分派到其它计算机,并将运算结果返回给用户。

  管理节点:

  提供管理功能的计算机。它应该能够使管理员从这一计算机对集群中的任意一台计算机进行监视和操作,并处理集群中所有计算机的日志和报警信息。

  存贮节点:

  提供存贮共享的计算机。为了使任务可以并行执行,每台执行任务的计算机必须能够访问同样的数据。存贮节点通过网络共享(NFS)或其它方式来确保数据访问的同步。

  计算节点:

  真正执行计算任务的计算机。集群中的大部分计算机都是这种类型。 一个HPC Cluster中通常同时使用三个网络,它们分别是IPC网络,管理网络和存贮访问网络。根据具体的使用需求和选择的节点特性,这些网络可以使用多种介质和协议。

  IPC网络:

  用于并行任务执行时的进程间通信的专用网络,通常要求延迟小,带宽大。

  管理网络:

  用来收集集群信息、监视集群计算机和执行维护任务的网络。

  存贮访问网络:

  用来访问公用存贮的专用网络。

  在实现一个HPC Cluster时,通常需要考虑以下问题:

  • 应用程序是计算能力饥渴型(CPU+内存)还是IO(磁盘/网络)饥渴型?

  --HPC Cluster只适合解决计算能力饥渴型的问题

  • 应用程序是否可以"并行化"?

  --HPC Cluster对于可以并行化的应用程序最为有效

  • 怎样才能提高"计算密度"?

  --所谓的"计算密度"是指在单位空间中所能提供的计算能力(所能摆放的计算机台数)。没有很好的计划和组织,一台1000+节点的超级计算机就可能成为一场超级麻烦。更高的计算密度不仅意味着更小的体积,也以为着更加简便的管理和更少的投资。1U的机架式服务器应当是首选。然后应该考虑的是:哪种服务器需要更少的电缆?哪种计算机用作计算节点可以省去额外的控制部件(如连接键盘、鼠标的控制台切换器)?哪种计算节点可以提供更高的计算效能?

  • 如何安装和管理所有的计算机?

  --计算机的可管理性在HPC Cluster的实现中至关重要。在同时面对数十甚至成百上千的计算机的情况下,管理员能否简单快速地执行维护工作常常成为影响集群 发挥效用的关键因素。

  在集群计算的需求确定之后,选择各种组件构成Cluster的实现方案常常十分困难,而且经常由于组件之间难以协同工作而导致Cluster的实现失败,或者最终构造了一个难以使用又难以管理的Cluster。针对这种情况,应该优先考虑选择一体化的HPC产品。这些产品通常会在厂商的工厂中进行组装和测试,然后按机架的方式交付客户使用。比如在目前的IBM所提供的1300 HPC Cluster,它基于Intel架构的硬件平台和Linux

操作系统,使用与"深蓝"计算机上同样的集群计算技术,在计算密度、集群管理等方面都比较出色。

爱问(iAsk.com)



论坛】【收藏此页】【 】【多种方式看新闻】【下载点点通】【打印】【关闭




科技时代意见反馈留言板 电话:010-82628888-5595   欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

Copyright © 1996 - 2006 SINA Inc. All Rights Reserved

新浪公司 版权所有