集群计算的发展历史
集群计算的发展历史可以概括为以下几个阶段:
早期集群计算的萌芽
集群计算并非由任何特定供应商发明,而是源于 20 世纪 60 年代客户无法将所有工作装载到单台计算机或需要备份的需求而产生。一位先驱在 1967 年发表了关于并行处理的开创性论文,为集群计算作为并行处理手段奠定了正式的工程基础。早期计算机集群的历史与早期网络的历史密切相关,因为开发网络的主要动机之一就是连接计算资源,从而形成事实上的计算机集群。
第一代商用集群产品
1960 年代中期,一家公司推出了第一个设计为集群的生产系统,允许多达四台计算机紧密耦合到共享的磁盘存储子系统。1977 年,另一家公司开发了第一个商用的松散耦合集群产品,使用专有网络作为集群接口。直到 1984 年,一家主要供应商为其操作系统发布了集群产品,集群计算才真正开始流行。这些早期产品都支持并行计算以及共享文件系统和外围设备。
其他早期商用集群
值得一提的其他早期商用集群包括 1976 年推出的高可用性商用产品,以及 1994 年左右主要用于商业用途的某家公司的产品。随着计算机集群在计算机外部通过商用网络实现并行性,超级计算机开始通过矢量处理在计算机内部实现并行性,1976 年推出了一款知名超级计算机。
集群计算功能
集群计算是一种通过将多个计算机系统连接在一起,共享计算资源和工作负载的技术。根据集群的功能和目的,集群计算可以分为以下几种类型:

高可用性集群
旨在提高系统的可靠性和容错能力。当集群中有某个节点发生故障时,能够自动将其上的任务转移到其他正常节点上,确保整个集群的正常运行。同时,也可以在不中断集群服务的情况下离线维护或更新某个节点。高可用性集群广泛应用于关键任务系统和企业级应用程序中。

存储集群
通过将多个存储设备组合在一起,形成一个统一的存储池,提供高可用性、高性能和可扩展的存储服务。存储集群常用于构建企业级存储系统、云存储等。

负载均衡集群
通过在集群前端部署一个或多个负载均衡器,将工作负载分发到后端的一组服务器上,从而提高整个系统的性能和可用性。负载均衡集群常见于 Web 服务器集群、数据库集群等场景。

渲染集群
专门用于图形渲染和视觉效果处理的集群,广泛应用于电影特技、动画制作、建筑可视化等领域。

