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

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

向 Habr 社區致以問候! 我最近寫了關於我們的第一個版本的集群板 [V1]. 今天我想告訴你我們是如何製作這個版本的 圖靈 V2 32 GB RAM。

我們喜歡可用於本地開發和本地託管的迷你服務器。 與台式電腦或筆記本電腦不同,我們的服務器設計為 24/7 全天候工作,它們可以快速聯合,例如,集群中有 4 個處理器,5 分鐘後有 16 個處理器(沒有額外的網絡設備),所有這些外形緊湊,靜音且節能。

我們服務器的架構基於集群構建原則,即我們製作集群板,使用板上的以太網連接多個計算模塊(處理器)。 為了簡化,我們還沒有製作自己的計算模塊,而是使用 Raspberry Pi Compute Modules,我們非常希望有新的 CM4 模塊。 但是,一切都與他們新外形的計劃背道而馳,我認為很多人都感到失望。

Under the cut,我們如何從 V1 升級到 V2,以及我們如何不得不使用新的 Raspberry Pi CM4 外形尺寸。

因此,在為 7 個節點創建集群之後,問題是——下一步是什麼? 如何增加產品的價值? 8、10 或 16 個節點? 哪些模塊製造商? 從整體上考慮產品,我們意識到這裡的主要問題不是節點的數量或製造商是誰,而是集群作為構建塊的本質。 我們需要尋找最小的構建塊

第一,將是一個集群,同時能夠連接磁盤和擴展板。 集群塊應該是一個自給自足的基礎節點,並具有廣泛的擴展選項。

第二,這樣最小的集群塊可以通過構建更大尺寸的集群相互連接,從而在預算和擴展速度方面是有效的。 縮放速度必須比將普通計算機連接到網絡更快,並且比服務器硬件便宜得多。

第三,最小的集群單元應該足夠緊湊、移動、節能、具有成本效益並且對操作條件要求不高。 這是與服務器機架和與之相連的所有東西的主要區別之一。

我們從確定節點數開始。

節點數

通過簡單的邏輯判斷,我們意識到4個節點是最小簇塊的最佳選擇。 1個節點不算集群,2個節點不夠用(1master1worker,區塊內沒有擴容的可能,尤其是異構選項),3個節點看起來還可以,但不是2的冪的倍數,而且在塊內擴容一個塊是有限的,6 個節點的價格幾乎與 7 個節點相同(根據我們的經驗,這已經是一個很大的成本價格),8 個很多,不適合 mini ITX 外形和更昂貴的 PoC 解決方案。

每個塊的四個節點被認為是黃金分割:

  • 每個集群板的材料更少,因此製造成本更低
  • 4 的倍數,總共 4 個塊提供 16 個物理處理器
  • 穩定電路 1 master 和 3 worker
  • 更多異構變體,通用計算+加速計算模塊
  • 帶有 SSD 驅動器和擴展卡的迷你 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 台主機或多台主機,但沒有並發請求端點的模式。 第二個問題是每個芯片 50 美元或更多的高成本。 在 V2 中,我們決定推遲 PCI 交換機的實驗(我們稍後會在開發時返回它們)並沿著為每個節點分配角色的路徑進行:前兩個節點每個節點暴露 mini PCI express 端口,第三個節點暴露的 2 端口 6 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 實例便宜得多。

來源: www.habr.com