OSCAR 革命

作者:Richard Ferri

“时机未到,美酒不呈”这句蹩脚的双关语,出自 NCSA 的 Rob Pennington,在 2000 年 4 月于橡树岭国家实验室附近一家酒店举行的首届 OSCAR 会议上。来自国家实验室、学术界和工业界的各色人等齐聚一堂,讨论当时被称为 CCDK(社区集群开发工具包)的项目,该项目后来演变为 OCG(开放集群组织)及其首个项目 OSCAR(开源集群应用资源)。

与会者将集群分解为各个组件,并为每个组件指定了“沙皇”(领导者)和“抱怨者”(利益相关方)。沙皇负责领导每个组件小组,而抱怨者则要大声且频繁地抱怨,以确保工作按计划完成,并满足小组的要求。从首次会议任命沙皇和抱怨者开始,就清楚地表明 OSCAR 的开发将不同于以往的所有其他软件开发。毕竟,在像集群这样竞争激烈的领域,哪里还能找到像 IBM、戴尔、SGI 和英特尔这样的公司紧密合作,共同生产开放解决方案呢?

OSCAR 的最初想法源于在阿贡国家实验室举行的 DOE 赞助的集群会议上的晚餐,英特尔的研究科学家 Timothy Mattson 博士和橡树岭国家实验室的研究科学家 Stephen Scott 博士在晚餐时讨论了如何让 Linux 集群被主流接受的问题。他们认为问题在于,非计算机程序员组装自己的集群实在太难了。《如何构建 Beowulf 集群》(Sterling 等人著)之类的书籍可以帮助精通计算机的人理解概念并构建他们的第一个集群,但仍然存在令人望而生畏的问题。有大量的代码需要下载,所有代码的可靠性、支持、集成和文档水平都参差不齐。有时,各种软件包的文档已经过时且相互矛盾。有许多 Linux 发行版可供选择,每个发行版都试图通过与下一个发行版略有不同来突出自己。这意味着某些命令的工作方式不同,或者必须安装不同的软件包才能使某项服务正常工作。

他们认为,问题在于,每个人都在尝试构建自己的集群以利用廉价的集群计算,导致每个集群都是从零开始构建的。有必要将最佳的可用软件、实践和文档汇集到一个地方,在不同类型的硬件上集成该软件包,并免费(如免费啤酒)提供给用户,从而实现规模经济。这种让非程序员也能轻松构建集群的概念是 OSCAR 的核心宗旨。

首次会议

在橡树岭举行的历史性首次会议由 OCG 的领导者 Tim Mattson 和 Stephen Scott、来自 SGI 的 Gabriel Bonner、来自 MSC.Software 的 Dave Lombard、NCSA 的 Rob Pennington、现任 Conservative Computers 的 Greg Lindahl、来自 IBM 的 Ken Briskey 和我本人、来自 HP 的 Greg Astfalk 以及来自 MPI Software Technologies 的 Clay Taylor 出席。首次会议后不久,来自 Veridian 的 Broahn Mann 加入,为团队带来了他的并行调度技能,来自 NCSA 的 Jeremy Enos 和 Neil Gorsuch(他们在 OSCAR 上实现了 SSH)以及来自橡树岭国家实验室的 Mike Brim(他编写了大部分集成脚本和打包)也加入了。最近,来自印第安纳大学的 Jeff Squyres 和 Brian Barrett 代表 LAM/MPI 加入了 OSCAR 项目。这个由不同背景的人组成的团队就三项主要核心原则达成了一致

  1. 主流高性能计算对集群的采用受到缺乏健壮且易于普通用户使用的、广为接受的软件堆栈的阻碍。

  2. 该小组拥抱开源软件分发模式。任何贡献给小组的东西都必须可以自由分发,最好是以源代码形式在 Berkeley 开源许可证下分发。

  3. 该小组可以通过传播集群计算先驱多年辛勤工作积累起来的最佳实践来实现其目标。

