基本体系结构
---- 1.机群系统一般结构
----机群(cluster)系统是互相连接的多个独立计算机的集合,这些计算机可以是单机或多处理器系统(PC、工作站或SMP),每个结点都有自己的存储器、I/O设备和操作系统。机群对用户和应用来说是一个单一的系统,它可以提供低价高效的高性能环境和快速可靠的服务。
----机群系统包括下列组件:
高性能的计算结点机(PC、工作站或SMP)。
具有较强网络功能的微内核操作系统。
高效的网络/交换机(如千兆位以太网和Myrinet)。
网卡(NICs)。
快速传输协议和服务。
中间件层,其中包括某些支持硬件,如数字存储通道、硬件分布共享存储器及SMP技术;应用,如系统管理工具和电子表格;运行系统,如软件分布共享存储器和并行文件系统;资源管理和调度软件等。
并行程序设计环境与工具,如编译器、语言环境、并行虚拟机(PVM)和消息传递接口(MPI)等。
应用,包括串行和并行应用程序。
---- 2.组建机群系统的需求和功能
----机群组建时应考虑下面的需求和功能:
较高带宽的网络,以支持通信需求;
低延迟的通信机制;
支持高带宽的多点传送通信方式;
自动恢复网络和结点错误的能力;
标准的低级原语,支持通信、同步和时序;
异构的远程过程调用,以隐藏体系结构、协议和系统的不同性;
实时性能监视器;
可靠的批处理工作调度程序;
分布应用程序开发工具;
支持传统的高级语言进行异构计算;
能够开发工作站机群的应用程序;
新的系统管理工具;
发展标准化,以保护软件投资。
---- 3.机群系统与其他系统的比较
----一个典型机群系统和其他类型系统的对比可参看下表。
基本类型
----机群系统可以按照应用或结构进行分类。
----1.按应用目标
----可分为面向科学计算型或面向关键任务应用型:
高性能机群(high performance cluster);
高可用性机群(high availability cluster)。
----2.按组成机群的处理机类型
PC机群;
工作站机群;
SMP(对称多处理器)机群。
----3.按处理机操作系统
Linux机群,如Beowulf;
Solaris机群,如Berkeley NOW;
NT机群,如HPVM;
AIX机群,如IBM SP2;
数字VMS(虚拟存储机)机群;
HP-UX机群;
微软Wolfpack机群。
----4.按处理机的配置
同构型机群:所有结点拥有近似的构造和相同的操作系统;
非同构型机群:所有结点拥有不同的构造和不同的操作系统。
----5.按处理机的位置和数量
组机群,结点数量为2~99,通过SANs(系统级网络),如Myrinet,机群实际上装入一个机箱中或存在一个范围之内;
部门机群,结点数量为几十或几百;
企业机群,结点数量为几百。
----6.按构筑机群的方式
专用机群;
非专用机群。
----极高的性能价格比使专用机群深受欢迎。
专用机群
----专用机群一般由一组同构的处理机组成(有时也有异构情况),通常安装在一个机房内,或者将主板等安装在一个机柜的各机箱中(商业机群常用这种方式),或像图中那样简单地把PC机堆砌在机架上(Piles of PC)。在这种机群中,每个处理机都是专用的、无属主的,由系统管理员统一管理,用户可通过前端机进行访问,用户无需知道机群的详情,就像使用MPP机一样,易于配置和管理,不受外界干扰,通信可靠且延迟小,适合于面向加速比的并行任务和面向吞吐量批处理作业。专用机群具有相对结构和管理简单、易于扩展等特点,用途极广。
----专用机群的互联结构通常有以下两种方式:
----I/O方式 包括普通用LAN、FDDI、ATM等网络连接和共享磁盘连接两种方式。
----共享存储器方式 包括全局共享存储器方式和分布式共享存储器方式。分布式存储器指没有一个集中的存储器,由各处理机内一部分存储器通过软件机制形成。
----1994年夏,美国的研究人员建成了第一个Beowulf机群,它由16个DX4处理机组成。1997年,又推出了16个基于PⅡ的机群,只需花费5万美元却具有每秒10亿次的浮点运算能力,而购买具有相同能力并行机的投资数却是它的10倍。 Berkeley的NOW系统也是较早的工作站机群,由上百个Sun Ultra工作站组成,集成到19 英寸机箱中,可使用Myrinet、ATM和终端集中器等多种互联手段,每个结点自带512K缓存、128M内存及2个2.3G硬盘。
----此外,各大公司推出的商业专用机群还有很多,如DEC 的VMS机群和TruCluster、惠普的Apollo 9000机群、IBM的Sysplex、Sun的Solaris MC 等。
----在国内,曙光公司最新推出了基于NT的天潮系列机群产品,是采用分布式存储的可扩展机群体系。其结点处理器为Intel PⅡ和PⅢ,通过千兆位以太网互联,扩展性好,结点可根据不同的应用,动态地分为多个结点池,如可用两个结点作为服务器、四个结点运行数据库、其他结点用于计算等,结点数量可灵活配置。应用范围包括:
----科学计算 支持PVM和MPI,使用优化的BLAS库;事务处理 在线事务处理(OLTP),如电子商务、证券交易和在线分析处理(OLAP);并行数据库 支持Oracle、DB2等分布式数据库应用;
----网络服务器 运行各种Internet服务。
非专用机群
----非专用机群是由分散互联的处理机或在网上寻找到的
----空闲处理机组成的机群,这些处理机可能分属于不同的个人、组织或单位。据资料统计,一般计算机系统平均使用率仅为30%左右,有的空闲率竟达91%,而许多桌面网络工作站和微机的CPU利用率都小于10%,因此,人们自然想到要利用这些闲散的CPU处理能力,这被称为CPU周期窃取。
----通常,网络上计算单元都是拥有者各自孤立地使用其拥有的计算单元,一般处于下列状态:
处于空闲或等待状态,如夜间;
文档编辑工作,包括收发E-mail、阅读文档和信息等;
开发工作,包括编辑、编程、编译、调试等;
完成某种定时、守候服务和功能;
运行计算型的程序。
----所谓窃取CPU周期就是要窃取上述前四类处理机的CPU 周期给最后一类工作用。显然,被窃取CPU周期的处理机包括空闲的处理机和CPU负载较轻的处理机两类。
----非专用机群地理上分布于不同的所有者,由异构系统组成,大部分通过以太网连接,适用于企业级局域网范围,技术难度要高于专用机群。工作站的主人与需占用工作站资源运行程序的远程用户之间存在着矛盾,前者希望与工作站快速交互,而后者只关心能否利用所有的共享CPU来快速运行程序。机器的所有者必须具有参加机群的动机,这意味着他们相信贡献他们的资源是有意义的。但是,这些所有者不希望在他们工作时或他们的系统过于饱和时,受到其他干扰,一个解决的策略是允许所有者退出机群。目前,国际上正在形成一种计算资源的买卖市场,以刺激资源拥有者加入网上机群。此外,由于当前网络通信速度和质量的瓶颈所限及由通信竞争造成的网络不确定性的存在,对非专用机群技术提出了更高的要求,如对进程迁移、负载平衡等技术的需求。但此类系统最为贴近普通用户,可以充分利用网上无穷无尽的资源,而组建投资几乎可忽略不计。可以预见,随着网络瓶颈问题的缓解,非专用机群必然是极有发展前途的一种计算形式。
----下面介绍一个非专用计算的实例。
----Condor系统 (http://www.cs.wisc.edu/condor/)是一个较典型的非专用系统,由美国Wisconsin大学研制,它最初是建立在Unix系统之上的分布批处理系统。它的核心实现方式为使用位于工作站池中的空闲资源来得到高吞吐量计算。用户可以从工作站池中的任何一台机器提交任务,系统将自动从Condor池中查找最合适的空闲机运行任务,它利用将大型计算任务派至远程空闲机执行的方式,把空闲处理机的CPU资源分配给其他用户,从而实现负载的共享。
----1.Condor系统的特点
----(1) Condor是一个组建非专用机群的软件包,它自动寻找并分配空闲工作站,使用户作业可远程执行,实现任务负载共享机制,提高系统资源利用率,缩短作业响应时间。
----(2) Condor完全在操作系统核外的用户空间实现。使用 Condor时,不需要进行特殊的程序设计。
----(3) 它使用集中式信息收集和任务分配机制,系统监视局域网中工作站的负载情况,将处于空闲状态的机器加入动态资源缓冲区中,需要CPU资源的用户可以申请获得空闲机器。空闲处理机的定位由中央管理机完成。
----(4) Condor通过本身的远程系统调用机制,来确保远程运行机器上的文件系统和其他机器特征与最初提交任务的机器看起来是一致的。
----(5) Condor提供了检查点机制,用于实现进程迁移、负载平衡和容错。
----(6) 当任务被派至远程执行时,此任务使用的是原机器的执行环境,Condor保证这个任务不会使用远程机器文件系统,确保参与处理机的系统安全。
----(7) 工作站的拥有者对自己的工作站拥有绝对控制权,任务执行时实行本地用户主人优先原则,即有本地任务运行时,中止当前的远程执行而执行本地任务。
----2.Condor系统工作原理
----机群中一台处理机被指定为中央管理机,上面运行两个守护进程Negotiator和Collector,它们负责收集各机器负载及任务队列信息,并负责空闲处理机的分配。其他所有机器均运行两个守护进程Schedd和Startd。Schedd负责维护任务队列及更新中央管理机保存的任务队列信息,当本地结点有未完成的任务时,需与中央管理机协商,以获得空闲机资源;Startd负责周期性地检查本地结点负载状态并更新中央管理机的负载信息表,当本地结点被指定为外来任务服务时,Startd还负责启动并管理该任务。另外还有一个Shadow进程运行在源处理机,一个Starter进程运行在远程处理机中,它们负责远程任务的执行。
----用户激活提交程序并提交任务,形成任务描述文件、数据结构等,送调度信息到用户处理机上,Schedd送调度信息到位于中央管理机上的 Negotiator,接收到这个信息或调度周期性时间来到时,Negotiator从机群处理机列表中获得各处理机信息,包括各处理机工作负载和任务队列等。机群列表信息由Collector负责从各处理机的Schedd和Startd中获得并周期性更新。
----获得各处理机信息后,Negotiator首先确定各处理机的优先权,处理机的优先权随等待排队中的任务数增加而增加,随已提交到它的任务数和正运行的任务数(包括本地运行的)增加而减少,Negotiator每次从具有最高优先权的处理机开始查询,如果该处理机有足够的启动Shadow的交换空间,则该处理机把等待任务所需的 OS、结构和任务大小提供给Negotiator。Negotiator选择满足要求的处理机为止,其条件包括CPU和键盘是空闲的、满足任务标识的需求、没有其他Condor分配的任务正在运行等,满足这些条件的处理机为远程服务机。Negotiator重复这个过程,直到为所有的等待任务找到合适的处理机或没有发现合适的处理机,然后,Negotiator送回更新的处理机优先权记录等信息到Collector。
----Condor的任务传输过程和执行过程由中央处理机上 Negotiator、任务源处理机上的Schedd和Shadow、服务处理机上的Startd和Starter进程之间协调完成,Negotiator送一个带有服务处理机名的Permission消息到Schedd,Schedd派生一个Shadow进程和远程服务机上的Startd协调,负责以后的远程执行工作。Startd根据 Shadow的传输要求再评估当前的工作负载和存储空间等运行环境是否发生了变化,如没有变化,则Startd报告给中央管理机,Startd创建两个通信端口并送端口号到原处理机的 Shadow。Startd接到Shadow的确认后派生出Starter进程,它继承了通信端口负责远程任务的执行,然后通知中央管理机上的Collector工作负载的变化,Startd此后继续跟踪Starter 的状态变化、挂起信号、检查点,当有本地任务需求时腾出处理机空间,以保证本地用户的执行。