• 玩转 PI 系列-看起来像服务器的 ARM 开发板矩阵-Firefly Cluster Server


    前言

    基于我个人的工作内容和兴趣,想要在家里搞一套服务器集群,用于容器/K8s 等方案的测试验证。

    考虑过使用二手服务器,比如 Dell R730, 还搞了一套配置清单,如下:

    • Dell R730
    • 3.5 尺寸规格硬盘
    • CPU: 2686v4*2
    • 内存:16g*8
    • 存储:480Gintel ssd 系统盘 + 6tsas 希捷* 2 个数据盘
    • RAID 卡:h730 卡
    • 电源:单电 750w
    • 盘架满
    • 价格大约是 3130 元

    再来套服务器机柜。..

    服务器机柜

    但是考虑到功率和噪音太大了,家里也没有适合放服务器的这么大的地,最终放弃了。😂

    也考虑过用单片的 arm 开发板,但是需要搞好几片,然后编译系统、刷机、装合适的壳子、找电源线和网线,再接入家庭网络。.. 一台一台折腾,太耗时间了。

    即使最后搞好了,可能家里也没那么多的网口,还得买个交换机接入。..

    最后,功夫不负有心人,在闲鱼上找到了结合二者形态,看起来像服务器的 ARM 开发板矩阵- Firefly Cluster Server. 很适合我的需求👍️, 一起看看吧

    Firefly Cluster Server - ARM 开发板矩阵

    服务器全貌

    我们先来看一下它的全貌:

    Firefly Cluster Server

    就是一个小尺寸的服务器的样子,但是千万不要被它的外形迷惑了。它和 x86 的服务器内部完全不一样。

    这个是基于 Firefly Cluster Server R1 - core-3399-jd4 * 11 那款的定制款,接口会少一些。但是内部构造是完全相同的。

    Firefly Cluster Server 背面

    这个是它的背面,2 个小风扇 + 电源接口。

    打开顶盖,让我们一探其内部构造:

    Firefly Cluster Server 内部

    也就是说,其散热是:每片 CPU 上覆盖的散热片被动散热 + 整个机箱的主动风扇散热。

    除了电源,就是一块主板(底板), 这个主板挺有意思的,它是由这些部分构成的:

    • 11 个金手指接口,用于插入 Firefly core-3399-jd4 的核心板,一个接口插一个。也就是说总共有 11 个核心板。对应的也就有 11 台 arm 服务器,每台服务器配置后面介绍。
      • 其中,1 个是 main core, 用作管理端,类似服务器的 BMC 去管理其余 10 台服务器
      • 另外 10 个是 worker node. 用于实际负载运行。
    • 交换机芯片,用于这 11 个核心板的内部以太网通信。
    • 4 个以太网接口,其中:
      • 1 个用于 main core
      • 另外 3 个和底板的交换机芯片打通

    具体的网络拓扑图如下,通过这幅图就能很直观的了解这台服务器的内部构造了:

    Firefly Custer Server R1 网络拓扑图

    服务器核心 - Firefly core-3399-jd4

    这是服务器的核心:Firefly core-3399-jd4 的上手图,单手可握,还是很小的:

    Firefly core-3399-jd4 上手

    Firefly core-3399-jd4 参数

    每片 Firefly core-3399-jd4 核心板就是一台 arm 服务器,其配置为:

    • CPU: 瑞芯微 rk3399 六核心 arm64 CPU (这个芯片是 28nm 制程的,发热还不小)
    • 内存:LPDDR4, 2G/4G 可选
    • NPU: 选装,我购买的没有该芯片
    • 存储:eMMC, 8G - 128G 可选,我的是 32G.

    也就是说,这一台服务器,启动后会有:11 台 6 核,2/4G 内存,32G 存储的配置可用。

    以 4G/32G 的配置为例,总共有:

    • 66 核 CPU
    • 44G 内存
    • 352G 存储

    可用。

    刷机

    这种服务器,本来的应用场景主要是用作:云手机矩阵。所以其默认带的是安卓系统。

    根据我的需求全部刷机为 Ubuntu 系统。

    具体刷机过程就不详细介绍了,感兴趣的可以参考这里:

    子板固件升级 - 产品介绍 — Firefly Wiki (t-firefly.com)

    Maincore - BMC 管理端

    这个服务器的 BMC 管理端也很有意思,功能大致为:

    • 设备列表
    • 设备监控仪表板
    • Shell 终端窗口
    • 子版固件升级

    如下图:

    BMC 管理端

    BMC 登录后首页

    这个界面是不是看上去有点熟悉?😄😄😄

    其实它这个管理端是基于:Grafana 魔改的。

    • UI 界面就是:Grafana + 一些定制化的 panel
    • 监控数据是基于:Prometheus + node exporter
    • Shell 终端窗口是基于 adb 实现的 (📝这个服务器的 11 个核心板,除了通过以太网交换机互联;其余 10 个子版也会作为 USB 设备连接到 maincore)
    • 子版固件升级是基于瑞芯微的 Linux 刷机工具实现的

    实战

    这台服务器首次启动效果如下:

    Firefly Cluster Server Running

    再被我折腾了很多次之后,最终设备坏了 4 个😂😂😂, 只剩下 7 个可用了。

    只剩下 1 个 maincore 和 6 个 subcore 了

    心在滴血。..💀💀💀

    功率消耗

    其功率稳定在 30 - 40 W(7 片,每片功率 5 W 左右), 如下图:

    功率

    功率还是比较低的。这就是 arm 芯片的优势。

    总结

    基于个人的工作/兴趣需求,我想要:

    • 多台服务器
    • 一直运行
    • 噪音小
    • 功耗低

    这台看起来像服务器,但实际上是由 11 个 arm 开发板组成的矩阵满足了我的需求。

    • 被我折腾坏 4 片开发板后,还有 7 片可供使用
    • 可以一直运行
    • 噪音还是有点大(主要是暴力风扇的原因,后续考虑找个静音风扇安装)
    • 功耗低

    基本上满足了我的需求。后续我会先用它来搭建 HashiCorp nomad 集群。

    敬请期待。

    📚️参考文档

    三人行, 必有我师; 知识共享, 天下为公. 本文由东风微鸣技术博客 EWhisper.cn 编写.

  • 相关阅读:
    【重识云原生】第六章容器基础6.4.9.3节——Service拓扑感知
    OpenGL(十九)——Qt OpenGL波动纹理(旗子的飘动效果)
    新媒体运营的营销方案
    CSRF-跨站点请求伪造
    PTA 浙大版《C语言程序设计(第4版)》题目集 参考答案(函数题)
    Mysql 聚合函数的使用
    Java对象与封装详解
    SPN的相关利用
    基于MIndSpore框架的道路场景语义分割方法研究
    Python每日一练 05
  • 原文地址:https://www.cnblogs.com/east4ming/p/17658423.html