玩转 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 集群。

敬请期待。

📚️参考文档

  • 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 编写.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/57670.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Oracle-day4:分组查询(带条件)、DDL建表、约束、主从表

一、内容回顾 /*------------------内容回顾------------------------上周内容回顾--1、单表的基础查询--A、select * from emp;--B、列的运算 --数字类型运算 - * /--函数运算 mod ceil floor round upper lower--C、取别名--列、表达书取别名--*表示所有的列和列同时存在时…

深入浅出SSD:固态存储核心技术、原理与实战(文末赠书)

名字:阿玥的小东东 学习:Python、C/C 主页链接:阿玥的小东东的博客_CSDN博客-python&&c高级知识,过年必备,C/C知识讲解领域博主 目录 内容简介 作者简介 使用Python做一个计算器 本期赠书 近年来国家大力支持半导体行业&#xff0…

MySQL----索引

一、索引的概念 索引是一个排序的列表,在这个列表中存储着索引的值和包含这个值的数据所在行的物理地址(类似于c语言的链表通过指针指向数据记录的内存地址)。使用索引后可以不用扫描全表来定位某行的数据,而是先通过索引表找到该…

Mysql--技术文档--MVCC(Multi-Version Concurrency Control | 多版本并发控制)

MVCC到底是什么 MVCC(Multi-Version Concurrency Control)是一种并发控制机制,用于解决并发访问数据库时的数据一致性和隔离性问题。MVCC允许多个事务同时读取数据库的同一数据,而不会相互干扰或导致冲突。 在传统的并发控制机制中…

基于Spring实现博客项目

访问地址:用户登录 代码获取:基于Spring实现博客项目: Spring项目写博客项目 一.项目开发 1.项目开发阶段 需求评审,需求分析项目设计(接口设计,DB设计等,比较大的需求,需要设计流程图,用例图,UML, model中的字段)开发+自测提测(提交测试…

DOM破坏绕过XSSfilter例题

目录 一、什么是DOM破坏 二、例题1 三、多层关系 1.Collection集合方式 2.标签关系 3.三层标签如何获取 四、例题2 五、例题3 1.代码审计 2.payload分析 一、什么是DOM破坏 DOM破坏(DOM Clobbering)指的是对网页上的DOM结构进行不当的修改&am…

Redis之GEO类型解读

目录 基本介绍 基本命令 geoadd 命令 geopos 命令 geodist 命令 georadius 命令 georadiusbymember 命令 geohash 命令 基本介绍 GEO 主要用于存储地理位置信息(纬度、经度、名称)添加到指定的key中。该功能在 Redis 3.2 版本新增。 GEO&…

C++炸弹小游戏

游戏效果 小人可以随便在一些元素(如石头,岩浆,水,宝石等)上跳跃,“地面”一直在上升,小人上升到顶部或者没有血的时候游戏结束(初始20点血),小人可以随意放炸…

计算机网络MTU和MSS的区别

在计算机网络中,MTU代表最大传输单元(Maximum Transmission Unit),而MSS代表最大分节大小(Maximum Segment Size)。 1.MTU(最大传输单元): MTU是指在网络通信中&#x…

原神世界中的顺序表:派蒙的趣味数据结构讲解

派蒙,那个总是带着疑问眼神的小家伙,是原神世界中的小精灵。他总是充满好奇心,无论是对新的冒险者,还是对各种奇妙的现象。而他的另一个身份,则是原神世界中的数据结构大师。 一天,派蒙遇到了旅行者小森&a…

对开源自动化测试平台MeterSphere的使用感触

1:该平台可以通过接口,参数,配置的维护,然后继续接口自动化“一键测试”,功能还是挺强大的,具体的使用需要研究 MeterSphere的官网:MeterSphere - 专业测试云 2:一键测试在生产环境…

网络服务第二次作业

[rootlocalhost ~]# vim /etc/httpd/conf.d/vhosts.conf <Virtualhost 192.168.101.200:80> #虚拟主机IP及端口 DocumentRoot /www/openlab #网页文件存放目录 ServerName www.openlab.com #服务器域名 </VirtualHost> …

python实现/直播服务器/聊天服务器/的多种解决方案

python有哪些技术栈 实现直播服务器 在Python中&#xff0c;您可以使用以下技术栈来实现直播服务器&#xff1a; Flask&#xff1a;Flask是一个轻量级的Web框架&#xff0c;可用于构建直播服务器的后端。您可以使用Flask编写API端点来处理直播流的控制和管理。 Django&#xf…

两种数据库引擎和聚簇(非聚簇)索引

一&#xff1a;两种数据库引擎区别及如何选择&#xff1f; InnoDB和MyISAM的区别&#xff1f; 1&#xff1a;InnoDB支持事务&#xff0c;而MyISAM不支持事务。这是MYSQL将默认引擎从MYISAM变为INNODB的重要原因之一。 2&#xff1a;INNODB支持外键&#xff0c;而MYISAM不支持…

易云维®FMCS厂务系统创造工厂全新的“数字低碳智能”应用场景

近年来&#xff0c;新一代信息技术的高速发展为传统工业与制造业领域带来了新的机遇。信息技术加持下的制造技术发展出了新的生产方式、产业形态与管理模式。通过搭建FMCS厂务系统进行数字化转型来实现数据互联互通与业务高效协同&#xff0c;助力企业向安全、绿色、节能、高效…

上海港股通开通条件是什么?港股通交易佣金最低多少?

上海港股通权限开通条件有&#xff1a; 1、申请权限开通前20个交易日证券账户日均资产不低于50万元; 2、进行港股知识测试&#xff0c;且测试分数不低于80分; 3、风险承受能力等级需要匹配&#xff0c;无投资经验期限的门槛 港股通的股票范围是香港联合交易所恒生综合大型股…

MATLAB图论合集(二)计算最小生成树

今天来介绍第二部分&#xff0c;图论中非常重要的知识点——最小生成树。作为数据结构的理论知识&#xff0c;Prim算法和克鲁斯卡尔算法的思想此处博主不详细介绍&#xff0c;建议在阅读本帖前熟练掌握。 对于无向带权图&#xff0c;在MATLAB中可以直接以邻接矩阵的方式创建出来…

Flutter实现StackView

1.让界面之间可以嵌套且执行动画。 2.界面的添加遵循先进后出原则。 3.需要使用AnimateView&#xff0c;请看我上一篇博客。 演示&#xff1a; 代码&#xff1a; Stack: import package:flutter/cupertino.dart;///栈&#xff0c;先进后出 class KqWidgetStack {final Lis…

JVM知识点(一)

1、JVM基础概念 &#xff08;1&#xff09;JVM、JRE、JDK JRE&#xff1a;JVM基本类库组成的运行环境就是JRE。JVM自己是无法完成一次编译&#xff0c;处处运行的&#xff0c;需要有一个基本类库告诉JVM如何操作运行&#xff0c;如如何操作文件&#xff0c;连接网络等&#x…

JVM 给对象分配内存空间

指针碰撞空闲列表TLAB 为对象分配空间的任务实际上便等同于把一块确定大小的内存块从Java堆中划分出来。 指针碰撞&#xff1a;&#xff08;Bump The Pointer&#xff09; 堆的内存是绝对规整的&#xff0c;内存主要分为两部分&#xff0c;所有使用过的内存被放在一边&#x…