构建 Linux 集群

作者:Glen Otero
Building Linux Clusters
  • 作者:David H. M. Spector

  • 出版社:O'Reilly & Associates

  • 网址:http://www.ora.com/

  • 价格:44.95 美元

  • ISBN:1-56592-625-0

  • 评论者:Glen Otero

自从两年前我开始使用 Linux 以来,我就一直想构建一个集群。在 Linux 自学的早期,我在互联网上搜寻集群信息,期待着有一天我能够在自己家里运行一台并行计算机。我阅读的关于这个主题的所有内容都表明,使用 Linux 进行集群是直接的,几乎是简单的。但对于新手来说,进展缓慢,我没有取得多大进展。集群信息分散在互联网的各个角落,我无法从中理出一个有凝聚力的整体。当 Sterling、Salmon、Becker 和 Savarese 出版了如何构建贝奥武夫集群时,我欣喜若狂。我认为我准备好了。我买了五台配备 AMD 400MHz K6 处理器的计算机,以期待我的自制超级计算机。唉,这本书信息量很大,但缺少我在其他地方都难以找到的一样东西:集群安装的软件。我被困住了。

当我发现 O'Reilly 将要出版构建 Linux 集群时,我订购了这本书。广告声称这本书将包含构建集群的软件。我得救了。但我还有几个月的时间等待它的到来,所以我计划并策划着我将用我的集群做的真正酷的事情,我指的不仅仅是破解 DES 密钥。

2000 年 7 月,我在加利福尼亚州蒙特雷举行的 O'Reilly 开源软件会议上,发现 O'Reilly 将把这本书运送到会议现场。两天后,我得到了我希望是贝奥武夫圣杯的东西,并且还获得了 20% 的促销折扣。在蒙特雷,与我想变成集群的那些盒子分离,我在不到 24 小时内就匆匆读完了构建 Linux 集群的 280 多页。它包含了我和任何其他人所需要的一切。我欣喜若狂。

前四章涵盖的材料写得很好,旨在引导新手轻松入门。涵盖的主题包括:并行计算的历史、网络和并行性的概念、并行编程系统和库、集群类型、集群设计、构建和组装注意事项以及硬件。像我这样的期待集群构建者将熟悉大多数入门材料,但可能会从网格、超立方体和对称多处理 (SMP) 等高级主题中收集到一些有用的信息。作者对入门级、中级和高级集群配置的建议对于大多数 Linux 用户来说似乎是不现实的。我觉得我为我的集群组装的硬件对于一个业余爱好者来说已经相当奢侈了。然而,我的硬件与入门级集群建议的七个 450MHz 奔腾处理器相比,还是差强人意。至少我在以太网带宽和内存方面击败了该配置。作者意识到过去大多数贝奥武夫集群都采用了低预算或零预算、自己动手的方法,但他明确表示他的目的是涵盖“严肃”系统的构建。当然,集群的“严肃性”显然是相对的,作者的建议应被视为指导方针,而不是规则。但是,如果您确实安装了本书中的集群软件,您将需要每个节点大约 1G 的硬盘空间,因为该软件需要大约 946M 的磁盘空间。

最后三章包含关于并行编程开发环境、工具、库和应用程序的优秀信息和资源。CD 中包含常用工具,如 GNU Emacs、GCC、G77、Fortran 编译器和 GDB(GNU 调试器)。CD 中还发现了两套并行编程工具,PADE(并行应用程序开发环境)和 XPVM。这些软件包是非常有用的 GUI 工具,允许用户在其集群上创建和修改并行虚拟机 (PVM)。CD 中还包含本地区域多计算机 (LAM) 软件包。LAM 通过帮助为基于 MPI 的程序创建处理环境,帮助用户执行利用消息传递接口 (MPI) 库(也包含在内)的程序。所有这些软件包都附带在线文档。CD 中还包含几个并行编程库,如 SMARTS(共享内存异步运行时系统)、SILOON(面向对象数值的脚本接口语言)、PAWS(并行应用程序工作空间)、POOMA(并行面向对象方法和应用程序),以及数学库 PETSc、PLAPACK 和 ScaLAPACK。还包括几个调试和性能工具,如 TAU(调优和分析实用程序)、PCL(性能计数器库)和 PDT(程序数据库工具包)。对于那些想要超越典型的贝奥武夫并构建更紧密集成的系统的硬核用户,CD 中包含了两组内核补丁,BPROC(贝奥武夫分布式进程空间)和 MOSIX。

似乎还不够,CD 中包含了两个应用程序,mp3pvm 和 PVMPOV,用于测试您的集群。