在这些原则牢固确立后,该小组使用分而治之的方法列出了构成集群的组件。组件小组为每个组件确定了最知名的开源解决方案,并将信息呈现给整个小组。从总体上看,每个组件的最佳实践构成了一个可行的集群解决方案。即使有了组件解决方案,橡树岭国家实验室在 Mike Brim 和 Brian Luethke 的领导下,仍然进行了大规模且耗时的集成工作,以及由戴尔的 Jenwei Hsieh、Tau Leng 和 Yung-Chin Fang 领导的单独测试工作。通过他们的努力,以及面对面和远程集成会议,OSCAR 最终演变成可以与社区其他成员分享的东西。

软件堆栈

花费了将近整整一年的时间,但 OSCAR 在 2000 年 11 月于德克萨斯州达拉斯举行的 SC2000 大会上,在橡树岭国家实验室的展位上进行了 beta 版演示。该 beta 版在戴尔和 SGI 提供的异构服务器集群上运行。第一个版本在此后不久发布,并在 2001 年 2 月于纽约市举行的 LinuxWorld Expo 上,在英特尔展位上成功亮相。此后,OSCAR 软件堆栈不断改进,目前包括

  • Linux 安装:SIS(系统安装套件)。SIS 是一款开源集群安装工具,基于 LUI(Linux 集群安装实用程序)和流行的 SystemImager 的合并。SIS 由 IBM 的 Michael Chase-Salerno 和 Sean Dague 开发,在 OSCAR 的 1.2.1 版本中首次亮相。最近,SystemImager 的创建者 Bald Guy Software 的 Brian Finley 一直在参加 OSCAR 会议,并寻找免费啤酒,就像免费啤酒一样。

  • 安全:OpenSSH——在 Linux 环境中允许安全连接的最常用方式。OpenSSH 是处理安全连接、服务器端 SSH 服务、安全密钥生成以及用于支持计算机之间安全连接的任何其他功能的软件包集合。

  • 集群管理:对于集群范围的管理操作,OSCAR 使用橡树岭国家实验室 Stephen Scott 和 Brian Luethke(一位在 ORNL 工作的东田纳西州立大学学生)开发的集群命令和控制 (C3) 管理软件包。C3 提供“单系统假象”,以便单个命令影响整个集群。C3 仍然安装在集群节点上,供集群用户和管理员稍后使用。

  • 编程环境:消息传递接口 (MPI) 和并行虚拟机 (PVM)。大多数集群用户编写在集群上运行的软件。有许多不同的方法可以编写集群软件。最常见的方法是使用消息传递库。目前,OSCAR 安装的编译器或数学库来自 Linux 发行版。LAM/MPI 和 MPICH 自 OSCAR 1.1 版本以来均已可用。

  • 工作负载管理:来自 Veridian 的可移植批处理系统 (PBS) 和 Maui 调度器(由 Maui High Times Computing Center 开发)。为了分时共享集群,需要某种类型的工作负载或作业管理。Maui 充当 OSCAR 的作业调度器,负责所有资源分配和调度决策。PBS 是作业服务器/启动器,除了启动和终止作业外,还处理作业队列。

MSC.Software 和 OSCAR

MSC.Linux 是 MSC.Software Corporation 系统部门开发的一个发行版,在 OSCAR 的接受度方面具有特殊的意义。在 OSCAR 1.0 版本发布后不久,MSC.Software 发布了他们自己的集群解决方案 MSC.Linux Version 2001 操作系统。2001 版本在很大程度上基于 OSCAR,是基于 OCG 工作成果的第一个商业产品。MSC.Software 的 Joe Griffin 为 LUI(第一个 OSCAR 集群安装工具)添加了一个 Webmin 界面,该界面生成了用于多节点的 LUI 底层命令,从而提供了一个易于使用的界面,用于定义集群的节点以及在每个节点上安装哪些资源。OCG 的最初意图之一是,商业公司将看到开放的 OSCAR 软件堆栈的价值,并围绕 OSCAR 堆栈构建他们自己的专有或开放堆栈。通过这样做,使用 OSCAR 的公司将从与构建集群相关的繁琐工作中解放出来,例如提供基本的基础架构,从而可以将精力集中在更前沿的改进上,以突出他们的产品。

协同工作