高性能计算集群
将计算密集型任务分配到集群中的多个计算节点上并行执行,以提高计算能力和加速任务完成速度。高性能计算集群广泛应用于科学计算、大数据处理、人工智能训练等领域,能够显著提升计算效率。
集群计算技术通过资源共享和协作,能够显著提升系统的性能、可靠性和可扩展性,是现代分布式计算和云计算环境中不可或缺的基础架构。
集群计算的优势
集群计算能够提供多种优势,是一种高性能且经济实惠的计算解决方案。
高性能和并行处理能力
集群计算系统主要以性能为设计目标,能够提供并行数据处理和高计算能力。通过将同一计算任务分配到多个节点上并行执行,可以实现更高程度的并行化,从而提高整体性能。尽管自动并行化仍然是一个技术挑战,但集群计算为复杂计算任务提供了并行处理的能力。
可扩展性和资源整合
集群计算系统可以通过添加更多节点来水平扩展,这是一种提高性能、冗余和容错能力的经济实惑方案,比单节点扩展更具成本效益。集群还能够整合资源,实现集中管理,降低维护成本。
高可用性和容错能力
集群计算系统具有容错能力,能够在发生灾难时实现数据恢复。当添加新节点时,整个集群无需停机,从而提高了可靠性。集群还支持分布式文件系统和 RAID 技术,进一步增强了可靠性和速度。
高性价比
与单台高端计算机相比,集群计算系统在提供可比性能和可用性的同时,成本更低。集群计算能够利用强大的冷却和节能技术,在消耗较少资源的情况下提供高计算能力。
集群计算系统结构
集群计算系统的结构可以划分为以下几个层次:
网络层
- 负责集群节点之间的通信和互联
- 涉及通信协议(如 TCP/IP)、信号技术以及网络互联结构等技术
- 确保集群节点之间高效、可靠的数据传输
节点机及操作系统层
- 由高性能计算机节点组成
- 通常采用基于微内核的轻量级操作系统
- 操作系统需要支持并行计算和高效的进程/线程管理
集群系统管理层
- 体现集群计算系统的核心功能和技术
- 包括并行 I/O、资源管理、资源调度、负载平衡、安全等模块
- 决定了集群系统的稳定性、易用性、可扩展性等关键参数
- 与实现自治性、开发和运行各种应用密切相关
应用层
- 包括串行应用、并行程序开发环境和并行应用等
- 利用集群系统的并行计算能力解决复杂的计算问题
- 需要并行编程模型和工具支持高效的并行程序开发
通过分层结构设计,集群计算系统能够高效利用硬件资源、提供系统管理和应用支持,从而发挥出强大的并行计算能力。其中,集群系统管理层是关键,需要实现自治管理、资源调度等核心功能,确保整个系统的高效运行。
集群计算和网格计算的区别
集群计算和网格计算都是分布式计算的形式,但它们在设计理念和实现方式上存在一些关键差异:
资源管理方式
- 集群计算通常由一组可信赖的、同构的计算机组成,资源管理是集中式的。集群中的计算资源数量通常是静态的,难以动态扩展。
- 网格计算则由异构的、不可信的计算资源组成,资源管理是分布式的。网格中的资源可以动态地添加或删除,具有良好的扩展性。
应用场景
- 集群计算更适合对延迟敏感、需要高带宽的应用,如 Web 服务器集群、数据库集群等。
- 网格计算则更适合计算密集型、对带宽要求不高的大规模科学计算和数据处理应用。
互连方式
- 集群计算通常采用高速局域网互连,网络延迟较低。
- 网格计算则可以跨越广域网,资源分布在不同地理位置,网络延迟较高。
互补关系
- 集群计算和网格计算并非完全对立,两者可以相互补充。许多集群都可以作为网格的资源节点,被网格管理和调度。
计算能力
- 集群计算的计算能力取决于集群中服务器的数量,扩展能力有限。
- 网格计算通过虚拟化技术将分散的资源整合,形成一个逻辑上的"超级计算机",计算能力理论上无上限。
总的来说,集群计算和网格计算都是分布式计算的重要形式,但网格计算具有更好的资源共享和扩展能力,能够提供更强大的计算能力。在实际应用中,需要根据具体需求选择合适的计算模式。
集群计算的应用场景
集群计算在各种应用场景中都有广泛的应用和部署,从只有几个节点的小型企业集群到世界上一些最快的超级计算机。集群通常被部署来提高性能和可用性,而且通常比单台计算机的成本更低。

并行计算
集群计算非常适合需要节点之间频繁通信和协调的应用程序,例如在多个节点上并行处理相同的计算。集群中的计算机通过高速局域网连接,可以实现并行处理,所有处理器都可以访问共享内存来交换信息。

高性能计算
集群计算常用于需要紧密耦合组件的高性能分布式系统。集群中计算机之间的快速局域网连接使得并行处理成为可能,从而提高了整体性能。一些世界上最快的超级计算机就是基于集群计算架构构建的。

高可用性系统
除了提高性能外,集群计算还可以提高系统的可用性。通过在多个节点上运行相同的任务,如果一个节点发生故障,其他节点可以接管工作负载,从而实现高可用性。这对于关键任务应用程序非常有用。

成本效益
与单台高性能计算机相比,集群计算通常更具成本效益。它利用了廉价的商用硬件,通过集群中多个节点的协作来实现高性能计算。这使得集群计算在成本和性能之间达到了良好的平衡。
如何实现高效的集群计算
集群计算是一种通过将多台计算机连接在一起,共享计算资源和工作负载的方式来实现高性能计算的技术。要实现高效的集群计算,需要从以下几个方面着手:

