玩转 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
前言 基于我个人的工作内容和兴趣,想要在家里搞一套服务器集群,用于容器/K8s 等方案的测试验证。 考虑过使用二手服务器,比如 Dell R730, 还搞了一套配置清单,如下: Dell R7303.5 尺寸规格硬盘CPU: 2686v4*2 内存&a…...
《Flink学习笔记》——第六章 Flink的时间和窗口
6.1 时间语义 6.1.1 Flink中的时间语义 对于一台机器而言,时间就是系统时间。但是Flink是一个分布式处理系统,多台机器“各自为政”,没有统一的时钟,各自有各自的系统时间。而对于并行的子任务来说,在不同的节点&…...
nano主板扩大swap交换交换空间大小 /windows里远程传输文件/ssh远程登陆访问GUI界面报错
nano主板扩大swap交换交换空间大小 /windows里远程传输文件/ssh远程登陆访问GUI界面报错 1.扩容 在编译某些文件时由于nano主控内存空间小,在编译工作空间catkin_make时会卡住,因此需要扩容 sudo fallocate -l 13G /var/swapfile #1.新增swapfile 文…...
7个用于机器学习和数据科学的基本 Python 库
推荐:使用 NSDT场景编辑器 助你快速搭建3D应用场景 这篇文章针对的是刚开始使用Python进行AI的人,以及那些有经验的人,但对下一步要学习什么有疑问的人。我们将不时花点时间向初学者介绍基本术语和概念。如果您已经熟悉它们,我们鼓…...
Kafka 简介 + 学习笔记
消息队列 先说明消息队列是什么: 亚马逊: 消息队列是一种异步的服务间通信方式,适用于微服务架构。消息在被处理和删除之前一直存储在队列上。每条消息仅可被一位用户处理一次。消息队列可被用于分离重量级处理、缓冲或批处理工作以及缓解高…...
Mybatis小记
目录 Mybatis第一个程序 xml文件 测试类 错误排查 Mybatis第一个程序 1.搭建实验数据库 2.导入MyBatis相关jar包 3.编写MyBatis核心配置文件 4.编写MyBatis工具类 5.创建实体类、 6.编写Mapper接口类 7.编写Mapper.xml配置文件 8.编写测试类 对象传参只引用需要的属性就可…...
如何向BertModel增加字符
这里写自定义目录标题 看起来add_special_tokens和add_tokens加入的新token都不会被切分。...
copilot切换下一条提示的快捷键
注意是右ALT 右ALT] 触发提示 右ALT/ 参考 https://www.cnblogs.com/strengthen/p/17210356.html...
Mongodb 删除文档Delete与Remove的区别
db.collection.remove() 此方法已被 mongosh 弃用 已弃用的方法替代方法db.collection.remove()db.collection.deleteOne() db.collection.deleteMany() db.collection.findOneAndDelete() db.collection.bulkWrite() 5.0版本更改。 db.collection.remove(<query>,…...
Docker 的基本概念和优势
Docker 是一种开源的容器化平台,可以轻松部署、管理和运行应用程序。它基于 Linux 容器技术,可以将应用程序和其依赖项打包到一个可移植的容器中,从而使应用程序更易于部署、移植和扩展。 Docker 的主要优势包括: 1. 简化部署&a…...
基于 xhr 实现 axios
基于 xhr 实现 axios 上面我们讲到二次封装 axios ,但是现在我们尝试完全脱离 axios,自己实现一个 axios,由于 axios 底层是基于 xhr 做了二次封装,所以我们也可以尝试一下。 xhr 二次封装 src/plugins/xhr.js /*** 请求拦截器…...
基于面向对象的大模型代码生成
众多周至,大模型非常依赖上下文,要让大模型生成比较好的代码,必须准确地给大模型传递上下文信息和指令。 痛点 目前大模型主要以自然语言进行交互,通过自然语言交互的好处是降低大模型的使用门槛,但是由于语言的不精确…...
易云维®FMCS厂务系统创造工厂全新的“数字低碳智能”应用场景
近年来,新一代信息技术的高速发展为传统工业与制造业领域带来了新的机遇。信息技术加持下的制造技术发展出了新的生产方式、产业形态与管理模式。通过搭建FMCS厂务系统进行数字化转型来实现数据互联互通与业务高效协同,助力企业向安全、绿色、节能、高效…...
【Linux应用部署篇】在CSDN云IDE平台部署Etherpad文档编辑器
【Linux应用部署篇】在CSDN云IDE平台部署Etherpad文档编辑器 一、CSDN云IDE平台介绍1.1 CSDN云IDE平台简介1.2 CSDN云IDE平台特点 二、本次实践介绍2.1 本次实践介绍2.2 Etherpad简介 三、登录CSDN云IDE平台3.1 登录CSDN开发云3.2 登录云IDE3.3 新建工作空间3.4 进入工作空间 四…...
基于java swing和mysql实现的汽车租赁管理系统(源码+数据库+文档+运行指导视频)
一、项目简介 本项目是一套基于java swing和mysql实现的汽车租赁管理系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Java学习者。 包含:项目源码、项目文档、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经…...
Rigs-of-rods安装
Rigs-of-rods安装 安装git 首先下载git,下载地址:https://git-scm.com/download/win,安装git 安装cmake 下载cmake,下载地址:https://cmake.org/download/,安装cmake 安装vs2022下载ror的依赖库 git clone https://github.co…...
html学习第2篇---标签(1)
html学习第2篇---标签 1、标题标签h1---h62、段落标签p3、换行标签br4、文本格式化标签5、div标签和span标签6、图像标签img6.1、图像属性6.2、相对路径、绝对路径 7、超链接标签a7.1、属性7.2、分类 8、注释标签和特殊字符8.1、注释8.2、特殊字符 1、标题标签h1—h6 为了使网…...
爬虫逆向实战(二十四)--某鸟记录中心
一、数据接口分析 主页地址:某鸟记录中心 1、抓包 通过抓包可以发现数据接口是front/record/search/page 2、判断是否有加密参数 请求参数是否加密? 通过查看“载荷”模块可以发现,请求参数是加密的 请求头是否加密? 通过查…...
【操作系统】中断和异常
中断的作用 CPU上会执行两种程序:内核程序和应用程序 在适合的情况下,操作系统内核会把CPU的使用权主动让给应用程序,“中断”是让操作系统内核夺回CPU使用权的唯一途径(用户态转内核态)。 中断技术保证了并发。 中…...
锁策略、原子编程CAS 和 synchronized 优化过程
前言 锁冲突:两个线程获取一把锁,一个线程阻塞等待,一个线程加锁成功。 目录 前言 一、锁策略 (一)乐观锁和悲观锁 (二)重量级锁和轻量级锁 (三)自旋锁和挂起等待…...
深度学习在微纳光子学中的应用
深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向: 逆向设计 通过神经网络快速预测微纳结构的光学响应,替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...
<6>-MySQL表的增删查改
目录 一,create(创建表) 二,retrieve(查询表) 1,select列 2,where条件 三,update(更新表) 四,delete(删除表…...
iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版分享
平时用 iPhone 的时候,难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵,或者买了二手 iPhone 却被原来的 iCloud 账号锁住,这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...
大语言模型如何处理长文本?常用文本分割技术详解
为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...
项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)
Redis无法正确连接 在运行jar包时出现了这样的错误 查询得知问题核心在于Redis连接失败,具体原因是客户端发送了密码认证请求,但Redis服务器未设置密码 1.为Redis设置密码(匹配客户端配置) 步骤: 1).修…...
分布式增量爬虫实现方案
之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面,避免重复抓取,以节省资源和时间。 在分布式环境下,增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路:将增量判…...
在QWebEngineView上实现鼠标、触摸等事件捕获的解决方案
这个问题我看其他博主也写了,要么要会员、要么写的乱七八糟。这里我整理一下,把问题说清楚并且给出代码,拿去用就行,照着葫芦画瓢。 问题 在继承QWebEngineView后,重写mousePressEvent或event函数无法捕获鼠标按下事…...
云原生安全实战:API网关Kong的鉴权与限流详解
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、基础概念 1. API网关(API Gateway) API网关是微服务架构中的核心组件,负责统一管理所有API的流量入口。它像一座…...
CRMEB 中 PHP 短信扩展开发:涵盖一号通、阿里云、腾讯云、创蓝
目前已有一号通短信、阿里云短信、腾讯云短信扩展 扩展入口文件 文件目录 crmeb\services\sms\Sms.php 默认驱动类型为:一号通 namespace crmeb\services\sms;use crmeb\basic\BaseManager; use crmeb\services\AccessTokenServeService; use crmeb\services\sms\…...
Ubuntu系统复制(U盘-电脑硬盘)
所需环境 电脑自带硬盘:1块 (1T) U盘1:Ubuntu系统引导盘(用于“U盘2”复制到“电脑自带硬盘”) U盘2:Ubuntu系统盘(1T,用于被复制) !!!建议“电脑…...