与其他分散的开源项目一样,从一开始就很明显,面对面地完成联盟的工作并不总是可行的。差旅费用实在太高,而且很难协调如此多的日程安排。为了协调工作,该小组每周举行公开电话会议,并依靠邮件列表和偶尔在研讨会或博览会上举行的会议。每季度都会举行面对面的“集成会议”,一次在俄勒冈州希尔斯伯勒的英特尔公司,另一次在伊利诺伊州的 NCSA。但是,对于会议之间举行的集成,开发了一种新的结构,称为 DIP Day,即分布式集成会议日。DIP Day 的目的是让每个参与该项目且拥有集群的人员都抽出时间,共同远程地从事 OSCAR 的工作。每个人都会下载 OSCAR 软件包并安装和运行它,并将任何错误报告给小组。在 DIP Day,程序员应实时提供修复程序,以便可以快速测试代码的多个迭代版本。每个 DIP Day 都会与整个团队举行几次电话会议,以评估进度并分配新的工作和优先级。通过在 DIP 和面对面会议之间松散地协调小组工作,OSCAR 在可靠性和功能方面取得了巨大进步。

OSCAR 体验:第一印象

解压 OSCAR 文件时,人们注意到的第一件事是 OSCAR 集成和测试团队做得非常出色;关于如何安装 OSCAR、系统要求、许可(GPL)以及 OSCAR 本身背后的理论,都有大量的文档。对于没有耐心的集群管理员,有一个快速入门指南,以及完整的描述性文本。人们还会注意到,无需额外下载任何东西;所有内容都包含在单个 OSCAR tar 文件中。OSCAR 采用了传统的集群视图——一台服务器带有 N 个计算节点;服务器负责安装、调度和监控计算节点。集群中的节点应运行同构软件,这意味着相同的 Linux 发行版和版本。用户输入的第一个命令是 install_cluster,它会执行许多操作:创建必要的目录;管理 NFS 和 xinetd;安装 LAM/MPI、C3、PBS、Maui、OpenSSH、SIS、Perl、SystemImager 和 MPICH;更新各种配置文件和配置脚本;以及启动 OSCAR 向导。

如果一切顺利,您将获得一个惊喜,即 OSCAR 向导。OSCAR 团队认为,向导将成为 OSCAR 在 Linux 集群解决方案领域中的另一个突出特点。向导的目的很明确——按照向导操作,您也可以轻松地安装集群。向导路径上的每个步骤都有进入和退出标准。一旦成功满足退出标准,OSCAR 就会给出成功消息,表明可以安全地继续下一步。

The OSCAR Revolution

图 1. OSCAR 向导

按照向导操作,按下“构建 OSCAR 客户端镜像”按钮会弹出第二个面板“创建 SystemImager 镜像”面板。

The OSCAR Revolution

图 2. 构建 SystemImager 镜像

SystemImager 面板的目的是在服务器上创建一个文件系统,该文件系统稍后将安装在每个客户端上。“镜像名称”字段允许用户创建多个 SystemImager 镜像,每个镜像都有唯一的名称。“软件包文件”字段提供了一个将在客户端上安装的软件包列表;OSCAR 提供了满足大多数用户需求的示例列表。“软件包目录”指示 RPM 的来源,“磁盘分区文件”字段允许用户自定义磁盘分区。同样,OSCAR 为 IDE 和 SCSI 驱动器都提供了默认的磁盘分区定义文件。按下“构建镜像”按钮开始在服务器上构建客户端镜像的过程。完成后,就可以返回向导进行第二步,定义 OSCAR 客户端。

The OSCAR Revolution

图 3. 向 SystemImager 镜像添加客户端

在“添加客户端”面板中,用户可以指定要与新客户端列表关联的 IP 地址范围。每个客户端都使用“镜像名称”字段与镜像名称关联。用户可以定义一组 IP 地址范围内的客户端,每个客户端都具有相同的网络掩码和默认网关。按下“添加客户端”按钮会为 SIS 构建客户端定义。完成后,返回向导的第三步“设置网络”。

The OSCAR Revolution

图 4. MAC 地址收集

在“设置网络”面板中,收集集群中每个客户端的 MAC 地址。如果节点支持真正的网络 (PXE) 启动,您只需将 MAC 地址与客户端关联,就可以启动节点了。如果节点不支持 PXE,您可以从“构建自动安装软盘”按钮写入 SystemImager 启动软盘。收集 MAC 地址后,就可以按下按钮配置 DHCP 服务器并启动所有节点以启动 Linux 安装。