集群架构与管理
集群计算系统可以从简单的双节点系统到高性能超级计算机,不同规模的集群架构设计不同。常见的是采用 Beowulf 集群架构,利用 Linux、并行虚拟机(PVM)和消息传递接口(MPI)等技术以较低成本实现高性能计算。集群活动由 "集群中间件" 软件协调,使用户可将整个集群视为一个统一的计算单元。

并行编程与负载均衡
对于需要进行复杂计算的集群,必须利用并行处理能力,将同一计算任务分配到多个节点上同时执行。自动并行化仍然是一个挑战,但并行编程模型可以通过在不同处理器上同时执行程序部分来增加并行性。对于支持多用户的集群,负载均衡尤为重要,每个请求都需要路由到特定节点。

可扩展性与可靠性
集群可以通过添加更多节点进行水平扩展,这通常比扩展单个节点更具成本效益,可以使用较低性能的单机来处理更大的计算负载。添加节点还可提高可靠性,因为无需停机整个集群即可进行维护。分布式文件系统和 RAID 也可以进一步提高可靠性和速度。

统一接口与高性能服务
采用统一接口,可与云原生服务协同使用并行集群,通过单一界面提交作业、执行并行处理和管理计算资源,最大限度提高应用性能。强大的冷却和节能系统对于超级计算集群而言至关重要,可防止过热并在消耗较少资源的情况下提供高性能。亚马逊云科技等云服务提供快速网络、几乎无限的基础设施和 EC2、Batch、Lustre 等服务,有助于在云中高效运行复杂模拟和深度学习工作负载。
亚马逊云科技在集群计算中的优势
混合部署融合了本地部署和云化部署两种服务方式的优势,允许用户在不同环境之间共享数据和应用程序,既保护了用户私密性,又兼具灵活度,同时降低了成本,操作轻松。

实现超快性能
MemoryDB 是一种全新的内存数据库服务,旨在提供极高的性能和可扩展性。它的吞吐量和延迟取决于节点类型、负载大小和客户端连接数量。在集群分片的主节点上,MemoryDB 可实现微秒级的读取延迟、不超过 10 毫秒的写入延迟和先写后读延迟。这意味着对于需要极快响应时间的应用程序,MemoryDB 是一个理想的选择。
MemoryDB 的性能非常出色,每秒最多可支持 39 万个读取请求和 10 万个写入请求。此外,每个节点可支持高达 1.3 GB/s 的读取吞吐量和 100 MB/s 的写入吞吐量(基于对只读和只写工作负载的内部测试)。这种极高的吞吐量使 MemoryDB 非常适合于需要处理大量数据的应用程序,如实时分析、缓存和会话存储等。通过集群计算和分片技术,MemoryDB 可以轻松扩展以满足不断增长的需求。

自动分发流量以保证负载均衡
Elastic Load Balancing 是一项关键服务,可在多个 Amazon EC2 实例间自动分配应用程序的访问流量。它可以让您实现更高水平的应用程序容错能力,同时持续提供分配应用程序流量所需的负载均衡能力。这对于集群计算环境至关重要,因为它可以确保流量均匀分布到所有可用实例,从而最大限度地利用集群资源。
Elastic Load Balancing 还具有健康检查功能,可以检测出运行不正常的实例,并自动更改路由,将流量指向运行正常的实例,直到运行不正常的实例恢复正常为止。这种自动故障转移机制可确保应用程序的高可用性,即使在实例故障的情况下也能继续为用户提供服务。通过集群计算和负载均衡,可以构建高度可扩展和高度可用的应用程序。

