计算机集群

编辑
本词条由“匿名用户” 建档。

计算机集群是一组计算机,如此一起工作使得它们可以作为一个单一的系统中查看。与网格计算机不同,计算机集群将每个节点设置为执行相同的任务,由软件控制和调度。 集群的组件通常通过快速局域网相互连接,每个节点(用作服务器的计算机)运行自己的操作系统实例。在大多数情况下,所有节点都使用相同的硬件和相同的操作系统,尽管在某些设置中(例如使用开源集群应用程序资源(OSCAR)),不同的操作系统可以用于每台计算机...

什么是计算机集群

编辑

计算机集群是一组计算机,如此一起工作使得它们可以作为一个单一的系统中查看。与网格计算机不同,计算机集群将每个节点设置为执行相同的任务,由软件控制和调度。

集群的组件通常通过快速局域网相互连接,每个节点(用作服务器的计算机)运行自己的操作系统实例。在大多数情况下,所有节点都使用相同的硬件和相同的操作系统,尽管在某些设置中(例如使用开源集群应用程序资源(OSCAR)),不同的操作系统可以用于每台计算机,或不同的硬件。

通常部署集群是为了提高单台计算机的性能和可用性,同时通常比具有可比速度或可用性的单台计算机更具成本效益。

计算机集群的出现是许多计算趋势融合的结果,包括低成本微处理器高速网络和用于高性能分布式计算的软件的可用性。它们具有广泛的适用性和部署范围,从具有少量节点的小型企业集群到世界上一些最快的超级计算机,例如IBM的红杉。在集群出现之前,具有模块化冗余的单机容错大型机受雇;但集群的前期成本较低,网络结构的速度提高,有利于集群的采用。与高可靠性大型机相比,集群的扩展成本更低,但错误处理的复杂性也增加了,因为集群中的错误模式对运行的程序并不透明

基本概念

通过编排大量低成本商用现成计算机来获得更多计算能力和更好的可靠性的愿望已经产生了各种体系结构和配置。

计算机集群方法通常(但不总是)通过快速局域网连接多个现成的计算节点(例如用作服务器的个人计算机)。计算节点的活动由“集群中间件”编排,这是一个位于节点之上的软件层,允许用户将集群视为大体上的一个内聚计算单元,例如通过单个系统映像概念。

计算机集群依赖于集中管理方法,该方法使节点可用作编排的共享服务器。它不同于其他方法,例如对等或网格计算,后者也使用许多节点,但具有更加分布式的性质。

计算机集群可以是一个简单的两节点系统,它只连接两台个人计算机,也可以是一台速度非常快的超级计算机。构建集群的基本方法是Beowulf集群,它可以用几台个人计算机构建,以产生传统高性能计算的经济高效的替代方案。一个显示该概念可行性的早期项目是133节点StoneSoupercomputer。开发人员使用Linux、并行虚拟机工具包和消息传递接口库以相对较低的成本实现高性能。

尽管集群可能仅由通过简单网络连接的几台个人计算机组成,但集群体系结构也可用于实现非常高的性能水平。在TOP500组织的半年度最快的500次名单的超级计算机通常包括多个集群,例如世界上最快的计算机在2011年的ķ计算机具有分布式存储,集群架构。

计算机集群的历史

编辑

GregPfister曾表示,集群不是由任何特定供应商发明的,而是由无法在一台计算机上完成所有工作或需要备份客户发明的。Pfister估计日期是1960年代的某个时间。集群计算为做任何形式的并行工作方式的正式的工程基础可以说是由发明吉恩·阿姆达尔的IBM:,谁在1967年发表了后来被视为对并行处理的开创性论文Amdahl定律。

早期计算机集群的历史或多或少与早期网络的历史直接相关,因为网络发展的主要动机之一是链接计算资源,创建事实上的计算机集群。

xxx个设计为集群的生产系统是1960年代中期的BurroughsB5700。这允许最多四台计算机(每台具有一个或两个处理器)与公共磁盘存储子系统紧密耦合以分配工作负载。与标准的多处理器系统不同,每台计算机都可以在不中断体操作的情况下重新启动。

xxx个商业松散耦合集群产品是DatapointCorporation于1977年开发的“附加资源计算机”(ARC)系统,并使用ARCnet作为集群接口。直到DigitalEquipmentCorporation于1984年为VAX/VMS操作系统(现在命名为OpenVMS)发布了他们的VAXcluster产品,集群本身才真正起飞。ARC和VAXcluster产品不仅支持并行计算,还支持共享文件系统和xxx设备。这个想法是提供并行处理的优势,同时保持数据的可靠性和xxx性。另外两个值得注意的早期商业集群是TandemHimalayan(大约1994年的高可用性产品)和IBMS/390ParallelSysplex(大约1994年,主要用于商业用途)。

在同一时间范围内,当计算机集群在商品网络上的计算机外使用并行性时,超级计算机开始在同一台计算机内使用它们。继1964年CDC6600取得成功之后,Cray1于1976年交付,并通过矢量处理引入了内部并行性。虽然早期的超级计算机排除了集群并依赖于共享内存,但随着时间的推移,一些最快的超级计算机(例如K计算机)依赖于集群架构。

计算机集群的属性

编辑

计算机集群可以针对不同的目的进行配置,从通用业务需求(如Web服务支持)到计算密集型科学计算。在任何一种情况下,集群都可以使用高可用性方法。请注意,下面描述的属性不是xxx的,“计算机集群”也可能使用高可用性方法等。

