带有 2 GB RAM 的迷你 ITX Cluster Turing Pi 32

带有 2 GB RAM 的迷你 ITX Cluster Turing Pi 32

向哈布尔社区问好! 我最近写了关于我们的第一个版本集群板的文章 [V1]. 今天我想告诉你我们是如何制作这个版本的 图灵 V2 32GB 随机存取存储器。

我们喜欢可用于本地开发和本地托管的迷你服务器。 与台式电脑或笔记本电脑不同,我们的服务器被设计为 24/7 工作,它们可以快速联合,例如,一个集群中有 4 个处理器,5 分钟后就有 16 个处理器(无需额外的网络设备)等等外形紧凑、安静、节能。

我们的服务器架构基于集群构建原理,即我们制作集群板,利用板上的以太网连接多个计算模块(处理器)。 为了简单起见,我们还没有制作自己的计算模块,而是使用 Raspberry Pi 计算模块,并且我们非常希望新的 CM4 模块。 但是,一切都与新外形的计划背道而驰,我认为很多人都感到失望。

在此基础上,我们如何从 V1 升级到 V2,以及我们如何摆脱新的 Raspberry Pi CM4 外形尺寸。

因此,在创建 7 个节点的集群后,问题是 - 下一步是什么? 如何提高产品的价值? 8 个、10 个或 16 个节点? 有哪些模块厂家? 从整体上考虑产品,我们意识到这里的主要问题不是节点数量或制造商是谁,而是集群作为构建块的本质。 我们需要寻找最小的构建块

第一,将是一个集群,同时能够连接磁盘和扩展板。 集群块应该是一个自给自足的基础节点,并具有广泛的扩展选项。

第二,使得最小的集群块可以通过构建更大尺寸的集群来相互连接,从而在预算和扩展速度方面是高效的。 扩展速度必须比普通计算机连接到网络更快,并且比服务器硬件便宜得多。

第三,最小集群单元应足够紧凑、可移动、节能、经济高效且对运行条件要求不高。 这是与服务器机架以及与其连接的所有设备的主要区别之一。

我们首先确定节点的数量。

节点数量

通过简单的逻辑判断,我们发现4个节点是最小集群块的最佳选择。 1个节点不是集群,2个节点不够(1个master 1个worker,不可能在一个块内扩展,特别是对于异构选项),3个节点看起来不错,但不是2的幂的倍数和内部扩展一个块是有限的,6 个节点的价格几乎与 7 个节点相当(根据我们的经验,这已经是一个很大的成本价格),8 个节点很多,不适合 mini ITX 外形尺寸,甚至不适合更昂贵的 PoC 解决方案。

每个块四个节点被认为是黄金分割:

  • 每个集束板的材料更少,因此制造成本更低
  • 4 的倍数,总共 4 个块提供 16 个物理处理器
  • 稳定电路1主3工
  • 更多异构变体,通用计算+加速计算模块
  • 带有 SSD 驱动器和扩展卡的 mini ITX 外形规格

计算模块

第二个版本基于 CM4,我们认为它将以 SODIMM 外形尺寸发布。 但…
我们决定制作SODIMM子板,将CM4直接组装成模块,这样用户就不必考虑CM4了。

带有 2 GB RAM 的迷你 ITX Cluster Turing Pi 32
支持Raspberry Pi CM4的Turing Pi计算模块

总的来说,在寻找模块时,打开了从128 MB RAM到8 GB RAM的小型模块的整个计算模块市场。 具有 16 GB RAM 及更多内存的模块处于领先地位。 对于基于云原生技术的边缘应用托管,1GB RAM 已经不够了,最近 2GB、4GB 甚至 8GB RAM 模块的出现提供了良好的增长空间。 他们甚至考虑了用于机器学习应用的 FPGA 模块选项,但由于软件生态系统尚未开发,他们的支持已被推迟。 在研究模块市场的过程中,我们提出了为模块创建通用接口的想法,在V2中我们开始统一计算模块的接口。 这将允许 V2 版本的所有者连接其他制造商的模块并将它们混合用于特定任务。

V2 支持整个 Raspberry Pi 4 计算模块 (CM4) 系列,包括 Lite 版本和 8 GB RAM 模块

带有 2 GB RAM 的迷你 ITX Cluster Turing Pi 32

周边

在确定了模块的供应商和节点数量之后,我们接近了外围设备所在的 PCI 总线。 PCI 总线是外设的标准,几乎存在于所有计算模块中。 我们有多个节点,理想情况下,每个节点都应该能够以并发请求模式共享 PCI 设备。 例如,如果它是连接到总线的磁盘,那么它对所有节点都可用。 我们开始寻找支持多主机的 PCI 交换机,但发现它们都不符合我们的要求。 所有这些解决方案大多局限于一台主机或多主机,但没有并发请求端点的模式。 第二个问题是每个芯片1美元或更多的高成本。 在 V50 中,我们决定推迟 PCI 交换机的实验(我们稍后会在开发时返回)并沿着为每个节点分配角色的路径:前两个节点每个节点暴露 mini PCI Express 端口,第三个节点外露 2 端口 2 Gbps SATA 控制器。 要从其他节点访问磁盘,可以使用集群内的网络文件系统。 为什么不?

抢先看

我们决定通过讨论和反思分享一些关于最小簇块如何随时间演变的草图。

带有 2 GB RAM 的迷你 ITX Cluster Turing Pi 32带有 2 GB RAM 的迷你 ITX Cluster Turing Pi 32带有 2 GB RAM 的迷你 ITX Cluster Turing Pi 32

结果,我们得到了一个具有 4 260 针节点、2 个 mini PCIe(Gen 2)端口、2 个 SATA(Gen 3)端口的集群单元。 该板有一个支持 VLAN 的第 2 层管理型交换机。 第一个节点上删除了一个 mini PCIe 端口,您可以在其中安装网卡并获取另一个以太网端口或 5G 调制解调器,并为集群上的网络和第一个节点的以太网端口创建一个路由器。

带有 2 GB RAM 的迷你 ITX Cluster Turing Pi 32

集群总线具有更多功能,包括直接通过所有插槽闪存模块的能力,当然还有每个节点上带有速度控制的 FAN 连接器。

应用

用于自托管应用程序和服务的边缘基础设施

我们将 V2 设计为消费/商业级边缘基础设施的最小构建块。 借助 V2,随着您的成长,开始概念验证和扩展的成本很低,逐渐移植在边缘托管更具成本效益和实用性的应用程序。 集群块可以连接在一起以构建更大的集群。 这可以逐步完成,不会有太大风险
流程。 今天已经有大量的商业应用程序, 可以在本地托管.

ARM工作站

每个集群高达 32 GB RAM,第一个节点可用于桌面版本的操作系统(例如 Ubuntu Desktop 20.04 LTS),其余 3 个节点用于编译、测试和调试任务,为 ARM 开发云原生解决方案集群。 作为产品中 ARM 边缘基础设施上的 CI/CD 的节点。

具有 CM2 模块的 Turing V4 集群在架构上与基于 AWS Graviton 实例的集群几乎相同(ARMv8 的次要版本存在差异)。 CM4 模块处理器使用 ARMv8 架构,因此您可以为 AWS Graviton 1 和 2 实例构建映像和应用程序,众所周知,这些实例比 x86 实例便宜得多。

来源: habr.com