玩转 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 开发板矩阵
服务器全貌
我们先来看一下它的全貌:

就是一个小尺寸的服务器的样子,但是千万不要被它的外形迷惑了。它和 x86 的服务器内部完全不一样。
这个是基于 Firefly Cluster Server R1 - core-3399-jd4 * 11 那款的定制款,接口会少一些。但是内部构造是完全相同的。

这个是它的背面,2 个小风扇 + 电源接口。
打开顶盖,让我们一探其内部构造:

也就是说,其散热是:每片 CPU 上覆盖的散热片被动散热 + 整个机箱的主动风扇散热。
除了电源,就是一块主板(底板), 这个主板挺有意思的,它是由这些部分构成的:
- 11 个金手指接口,用于插入 Firefly core-3399-jd4 的核心板,一个接口插一个。也就是说总共有 11 个核心板。对应的也就有 11 台 arm 服务器,每台服务器配置后面介绍。
- 其中,1 个是 main core, 用作管理端,类似服务器的 BMC 去管理其余 10 台服务器
- 另外 10 个是 worker node. 用于实际负载运行。
- 交换机芯片,用于这 11 个核心板的内部以太网通信。
- 4 个以太网接口,其中:
- 1 个用于 main core
- 另外 3 个和底板的交换机芯片打通
具体的网络拓扑图如下,通过这幅图就能很直观的了解这台服务器的内部构造了:

服务器核心 - 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 终端窗口
- 子版固件升级
如下图:


这个界面是不是看上去有点熟悉?
其实它这个管理端是基于:Grafana 魔改的。
- UI 界面就是:Grafana + 一些定制化的 panel
- 监控数据是基于:Prometheus + node exporter
- Shell 终端窗口是基于 adb 实现的 (这个服务器的 11 个核心板,除了通过以太网交换机互联;其余 10 个子版也会作为 USB 设备连接到 maincore)
- 子版固件升级是基于瑞芯微的 Linux 刷机工具实现的
实战
这台服务器首次启动效果如下:

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

心在滴血。..
功率消耗
其功率稳定在 30 - 40 W(7 片,每片功率 5 W 左右), 如下图:

功率还是比较低的。这就是 arm 芯片的优势。
总结
基于个人的工作/兴趣需求,我想要:
- 多台服务器
- 一直运行
- 噪音小
- 功耗低
这台看起来像服务器,但实际上是由 11 个 arm 开发板组成的矩阵满足了我的需求。
- 被我折腾坏 4 片开发板后,还有 7 片可供使用
- 可以一直运行
- 噪音还是有点大(主要是暴力风扇的原因,后续考虑找个静音风扇安装)
- 功耗低
基本上满足了我的需求。后续我会先用它来搭建 HashiCorp nomad 集群。
敬请期待。
️参考文档
- CSR1-N10R3399 资料下载 | Firefly | 让科技更简单,让生活更智能 (t-firefly.com)
- Welcome to Cluster-Server-R1 Manual — Firefly Wiki (t-firefly.com)
- Welcome to Core-3399-JD4 Manual — Firefly Wiki (t-firefly.com)
- Core-3399-JD4 资料下载 | Firefly | 让科技更简单,让生活更智能 (t-firefly.com)
三人行, 必有我师; 知识共享, 天下为公. 本文由东风微鸣技术博客 EWhisper.cn 编写.
玩转 PI 系列-看起来像服务器的 ARM 开发板矩阵-Firefly Cluster Server的更多相关文章
- iTOP-IMX6UL 实战项目:ssh 服务器移植到 arm 开发板
实验环境:迅为提供的Ubuntu12.04.2 以及虚拟机 编译器:arm-2009q3 编译器 开发板系统:QT系统 开发板使用手册中给Windows 系统安装了 ssh 客户端,给 Ubunt ...
- iTOP-4412开发板-实战教程-ssh服务器移植到arm开发板
本文转自迅为开发板:http://www.topeetboard.com 在前面实战教程中,移植了“串口文件传输工具”,整个移植过程是比较简单的,而且我 们没有做任何协议方面的了解,只是“配置”+“编 ...
- [Linux] PHP程序员玩转Linux系列-Ubuntu配置SVN服务器并搭配域名
在线上部署网站的时候,大部分人是使用ftp,这样的方式很不方便,现在我要在线上安装上SVN的服务器,直接使用svn部署网站.因为搜盘子的服务器是ubuntu,因此下面的步骤是基于ubuntu的. 安装 ...
- arm开发板6410/2440上mjpg-streamer网络视频服务器移植
摄像头移植 一.环境 主机环境 :ubuntu 10.10 目标板 :FS-S5PC100 主机工具链 :gcc-4.4.5 交叉工具链 :arm-unknown-li ...
- 建立开发板与PC机之间的nfs服务器
ARM开发板与PC通过NFS 网络文件系统挂接,很方便文件的移动,也为我们的开发带来了方便.接下来,我就详细的介绍下如何建立ARM与PC机的挂接. 我是用的UBuntu系统. 首先,我们需要在主机上安 ...
- 移植BOA服务器到开发板
移植BOA 服务器到GEC210 开发板 开发平台主机:VMWare--Ubuntu 10.04 LTS开发板:GEC210 / linux-2.6.35.7编译器:arm-linux-gcc-4.5 ...
- 嵌入式Boa服务器上CGI开发-(转自Bryce.Xiao)
嵌入式WEB服务器常见的有lighttpd shttpd thttpdboa mathopd minihttpdappwebgoahead=============================== ...
- [Linux] PHP程序员玩转Linux系列-lnmp环境的搭建
1.PHP程序员玩转Linux系列-怎么安装使用CentOS 在平常的工作中,我作为PHP程序员经常要搭建一下环境,这个环境就是Linux系统下安装nginx,php,mysql这三个软件,对软件进行 ...
- [Linux] PHP程序员玩转Linux系列-搭建代码开发环境
1.PHP程序员玩转Linux系列-怎么安装使用CentOS 2.PHP程序员玩转Linux系列-lnmp环境的搭建 有些同学可能觉得我写的都是啥yum安装的,随便配置一下而已,没啥技术含量,我的目的 ...
- [Linux] PHP程序员玩转Linux系列-腾讯云硬盘扩容挂载
1.PHP程序员玩转Linux系列-怎么安装使用CentOS 2.PHP程序员玩转Linux系列-lnmp环境的搭建 3.PHP程序员玩转Linux系列-搭建FTP代码开发环境 4.PHP程序员玩转L ...
随机推荐
- nas盒子内网穿透
2023年5月27日星期六 -------------------------------------------------------------------------------------- ...
- 【VS Code+Qt6】拖放操作
由于老周的示例代码都是用 VS Code + CMake + Qt 写的,为了不误导人,在标题中还是加上"VS Code"好一些. 上次咱们研究了剪贴板的基本用法,也了解了叫 QM ...
- MassTransit实现Saga模式概览
原文地址:Saga Overview 编排一系列事件的能力是一个强大的功能,而MassTransit使这成为可能. saga是由协调器管理的长期事务.saga是由事件发起的,saga编排事件,saga ...
- 利用jira及confluence的API进行批量操作(查找/更新/导出/备份/删除等)
前言: 近期因为某些原因需要批量替换掉 jira 和 confluence中的特定关键字,而且在替换前还希望进行备份(以便后续恢复)和导出(方便查看)atlassian官方的api介绍文档太简陋,很多 ...
- K8S in Action 读后感(概念简介)
一.K8S的用武之地 今天,大型单体应用正被逐渐拆分成小的.可独立运行的组件,我们称之为微服务.微服务彼此之间解耦,所以它们可以被独立开发.部署.升级.伸缩.这使得我们可以对每一个微服务实现快速迭代, ...
- JavaWeb入门必备JavaEE规范!
前言 对于学习 Java 的同学,大都是 Web 方向的.我们学习 JavaWeb 开发肯定是一个循序渐进的过程,学习前有一些前置知识要掌握,比如 JavaSE 相关知识,HTML.CSS.JavaS ...
- .NET周报 【6月第1期 2023-06-04】
专题 - NanoFramework项目案例 如果有时间,我会在周报中加入一些专题和项目案例的分享,本周就是讨论.NET NanoFramework项目案例的专题,在讨论 NanoFramework ...
- mybatis-plus-generator-ui 可视化代码生成器!
它提供交互式的Web UI用于生成兼容mybatis-plus框架的相关功能代码,包括Entity,Mapper,Mapper.xml,Service,Controller等. 可以自定义模板以及各类 ...
- 【HarmonyOS】详解低代码端云一体化开发之数据模型
[关键字] 元服务.低代码平台.端云一体化开发.数据模型.拖拽式UI [1.写在前面] 上一篇中分享了关于低代码平台开发元服务的基本使用,有兴趣的可以看一下,文章地址如下: https://devel ...
- maven从远程仓库下载依赖包失败(因权限问题导致)
背景 在学习rocketMq时,编译官方提供的可视化项目:rocketmq-dashboard,频频失败,报以下错误 Could not transfer artifact org.apache.ro ...