选择显示字体大小

linux高性能计算集群-概述

本文是linux高性能集群系列文章的第一部分。这一部分介绍了集群系统的基本知识,并解释了两类主要的集群:高可用集群和高性能集群。本系列文章的后面几部分将围绕beowulf高性能集群展开。笔者先介绍beowulf集群的体系结构,然后陆续介绍beowulf集群的硬件、网络、软件和应用程序的部分的系统构成,最后集群系统管理软件。

1 集群

1.1 什么是集群

简单的说,集群(cluster)就是一组计算机,它们作为一个整体向用户提供一组网络资源。这些单个的计算机系统就是集群的节点(node)。一个理想的集群是,用户从来不会意识到集群系统底层的节点,在他/她们看来,集群是一个系统,而非多个计算机系统。并且集群系统的管理员可以随意增加和删改集群系统的节点。

1.2 为什么需要集群

集群并不是一个全新的概念,其实早在七十年代计算机厂商和研究机构就开始了对集群系统的研究和开发。由于主要用于科学工程计算,所以这些系统并不为大家所熟知。直到linux集群的出现,集群的概念才得以广为传播。

对集群的研究起源于集群系统的良好的性能可扩展性(scalability)。提高cpu主频和总线带宽是最初提供计算机性能的主要手段。但是这一手段对系统性能的提供是有限的。接着人们通过增加cpu个数和内存容量来提高性能,于是出现了向量机,对称多处理机(smp)等。但是当cpu的个数超过某一阈值,象smp这些多处理机系统的可扩展性就变的极差。主要瓶颈在于cpu访问内存的带宽并不能随着cpu个数的增加而有效增长。与smp相反,集群系统的性能随着cpu个数的增加几乎是线性变化的。图1显示了这中情况。



图1. 几种计算机系统的可扩展性

集群系统的优点并不仅在于此。下面列举了集群系统的主要优点:

  1. 高可扩展性:如上所述。
  2. 高可用性:集群中的一个节点失效,它的任务可以传递给其他节点。可以有效防止单点失效。
  3. 高性能:负载平衡集群允许系统同时接入更多的用户。
  4. 高性价比:可以采用廉价的符合工业标准的硬件构造高性能的系统。

1.2.1 集群系统的分类

虽然 根据集群系统的不同特征可以有多种分类方法,但是一般我们把集群系统分为两类:

2 高可用集群

2.1 什么是高可用性

计算机系统的可用性(availability)是通过系统的可靠性(reliability)和可维护性(maintainability)来度量的。工程上通常用平均无故障时间(mttf)来度量系统的可靠性,用平均维修时间(mttr)来度量系统的可维护性。于是可用性被定义为:

mttf/(mttf+mttr)*100%

业界根据可用性把计算机系统分为如下几类:

可用比例

(percent availability)
年停机时间

(downtime/year)
可用性分类
99.53.7天常规系统(conventional)
99.98.8小时可用系统(available)
99.9952.6分钟高可用系统(highly available)
99.9995.3分钟fault resilient
99.999932秒fault tolerant


表1. 系统可用性分类

对于关键业务,停机通常是灾难性的。因为停机带来的损失也是巨大的。下面的统计数字列举了不同类型企业应用系统停机所带来的损失。

应用系统每分钟损失(美元)
呼叫中心(call center)27000
企业资源计划(erp)系统13000
供应链管理(scm)系统11000
电子商务(ecommerce)系统10000
客户服务(customer service center)系统27000


表 2. 停机给企业带来的损失

随着企业越来越依赖于信息技术,由于系统停机而带来的损失也越拉越大。

2.2 高可用集群

高可用集群就是采用集群技术来实现计算机系统的高可用性。高可用集群通常有两种工作方式:

关于高可用集群的讨论很多,这里就不进行深入的阐述了。

3 高性能计算集群

3.1 什么是高性能计算集群

简单的说,高性能计算(high-performance computing)是计算机科学的一个分支,它致力于开发超级计算机,研究并行算法和开发相关软件。高性能计算主要研究如下两类问题:

顾名思义,高性能集群就是采用集群技术来研究高性能计算。

3.2 高性能计算分类

