Open Cluster Framework 简介
熟悉 Linux 高可用性 (HA) 领域的人会立即认出 Alan Robertson 的名字。毕竟,他和 Harald Milz 以及 Lars Marowsky-Bree 等人是 HA Linux 的主要人物之一,HA 的常客和 linux-ha.org 网站的所有者。尽管他在 HA 领域的贡献可能为社区所熟知,但 Alan 在他的背景中有一个不太为人所知但可能被证明对 HA 和高性能计算 (HPC) 集群社区都至关重要的项目——即 Open Cluster Framework 项目。
HA 项目的目标是通过社区开发为 Linux 提供 HA 集群解决方案,而 OCF 的目标可能更雄心勃勃:定义提供基本集群功能的 API,并提供 API 的参考实现。请注意,这些 API 不仅扩展到 HA 集群,还包括 HPC 集群。如此雄心勃勃的是,在开源社区的许多人试图围绕单个项目开发解决方案的时候,OCF 专注于尝试统一所有开源 HA 项目,并统一通常被认为是独立实体的 HA 和 HPC 两个主要阵营。
OCF 项目本身还处于起步阶段。该小组于 2001 年 7 月在渥太华 Linux 研讨会上首次提出,目前正处于定义自身、与各个团体和支持者结盟以及提出初步架构的早期阶段。OCF 的理念是,尽管多年来 HA 和 HPC 在很大程度上是分开的,但它们共享许多常见的集群问题,并且通过共享代码可以实现优势。因此,该小组的目的是定义和开发构建块,这些构建块可以被不同的集群学科使用,以构建适合每个集群需求的独特集群。由于 OCF 正在为构建块定义 API 以及参考实现,因此该小组预计也会有不同的实现。
我可以向您介绍我对 OCF 的个人看法,但我最近有机会在 Alan Roberston 访问阳光明媚的纽约州波基普西时与他会面。如果您曾经见过 Alan 本人,他绝对是一位有趣且生动的人。在我们采访期间的不同时间,他挥舞着手臂,在原地慢跑,并猛地拍了一下桌子,震动了录音机。他显然是 OCF 的传道者,并且他的使命是加入各种 HA 和 HPC 派别。
Richard:Alan,让我们向读者介绍一下您。Linux 何时首次出现在您的雷达屏幕上?
Alan:好吧,让我们从 UNIX 开始。我第一次使用 UNIX 是在 1978 年,当时我在贝尔实验室工作。我想我第一次开始使用 Linux 是在 1993 年。办公室里有一个人非常喜欢 Slackware,但我喜欢打包系统的优势。我想我第一次运行的是 3.03 Red Hat,内核是 1.x。
Richard:您是什么时候开始为开源做贡献的?
Alan:在这之前还有一个小故事。作为一个过去做过很多 UNIX 内核黑客的人,我很高兴地发现代码将我的 Mitsumi CD-ROM 误认为是 Sony CD-ROM,所以我可以找到驱动程序并使其识别我的 Mitsumi。所以,那是我的第一个,也可能是我唯一的 Linux 内核黑客攻击;我主要做用户空间的 Linux 工作。我的第一个贡献是高可用性方面的东西。我当时在贝尔实验室担任研发技术规划员。我的二级经理 Ken Switzer 当时问 Linux 有什么高可用性软件。我不知道,所以我去了解了一下。我发现他们有一个邮件列表和一个 Harald Milz 撰写的关于如何编写高可用性软件的开发者 HOWTO。我读过 Eric Raymond 的《大教堂与集市》,我一直对它捕捉到了一些重要的东西的想法着迷。这不是黑客心态或社区开发者方法;而是按照传统模型,Linux 应该是一个彻底的失败。它打破了每一个已知的软件开发规则。它没有计划,没有架构,没有架构师,没有瀑布模型,所有这些都是随意完成的[艾伦的声音此时滴着讽刺],然而,证据表明,它已经非常成功。它捕捉到我的感觉,即很多软件开发方法都是无稽之谈。
Richard:您是否将大教堂与集市的想法与 HA 联系起来?
Alan:这是一个题外话,稍等。我认识很多开发代码的人;他们都很优秀,而且他们都没有遵循传统的软件开发模型。我觉得 Raymond 抓住了一些重要的东西,它在我心中产生的痒痒感是参与一个开源项目,亲身体验一下。
圣诞节期间我去看望了我的岳父母,那时人们往往有一些空闲时间,所以我带上了我的笔记本电脑。这是一个完美的高可用性集群。您可能会问,一个节点怎么能成为高可用性集群?因为另一个节点死了![笑声很多]。所以当我在岳父母家待了几个星期时,我编写了心跳模块,回来后在列表上宣布我已经编写了一些软件。但这与其说是为了了解 HA,不如说是为了了解开源流程。我这样做不是为了成为项目负责人,而是为了编写一些软件并满足我个人想要亲身体验开源开发如何运作的愿望。
Richard:Heartbeat 自发布以来有多成功?请您介绍一下它的应用情况。
Alan:一家医疗影像公司正在使用它,该公司必须保持在线状态才能为医生提供他们需要的图像。洛斯阿拉莫斯国家实验室也在使用它,在那里,您的徽章阅读器能够正常工作非常重要,那里的安全性特别高,或者存在安全/安全问题。我猜想,可能已经有数千个真正、真实的生产部署使用了该软件。
Richard:您是什么时候开始考虑 HA 领域其他人的影响的?
Alan:当其他人进入这个领域时。我编写这段代码是因为当时没有代码。如果已经有代码,我就不会编写它——我需要一个充分的理由自己编写它。
继续讲故事,有一天我接到一个来自德国的电话,是 Volker Weigand 打来的。Volker 当时是我项目的贡献者,他打电话告诉我 SuSE 正在扩充员工队伍,并且对高可用性非常感兴趣。最终 Volker 说他希望我来 SuSE 工作。我很担心,因为我不会说德语,也不喝啤酒,也不想搬家。好吧,随着时间的推移,Volker 让我对此感到兴奋,并邀请我去德国面试。此后不久,我加入了 SuSE。就在我加入他们时,他们宣布他们将与 SGI 合作,SGI 希望开源其 HA 包 Failsafe。所以现在,我将帮助将 Failsafe 引入开源社区;他们不想激怒任何社区人士,他们不想激怒的人就是我![笑]所以,他们希望我帮助他们完成这个过程。
Richard:您在 HA 方面的经验此时一定非常宝贵。
Alan:是的,还有我在开源开发方面的经验,但事情变得非常个人化。此时我是两个相互竞争的开源项目的负责人。精神分裂症这个词可以用来形容我的精神状态。现在您明白了我为什么会有这种观点——我同时负责 heartbeat 和 Failsafe 这两个项目。所以,一方面 SuSE 希望我为 Failsafe 的重置服务编写一个组件。当时,我也需要 heartbeat 的重置服务,而且我不想编写两个重置服务。所以,这真的非常个人化。最重要的是,我觉得开源社区中的任何人都不应该关心机器是如何重置的。这不是卖点;只要机器被重置,那就足够了。
Richard:所以此时,您已经检测到每个人都需要的一个基线服务。
Alan:是的,而且我负责的两个项目都需要它。我研究了 Failsafe,我认为将代码直接嵌入 Failsafe 会很复杂。我认为最好在一个只做重置的服务中提供该功能。
Richard:现在此时,您对任何名为 Open Cluster Framework 的东西都没有概念吗?
Alan:我隐约觉得这并不是唯一需要这种组件的例子,我一直记在心里。但我没有给它起名字。
Richard:所以,重置被选为您作为第一个组件,您意识到这并不是在许多不同集群中需要的服务的最后一个例子。
Alan:我还注意到,我喜欢 heartbeat 的某些方面胜过 Failsafe,我想在 Failsafe 中使用我的代码。而 Failsafe 有一些我想要的东西。
Richard:您是如何解决您的精神分裂症的?
Alan:好吧,我创建了这个重置服务并将其放入 heartbeat 中,因为我控制了那里的写入权限——我还没有 Failsafe 的写入权限。所以我开发了它并在 heartbeat 中进行了测试,但我将其完全排除在 Failsafe 之外。我说,这是重置服务的本质。您可以执行诸如询问它“您可以重置哪些类型的机器?”以及按名称重置这台计算机之类的操作。无论如何,随着时间的推移,它成为重置计算机的事实标准;有 12 个实现,并在三个开源项目中使用。
一开始,我们只有一个重置组件,我的朋友 Lars Marowsky-Bree 正在努力使 SuSE Linux 和 Failsafe 获得官方 SAP 平台的认证,这是一项巨大的成就,需要做很多工作。这在德国意义重大——如果您必须选择一个关键任务应用程序,那就是 SAP。因此,Lars 在三天后有一个大型演示即将到来,但他唯一的重置设备只能在 110 电源下运行。所以,他有一个电源开关,我没有任何规格,他想为 Failsafe 和 heartbeat 演示它。巧合的是,有人请我去亚特兰大 Linux 用户组演讲。所以我有一个插件架构,而亚特兰大有人碰巧编写了一个与 Lars 在德国的电源开关相匹配的插件。而 Lars 大概三天后就需要它,我因为去了亚特兰大 LUG 而找到了它!所以他们把它放进去,Lars 把它拿起来,演示进行得很顺利。
我对这一切的最终反应是,这种开放的东西奏效了!我们可以完成远远超出我们自己所能完成的事情。我们正在以一种使其成为可能的方式工作。
Richard:这直接回到了 Eric Raymond。
Alan:这直接回到了 Eric 的观察……让我们再做一次![艾伦在办公室里跳来跳去。] 此后不久,一个名为 Kimberlite 的项目上市了。与 Failsafe 类似,它以闭源规则上市,他们希望开源。好吧,他们也想使用我们的重置解决方案。他们贡献了 Failsafe 和 heartbeat 使用的代码。
Richard:所以,你们有三个小组都在从事 HA 工作?
Alan:是的,而且我们都在朝着不同的方向发展。
Richard:这就是 OCF 产生的环境吗?它是什么时候正式形成的?
Alan:是的,您可以看到这如何成为框架的环境。所以,我一直在宣扬我们应该有通用组件。
Richard:那么 OCF 是如何开始发展的?
Alan:退后一步,有一天我坐下来思考为什么项目没有进展。我的意思是,我一直在写东西,但没有人贡献。所以我想,为什么会这样?也许没有人知道该怎么做。我从来没有坐下来告诉任何人该怎么做。所以,我花了几个小时写了一个待办事项清单。有一些我想做的关键事情,但我还是把它们列在了清单上,并把清单发布到了邮件列表中。90 分钟后,有人自愿参加。
Richard:所以这是您意识到整个开源方法奏效的时候吗?
Alan:它不仅奏效,而且看看速度!我震惊地看到如此快速的反应——一位来自芬兰的人提到 heartbeat 没有身份验证。我意识到,如果 Linux-HA 要发展,它需要一个简单的配置和良好的安全性(以保护用户)。安全性可能是我清单上最重要的事情,我不认为我必须自己做。所以,三四个星期后,他提交了代码,这是我收到的来自别人的第一个重大贡献。
Richard:您发现待办事项清单在运行项目时有多么有用——这有点像汤姆·索亚粉刷栅栏?
Alan:嗯,是的,您必须告诉他们我们今天粉刷哪道栅栏。很多人都想帮忙;他们不想花时间弄清楚该做什么,他们只是想做点什么。作为项目负责人,我的部分工作是确保将合适的人与合适的项目相匹配。我的妻子称之为做一个好国王。
Richard:您如何评价 OCF 今天的状态?
Alan:我们正处于制定我们在两个到三个关键领域工作的内部标准草案的阶段。我们已经做了很多工作来争取参与,两到三家专有供应商,基本上每个开源 HA 项目和几个 HPC 参与者。我想指出的其中一件事是 OCF 的标题中没有高可用性。这是故意的,因为当您有一个计算机集群时,无论它们做什么,它们都具有一些基本功能。例如,有时您想在 HA 和 HPC 中杀死一个节点。您不希望两个服务争夺谁可以射击节点。因此,您需要协调这一点,并且您不希望有两种方法来做到这一点。
Richard:您只射击节点一次,并且只以一种方式射击。
Alan:是的,您不想要的是两个相互矛盾的事实,因为最终会发生不好的事情。如果您有一个 HA 成员层和一个 HPC 成员层,并且它们都认为成员资格由稍微不同的计算机组组成,那么有些事情就行不通了。
Richard:是的,这显然是一件坏事,不是吗?
Alan:是的,这是一件坏事。但另一方面,如果您有一个成员层,它们两个可以从单个 API 共享,那么您就消除了这种可能的错误。它不会让一切都正常工作,但它使一切都可能正常工作。
Richard:您会说 OCF 是包容性的吗,任何人都可以加入吗?
Alan:当然,我多次不遗余力地积极邀请成员加入 OCF。我想说,唯一真正拒绝加入的团体是那些目前没有资源加入的团体。
Richard:小组中是否存在等级制度,它是正式的还是非正式的?
Alan:小组是非正式运行的。一直以来最努力推动它的两个人是我和 Lars Marowsky-Bree。我们大致绘制了我们想要在标准中涵盖的内容,在这一点上,任何想要参与每个领域的人都可以参与。我们通过电子邮件、语音会议和面对面会议进行沟通。我认为我们在语音和面对面会议方面做得不够。
Richard:Alan,OCF 和自由标准组织 (FSG) 之间有什么联系?
Alan:我们正在申请成为 FSG 工作组的过程中。我已经遵循了迄今为止给我的所有程序,并且我正在等待找出下一步该怎么做。我们对加入 FSG 非常感兴趣,他们对与我们合作的可能性感到兴奋。
Richard:您是否觉得这种隶属关系对 OCF 有利?
Alan:是的,首先是因为 OCF 致力于为 Linux 提供标准。我们的开放标准面向 Linux;但是,我们没有做任何事情来阻止它们用于其他版本的 UNIX。例如,我们尽量不采取任何措施使其无法在 FreeBSD 上运行。因此,我认为与 FSG 的联系是好的,因为它是 Linux 的主要标准机构。
Richard:请告诉我,您从 HPC 社区获得了多少支持?
Alan:在 HPC 社区中,我们正在进行一个过程。实际上有两到三个主要的 HPC 项目正在研究类似于 OCF 的东西——一个是 OSCAR,另一个是 NPACI Rocks。HA 和 HPC 之间存在共同的兴趣和理解,即这可能是一种有利可图的合作方式。并且正在做出各种努力来实现这一目标。每个人都忙于做自己的事情,所以其中一部分是学习彼此的语言,以便我们能够沟通。我个人正在花时间了解 HPC 社区的运作方式,以便我们可以有一些共同的术语。所以,我们正处于社会化过程中。
Richard:那么您会说 HA 小组正在领导 OCF 项目,但信息在 HA 和 HPC 之间来回流动,并且主要项目和 OCF 之间似乎存在一些兴趣?
Alan:这简洁得多,是的。我没有看到有人想要复制我们正在做的事情或驳斥它。所以,目前来说这就足够了。很明显,我们有不同的文化和语言来谈论这些事情,这增加了将我们所有人团结起来的难度。
Richard:作为 OCF 的领导者,您认为在未来三到六个月内会发生什么,然后在那之后会发生什么?
Alan:我看到我们在未来六个月左右发布标准的真正外部草案。在此期间,我们希望继续参与 FSG,然后在接下来的三到六个月内成为正式的工作组。我们也希望看到参考实现的开始。在六个月之后,我希望分发这份草案,收集来自尚未参与的所有人的意见,增加势头并获得更多关注。在接下来的六个月里,我希望看到 HA 和 HPC 工作取得一些成果。HPC 世界将开始研究 API,并想知道如何使用它们。
Richard:Alan,最后一个问题:我忘了问什么您想谈谈的?
Alan:两件事:集群是革命性的,而商品硬件上的开源集群更是如此。我们实现这场革命并为所有想要使用集群的人收获利益的能力取决于我们共同努力的能力。在这方面,它非常依赖于标准化之类的事情。然而,高端系统的标准化可以显着改变事物——顶级科学机器都是集群。最具成本效益的集群绝大多数是建立在商品硬件上的开源集群。它们比它们的祖先便宜得多。如果您着眼于高可用性,也会出现类似的情况,但人们还没有很快意识到这一点,因为还没有像 Donald Becker 那样大力推动这个想法的人。因此,也许三到五年后,HA 将像今天的 HPC 集群一样实现,其应用方式是人们从未想过的。我们有机会实现比以前多 100 倍的 HA 集群,因为成本障碍降低了。这里的潜力是巨大的,我们需要利用它。标准是实现这一目标的重要组成部分。
Forrest Cook 在 Linux Weekly News 上发表的关于 2001 年渥太华 Linux 研讨会的文章
Richard Ferri 是 IBM Linux 技术中心的高级程序员,他在那里从事 LUI 和 OSCAR 等开源 Linux 集群项目。他现在与妻子 Pat、三个十几岁的儿子和三只血统可疑的狗住在纽约州北部。
电子邮件:rcferri@us.ibm.com