适用于所有服务的应用程序级联网
Amazon App Mesh 是一种服务网格,可提供应用程序级联网,从而可以让您的服务能够在多种计算基础设施中轻松进行相互通信。在集群计算环境中,应用程序通常由多个微服务组成,这些微服务需要相互通信才能正常运行。App Mesh 为这些服务提供了一个统一的控制平面,使它们能够安全、可靠地相互通信。
App Mesh 可为应用程序提供端到端的可见性和高可用性,同时提供一致的可视性和网络流量控制,并帮助您提供安全的服务,使执行任务变得更轻松。它消除了更新应用程序代码、改变监控数据收集方式或在服务之间路由流量的方式的需要。相反,您可以对每项服务进行配置,以导出监控数据,并在整个应用程序中实施一致的通信控制逻辑。通过 App Mesh,您可以更轻松地管理和监控跨多个集群和云环境运行的分布式应用程序。
集群计算面临的挑战
集群计算虽然能够提供强大的计算能力,但也面临着一些挑战。
高昂的管理成本
集群计算系统的管理成本往往很高,有时甚至可能与管理相同数量的独立机器的成本相当。这使得虚拟机因其易于管理而变得流行。
任务调度的复杂性
在异构 CPU-GPU 集群中运行复杂应用程序时,任务调度是一个巨大的挑战。每个作业的性能都取决于底层集群的特征,因此很难有效地将任务映射到 CPU 核心和 GPU 设备上。目前的研究正在探索结合和扩展 MapReduce 和 Hadoop 等算法来解决这些调度挑战。
节点故障处理
当集群中的节点发生故障时,可能需要采用 "隔离" 等策略来隔离故障节点,保护系统的其余部分。随着节点数量的增加,尤其是在高计算负载下,节点发生故障的可能性也会增加。应用程序检查点可用于将系统恢复到稳定状态,并在不重新计算结果的情况下恢复处理。
并行程序开发和调试
在集群上开发和调试并行程序需要专门的工具和语言原语,例如 High Performance Debugging Forum (HPDF)讨论的内容以及 TotalView 等工具中实现的功能。监控和观察大型集群的行为也是一个挑战,像加州大学伯克利分校的 NOW 和 PARMON 等系统旨在解决这一问题。
欢迎加入亚马逊云科技培训中心
欢迎加入亚马逊云科技培训中心
-
快速上手训练营
-
账单设置与查看
-
动手实操
-
快速上手训练营
-
第一课:亚马逊云科技简介
本课程帮助您初步了解云平台与本地环境的差异,以及亚马逊云科技平台的基础设施和部分核心服务,包括亚马逊云科技平台上的弹性高可用架构,架构设计准则和本地架构迁移上云的基本知识。
亚马逊云科技技术讲师:李锦鸿第二课:存储与数据库服务
您将在本课程中学习到亚马逊云科技上的三个存储服务分别是什么。我们也将在这个模块中为您介绍亚马逊云科技上的关系型数据库服务 Amazon Relational Database Service (RDS)。
亚马逊云科技资深技术讲师:周一川第三课:安全、身份和访问管理
在这个模块,您将学习到保护您在亚马逊云科技上构建的应用的安全相关知识,责任共担模型以及身份和访问管理服务, Identity and Access Management (IAM) 。同时,通过讲师演示,您将学会如何授权给 EC2 实例,允许其访问 S3 上的资源。
亚马逊云科技技术讲师:马仲凯 -
账单设置与查看
-
-
动手实操
-
快速注册账号 享用免费套餐
快速注册账号 享用免费套餐
-
1 进入注册页面
-
2 设置用户名及密码
-
3 填写企业信息
-
4 企业信息验证
-
5 完成手机验证
-
6 选择支持计划
-
1 进入注册页面
-
注:该链接中的内容显示语言 是与您的网页浏览器设置相一致的,您可以根据需要自行调整语言栏。 *图片点击可放大
-
2 设置用户名及密码
-
3 填写企业信息
-
*图片可点击放大
-
4 企业信息验证
-
*图片可点击放大
-
5 完成手机验证
-
6 选择支持计划