集群的可扩展性及其分布式体系结构(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 1175... -
转 集群的可扩展性及其分布式体系结构(1)
2007-09-21 16:09 1142... -
网格计算 —— 下一代分布式计算
2007-09-21 16:01 1428... -
负载均衡
2007-09-21 15:09 1100实 ... -
转 Java语言的特点
2007-09-12 11:51 1737... -
转载 谈谈Unicode编码
2007-09-12 11:49 895这是一篇程序员写给程序员的趣味读物。所谓趣味是指可以比较轻松地 ... -
转载 字符串编码(charset, encoding/decoding)问题原理
2007-09-12 11:47 1058转载:http://www.iteye.com/article ... -
转载 Java 理论与实践: 正确使用 Volatile 变量
2007-09-12 11:42 607原文:http://www.ibm.com/developer ...
相关推荐
这个资料非常有价值。linux集群资料市面上很少,有价值的也很少。这个也是网上找来的。版权归原作者。大家共享学习。感谢作者。
本文内容包括:可扩展的并行计算体系结构可扩展与单一系统映象集群的重要指标结束语参考资料这篇文章是《集群的可扩展性及其分布式体系结构》第二篇的下半部分,将继续介绍常见的几类并行计算体系结构、可扩展与单一...
作者将侧重就集群的可扩展性及体系结构分析、原理论、集群的考量、具体的分析案例(LVS、beowulf、MOSIX)、集群高可用技术、分布式文件系统等等各个方面为您更加深入的介绍集群系统。本文是第一篇。主要阐述集群...
针对当前网络地理信息系统(WebGIS)中存在的效率问题和服务器端压力过大的问题,...结果表明,相比于当前其他模式的WebGIS,基于FastCGI多进程、分布式集群构建的WebGIS具有效率更高、可扩展性更强、稳定性更好的特点。
通过集群可以实现可扩展性(服务更多客户,提高吞吐量),负载均衡(平衡负载资源,使资源得以有效利用),高可用性(提供故障恢复和补偿机制,在关键性业务中提供容错功能)。WAS ND提供水平集群和垂直集群两种形式...
在大型网站架构的演变过程中,集中式的架构设计出于对系统的可扩展性、可维护性以及成本等多方面因素的考虑,逐渐被放弃,转而采用分布式的架构设计。分布式架构的核心思想是采用大量廉价的PC Server,构建一个低...
图:集群的体系结构 为此,在设计时需要考虑系统的透明性、可伸缩性、高可用性和易管理性。一般来说,集群采用三层结构,其体系结构如图所示,三层主要组成部分为: 负载调度器( ),它是整个集群对外面的前端机,...
体系结构数据模型空间,文档,向量,标量组件M概述Vearch是一个可扩展的分布式系统,用于深度学习向量的高效相似性搜索。 体系结构数据模型空间,文档,向量,标量组件主服务器,路由器和PartitionServer主服务器...
AutoDist提供了一个用户友好的界面,以可扩展性和最少的代码更改在许多GPU上分布各种深度学习模型的培训。 介绍 与专用的分布式ML系统不同,AutoDist的创建是为了以优异的全面性能加快各种DL模型的速度。 AutoDist...
{json:scada} 以MongoDB数据库服务器为中心的便携式可扩展SCADA / IoT平台。使命宣言通过利用主流开源IT工具提供易于使用,功能齐全,可扩展的便携式SCADA / IoT... 模块化分布式体系结构。 轻量级冗余数据采集节点
[Voltdb]内存中的数据存储体系结构具有分布式的概念 VoltDB 3.0数据库是在Ingres和PostgreSQL项目的创始人之一Mike Stonebraker的领导下开发的。 VoltDB具有水平可伸缩性,并且专注于实时事务处理(OLTP)。 在一个...
此外,BLBC适用于在经常用于处理大型数据集的现代并行和分布式计算体系结构上的实现。我们通过实证研究BLBC的性能特征,并通过对模拟数据和真实数据的实验与现有方法的性能进行比较。 结果表明,BLBC在保持良好统计...
2、 搭建多节点、可扩展集群; 部署 HDFS HA 架构; 理解并实现 Hadoop YARN 的多 租户架构 掌握 Zookeeper 组件原理; 掌握 Hadoop 集群优化路径; 3 传统数据仓库在⾯对更⼤规模数据时显得⼒不从⼼,在寄希望于⼤数据...
使用,通过管理并与内嵌CI / CD +安全和管理功能超层,您将学习如何使用最新的技术,在智能和分布式架构上运行可扩展性,弹性和安全应用。 您还将发现一个对于使用微服务体系结构创建简单和可扩展的API很有用。 ...
通过群集和网络设备控制分片的可扩展性。 性能对于第一个发行版来说是好的,并且具有将继续支持改进的体系结构。 全局网络视图,网络图和应用程序意图的北向抽象。 向南可插拔,以支持OpenFlow和新协议或旧协议...
可扩展性 11 2.3.4. 可管理性 12 2.3.5. 可靠性、稳定性 12 3. 数据库系统案例 12 3.1. 小规模数据库解决方案:电子图书馆 12 3.1.1. 背景 12 3.1.2. 分析 13 3.1.3. 方案设计 13 3.2. 中等规模数据库解决方案(某...
通过群集和网络设备控制分片的可扩展性。 性能对于第一个发行版来说是好的,并且具有将继续支持改进的体系结构。 全局网络视图,网络图和应用程序意图的北向抽象。 可插拔的南行,用于支持OpenFlow,P4Runtime...
可伸缩性: 可伸缩性: ⼜称可扩展性,是指通过扩展系统规模来提⾼性能并处理更⼤数量的⽤户和通过扩展系统规模提⾼系统的容错能⼒等 横⾏扩展: 横⾏扩展: 向逻辑单元之外的扩展,增加更多逻辑单元的资源,并使...