软件对于集群来说很重要,这是因为“软件”一词本身不仅含有应用程序的意思,而且软件能将集群的各个部分(即节点)联合起来,作为一个整体在工作。它还包括您可能会使用到的任何开发工具、任何监控工具和报告工具。简言之,软件不仅是我们使用集群(应用程序)的原因还是集群的大脑。
 
在本文中,我想要谈谈一个集群里有哪些软件部分,您为何需要它们,它们有何作用、以及如何联合工作等。希望能藉此让您了解集群需要哪些软件部分才能完成集群的工作。
 
我不会对各种软件组件进行对比,因为此类对比软件很多,而且这也不是本文的目的,我将站在一个高度上告诉您工具有何用处以及您为何需要它们。不过,在文章的末尾,我会向您推荐一些维持集群正常工作所必需的组件和用于升级或提供增强功能的软件。

本文不讨论应用程序,因为这是由用户而不是集群本身决定的事。

真正的基本集群

开始建集群时,应该构建您想要的基本集群,实际上您需要的不过是一个操作系统。您可以在每个节点的驱动器中插入光盘逐一为每个计算节点安装操作系统。网络和主机列表必须进行稍微调整,但在基础层面上要有一个能运行的集群(当然,还有一些小细节,例如创建帐户、无密码登录、以及每个节点都可以访问的内存)。

这些操作看似容易,但实际上工作量极大。如果您需要更新操作系统,就必须创建一个新的 CD,然后把它安装到每个节点上;而如果只是一个简单的变化,您就可以通过网络把它复制、安装到每个节点上,然后重新启动节点。对于有一定规模的集群来说,这样的操作也是很令人头疼的。。

此外,这种集群管理方式确实只适合单用户模式,而且这个用户必须是集群的管理员。这也许是访问集群的好办法,但对于要执行实际任务的集群来说却并不是明智的选择。

所需软件组件

集群的首要软件组件是非常基础的,您也许猜到了——操作系统 (OS)。集群中的每个节点(HPCC 节点文章链接)、主节点、登录节点和计算节点都需要有操作系统。操作系统可以安装在节点的硬盘驱动器上,甚至可以安装在 ramdisk 上,这有时被称为“无盘”或“无状态”节点。一般说来,主节点创建所谓的“映像”,然后将其发送到计算节点上进行安装(硬盘驱动器或 ramdisk 上)。

第二个软件工具在本文中被称为集群管理工具 (CMT),它的职能是管理集群。它有多个功能,有的是可选功能。而必须具备的功能包括:

  • 维护计算节点清单(即集群中包括的节点)。只需通过简单如 /etc/hosts 的,就能复制或通过本地 DNS 发送至每个计算节点
  • 创建、管理映像或安装在计算节点上的数据包集
  • 发送映像或数据包到计算节点(一般通过 PXE
  • 执行对计算节点的基本监控(例如,节点工作情况?什么节点发生起落?)
  • 计算节点电源控制(不是硬性要求,但是强烈推荐)。即远程开启/关闭节点,此功能可以通过各种方法实现,有的方法需要使用增加其他硬件。

虽然这个功能清单对于有集群经验的人来说显得太简短,但清单所载功能是 CMT 真正的核心。具备其他功能也不错,但对集群来说并不是必不可少的。

CMT 包括 Platform OCSClustercorp ROCKS+Microsoft Windows CCS 和平台管理器 (Platform Manager) 等。

可选组件

集群所需的工具并不多,但有了这些就能实现集群的基本运行。不过,这样的集群并不完美,它只能满足 1 个用户或 2 至 3 个用户的需要,此外,您也难以全面控制和掌握集群的运行情况。我们来看一些可选组件,从技术上虽然是可选项,但是没有这些工具,集群就不具备生产能力。

有一些组件可以添加到 CMT 或 CMI 上层。作为一个有数年管理多个集群经验的人,我强烈建议您郑重考虑使用以下附加组件:

  • 更加广泛的监控工具,包括集群状态图形视图,例如 Ganglia(链接- http://ganglia.info/)、Cacti(链接 - http://www.cacti.net/)和 Nagios(链接 -http://www.nagios.org/)
  • 报告工具,允许您创建关于集群运行情况的报告
  • 用户帐户管理工具(允许您在整个集群上创建用户帐号、允许用户设置密码,然后将其传播到集群的所有节点上,允许无密码登录节点,这对于运行 MPI 应用程序是必需的)

另一个理论上可选,但值得强烈推荐的组件——任务调度器(也被称为资源管理器)任务调度器是一个允许用户提交执行任务、但不参与任务运行的排队系统。任务调度器把提交的任务排成队列,等到资源(即节点)可用时,就开始运行。任务调度器包括:Platform LSFPBS-ProMOAB 等。

虽然可以将其当做一个应用程序,有时还是需要安装开发工具。这些工具包括编译器、编辑器、调试器、库等。使用 Linux,您就可以轻松安装几乎发行的每个 Linux 都有的 gcc 工具链。有了 Windows,您还可以购买编译器套装,例如 Windows Visual Studio

强烈建议安装一个非常有用的可选工具,通过这个工具您可以远程访问节点。这就是 IPMI。有了 IPMI,您可以远程登录节点,收集诸如温度、其他便捷命令等节点信息,常见的例子有 IPMITool

有时候您可能想在退出时访问节点。这个工具通常是由位于节点自带的硬件部分,和在主节点上运行的、用于访问节点的软件工具组成的。作为一个通用术语,这个工具被称为“远程管理”工具。更确切地说,节点断电后,您依然可以对该节点进行安装远程媒体、启动节点、访问 BIOS 的操作。这种硬件因供货商不同而不同。例如,戴尔的就称为 DRAC,而 HP 的则叫做 ILO。

推荐工具/配置

我已经列出了一些工具,您可以根据喜好对其进行分层。如果您要我推荐一组工具,我会建议您做如下安排:

  • 适用于所有节点的操作系统
  • 带以下功能的 CMT:
    • 能够创建、管理映像或要安装在计算节点上的数据包集。最好将节点构建成无状态节点。当然也可以安装一个硬盘驱动器,但是节点操作系统并不依赖于此。
    • 把映像或数据包送到计算节点的功能
    • 通过软件和/或 IPMI(BMC 卡)监控计算节点。这可以提供节点远程电源控制。
    • 图形监控工具
  • 任务调度器
  • 开发工具(若需要)
    • 编译器
    • 编辑器
    • MPI 库
    • 科学库

远程管理是一个更倚重贵站点处理器的选项,是否需要用它,我们没有定论。请务必弄清它能为您带来什么好处以及价格如何,再决定是否需要这个工具。

但我认为这组工具是生产级集群的基本配置。当然,我会再添加一些其他工具来满足我的喜好和程序需要,但是老实说,这些工具对于集群操作并不是必不可少的。您可以自己决定想要安装的其他工具。