最新分布式与云计算系统第2章
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
8
集群分类: 计算集群:主要用于单一大规模作业的集体计算。 当单一计算作业需要集群中节点间的频繁通信,该集 群必须共享一个专用网络,因而这些节点大多是同构 和紧耦合的。这种类型的集群也被称为贝奥武夫集群。 当集群需要在少量重负载节点间通信时,其从本质上 就是众所周知的计算网格。紧耦合计算集群用于超级 计算应用。
26
单系统镜像(SSI)包括单一入口、单文件层次、 单一I/O空间、单一网络机制、单一控制点、单一 作业管理系统、单一内存空间和单一进程空间。
图2-13 采用负载均衡的域名服务器(DNS)实现单一入口
27
图2-14单文件层次中存储的三种类型。实线表示进程P可以 访问,虚线表示P可能被允许访问
28
39
40
图2-22 用于集群节点上作业调度的瓷砖式覆盖技术减少了 整体时间,因此增加了作业吞吐量
41
集群作业管理系统
作业管理也称为负载管理或负载共享。作业管 理系统(Job Management System,JMS)具有三部 分:
用户服务器:提交用户作业至一个或多个队列, 为每个作业指定资源需求,将作业从队列中删除, 以及询问作业或队列的状态。 作业调度器:根据作业类型、资源需求、资源 可用性和调度策略,执行任务调度和排队。 资源管理器:分配和监控资源,执行调度策略, 以及收集统计信息。
30
管理级 该级处理用户应用程序,并且提供 作业管理系统。
编程级 该级提供单一文件层次(NFS、xFS、 AFS、Proxy)和分布式共享内存
实现级 该级支持单一进程空间、检查点机 制、进程迁移和单一I/O空间。
31
图2-16 在连接到集群中4个主机的12个分布式磁盘之上具有单 一I/O空间的分布式RAID体系结构
10
图2-2 Top500超级计算机的性能变化曲线(1993—2010)
11
12
13
图2-3 前5名超级计算机的能耗和性能(2010年11月)
14
2.2 计算机集群和MPP体系结构
基本集群体系结构
图2-4 由商用硬件、软件、中间件和网络组件构成的计算机 体系结构,支持HA和SSI
15
Resource Sharing in Cluster of Computers
43
MOSIX: Linux集群和云的操作系统
MOSIX由希伯来大学在1977年开发,是一个分布 式操作系统。在1999年,该系统被重新设计,运行 在x86平台的Linux集群上 用户可以从任何节点登录 没有必要修改应用程序或链接应用程序至特殊库。 没有必要复制文件至远程节点 用户能够平衡负载,从较慢节点迁移至快速节点 关于迁移进程直接通信的套接字也是可迁移的。 该系统以客户进程的安全运行时环境为特征。 该系统能够运行批量作业,并可以通过检查点恢复
2
计算机集群的设计宗旨:
可扩展性:计算机集群化是基于模块化增长的概 念. 将几百个单处理器节点的集群扩展为10 000个 多核节点的超级集群。这一些因素限制: 如多核心 芯片技术、集群拓扑结构、封装方式、电力消耗和 冷控制技术应用。
封装:集群节点可以被封装成紧凑或者松散的形 式。封装直接影响通信线路的长度,需要选择合适 的互连技术。紧凑集群通常利用专有的高带宽、低 延迟的通信网络,而松散集群节点一般由标准的局 域网或广域网连接。
图2-5 连接集群节点的三种方式(P/C:处理器和缓存;M:内 存;D:磁盘;NIC:网卡;MIO:内存-I/O桥)
16
节点结构和MPP封装:IBM BlueGene/L Supercomputer:
The World Fastest Message-Passing MPP built in 2005
23
图2-12 由GPU层次网络构成的NVIDIA Echelon系统的体系结
构,其中每个机柜可以提供2.6Pflops的性能,至少需要
N=400个机柜才能实现所需的Eflops性能
24
CUDA并行编程
CUDA(Compute Unified Device Architecture,计算统一设备体系结构)由 NVIDIA开发,提供并行计算体系结构。CUDA是 NVIDIA GPU中的计算引擎,允许开发者通过标 准程序语言访问。程序员可以使用NVIDIA扩展 和受限的CUDA C。CUDA C通过PathScale Open64 C编译器编译,可以在大量GPU核上并 行执行。例2.4体现了在并行处理中使用CUDA C的好处。
Chapter 2: Computer Clusters for Scalable parallel Computing
可扩展并行计算集群
1
2.1大规模并行集群
计算机集群(computer cluster)由相互联系的 个体计算机聚集组成,这些计算机之间相互联系并 且共同工作 对于用户来说,计算机集群如同一个独立完整的 计算资源池。 集群化实现作业级的大规模并行,并通过独立操 作实现高可用性。 计算机集群和大规模并行处理器(MPP)的优点包 括可扩展性能、高可用性、容错、模块化增长和使 用商用组件。
25
2.3 计算机集群的设计原则
单系统镜像特征: 单一系统 用户将整个集群作为一个多处理器系 统。 单一控制 逻辑上,一个终端用户或系统用户在 一个地方只能通过单一的接口使用服务。 对称性 用户可以从任意节点使用集群服务。除 了受到访问权限保护的部分,所有集群服务和功能 对于所有节点和所有用户是对称的。 位置透明性 用户并不了解什么位置的物流设备 最后提供了服务。
47
Top- 500 Release in June 2010
48
Tianhe-1A:2010年的世界最快超级计算机
The Cray XT-5 Jagaur Supercomputer
55
56
57
IBM Roadrunner System
17
集群系统互连
18
谷歌搜索引擎集群体系结构
19
图2-8 Top500系统高带宽互连的分布情况
20
图2-9 InfiniBand系统构造在典型高性能计算机集群中的应用
21
硬件、软件和中间件支持
22
大规模并行GPU集群
图2-11 实现Echelon系统的20Tflops和1.6TB/s内存带宽的 GPU芯片设计
36
容错集群配置
热备份服务器集群 只有主要节点积极完成所有 有用的工作。备份节点启动(热)和运行一些监控 程序来发送与接收心跳信号以检测主要节点的状态, 但并不积极运行其余有价值的工作。 主动接管集群 多个服务器节点的体系结构是对 称的。两个服务器都是主要的,正常完成有价值的 任务。两个服务器节点通常都支持故障切换和恢复。 故障切换集群 当一个组件失效时,该技术允许 剩余系统接管之前由失效组件提供的服务。故障切 换机制必须提供一些功能,如失效诊断、失效通知 和失效恢复。
4
控制:集群能够以集中或分散的形式被控制或管理。 紧凑集群通常集中控制,而松散集群可以采取另一种 方式。在集中式集群中,中心管理者拥有、控制、管 理和操作所有节点。在分散式集群中,节点有各自的 拥有者。它同样需要进程调度、负载迁移、检查点、 记账和其他类似任务的特殊技术。
同构性:同构集群采用来自相同平台的节点,即节 点具有相同处理器体系结构和相同操作系统。异构集 群使用来自不同平台的节点。互操作性是异构集群的 一个非常重要的问题。在同构集群中,二进制进程镜 像可以迁移到另一个节点并能够继续执行。这在异构 集群中是不允许的,因为当进程迁移到不同平台的节 点上时,二进制代码不继续执行。
专用集群和企业集群:专用集群由相同类型的计算 机节点同构配置,被用于代替传统的大型机或超级 计算机,极大地提高了吞吐量,并且减少了响应时 间。企业集群主要利用节点的闲置资源,每个节点 通常是一个完整的SMP、工作站或PC及其所有必要 的外部设备。通常是由异构计算机节点配置的。
6
基础集群设计问题:
可扩展性能:资源扩展(集群节点、内存容量、 I/O带宽等)使性能成比例增长 单系统镜像(SSI):集群是一个单一独立的 系统。 可用性支持:集群能够利用处理器、内存、磁 盘、I/O设备、网络和操作系统镜像的大量冗余 提供低成本、高可用性的性能。 集群作业管理:实现高系统利用率,作业管理 软件需要提供批量、负载均衡和并行处理等功能。
44
45
2.5 顶尖超级计算机系统的个案研究
Figure 2.4 Country share of the Top-500 supercomputers over time [25]
46
Figure 2.5 Application-area share of Top-500 systems over time. (Courtesy of [25])
百度文库
图2-15具有单一网络连接、单一I/O空间、单一内存和单点控 制的集群
29
SSI的最终目标是使得集群如同台式计算机一样易 于使用,SSI额外特征:
单一作业管理系统 所有集群作业能够由任意节 点提交到单一作业管理系统。 单一用户接口 用户通过单一图形界面使用集群。 单一进程空间 各节点的所有用户进程形成单一 进程空间,并且共享统一进程认证机制。 SSI集群化的中间件 在集群应用的三个层次上, 中间件支持各种SSI特征。
38
2.4 集群作业和资源管理 集群作业调度方法
集群作业可能在一个指定的时间(日历调度), 或者在特定事件发生(事件调度)时被调度运行。 根据提交时间、资源节点、执行时间、内存、磁 盘、作业类型及用户认证的优先级,作业被调度。 静态优先级指的是根据预定的方案,作业被分配 的优先级。 为用户分配不同的优先级,而作业的动态优先级 可能会随时间发生变化。
32
图2-17 在作业管理、编程和实现级上集群化中间件的关系
33
冗余高可用性
可靠性根据系统不发生故障的运行时间衡量。 可用性表示系统对用户可用的时间百分比,即 系统正常运行的时间百分比。 可服务性与服务系统的容易程度相关,包括硬 件和软件维护、修复、升级等。
34
35
图2-19 SMP和三个集群中的单点失效(SPF),由a到d,其 中冗余越大,消除的单点失效也越多
37
检查点和恢复技术
检查点和恢复这两种技术必须共同发展,才能提 高集群系统的可用性。 某个进程周期性地保存执行程序的状态至稳定存 储器,系统在失效后能够根据这些信息得以恢复。 每一个被保存的程序状态称为检查点。包含被保 存状态的磁盘文件称为检查点文件。虽然目前所有 的检查点软件在磁盘中保存程序状态,但是使用节 点内存替代稳定存储器来提高性能还处在研究阶段。
高可用性集群:用于容错和实现服务的高可用性。 高可用性集群中有很多冗余节点以容忍故障或失 效。 负载均衡集群:通过使集群中所有节点的负载均 衡而达到更高的资源利用。可以在不同机器间平 衡负载,从而达到更高的资源利用或性能。
9
Figure 2.1 Architectural share of the Top-500 systems (Courtesy of [25])
7
节点间通信:集群由于具有更高的节点复 杂度,故不能被封装得如MPP节点一样的简洁。 集群内节点之间的物理网线长度比MPP长。
容错和恢复:机器集群能够消除所有的单 点失效。集群能在一定程度上容忍出错的情 况。故障节点上运行的关键作业可以被转移 到正常运行的节点上。回滚恢复机制通过周 期性记录检查点来恢复计算结果。
5
安全性:集群内通信可以是开放的或封闭的。开放 集群外界机器可采用标准协议(如TCP/IP)访问通 信路径,从而访问单独节点。有几个缺点:集群内 通信变得不安全; 外界通信可能以不可预测的形式干 扰集群内通信; 准通信协议往往具有巨大的开销。在 封闭集群中,集群内通信与外界相隔离,目前还没 有高效、封闭的集群内通信标准。
42
集群计算的负载共享设备(LSF)
LSF是平台计算中的商用负载管理系统。 在并行作业和串行作业中,LSF强调作业管理和 负载共享。 它还支持检查点、可用性、负载迁移和单系统 镜像。 LSF具有高扩展性,并且能够支持上千个节点的 集群。 LSF服务于各种UNIX和Windows/NT平台。目前, LSF不仅在集群中使用,也在网格和云中使用。
集群分类: 计算集群:主要用于单一大规模作业的集体计算。 当单一计算作业需要集群中节点间的频繁通信,该集 群必须共享一个专用网络,因而这些节点大多是同构 和紧耦合的。这种类型的集群也被称为贝奥武夫集群。 当集群需要在少量重负载节点间通信时,其从本质上 就是众所周知的计算网格。紧耦合计算集群用于超级 计算应用。
26
单系统镜像(SSI)包括单一入口、单文件层次、 单一I/O空间、单一网络机制、单一控制点、单一 作业管理系统、单一内存空间和单一进程空间。
图2-13 采用负载均衡的域名服务器(DNS)实现单一入口
27
图2-14单文件层次中存储的三种类型。实线表示进程P可以 访问,虚线表示P可能被允许访问
28
39
40
图2-22 用于集群节点上作业调度的瓷砖式覆盖技术减少了 整体时间,因此增加了作业吞吐量
41
集群作业管理系统
作业管理也称为负载管理或负载共享。作业管 理系统(Job Management System,JMS)具有三部 分:
用户服务器:提交用户作业至一个或多个队列, 为每个作业指定资源需求,将作业从队列中删除, 以及询问作业或队列的状态。 作业调度器:根据作业类型、资源需求、资源 可用性和调度策略,执行任务调度和排队。 资源管理器:分配和监控资源,执行调度策略, 以及收集统计信息。
30
管理级 该级处理用户应用程序,并且提供 作业管理系统。
编程级 该级提供单一文件层次(NFS、xFS、 AFS、Proxy)和分布式共享内存
实现级 该级支持单一进程空间、检查点机 制、进程迁移和单一I/O空间。
31
图2-16 在连接到集群中4个主机的12个分布式磁盘之上具有单 一I/O空间的分布式RAID体系结构
10
图2-2 Top500超级计算机的性能变化曲线(1993—2010)
11
12
13
图2-3 前5名超级计算机的能耗和性能(2010年11月)
14
2.2 计算机集群和MPP体系结构
基本集群体系结构
图2-4 由商用硬件、软件、中间件和网络组件构成的计算机 体系结构,支持HA和SSI
15
Resource Sharing in Cluster of Computers
43
MOSIX: Linux集群和云的操作系统
MOSIX由希伯来大学在1977年开发,是一个分布 式操作系统。在1999年,该系统被重新设计,运行 在x86平台的Linux集群上 用户可以从任何节点登录 没有必要修改应用程序或链接应用程序至特殊库。 没有必要复制文件至远程节点 用户能够平衡负载,从较慢节点迁移至快速节点 关于迁移进程直接通信的套接字也是可迁移的。 该系统以客户进程的安全运行时环境为特征。 该系统能够运行批量作业,并可以通过检查点恢复
2
计算机集群的设计宗旨:
可扩展性:计算机集群化是基于模块化增长的概 念. 将几百个单处理器节点的集群扩展为10 000个 多核节点的超级集群。这一些因素限制: 如多核心 芯片技术、集群拓扑结构、封装方式、电力消耗和 冷控制技术应用。
封装:集群节点可以被封装成紧凑或者松散的形 式。封装直接影响通信线路的长度,需要选择合适 的互连技术。紧凑集群通常利用专有的高带宽、低 延迟的通信网络,而松散集群节点一般由标准的局 域网或广域网连接。
图2-5 连接集群节点的三种方式(P/C:处理器和缓存;M:内 存;D:磁盘;NIC:网卡;MIO:内存-I/O桥)
16
节点结构和MPP封装:IBM BlueGene/L Supercomputer:
The World Fastest Message-Passing MPP built in 2005
23
图2-12 由GPU层次网络构成的NVIDIA Echelon系统的体系结
构,其中每个机柜可以提供2.6Pflops的性能,至少需要
N=400个机柜才能实现所需的Eflops性能
24
CUDA并行编程
CUDA(Compute Unified Device Architecture,计算统一设备体系结构)由 NVIDIA开发,提供并行计算体系结构。CUDA是 NVIDIA GPU中的计算引擎,允许开发者通过标 准程序语言访问。程序员可以使用NVIDIA扩展 和受限的CUDA C。CUDA C通过PathScale Open64 C编译器编译,可以在大量GPU核上并 行执行。例2.4体现了在并行处理中使用CUDA C的好处。
Chapter 2: Computer Clusters for Scalable parallel Computing
可扩展并行计算集群
1
2.1大规模并行集群
计算机集群(computer cluster)由相互联系的 个体计算机聚集组成,这些计算机之间相互联系并 且共同工作 对于用户来说,计算机集群如同一个独立完整的 计算资源池。 集群化实现作业级的大规模并行,并通过独立操 作实现高可用性。 计算机集群和大规模并行处理器(MPP)的优点包 括可扩展性能、高可用性、容错、模块化增长和使 用商用组件。
25
2.3 计算机集群的设计原则
单系统镜像特征: 单一系统 用户将整个集群作为一个多处理器系 统。 单一控制 逻辑上,一个终端用户或系统用户在 一个地方只能通过单一的接口使用服务。 对称性 用户可以从任意节点使用集群服务。除 了受到访问权限保护的部分,所有集群服务和功能 对于所有节点和所有用户是对称的。 位置透明性 用户并不了解什么位置的物流设备 最后提供了服务。
47
Top- 500 Release in June 2010
48
Tianhe-1A:2010年的世界最快超级计算机
The Cray XT-5 Jagaur Supercomputer
55
56
57
IBM Roadrunner System
17
集群系统互连
18
谷歌搜索引擎集群体系结构
19
图2-8 Top500系统高带宽互连的分布情况
20
图2-9 InfiniBand系统构造在典型高性能计算机集群中的应用
21
硬件、软件和中间件支持
22
大规模并行GPU集群
图2-11 实现Echelon系统的20Tflops和1.6TB/s内存带宽的 GPU芯片设计
36
容错集群配置
热备份服务器集群 只有主要节点积极完成所有 有用的工作。备份节点启动(热)和运行一些监控 程序来发送与接收心跳信号以检测主要节点的状态, 但并不积极运行其余有价值的工作。 主动接管集群 多个服务器节点的体系结构是对 称的。两个服务器都是主要的,正常完成有价值的 任务。两个服务器节点通常都支持故障切换和恢复。 故障切换集群 当一个组件失效时,该技术允许 剩余系统接管之前由失效组件提供的服务。故障切 换机制必须提供一些功能,如失效诊断、失效通知 和失效恢复。
4
控制:集群能够以集中或分散的形式被控制或管理。 紧凑集群通常集中控制,而松散集群可以采取另一种 方式。在集中式集群中,中心管理者拥有、控制、管 理和操作所有节点。在分散式集群中,节点有各自的 拥有者。它同样需要进程调度、负载迁移、检查点、 记账和其他类似任务的特殊技术。
同构性:同构集群采用来自相同平台的节点,即节 点具有相同处理器体系结构和相同操作系统。异构集 群使用来自不同平台的节点。互操作性是异构集群的 一个非常重要的问题。在同构集群中,二进制进程镜 像可以迁移到另一个节点并能够继续执行。这在异构 集群中是不允许的,因为当进程迁移到不同平台的节 点上时,二进制代码不继续执行。
专用集群和企业集群:专用集群由相同类型的计算 机节点同构配置,被用于代替传统的大型机或超级 计算机,极大地提高了吞吐量,并且减少了响应时 间。企业集群主要利用节点的闲置资源,每个节点 通常是一个完整的SMP、工作站或PC及其所有必要 的外部设备。通常是由异构计算机节点配置的。
6
基础集群设计问题:
可扩展性能:资源扩展(集群节点、内存容量、 I/O带宽等)使性能成比例增长 单系统镜像(SSI):集群是一个单一独立的 系统。 可用性支持:集群能够利用处理器、内存、磁 盘、I/O设备、网络和操作系统镜像的大量冗余 提供低成本、高可用性的性能。 集群作业管理:实现高系统利用率,作业管理 软件需要提供批量、负载均衡和并行处理等功能。
44
45
2.5 顶尖超级计算机系统的个案研究
Figure 2.4 Country share of the Top-500 supercomputers over time [25]
46
Figure 2.5 Application-area share of Top-500 systems over time. (Courtesy of [25])
百度文库
图2-15具有单一网络连接、单一I/O空间、单一内存和单点控 制的集群
29
SSI的最终目标是使得集群如同台式计算机一样易 于使用,SSI额外特征:
单一作业管理系统 所有集群作业能够由任意节 点提交到单一作业管理系统。 单一用户接口 用户通过单一图形界面使用集群。 单一进程空间 各节点的所有用户进程形成单一 进程空间,并且共享统一进程认证机制。 SSI集群化的中间件 在集群应用的三个层次上, 中间件支持各种SSI特征。
38
2.4 集群作业和资源管理 集群作业调度方法
集群作业可能在一个指定的时间(日历调度), 或者在特定事件发生(事件调度)时被调度运行。 根据提交时间、资源节点、执行时间、内存、磁 盘、作业类型及用户认证的优先级,作业被调度。 静态优先级指的是根据预定的方案,作业被分配 的优先级。 为用户分配不同的优先级,而作业的动态优先级 可能会随时间发生变化。
32
图2-17 在作业管理、编程和实现级上集群化中间件的关系
33
冗余高可用性
可靠性根据系统不发生故障的运行时间衡量。 可用性表示系统对用户可用的时间百分比,即 系统正常运行的时间百分比。 可服务性与服务系统的容易程度相关,包括硬 件和软件维护、修复、升级等。
34
35
图2-19 SMP和三个集群中的单点失效(SPF),由a到d,其 中冗余越大,消除的单点失效也越多
37
检查点和恢复技术
检查点和恢复这两种技术必须共同发展,才能提 高集群系统的可用性。 某个进程周期性地保存执行程序的状态至稳定存 储器,系统在失效后能够根据这些信息得以恢复。 每一个被保存的程序状态称为检查点。包含被保 存状态的磁盘文件称为检查点文件。虽然目前所有 的检查点软件在磁盘中保存程序状态,但是使用节 点内存替代稳定存储器来提高性能还处在研究阶段。
高可用性集群:用于容错和实现服务的高可用性。 高可用性集群中有很多冗余节点以容忍故障或失 效。 负载均衡集群:通过使集群中所有节点的负载均 衡而达到更高的资源利用。可以在不同机器间平 衡负载,从而达到更高的资源利用或性能。
9
Figure 2.1 Architectural share of the Top-500 systems (Courtesy of [25])
7
节点间通信:集群由于具有更高的节点复 杂度,故不能被封装得如MPP节点一样的简洁。 集群内节点之间的物理网线长度比MPP长。
容错和恢复:机器集群能够消除所有的单 点失效。集群能在一定程度上容忍出错的情 况。故障节点上运行的关键作业可以被转移 到正常运行的节点上。回滚恢复机制通过周 期性记录检查点来恢复计算结果。
5
安全性:集群内通信可以是开放的或封闭的。开放 集群外界机器可采用标准协议(如TCP/IP)访问通 信路径,从而访问单独节点。有几个缺点:集群内 通信变得不安全; 外界通信可能以不可预测的形式干 扰集群内通信; 准通信协议往往具有巨大的开销。在 封闭集群中,集群内通信与外界相隔离,目前还没 有高效、封闭的集群内通信标准。
42
集群计算的负载共享设备(LSF)
LSF是平台计算中的商用负载管理系统。 在并行作业和串行作业中,LSF强调作业管理和 负载共享。 它还支持检查点、可用性、负载迁移和单系统 镜像。 LSF具有高扩展性,并且能够支持上千个节点的 集群。 LSF服务于各种UNIX和Windows/NT平台。目前, LSF不仅在集群中使用,也在网格和云中使用。