集群的可扩展性及其分布式体系结构(2)体系结构比较与可扩展性研究(下) |
级别: 初级 林凡 (iamafan@21cn.com), 辰讯软件工作室研发部经理 2001 年 11 月 01 日 这篇文章是《集群的可扩展性及其分布式体系结构》第二篇的下半部分,将继续介绍常见的几类并行计算体系结构、可扩展与单一系统映象、集群的重要指标等内容。<!----><!----><!----> 首先,我们先来看一下计算机系统体系结构发展的几个主要类型。每种体系结构的差别并不大,关键在于互联技术、结点的复杂度和耦合程度的不同。在集群计算和分布式系统中,以下这三种体系结构是比较具有代表性的。
我们最终希望,我们所面对的并行集群,不管适用于密集计算还是高可靠商用环境,都要有良好的可扩展性,可接受的单位计算成本,可预期的技术前景。因此,设计一个计算系统特别是并行环境下的集群系统,时时刻刻别忘了可扩展性这一核心的要求。 但我们从另外一个角度来看待并行计算集群的时候,就会有不同的结论了。其实,对于最终用户和编程人员来说,并行计算机模型的重点在于他们所看到的计算机是什么样的,也就是我们通常所称的SSI(单一系统映像)。 如果作为编程者,当然希望自己所面对的是一台机器而不是一堆机器,一台机器意味着单一的寻址空间,无须处理消息传递或者远程调用这样复杂的编程技术。那么,在这样的观点下,具有单一地址空间的集群系统就具备了这个能力;或者使用者希望拥有一个巨大的一致的(只有一个根目录)的文件系统,那就需要在文件系统层次上进行SSI的工作。 但从用户的角度来看,他并不关心你是如何处理诸如地址空间、消息传递这些看起来和他毫无关系的东西,用户只关心他用的是一台独立的计算机系统,这样可以减少他使用的复杂度,不需要在多个系统之间来回切换,可以方便的管理他所面对的"一台机器"。那么,提供管理层次和使用层次的SSI就是必要的了。 所以,并行计算模型就是由使用者(包括程序员、用户)看到的一个抽象并行计算机,和冯氏结构计算机相似,能够进行顺序计算(其背后可能是并行的运算程序)和并行计算任务的计算机系统。 按照处理器、内存、OS以及互联方法来进行并行系统的分类,在参考彼此可扩展性和单一系统映像的这两个方面,我们能够得到下面的图形: 集群、分布式系统、MPP、SMP的体系结构比较上图中,节点可以是一台PC、一台工作站或者SMP服务器。节点的复杂性指的是软件和硬件的能力。一般来说,集群节点要比MPP复杂一些,因为每个集群结点都有独立的操作系统和外围设备,而MPP中的结点可能仅仅是操作系统的一个微内核。 SMP服务器的节点复杂性和PC以及商用集群相比,相对高一些。拿最常见的x86构架SMP服务器来说吧,不但主板、总线技术都远远比PC复杂。而且为了支持企业级应用环境,SMP还需要支持更多的高端外设,提供存储设备的热拔插能力,内存数据纠错等等高端技术,这些技术的应用势必增加SMP的复杂程度。 MPP通常是指采用无共享资源结构的大型并行处理系统,一般包括几百个处理器节点,节点一般运行一个不完整的OS(也叫微内核),结点之间通过高速开关互联。这样的专有系统往往具有比较好的可扩展能力,但是在技术换代上受限于专有系统本身。 SSI作为集群实现的一大要素,其范围包括了单一的应用层次、子系统,运行时系统、操作系统内核以及硬件层次。或者说,SSI不是绝对的,是一个相对的概念,取决于用户从什么样的角度看待系统,是IP层面上还是内存空间上或者是文件系统的SSI,这都由最终的应用环境决定。 到了分布式系统的这个范畴,系统往往提供多个系统映象,呈现出一个多入口、多映象的系统集合,每个节点具有很高的自治能力。而MPP、SMP则以紧凑的方式提供相对单一的计算资源,如同一个巨大的工作站。在分布式系统中,除了使用同构结点外,还根据需要常常使用异构的平台,这势必增加分布式系统的设计难度和管理复杂性。其他特性见下表:
对于这四类系统来说,SMP的SSI程度最高,它是在所有的层次上提供SSI,即共享一切系统资源:单一地址空间、单一的文件系统、单一的操作系统内核等等,看起来和一台单独的单CPU没什么两样。MPP仅仅在某些应用层和系统层支持SSI。集群提供的SSI程度更低,一般只能满足某一两个方面的SSI要求。而对于分布式系统,比如网格,其SSI的实现程度就低的多了。通过类似JAVA这样的跨平台工具,分布式系统或许可以提供某一定义下的SSI能力,比如单一的JAVA运行空间。
对于集群,我们可以得到这样的一个简单的概念:集群是全体计算机(也叫节点)的集合,这些计算机由高性能网络或者LAN物理的相连。典型的情况下,每个计算机结点可以是一台SMP一台工作站或者是最普通不过的PC。最重要的是,这些各自独立的计算机要能够同心协力一起工作,而且在"外"看上去是单一的集成的计算机资源。 如果只是简单的用LAN把集群连接起来,就称之为集群,是不可能具备实用价值的。考察集群很重要的是看待集群的几个性能、功能指标。 能用性:由于集群中的每个节点都是运行传统平台,故用户能在熟悉和成熟的环境中开发和运行他们的程序。通用平台提供编程环境、操作界面、控制监控系统的工具甚至是GUI,允许用户们运行他们原来在工作站上的大量程序而无需修改。所以,我们可以把集群系统看作一个大型的工作站,作为使用者,和平时操作没什么两样,只是性能提高了许多。 可用性:可用性是指一个系统从事生产性使用的时间百分比(MTBF平均无故障时间)。传统的整体系统,比如主机系统和容错系统依靠昂贵的定制设计来实现高可用性。集群不使用定制组件,而使用廉价的商品化组件以提供高可用性,而高度的设备冗余则是集群最常使用的方式:
可扩展性:一个集群的计算能力随结点增多而增加。其次,集群的可扩展性是群体可扩展性。因为是松耦合的结构,集群能扩展至几百个结点,而对于SMP来讲,要超过几十个结点就非常困难。 在SMP中,共享存储器以及存储器总线是系统性能的瓶颈。相同的程序集运行于集群时,不存在存储器瓶颈。每个结点可在一个结点上执行,充分使用局部存储器。对于这类应用,集群可提供更高的总体存储器带宽和减少存储器时延。集群的局部磁盘也聚集为大磁盘空间,可容易地超过集中式RAID磁盘空间。增强的处理、存储和I/O能力使得集群只要使用经良好开发的、如PVM或MPI那样的并行软件包,就可求解大型应用问题。 SMP不具有高可扩展能力,因为它使用竞争总线和集中式共享存储器。单操作系统映像及共享存储器是两个潜在的单失效点,会降低SMP的可用性。 容错系统有极高的可用性,但扩展的代价昂贵。而MPP的扩展能力要更强一些,而且可以保持比较好的SSI能力。目前,集群处于相对折衷的位置,将向着更高性能更高可用性的方向扩展。 性能价格比:集群能成本有效的获取上述优点。传统的超级计算机以及MPP的成本很易达到几千万美元。与此相比,具有相同峰值性能的集群价格则要低1到2个数量级。集群大量的采用商品化部件,他们的性能和价格遵循摩尔定律,从而使集群的性能/成本比的增长速率远快于MPP。 可用性与可伸缩性的综合比较 设计一个具有良好的扩展集群系统,就要兼顾上述的方方面面。 首先尽量使集群的各个组成部件相互独立,以使独立的局部扩展成为可能,并且保证向后兼容的特性。还要尽可能采用商品化的组件,包括OS、互联网络、主机系统甚至是应用编程环境。最终实现:算法独立于体系结构、应用独立于平台、语言独立于机器、结点独立于网络。 其次就是选择合适的实现模型来进行集群系统的设计任务,尽量使用流行的开放的标准件,以降低单位成本。 最后,在设计的时候还要尽量平衡性能,避免系统里出现的"木桶原理"(众所周知,木桶的装水量受限于木桶最短的那块木板);此外在考虑可用性的时候也要注意单点失效的问题,以免实际应用中因为小的错误导致整个系统不可用。 那么,让我们来看一下经过一番讨论之后,我们所期望的集群是什么样子的。
我们之所以花费大量的篇幅介绍集群的几个重要的体系结构概念,是因为这些概念构成了集群的最终整体。最后就让我们来看一下,综合了上述的方方面面后,我们可以得到以下几点关于集群的要素:
|
发表评论
-
集群的可扩展性及其分布式体系结构(2)-上
2007-09-21 16:11 1252... -
转 集群的可扩展性及其分布式体系结构(1)
2007-09-21 16:09 1216... -
网格计算 —— 下一代分布式计算
2007-09-21 16:01 1472... -
负载均衡
2007-09-21 15:09 1130实 ... -
转 Java语言的特点
2007-09-12 11:51 1802... -
转载 谈谈Unicode编码
2007-09-12 11:49 953这是一篇程序员写给程序员的趣味读物。所谓趣味是指可以比较轻松地 ... -
转载 字符串编码(charset, encoding/decoding)问题原理
2007-09-12 11:47 1142转载:http://www.iteye.com/article ... -
转载 Java 理论与实践: 正确使用 Volatile 变量
2007-09-12 11:42 637原文:http://www.ibm.com/developer ...
相关推荐
### 集群系统的可扩展性及其分布式体系结构 #### 概述 本文档探讨了集群系统中的可扩展性问题及其分布式体系结构的设计与实现。文档指出,在当前信息技术快速发展背景下,集群技术作为提高系统性能、增强可靠性的...
本文内容包括:可扩展的并行计算体系结构可扩展与单一系统映象集群的重要指标结束语参考资料这篇文章是《集群的可扩展性及其分布式体系结构》第二篇的下半部分,将继续介绍常见的几类并行计算体系结构、可扩展与单一...
作者将侧重就集群的可扩展性及体系结构分析、原理论、集群的考量、具体的分析案例(LVS、beowulf、MOSIX)、集群高可用技术、分布式文件系统等等各个方面为您更加深入的介绍集群系统。本文是第一篇。主要阐述集群...
Linux集群体系结构是一种高效、可扩展且高可用的计算架构,它通过将多个独立的Linux服务器连接在一起,形成一个统一的资源池,从而提供比单个服务器更高的性能和可靠性。这种技术广泛应用于大规模数据处理、高并发...
MDETL体系结构在保持分布式ETL灵活性和吞吐率的同时,通过分布式执行ETL流程,实现了系统的可扩展性和负载平衡性能的提升。该体系结构还降低了硬件成本,提高了ETL执行效率的稳定性和高效性,进而实现了分布式ETL的...
相比于其他体系结构系统,Google集群系统在成本效益、可扩展性和维护性方面具有显著优势。然而,它也存在一些局限性,比如在处理特定类型的工作负载时可能不如定制化的高性能计算集群。 #### 八、结论 Google集群...
【路由器可扩展性问题研究】是973计划“新一代互联网体系结构理论研究”项目的重要课题,主要关注如何解决路由器在面对快速发展的网络环境时所面临的挑战。在当前的网络环境中,路由器需要处理的链路速度不断增长,...
这种技术可以提高系统的可扩展性、可靠性和性能。 Linux 操作系统是分布式集群技术的基础,Linux 的发展历史、Linux 和 Windows 的对比和优势、Linux 的常见版本等内容将为读者提供了 Linux 的基础知识。 Linux 的...
以上内容详细介绍了分布式系统的基本概念、特性、透明性类型、开放性、互操作性、可移植性、可扩展性、扩展技术以及体系结构样式和模型。这些知识点对于理解和掌握分布式系统的原理与范型至关重要。
本学习资料包专注于Linux集群的相关知识,包括集群系统的可扩展性、分布式体系结构以及相关工具的使用。 1. **集群系统的可扩展性**: 集群系统的可扩展性是指通过添加更多的硬件资源(如服务器和存储)来提升系统...
此外,“集群系统的可扩展性及其分布式体系结构.pdf”和“Looking Back over 15 Years of Supercomputing Experience.PDF”这两篇文献将深入探讨集群的可扩展性和分布式架构的设计,以及过去十五年超级计算的实践...
性能测试和实际项目验证表明,基于FastCGI的多进程、分布式集群构建的WebGIS系统相比其他模式的WebGIS具有更高的效率、更强的可扩展性和更好的稳定性。这些特点是通过减少单点故障、提高并发处理能力、以及增强系统...
相对于传统的集中控制方式,分布式实现技术具有更好的可扩展性、更高的处理能力和更低的延迟,更能适应大规模网络环境的需求。 在实际应用中,选择哪种实现技术取决于具体网络环境、设备资源以及性能需求。通常,...
2019年期末总结中,我们探讨了分布式系统的各个方面,包括其定义、特点、透明性、策略与机制的区别、可扩展性、集群系统与网格的差异、云计算的应用场景、软件和系统体系结构,以及点对点网络的结构。 1. **分布式...
此外,书中还着重分析了并行程序模型如何映射到不同的硬件体系结构上,包括对称多处理机(SMP)、大规模并行处理机(MPP)、分布式共享内存(DSM)系统、集群计算等,并讨论了各自的优缺点和适用场景。 基础选择...
Oracle Database 12c Release 2 (12cR2) 是 Oracle 公司推出的一个重要数据库版本,它引入了许多创新特性和优化,以提高性能、可用性和可扩展性。在12cR2的体系结构中,我们关注以下几个关键组件和概念: 1. **多...