玩转 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 ...
随机推荐
- 2021-10-28:打家劫舍 II。你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都 围成一圈 ,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装
2021-10-28:打家劫舍 II.你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金.这个地方所有的房屋都 围成一圈 ,这意味着第一个房屋和最后一个房屋是紧挨着的.同时,相邻的房屋装 ...
- 最全面的Mybatis面试八股文
Mybatis是什么? MyBatis框架是一个开源的数据持久层框架. 它的内部封装了通过JDBC访问数据库的操作,支持普通的SQL查询.存储过程和高级映射,几乎消除了所有的JDBC代码和参数的手工设 ...
- 搭建一个属于自己的springboot项目
一.确定环境 最近公司要上个新系统,指定由我来带两个人进行开发,既然是新项目,那么项目搭建的事就落到我的头上了.现在都是使用springboot进行开发,为此我搭环境使用的是springboot,具体 ...
- node版本问题:Error: error:0308010C:digital envelope routines::unsupported
前言 出现这个错误是因为 node.js V17及以后版本中最近发布的OpenSSL3.0, 而OpenSSL3.0对允许算法和密钥大小增加了严格的限制,可能会对生态系统造成一些影响. 在node.j ...
- SYCTF2023 WEB writeup
CarelessPy 一进来就是个任意文件下载功能,不过做了些限制,这题从头到尾都在骂杂鱼...(虽然我确实是(bushi) 查看页面源代码,给了个/eval /login 两个路由,/eval是个目 ...
- js修改css样式
修改宽度: document.getElementById("div1").style.width="200px"; 修改border-radius: docu ...
- docker-compose多服务器部署kafka集群
Kafka 是一个开源的分布式事件流平台,依赖Zookeeper或者KRaft,本文基于Zookeeper. 服务器IP配置 本文使用三个服务器来做集群搭建,IP如下: nodeName IP nod ...
- 前端树形结构图treeShapeStruct,可拖拽移动,点击展开收缩,无限添加子集
快速实现树形结构图,可拖拽移动,点击展开收缩,无限添加子集; 下载完整代码请访问uni-app插件市场地址:https://ext.dcloud.net.cn/plugin?id=12650 效果图如 ...
- Dlang 与 C 语言交互(二)
Dlang 与 C 语言交互(二) 随着需求不断增加,发现好像需要更多的东西了.在官网上找不到资料,四处拼凑才有了本文的分享. 上一文(DLang 与 C 语言交互(一) - jeefy - 博客园) ...
- MySQL 中分区表
MySQL 中的分区表 InnoDB 逻辑存储结构 表空间 (Tablespace) 段 (segment) 区 (extent) 页 (page) 行 (row) InnoDB 数据页结构 分区别表 ...