建立世界上最大的树莓派(Raspberry Pi)集群

Oracle的Raspberry Pi超级计算机是已知存在的最大Raspberry Pi集群,它被Tom's Hardware授予2019年十大Raspberry Pi项目之一。

说说Oracle Raspberry Pi的故事

2018年,来自甲骨文瑞士的一小群热情的售前人员在Hackzurich hackathon上展示了他们的12节点Raspberry Pi集群。该集群堆叠在3×4节点配置中,类似于具有3个可用性域的Oracle Cloud数据中心。它在其之上运行了一个完全可操作的Kubernetes集群,并且可以演示节点和可用性域故障转移。事实证明,集群非常吸引人。闪烁的LED灯,可爱的集群以及对“它在做什么”的好奇心无法满足。 Raspberry Pi超级计算机的基础已经奠定。

从黑客马拉松回来之后,我们在便携式演示站的脑海中有了这个想法,可以参加会议并展示什么是云技术。我们不仅可以展示简单的故障转移和保持运行的方案,而且还可以使用诸如Kubernetes或Oracle的Fn项目之类的东西,我们还可以构建许多独立的演示,将它们放在Internet上的目录中,以及然后在会议上现场展示与会人员想要看的内容和时间。该目录还使我们可以在全年和世界上的任何地方轻松添加目录,而不必实际访问群集。而且,通过使用这样一个独立的软件堆栈,使用相同堆栈的其他任何硬件(无论是否使用Raspberry Pi群集)都将能够利用相同的演示。显然,这样做将打开很多可能性,但下一个问题是我们将走多大。

最初,我们正在考虑构建包含128个节点的模块化集群。在某种意义上讲,模块化是指我们将创建8个16节点集群的独立单元,然后将它们组合在一起以形成更大的集群(8×16、4×32、2×64、1×128)。这将给我们带来许多好处,例如拥有多个可以环游世界并同时参加不同会议的集群。如果我们需要更多的处理能力,或者发生更大的事件以展示更大的集群,我们可以轻松地将它们堆叠到所需的大小。对于诸如Oracle Code One之类的字幕事件,我们只是将它们全部组合到一个大集群中。

如前所述,起初我们正在考虑128个节点,但是显然已经改变了。在进行此过程时,我们问自己以前还有谁做过类似的事情,更重要的是,今天最大的集群是什么?因此,我们退后了一步,进行了一些研究,很快发现,如今128个节点已经不再是什么特别的了。例如,The Beast v2是一个144节点的Raspberry Pi集群,被设计为resin.io(现为balena.io)的演示平台。我们还发现了代表300个节点的Raspberry Pi集群的Bolzano Raspberry Pi云集群实验。我们可以找到的最大的Raspberry Pi集群是由洛斯阿拉莫斯国家实验室的高性能计算部门完成的,它的750节点Raspberry Pi集群飞速增长。有了这个,我们有了一个明确的目标:无论做什么,它都必须超过750个节点。随着我们成为极客,我们知道下一个逻辑上更大的数字是1,024,因此我们着手构建一个1024节点的Raspberry Pi集群。

当我们开始构建1024节点的模块化集群时,我们很快意识到我们的计划不一定能在我们想到的截止日期前完成:Oracle Code One2019。构建模块化集群为项目增加了很多额外的工作和时间,可能无法按时完成Code One2019。鉴于我们不需要为会议使用集群的模块化方面,因为无论如何我们都希望为Code One拥有一个大型集群,因此我们暂时搁置了想法,并决定去一个蓝盒子。在里面,您会发现:

  • 5 x 2米高的机架
  • 1个Supermicro 1U Xeon服务器
  • 18个USB电源
  • 22个网络交换机
  • 49个客户3D打印的Raspberry Pi支架
  • 1,060 个Raspberry Pies

等等,1,060个Raspberry Pies?是的!事实证明,1,024Raspberry Pies是一个好主意,但将机架放在一起,我们发现里面仍然有空间。所以你会怎么做?浪费空间还是用其他的Raspberry Pie填满机架?好吧,我们决定使用后者,因此我们的1024节点Raspberry Pi集群成为1060节点Raspberry Pi集群。

接下来,我们开始研究所需的组件。 1,060个树莓派的确添加了很多。您必须执行的任何操作(无论是插入网络电缆还是拧入螺钉)都必须执行至少1,060次。将1,060张SD卡添加到组合中,您将花费相当多的时间来刷新这些卡,更不用说将它们插入每台Raspberry Pi并可能在其上安装其他软件了。因此,我们决定从一台中央服务器(Supermicro 1U Xeon服务器)进行网络引导,而不是购买1,060张SD卡。网络引导使我们只能安装和配置该软件一次,并且如果需要进行任何更改,则它们也只会发生一次。作为Oracle,我们很自然地启动Oracle Linux for ARM而不是默认的Raspbian。

我们在Oracle Code One 2019上成功构建并展示了该集群。我们决定使用Java构建一个引人入胜的演示,该演示不仅可以在大屏幕上显示集群利用率,还可以看到会议的模糊画面。与会者可以将消息发送到群集以释放该图像。收到消息后,随机节点将继续操作并实时释放部分图片。面临的挑战是尽快发送尽可能多的消息,以使整个画面变得清晰。这样,与会者不仅可以对这里工作的硬件工程感到兴奋,还可以通过有趣的方式与集群进行交互。该演示还鼓励与会者使用众包方法并进行合作,从而间接地帮助他们与其他与会者建立联系。一旦所有图片都清楚了,我们将放一张新图片,然后重新开始。当然,它不仅引起了Code One参与者的关注,而且也引起了社会媒体和诸如ServeTheHome和Tom's Hardware之类的人们的关注。

我们感谢大家! Oracle Code One 2019结束后,我们回到了想法列表。还有许多我们想到但尚未解决的突出问题。但是首先要解决的是哪一个?好吧,拥有一个大型集群很酷,但是我们真的很喜欢拥有可以同时行遍世界的较小集群的想法。因此,为了下一个目标,我们决定选择小型集群。完成任何事情的最好方法是什么?通过设置截止日期,我们为这个项目设定了截止日期,就在两周前。
并且,我们为您提供了84节点的Raspberry Pi迷你集群:

这次,我们决定通过SETI @ Home项目帮助集群搜索外星智能(SETI)。尽管它的规模小于其老大兄弟,但它再次取得了巨大的成功,并赢得了世界各地的关注。

那么,接下来会发生什么呢?董事会上仍有许多想法,这些想法将使我们在可预见的未来忙碌起来。我们的目标之一仍然是使这些Raspberry Pi群集完全是云原生的,并在其上运行Kubernetes和Fn Project等技术。我们还喜欢拥有一个演示目录的想法,该演示目录可以在世界上任何地方的任何集群中使用,无论当前发生什么事件。而且,当然,我们也没有放弃使这些集群模块化的想法。但是与此同时,我们也有了一些新想法。其中之一是使(大型)集群成为启用IoT的Oracle Code One体验的核心和中心,并使其在Oracle Cloud的帮助下实时捕获和处理事件中许多不同的传感器读数。

我们接下来将要解决的想法之一尚未确定。但是有一件事已经很清楚:道路仍在前方,我们期待着它。

SO资源郑重声明:
1. 本站所有资源来源于用户上传和网络,因此不包含技术服务请大家谅解!如有侵权请邮件联系客服!3187589@qq.com
2. 本站不保证所提供下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理,有奖励!
3. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!

SO资源 » 建立世界上最大的树莓派(Raspberry Pi)集群