“负载平衡”集群是集群节点共享计算工作负载以提供更好的整体性能的配置。例如,Web服务器集群可能会将不同的查询分配给不同的节点,因此会优化整体响应时间。然而,负载平衡的方法在不同的应用程序之间可能会有很大的不同,例如,用于科学计算的高性能集群将使用来自网络服务器集群的不同算法来平衡负载,该集群可能只使用简单的循环方法通过分配对不同节点的每个新请求。

计算机集群用于计算密集型目的,而不是处理面向IO的操作,例如Web服务或数据库。例如,计算机集群可能支持车辆碰撞或天气的计算模拟。非常紧密耦合的计算机集群是为可能接近“超级计算”的工作而设计的。

高可用性集群”(也称为故障转移集群或HA集群)提高了集群方法的可用性。它们通过具有冗余节点来运行,然后在系统组件出现故障时使用这些节点提供服务。HA集群实现尝试使用集群组件的冗余来消除单点故障。许多操作系统都有高可用性集群的商业实现。在Linux的HA项目是一个常用的免费软件HA包为Linux的操作系统。

集群的好处

编辑

集群的设计主要考虑性能,但安装基于许多其他因素。容错(系统能够继续处理故障节点的能力)允许可扩展性,在高性能情况下,维护例行程序的频率较低,资源整合(例如RAID)和集中管理。优点包括在发生灾难时能够进行数据恢复以及提供并行数据处理和高处理能力。

在可扩展性方面,集群提供了水平添加节点的能力。这意味着可以将更多计算机添加到集群中,以提高其性能、冗余和容错能力。与扩展集群中的单个节点相比,这对于性能更高的集群来说是一种廉价的解决方案。计算机集群的这一特性允许由大量性能较低的计算机执行更大的计算负载。

向集群添加新节点时,可靠性会增加,因为不需要关闭整个集群。可以关闭单个节点进行维护,而集群的其余部分则承担该单个节点的负载。

如果您将大量计算机集群在一起,这有助于使用分布式文件系统和RAID,这两者都可以提高集群的可靠性和速度。

数据共享和通信

编辑

数据共享

随着计算机集群在1980年代出现,超级计算机也出现了。当时区分这三类的要素之一是早期的超级计算机依赖于共享内存。迄今为止,集群通常不使用物理共享内存,而许多超级计算机架构也已放弃它。

然而,集群文件系统的使用在现代计算机集群中是必不可少的。示例包括IBM通用并行文件系统、Microsoft的集群共享卷或Oracle集群文件系统。

消息传递和通信

两种广泛使用的集群节点间通信方法是MPI(消息传递接口)和PVM(并行虚拟机)。

PVM是在1989年左右在MPI可用之前在橡岭国家实验室开发的。PVM必须直接安装在每个集群节点上,并提供一组将节点绘制为“并行虚拟机”的软件库。PVM为消息传递、任务和资源管理以及故障通知提供了一个运行时环境。PVM可由用C、C++或Fortran等编写的用户程序使用。

MPI于1990年代初在40个组织之间的讨论中出现。最初的努力得到了ARPA和国家科学基金会的支持。MPI的设计并没有重新开始,而是利用了当时商业系统中可用的各种功能。MPI规范随后产生了特定的实现。MPI实现通常使用TCP/IP和套接字连接。MPI现在是一种广泛使用的通信模型,它使并行程序能够用C、Fortran、Python等语言编写。因此,与提供具体实现的PVM不同,MPI是已在MPICH和OpenMPI等系统中实现的规范。

计算机集群

集群管理

编辑

Cubieboards的低成本和低能耗微型集群,在Lubuntu上使用ApacheHadoopGroundElectronics/ABOpenCircumferenceC25集群计算机系统的预发布样本,配备8个RaspberryPi3B+型和1个UDOOx86板。

使用计算机集群的挑战之一是管理它的成本,如果集群有N个节点,它有时可能与管理N个独立机器的成本一样高。在某些情况下,这为具有较低管理成本的共享内存架构提供了优势。由于易于管理,这也使虚拟机流行起来。

任务调度

当大型多用户集群需要访问非常大量的数据时,任务调度就成为一个挑战。在具有复杂应用环境的异构CPU-GPU集群中,每个作业的性能取决于底层集群的特性。因此,将任务映射到CPU内核和GPU设备是一项重大挑战。这是一个正在进行的研究领域;已经提出并研究了结合和扩展MapReduce和Hadoop的算法。

节点故障管理

当集群中的一个节点出现故障时,可以采用诸如“围栏”之类的策略来保持系统的其余部分正常运行。防护是在节点出现故障时隔离节点或保护共享资源的过程。有两类围栏方法;一个禁用节点本身,另一个禁用对共享磁盘等资源的访问。

该STONITH方法代表“拍摄其他节点在头部”,意思是可疑节点被禁用或断电。例如,电源防护使用电源控制器关闭无法运行的节点。

该资源击剑方法不允许访问资源,而无需关闭节点供电。这可能包括通过SCSI3的持久保留防护、禁用光纤通道端口的光纤通道防护或禁用对GNBD服务器的访问的全局网络块设备(GNBD)防护。

内容由匿名用户提供,本内容不代表vibaike.com立场,内容投诉举报请联系vibaike.com客服。如若转载,请注明出处:https://vibaike.com/126732/

(3)
词条目录
  1. 什么是计算机集群
  2. 基本概念
  3. 计算机集群的历史
  4. 计算机集群的属性
  5. 集群的好处
  6. 数据共享和通信
  7. 数据共享
  8. 消息传递和通信
  9. 集群管理
  10. 任务调度
  11. 节点故障管理

轻触这里

关闭目录

目录