显然,CD 加载了大量强大的工具来构建和运行并行程序。上面我总结的七章中发现的主题涵盖范围很广。我认为这本书对于初学者以及高级集群爱好者来说都是重要的参考资料。话虽如此,让我们来谈谈为什么我永远无法向任何人推荐这本书。

这本书的编辑和校对几乎不存在。书中前 11 张图中有 8 张要么丢失,要么顺序错误。拼写和语法错误的数量是不可接受的。我们都对 O'Reilly 有更高的期望,而这种粗制滥造的产品令人震惊。由于缺乏编辑,遇到了足够的绊脚石,很快就让 Linux 初学者感到困惑。熟悉 Linux 和入门材料的人可能可以通过一些假设和猜测来了解作者的意图。我就是这样做的,然后进入了安装阶段。

简而言之,作者构建 Linux 集群的方法包括 Red Hat 开发的 Kickstart 安装方法、DHCP 以及通过网络安装 Linux。提供的软件用于创建两种类型的启动软盘。为主节点创建一个软盘。主节点启动软盘用于在主节点上执行 Red Hat Linux 6.2 的 CD 安装。一旦主节点启动并运行,它将被配置为充当集群中其余节点的 DHCP 服务器。清楚地记录了输入主节点需要的信息以服务于 IP 地址的 DHCP 请求的命令。一旦主节点准备就绪,创建的第二种类型的启动软盘用于通过网络从主节点 CD 对其余节点执行 Linux 的自动 Kickstart 安装。理论上,它简单明了。以至于作者提到他能够在约 20 分钟内完成多个集群的软件安装。正是我需要的软件解决方案。

存在太多错误,包括创建启动软盘、配置 DHCP 服务器和执行安装的命令中的错误,以至于我的软件安装花费了八个小时。我需要输入的第一个命令行才能创建第一个安装启动盘是错误的。这只是众多障碍之一。脚本也经常被错误标记,并且经常不在它们应该在的位置。书写的内容与 CD 上的内容之间的差异令人震惊。

在经过数小时的假设、浏览文件系统、编辑启动盘软件和一点黑魔法之后,我完成了安装。现在,我只需要使用提供的集群管理软件初始化集群数据库,我就能够运行提供的并行应用程序。您可能会认为我已经忍受了最糟糕的时刻。但黎明前的黑暗总是最黑暗的。

CD 中包含的集群管理软件(我很高兴看到的另一个功能)根本无法工作。它本质上是一堆 Perl 脚本,旨在通过 Web 浏览器界面和命令行工作。但是,集群管理软件包主页上缺少几个链接,使得浏览器界面变得毫无意义。我拥有相当多的 Apache 知识,但我无法使其工作。也许我对 Perl 的了解不够。无论如何,当我尝试绕过浏览器界面并使用提供的脚本手动填充集群数据库时,我收到了我认为是该项目的丧钟。运行脚本返回消息:此命令将在更新的集群管理软件包中提供。什么?不仅软件无法工作,而且还不完整。事情从此急转直下。

拒绝放弃,我尝试使用 XPVM 通过设置 PVM 向我的“集群”(单个主节点)添加节点,但没有成功。我尝试在 pvm> 命令行提示符下手动添加节点,但没有成功。到那时为止我的经验表明,如果不经过一番挣扎,任何事情都不会奏效。所以我勉强放弃了,没有尝试 LAM 软件包。

显然,我并不孤单地遭受痛苦和失望。在撰写本文时,oreilly.com 上发布的九篇读者评论中有八篇表达了与我相似的情绪。其他读者提交了错误报告,更详细地涵盖了我在这里提到的内容。值得赞扬的是,O'Reilly 正在他们的网站上发布已确认的勘误表。在这种情况下,这对他们来说是一场艰苦的战斗。

我感到震惊的是,这项工作是如何从任何出版社,更不用说 O'Reilly 的出版社中出来的。为了避免将来再次发生这种灾难,请允许我公开声明,我将亲自审查构建 Linux 集群的任何即将到来的修订版/版本,并免费测试其中的软件。

构建 Linux 集群应被视为 beta 版本。在下一个版本中需要做很多工作,我才能向任何人推荐它。从技术上讲,在我拿到这本书之前,我在集群方面已经领先了。但感觉肯定不是这样。

Building Linux Clusters
Glen Otero 拥有免疫学和微生物学博士学位,并在加利福尼亚州圣地亚哥经营一家名为 Linux Prophet 的咨询公司。可以通过 gotero@linuxprophet.com 与他联系。冲浪,指的是在海里冲浪,是他最喜欢的消遣。
加载 Disqus 评论