集群操作系统的发展与展望.pdf
《集群操作系统的发展与展望.pdf》由会员分享,可在线阅读,更多相关《集群操作系统的发展与展望.pdf(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、集群操作系统的发展与展望 詹剑锋 王磊 涂碧波 引言 当前高性能计算机的体系结构基本沿用传统的集群(Cluster)1、大规模并行处理系统(MPP)、星群(Constellations),向量机等。其中,集群逐渐成为市场主流,在高性能计算机 Top 500 排名中,无论是系统数目还是性能比重集群所占份额逐年上升(如图 1-a 和图 1-b 所示)。集群系统也成为最主要的高性能计算机体系结构,在 2007 年 12 月份发布的 Top 500 中集群体系结构占了总系统数目的81.20%(图 2)。图 1-a Top 500 集群系统数目比重.图 1-b Top 500 集群系统性能比重 Arch
2、itecture Count Share%Rmax Sum(GF)Rpeak Sum(GF)Processor Sum Architecture Count Share%Rmax Sum(GF)Rpeak Sum(GF)Processor Sum Constellations 3 0.60%101830 126791 19312 MPP 91 18.20%2694582 3341049 805649 Cluster 406 81.20%4169758 7090247 823134 Totals 500 100%6966169.82 10558086.75 1648095 Totals 500
3、100%6966169.82 10558086.75 1648095 图 2 2007 年 11 月发布的 Top 500 不同系统分类。在过去的十几年内,无论是高端科学计算、还是信息服务,集群系统已经成为主流计算平台。近年来随着网络服务业(如Google、腾讯和百度)的兴起,追求低成本的商品化集群商品化集群(Commodity Cluster)及其系统软件再次成为工业界和学术界的焦点234。在这种背景下集群操作系统已经成为独立于硬件平台的重要基础软件。传统单一系统映像的集群操作系统透明地实现了资源管理和进程管理,并且为用户提供交互界面。5认为单一系统映像的集群操作系统需要实现以下主要功能:1
4、 Top 500 的主要组织者 Jack Dongarra 1将集群系统定义为由独立的节点集成在一起构成的并行计算机系统:集群的每个节点能够独立操作,并且可以单独面向市场开发;集成节点的网络可以是商品化的,也可以是专门设计的。(1)单一进程空间;(2)单一I/O空间;(3)单一作业管理系统;(4)单一控制点;(5)统一用户界面。单一系统映像的集群操作系统通过扩展节点操作系统内核来实现,其开发成本高、可移植差。杜克大学Jeff Chase教授等人6扩展了集群操作系统的含义,但未显式给出定义,如基于中间件技术实现的Cluster-on-demand项目以开发面向共享平台的“集群操作系统”为目标。在
5、本文中我们将集群操作系统集群操作系统定义为实现统一的资源管理和进程管理并且具有统一用户界面的集群系统软件,它可以通过扩展操作系统内核、定制系统软件或者基于中间件实现。代表性集群操作系统 从实现方法的角度可以将集群操作系统分为三类:通过扩展操作系统内核实现的单一系统映像集群操作系统,通过定制节点操作系统和系统软件实现的定制集群操作系统和基于中间件实现的“集群操作系统”。在本节,我们逐一介绍三类集群操作系统的代表性成果。单一系统映像集群操作系统 代表性的单一系统映像集群操作系统包含:Kerrighed7,OpenMosix8和OpenSSI8。Kerrighed 是法国 INRIA 开发的项目,其
6、目的是在集群系统上提供类似 SMP 的系统。Kerrighed 由负责全局资源管理的核心态分布式服务组成。Kerrighed 提供可配置的全局进程调度器,其默认的调度器策略采用接收端驱动的抢先式进程迁移方案。当系统探测到负载不平衡时,进程将从高负载的节点向低负载的节点迁移。Kerrighed 的进程迁移机制基于进程 ghosting,容器(container)、可迁移的 stream 以及分布式文件系统。OpenMOSIX 是在 MOSIX 项目9基础上开发的。MOSIX 采用发送者驱动的抢先式进程迁移策略。MOSIX 迁移机制基于代理进程(Deputy)。当进程从源节点迁移到目标节点时,对其
7、他进程和文件系统的依赖将在源节点上通过代理进程维护。代理进程支持被迁移进程的系统调用,包括网络通讯和文件访问。全局的内存管理通过内存导引(memory ushering)算法实现。当节点的空闲内存低于阈值时,该算法将激活,从而将进程迁移到有足够空闲内存的其他节点上。OpenSSI 项目8开始于 2001 年,前身是 Nonstop cluster for Unixware 项目。OpenSSI 的设计目标是提供集成其他开源集群技术的平台。当前的 OpenSSI 集成了开源的文件系统和磁盘管理系统(GFS,OpenGFS,Lustre,OCFS,DRBD)、分布式锁机制(OpenDLM)和从 M
8、OSIX 中衍生的进程迁移机制。定制化集群操作系统 在高端科学计算领域通常采用定制化的集群操作系统,由定制的节点操作系统和批作业管理系统组成。通用的节点操作系统提供了丰富的功能,并且支持众多的应用。但是这种通用性在高端计算领域要付出性能代价。文献10 指出面向高性能计算的专用操作系统传输消息的性能要比Linux快4到6倍。因为应用需求、硬件和相关编程模型的多样,开发专用操作系统的代价非常高。11考虑了高端科学计算的特征和需求,采用构件的方法开发专用的高端科学计算操作系统。它在Fractal 通用编程模型的基础上,针对高端科学计算的需求加强和扩展了Fractal,从而方便根据应用需求、应用特征以
9、及相关的编程模型构造专用的操作系统。BlueGene/L 的节点操作系统12 根据用户的需求进行了定制。BlueGene/L 节点操作系统的设计遵循了一个基本原则:软件结构应该反映硬件结构。计算节点运行轻量级运行时操作系统 CNK,只支持单个用户的单个应用程序运行在计算节点上,本身不提供调度和进程上下文切换。而每个 I/O 节点运行完整的 Linux 操作系统映像,包括多处理,文件系统。多个计算节点和一个 I/O 节点组成一个处理集合(processing sets,psets)。CNK 的大部分系统调用直接转发给 I/O 节点执行,如图 3 反映了 CNK 和 I/O 操作系统的关系。这些系
10、统方面的简化允许系统充分利用硬件的特性,在不牺牲安全性的情况下提升系统的性能。如严格的空间共享允许应用使用高效的用户态通讯,而不影响安全。每个应用线程对应一个处理器保证并行程序确定性的执行。图 3 CNK 和 I/O 节点操作系统之间的关系12 Blue Gene/L 的作业管理系统13 结合系统的体系结构进行了优化。为了实现更好的应用性能,用户提交作业时,需要指定期望的分区规模和形状。调度器选择合适的计算节点和 I/O 节点,然后通过控制网络将这些节点配置成隔离的分区。一旦创建好分区,作业就可以通过 I/O 节点启动。基于中间件的“集群操作系统”根据实现方法,我们将基于中间件的集群操作系统可
11、分为三类:集成化、构件化和服务化。很多研究组和开源项目开发了独立的集群系统软件。如监控系统 Ganglia,构造工具 Rock,作业管理系统 OpenPBS。Ocano 14项目是面向 server farm 的可扩展管理基础设施,也是效用计算(utility computing)的先驱。很多研究组集成开源的集群软件构造集群软件包。如OSCAR project,泰国 Kasetsart 大学的 SCE,日本真实世界计算项目的 Score。在集成化的集群操作系统中,最有代表性的系统是 OSCAR,它的目的是将最好的集群实践集成在一个软件包里。但这些不同的集群软件之间大部分存在功能冗余,并且不同的
12、子系统可能提供不一致的信息。在面向高端科学计算领域,来自美国国家实验室的一些课题组采用构件技术来开发万亿次高性能计算的管理软件,其代表性计划是 SSS 项目15。SSS 项目的目的是针对缺少高效的万亿次计算资源的管理系统软件,开发与机器无关的面向科学计算的可扩展系统软件。Phoenix 系统16192025和其前身 Clustone17是第一个基于服务的集群操作系统,由中国科学院计算所国家智能中心开发。其基本思路是针对科学计算和信息服务的公共需求,开发公共服务-所谓“集群操作系统核心”1920;在集群操作系统核心内部解决管理系统的可扩展和容错;基于集群操作系统核心,开发面向不同用户需求的集群使
13、用环境和编程环境。目前基于 Phoenix 集群操作系统核心开发的集群使用环境包括:集群监控、集群配置和部署系统、批处理系统、信息服务运行时环境、工作流应用调度系统等。需求驱动的集群操作系统发展和展望 毋庸置疑,无论是高端的科学计算,还是网络信息服务,集群系统已经成为主流的计算平台。在新用户需求驱动下,集群操作系统逐步开始与硬件分离,成为重要的基础平台软件,并且不断发展和演化。这一趋势最好的见证是云计算(Cloud computing)下的集群系统软件的发展。在 2006 年前后,学术界普遍认为商用化集群系统已成为大路货,集群系统软件已成为一个成熟的领域(mature field)。而在这同一
14、时期,以 Google-like computing 为代表的海量数据处理向集群系统软件提出了新的挑战性需求,而 Google 在满足这些需求的基础上在低成本的商用化集群系统上发展了以 Google File System(GFS)、MapReduce 和 BigTable为代表的核心集群系统软件技术,为满足其持续增长的业务需求提供了强有力的保障,并且这些成果发表在计算机领域的顶级会议 SOSP 和 OSDI 上。CMU 计算机学院院长 Randal E.Bryant 认为这些工作表明在云计算领域工业界领先学术界。David Patterson在Communication of ACM上专门为
15、MapReduce技术撰写了“Data center is computer”的评论。在本节里,我们从用户需求的角度出发阐述集群操作系统可能的发展和演化。集群系统用户需求的维度 我们认为新的用户需求将是集群操作系统发展的重要推动力。集群系统的用户需求可以从以下维度刻画:(1)使用模型(usage model);(2)资源使用方式;(3)用户的计算机知识层次;(4)应用特征。我们将使用模型定义为集群系统用户需求的X维度。集群系统主要有两种使用模型:面向能力(capability)和面向容量(capacity)11。面向能力的使用模型有以下典型特征:定制精简的节点操作系统;范围有限的应用种类;每个
16、应用可以使用完整规模的系统;允许程序员充分利用系统特性来精细的优化和微调代码。面向能力的使用模型可以进一步细化为专用(dedicated)或者空间共享(space-sharing)的使用模型。面向容量的使用模型支持更广泛的应用;支持更为灵活的分时共享;采用通用的操作系统;提供更复杂的服务,如动态加载和共享库等。我们将资源使用方式定义为集群系统用户需求的 Y 维度,主要分为独占和共享两种。将用户的计算机知识层次定义为集群系统用户需求的 Z 维度,分为两大类:计算机专业用户和非计算机专业用户。计算机专业用户以掌握高深而复杂的计算机技术为荣,而非计算机专业用户一般缺少足够计算机基础知识,因而难以了解
17、底层的系统知识。在应用特征方面,我们主要细分科学计算和信息服务两大类,并且将应用特征定义为 C 维度。我们将采用这些坐标维度来刻画不同的集群系统用户需求,并且在特定的需求背景下讨论集群操作系统的发展趋势。集群操作系统展望 图 4 高端科学计算 V.S.效用计算 高端科学计算(High End Computing)在高端科学计算领域,我们认为单个并行应用的可扩展性和性能应该成为主要的追求目标,因而我们关注面向能力和资源独占的高端集群系统。在这种背景下,系统对应用的适应以及系统资源的异构性可能会成为主要的趋势。如 Cray 将自己的高效能计算机计划定义为可适应超级计算(adaptive super
18、computing)。以地球科学为例,用户希望进行海洋、大气、生物圈和地球物理耦合的气候模型仿真18。当前这些计算模型仅仅在单一种类的处理器体系结构上运行(如标量或向量)。但在气候仿真模拟中,部分代码本质上是串行的,这类串行代码在Opteron 处理器上可以获得很好的性能;而其它大部分代码则可以很好的向量化,如动力学和辐射物理,可以运行在向量模态的 MVP(multi-threaded/vector processing)加速器上;而云物理学则不能向量化,大部分为分支和条件语句,适宜于运行在多线程的 MVP 加速器上。因而挑战性应用要想获得好的性能,需要能适应应用的异构资源。Berkley 的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 集群 操作系统 发展 展望
限制150内