.. _pi_stack: ================ 树莓派堆叠 ================ 机架(rack) ================== 互联网上有销售将树莓派转换成机架方式安装的面板 `Raspberry Pi 19 inch Rack mount `_ ,但是密度不高,并且仅限于前面板,没有充分使用机架全部部署空间。(也可能是作为X86服务器补充,所以仅占用极少空间) 我的树莓派堆叠 ================= 随着树莓派社区技术不断发展,市场上逐渐出现越来越多的树莓派 ``堆叠`` 产品,方便组合成集群化运行。在淘宝上,就有很多卖家出售树莓派的组装零配件,以及配套的散热装置(散热片、风扇)。 我购买了一套堆叠配件,组装成 :ref:`edge_cloud` 集群: - 3台 :ref:`pi_3` - 3台 :ref:`pi_4` .. figure:: ../../_static/raspberry_pi/pi_cluster/edge_cloud_pi.jpg :scale: 60 使用8口千兆小交换机互联,树莓派占用6个端口,剩余的2个端口,一个用于连接 :ref:`jetson_nano` (构建基于GPU的 :ref:`machine_learning` ),另一个则上联其他交换机。 完全组装好可工作状态图示如下: 装配说明: - 使用1个4端口输出USB电源,其中3个USB接口电源输出给3个 :ref:`pi_4` - 3个 :ref:`pi_4` 外接 USB SSD 移动硬盘(替代TF卡提高存储性能),使用 :ref:`alpine_install_pi_usb_boot` - :ref:`pi_4` 的USB 2.0接口插USB线串联为 :ref:`pi_3` 提供电源(可以节约USB电源,安装更紧凑) - :ref:`pi_3` 使用64GB规格的TF卡运行( :ref:`k3s` 管控节点,硬件要求较低 ) - :ref:`pi_3` 产生热量较少,所以散热片使用的是比较小巧的小散热片,堆叠后有较大空隙,这个空隙正好把 :ref:`pi_4` 使用的 :ref:`wd_passport_ssd` 塞进去 不足和改进构想 ----------------- 之所以我采用上述 3台 :ref:`pi_3` 和 3台 :ref:`pi_4` 来组建树莓派集群,是因为历史原因,我陆续采购了不同代的多个树莓派,这些都是沉没成本。 虽然我更看好 :ref:`turing_pi` (尚未上市),但是从计算性能来看,树莓派迟迟没有推出5代产品,所以采用之前已经购买到的 :ref:`pi_4` 来完成计算,性能上还是一样的,只是组装后集群硬件比较繁杂,不是很美观。 考虑到 :ref:`turing_pi` 有可能比较昂贵,而淘宝上现成的 :ref:`pi_cm4` 配套简化底板已经具备了 ``m2`` 接口PCIe SSD支持,可以非常紧凑地实现存储集群(是的,不再需要外接USB的SSD存储),所以我考虑后续改进的方案应该是: - 使用 3 个 :ref:`pi_cm4` + 简化版底板(支持m2接口PCIe存储) 堆叠 - 使用1个 4口千兆小交换机互联设备 - 使用一个微型4口USB电源 如果要进一步缩小尺寸(省略交换机),考虑采用: - 2个 :ref:`pi_cm4` + 简化版底板(支持m2接口PCIe存储) 堆叠 - 双存储构建 :ref:`gluster` 分布式存储,实现数据冗余 - 1个 NanoPi 提供双千兆网络,通过这两个网口连接上述2个树莓派,通过Linux内核实现switch功能 - 可以省却交换机 - 如果NanoPi的USB供电稳定,甚至可以省却USB电源,通过NanoPi实现树莓派的电力供应 如果上述方案总体成本能够低于 :ref:`turing_pi` ,则可以尝试;如果高于或接近 :ref:`turing_pi` ,则还是采用 :ref:`turing_pi` 实现集群 软件 ========= 树莓派硬件性能有限,为了能够充分发挥硬件性能,精简操作系统和应用软件势在必行: - 操作系统采用 :ref:`alpine_linux` : 轻量级最小化安装 - IaaS平台采用 :ref:`k3s` : 适合 :ref:`edge_cloud` 的轻量级 :ref:`kubernetes`