安装完所有节点后,每个节点都会开始发出非常烦人且持续不断的蜂鸣声,提示系统管理员弹出软盘或关闭 PXE 并从硬盘驱动器重新启动节点。当所有节点都启动后,就可以从向导完成集群设置(实际上只是同步服务器和客户端之间的时间,并运行任何软件包敏感的安装后脚本)。向导中的“测试集群设置”按钮会运行短作业,检查每种调度器和并行库。

一旦集群完全安装并运行,就会有测试脚本来检查集群的整体健康状况。运行 test_install 脚本将检查以确保 PBS 或 Maui 调度器已配置并正在运行,C3 工具已安装,并且此时集群已准备好开始接受并行作业。

OSCAR 的未来

截至撰写本文时,OSCAR 1.2.1 已发布,可在 Red Hat Linux 7.1 下运行。MSC.Linux Version 2001 基于 OSCAR 1.1。1.x1 版本在社区中非常受欢迎——它们已从 SourceForge 下载了大约 25,000 次。然而,OSCAR 现在面临的最大问题是,相对较少的 OSCAR 开发人员需要花费时间和精力来集成所有希望包含在 OSCAR 中的新软件包。OSCAR 2.0 的工作正在进行中,重点是建立组件 API,以便任何拥有开源软件包的人都可以将其软件包与 OSCAR 集成。OCG 本身也在发展壮大。自从 Tim Mattson 休英特尔公司假期以来,来自印第安纳大学的 Jeff Squyres 在 OSCAR 2.0 架构和一致性方面担任了领导角色。来自爱立信[和《LJ》的常驻撰稿人]的 Ibrahim Haddad 加入了该联盟,带来了关于如何将 OSCAR 提升到接近电信级可靠性的有趣想法。代表劳伦斯利弗莫尔国家实验室的 Jim Garlick 也加入了该联盟,将他真实世界的大型集群扩展经验和担忧带给了该小组。

平台和发行版

在首次 OSCAR 会议上,与会者一致认为 OSCAR 不应与特定的 Linux 发行版或平台绑定。然而,迄今为止,OCG 的工作主要集中在 Red Hat 和 MSC.Linux 发行版以及 IA-32 架构上。这种重点将在 2002 年扩大。将 SIS 集成到 OSCAR 中的目的是能够支持所有基于 RPM 的发行版:SuSE、Turbolinux、Red Hat、MSC.Linux 和 Caldera,以及稍后支持基于 deb 的发行版,例如 Debian。此外,SIS 的架构使其易于移植到新平台。NCSA 已经有一个在 Itanium 上运行的 OSCAR beta 版本,橡树岭已经使用 Red Hat 7.2 进行了广泛的测试。鉴于开放的 API 以及在许多不同的发行版和平台上运行的能力,预计 OSCAR 和 OCG 将在今年大幅扩张。

最后的思考

可以从几个不同的角度看待 OSCAR 对 Linux 集群社区的影响。最明显的是,OSCAR 提供了一个有用的集群工具,可以在各个制造商的平台上使用。它通过将来自各个网站的软件整合到一个单一的、集成的、文档齐全的、经过测试和支持的软件包中,消除了组装软件过程中固有的许多歧义。它确实是一个非程序员可以实现的集群解决方案。然而,在表面之下,OCG 是一个由国家实验室、学术界和工业界组成的蓬勃发展的联盟,他们正在合作将新的开源解决方案带给 Linux。在这个过程中,该联盟不得不开辟合作新领域,提出了像 DIP Day 这样的独特概念。回顾过去,该联盟对社区最重要的长期贡献可能是在开发新的合作方式,以促进开源事业的进步。

资源

The OSCAR Revolution
电子邮件: rcferri@us.ibm.com

Richard Ferri 是 IBM Linux 技术中心的高级程序员,他在该中心从事 LUI 和 OSCAR 等开源 Linux 集群项目。他现在与妻子 Pat、三个十几岁的儿子和三只血统可疑的狗住在纽约州北部的一个乡村环境中。

加载 Disqus 评论