介绍
集群,即将多台计算节点用网络联接起来,使其表现为一个单一的计算解决方案,多年来这对于运行 Linux 的 Intel 系统来说已经很常见。IBM eServer OpenPower 710 的发布,使得基于 POWER 上 Linux 的集群成为一个理想解决方案,其原因在于 710 具有一路或两路 1.65GHz POWER5 处理器。本文首先介绍了一些常规的集群概念和软件,然后给出了 OpenPower 710 可以如何应用于最常见的两类集群(高性能集群和高可用集群)的示例。
IBM eServer OpenPower 710
IBM eServer OpenPower 710 是一款使用 POWER5 架构的高容量入门级服务器。它是一台 2U 26" 的机架式服务器,最多可以安装两个 1.65 GHz 的处理器。内存最少为 512 Mb,最多可以扩展到 32G。它有两个用于网络连接的千兆以太网卡。POWER5 架构支持同步多线程(Simultaneous Multi threading,SMT),允许两个线程在同一个处理器上同时执行。类似于其他基于 POWER5 的硬件,OpenPower 710 也支持微分区和虚拟 I/O 功能,这些在购置服务器时,或者在进行 Capacity Upgrade on Demand 时,就可以作为特性启用。
集群构成
一个集群可以由共同执行某一特定任务的任意数目组成部分构成。为了更好地理解本文中的示例集群,给出了对这些组成部分的一个简要概述。
集群管理(Cluster management)
集群管理所涉及的是,“监视”集群中每一个节点,令一个或多个 管理(management)
节点监控其他节点,比如
计算(compute) 或
存储(storage) 节点。管理节点还负责执行其他节点上的软件升级。从 webmin 等很小的工具,到 IBM 集群系统管理(Cluster System Management,CSM)等较大的软件包,有大量可用于集群管理的工具。要获得关于这些工具的更多资料,请参阅
参考资料 中“集群管理”部分的链接。
监控(Monitoring)
监控集群中的节点是集群管理的一个组成部分,即追踪节点的状态。heartbeat 是一个用来监控集群中的节点的应用程序,应该运行于它自己的私有网络或者串行连接之上,以避免出现故障。当 heartbeat 应用程序检测到某个节点宕机时,就会执行适当的动作来确保集群的稳定性。要获得更多关于 heartbeat 的资料,请参阅 参考资料 中“监控”部分的链接。
文件系统(File System)
Linux 提供了很多不同的文件系统,但是分布式文件系统在集群的环境中可以带来最优的性能。集群中所有节点对数据的并发访问,以及某些分布式文件系统所内置的高可用性,是它们成为集群环境理想选择的两方面原因。一些常见的分布式文件系统包括,IBM 通用并行文件系统(General Parallel File System,GPFS)、Intermezzo 和 OpenAFS。要获得关于这些的更多资料,请参阅 参考资料 中“文件系统”部分的链接。
卷管理(Volume management)
卷管理是在不对集群存储系统产生消极影响的前提下动态管理存储的能力。在这种情形下卷管理将会适用:您的某个存储服务器已经存满数据,需要添加存储空间。卷管理让您可以将存储空间添加到现有的文件系统,而不需破坏存储服务器。逻辑卷管理(Logical Volume Management,LVM)和企业卷管理系统(Enterprise Volume Management System,EVMS)是两个卷管理工具。要获得关于这些工具的更多资料,请参阅 参考资料 中“卷管理”部分的链接。
作业(Job management)
作业管理保证了集群中的资源管理。作业管理软件管理那些可以在集群中运行的作业,确定哪个节点具有可以运行这些作业的资源。Balance 和 Torgue 是两个可用的作业管理软件包。要获得更多关于 Balance 和 Torque 的资料,请参阅 参考资料 中“作业管理”部分的链接。
调度器(Schedulers)
调度是作业管理的一个构成部分,管理作业向集群中资源的分配。在高性能集群中,调度更为重要,因为在处理复杂计算问题时,这对最大化所有节点的 CPU 利用率来说非常重要。可用于 Linux 的调度器包括 Condor 和 Maui。要获得更多资料,请参阅 参考资料 中“调度器”部分的链接。
消息传递(Message passing)
消息传递涉及的是在高性能集群中的节点间高效传输数据。消息传递接口(Message Passing Interface,MPI)定义了一个库规范,描述了如何编写发挥并行计算优势的应用程序。Mpich 使用了 MPI,是一个用于高效并行计算的软件包。要获得关于 MPI 和 Mpich 的更多资料,请参阅 参考资料 中“消息传递”部分的链接。
高性能集群示例
OpenPower 710 具备基于 POWER5 处理器的 64-位架构以及 SMT 能力,使得它成为高性能集群的理想解决方案。在这个例子中,运行于集群中的高性能应用程序是 Linpack 基准套件。我们将集中关注集群中的节点管理、监控和调度。
研究对象
本例子中所描述的高性能集群由五个 OpenPower 710 服务器构成:一个管理节点和四个计算节点。在这个集群中安装了 Linpach 基准来测试性能,而并没有安装某个高性能应用程序软件包。Linpack 基准设计用来求解大规模稠密线性方程。在 参考资料 中您可以找到这个基准的一个并行实现。
细节
CSM 软件在管理节点上运行,为节点管理提供单点控制。管理节点与计算节点通过“管理”网络进行通信,这是一个私有网络,运行于 eth1 上,如 图 1 所示。在管理节点上有对每个计算节点的定义。 CSM 可以灵活地定义需要安装到每个计算节点上的应用程序列表。这同样也可以应用于所需要的高性能软件。安装完计算节点后,管理节点监控计算节点,并使用 CSM 提供的功能来完成对计算节点上软件的更新。
图 1. 高性能集群并行计算要涉及到组合大量数据并将那些数据分布到每个计算结点,以进行更快的处理。如图 1 所示,通过消息传递接口(MPI)库规范在节点间传递数据。Linpach 基准的并行版本要求安装一个 MPI 库。在本例中我们使用的是 MPICH 程序包。(参阅 参考资料 中的链接。)
计算节点间的通信在“计算”网络上进行,它是一个运行于 eth0 上的私有网络,如图 1 所示。在高性能集群中,监控很重要,因为要得知何时某个计算节点发生故障或者不能达到期望的性能,这是最基本的。在本例中,安装了 Heartbeat 应用程序,它在集群中节点间的串行连接上运行。我们使用串行连接来减少故障。
现在就建立起了一个小型的高性能集群,可以试运行并行构建的 Linpack 基准。如果某个计算节点崩溃,管理节点可以把它记录下来,您将知道尽管运行的基准不正确,但是已经执行了适当的动作来恢复出现故障的计算节点。一旦启动并再次运行,您可以重新运行基准并分析结果。
高可用集群示例
高可用(high availability,HA)集群中有足够的冗余资源,在任何一个部分出现故障时都可以保证提供系统功能。本例描述了一个简单的 HA 集群,由三个节点构成:一个主节点,一个备份节点,以及一个管理节点。主节点和备份节点连接到一台 IBM DS4500 存储服务器。此集群常见于小型 Web 服务环境。
研究对象
由于冗余是 HA 集群的关键特性,因而在这个例子中基本的组成部分包括节点管理、分布式文件系统、卷管理和监控。本例展示了如何使用两台 OpenPower 710 型机器使容错成为可能:一台作为主服务器,另一台作为备份服务器。使用监控软件来检测主服务器是否宕机。
细节
与上面所述的高性能集群相同,在管理节点上安装 CSM。管理节点通过运行在 eth1 上的私有管理网络连接到主节点和备份节点,如图 2 所示。管理节点安装主节点和备份节点,并根据需要进行软件更新。
图 2. 高可用集群Heartbeat 程序包提供了对节点进行监控的软件。为了减少故障,连接被监控的节点时使用的是串行连接,而不是网络连接。Heartbeat 的配置是当主节点偶然宕机时切换到备份节点。这是对 Heartbeat 工作原理非常高层次上的了解,不过,在 High-Availability Linux Project Website 可以找到更多资料。
GPFS 是运行于 DS4500 存储服务器上的分布式文件系统。存储服务器通过高速 myrinet 或者光通道连接到主节点和备份节点,如图 2 所示。GPFS 和 DS4500 共同构成了一个冗余存储子系统,预防磁盘故障。GPFS 允许主节点和备份节点并发访问集群中的所有文件。
在集群上安装 LVM 来执行卷管理。LVM 具备向 DS4500 动态添加和删除存储空间的能力,并不需要打断为正在运行的集群提供的服务。例如,如果存储 Web 内容的文件系统已满,则 LVM 允许您向文件系统添加另一块磁盘来增大存储空间,而并不影响现有数据。
现在您就已经拥有了处理主节点故障(如果它会发生)所需要的所有组成部分。如果 Heartbeat 应用程序发现主节点不可用,那么备份节点就会使用适当的网络配置而运行起来。此时,备份节点正在处理 Web 服务,而且从外部可路由网络来看没有发生任何故障。同时,可以对主节点进行维护,分析它为什么会宕机。
结束语
OpenPower 710 具有基于 64-位 POWER5 处理器的架构,是高可用和高性能集群的理想解决方案。另外,当前可用的大部分 Linux 集群软件都已经移植到 64-位 POWER 架构,这就使得此入门级服务器成为基于 POWER 上 Linux 的集群解决方案的一个可接受的 64-位 平台。