高性能计算的分类方法很多。这里从并行任务间的关系角度来对高性能计算分类。

3.2.1 高吞吐计算(high-throughput computing)

有一类高性能计算,可以把它分成若干可以并行的子任务,而且各个子任务彼此间没有什么关联。象在家搜寻外星人( seti@home -- search for extraterrestrial intelligence at home )就是这一类型应用。这一项目是利用inte.net上的闲置的计算资源来搜寻外星人。seti项目的服务器将一组数据和数据模式发给inte.net上参加seti的计算节点,计算节点在给定的数据上用给定的模式进行搜索,然后将搜索的结果发给服务器服务器负责将从各个计算节点返回的数据汇集成完整的数据。因为这种类型应用的一个共同特征是在海量数据上搜索某些模式,所以把这类计算称为高吞吐计算。所谓的inte.net计算都属于这一类。按照 flynn的分类,高吞吐计算属于simd(single instruction/multiple data)的范畴。

3.2.2 分布计算(distributed computing)

另一类计算刚好和高吞吐计算相反,它们虽然可以给分成若干并行的子任务,但是子任务间联系很紧密,需要大量的数据交换。按照flynn的分类,分布式的高性能计算属于mimd(multiple instruction/multiple data)的范畴。

3.3 linux高性能集群系统

当论及linux高性能集群时,许多人的第一反映就是beowulf。起初,beowulf只是一个著名的科学计算集群系统。以后的很多集群都采用 beowulf类似的架构,所以,实际上,现在beowulf已经成为一类广为接受的高性能集群的类型。尽管名称各异,很多集群系统都是beowulf集群的衍生物。当然也存在有别于beowulf的集群系统,cow和mosix就是另两类著名的集群系统。

3.3.1 beowulf集群

简单的说,beowulf是一种能够将多台计算机用于并行计算的体系结构。通常beowulf系统由通过以太网或其他网络连接的多个计算节点和管理节点构成。管理节点控制整个集群系统,同时为计算节点提供文件服务和对外的网络连接。它使用的是常见的硬件设备,象普通pc、以太网卡和集线器。它很少使用特别定制的硬件和特殊的设备。beowulf集群的软件也是随处可见的,象linux、pvm和mpi。

本文的以后几部分将详细介绍beowulf集群系统的硬件、网络、软件和应用体系结构。

3.3.2 beowulf集群和cow集群

象beowulf一样,cow(cluster of workstation)也是由最常见的硬件设备和软件系统搭建而成。通常也是由一个控制节点和多个计算节点构成。cow和beowulf的主要区别在于:

  1. cow中的计算节点主要都是闲置的计算资源,如办公室中的桌面工作站,它们就是普通的pc,采用普通的局域网进行连接。因为这些计算节点白天会作为工作站使用,所以主要的集群计算发生在晚上和周末等空闲时间。而beowulf中的计算节点都是专职于并行计算,并且进行了性能优化。它们采用高速网(myr.net或gig.net)上的消息传递(pvm或mpi)进行进程间通信(ipc)。
  2. 因为cow中的计算节点主要的目的是桌面应用,所以它们都具有显示器、键盘和鼠标等外设。而beowulf的计算节点通常没有这些外设,对这些计算节点的访问通常是在管理节点上通过网络或串口线实现的。
  3. 因为连接cow中计算节点的通常是普通的局域网,所以cow上的高性能应用通常是象seti@home 这样的simd的高吞吐计算。而beowulf无论从硬件、网络和软件上都对需要频繁交换数据的mimd应用做了特别的优化。

3.3.3 mosix集群

实际上把mosix集群放在高性能集群这一节是相当牵强的,但是和beowulf等其他集群相比, mosix集群确实是种非常特别的集群,它致力于在linux系统上实现集群系统的单一系统映象ssi(single system image)。mosix集群将网络上运行linux的计算机连接成一个集群系统。系统自动均衡节点间的负载。因为mosix是在linux系统内核中实现的集群,所以用户态的应用程序不需要任何修改就可以在mosix集群上运行。通常用户很少会注意到linux和mosix的差别。对于他来说, mosix集群就是运行linux的一台pc。尽管现在存在着不少的问题,mosix始终是引人注目的集群系统。



  


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons