树莓派软件定义存储集群
我构思的 树莓派存储集群 需要大量的资金投入:
树莓派Raspberry Pi 5 只支持 PCIe gen2 和 gen3,这意味着我以前投入"巨资"购买的 三星PM9A1 NVMe存储 (pcie gen4)无法使用: 虽然旧版的nvme ssd m.2 存储现在降价,但是重新购买依然是失业的我无法承受之重
较为理想的方案是采用
3台
树莓派Raspberry Pi 5 来构建分布式集群: 每个 树莓派Raspberry Pi 5 满配4个
nvme m.2 ssd gen3 存储(巨资); 其次是每个 树莓派Raspberry Pi 5 配置1个
nvme(依然可以组 Ceph 只是容量缩减)受限于 树莓派Raspberry Pi 5 孱弱的pcie gen2存储接口(毕竟是经济型设备),实际上投入巨资组建的存储集群只能说可用,但无法发挥 NVMe存储 存储的全部性能(甚至只有很小一部分性能): 可以说性价比很低
既然我的Clous Atlas是一个模拟学习指南,那么尽可能少投入、尽可能多锻炼实践是我的终极目标,那么有没有可能用一个极为低廉的资金来实现一个功能齐全的 软件模拟存储集群 呢?
我的构思一
在 树莓派Root on ZFS 实现RAID1存储ZFS:
只在 一块NVMe存储 ( 铠侠KIOXIA EXCERIA G2 NVMe SSD存储 ) 上用两个磁盘分区来模拟真正的物理磁盘,实现类似数据中心常用的RAID1,并模拟磁盘故障和恢复,验证是否可以持续稳定工作
虽然只有一台物理主机 树莓派Raspberry Pi 5 ,但是通过 kind(本地docker模拟k8s集群) 可以实现完整的Kubernetes集群的部署、开发和测试
在 一块NVMe存储 上划分出
3个
磁盘分区,作为块设备映射到 kind(本地docker模拟k8s集群) 集群工作节点上,使用 Rook - 云原生存储调度器 来实现一个模拟生产环境的 Ceph 存储集群在这个单机虚化模拟出来的Kubernetes集群中部署 GitLab ,所有容器的块存储都构建在分布式的 Ceph 集群的 Ceph Block Device(RBD) 上:
部署分布式 PostgreSQL
在Kubernetes集群部署NAS应用(云盘),构建基于 Ceph 后端的分布式文件服务器
集成 Hailo AI 处理器 加速器,尝试部署边缘AI
备注
由于 树莓派Raspberry Pi 5 性能有限,完整部署的负载可能单台树莓派无法承担,必要时再购买1~2台 树莓派Raspberry Pi 5 进行横向扩展
我的构思二
进一步的想法是结合现有 树莓派Raspberry Pi 4 来构建一种物理和虚拟结合的集群:
我有
3个
树莓派Raspberry Pi 4 作为 Kubernetes 的控制平面(是的,原先我是作为工作节点,现在有了 树莓派Raspberry Pi 5 之后, 树莓派Raspberry Pi 4 降级为控制,而 树莓派Raspberry Pi 5 作为计算节点)管控节点部署 Prometheus监控 / Grafana通用可视分析平台 等监控
我 又购置了一台 树莓派Raspberry Pi 5 ,并且也添加了 一块NVMe存储 ( 铠侠KIOXIA EXCERIA G2 NVMe SSD存储 )
一个 树莓派Raspberry Pi 5 划分2个分区,用来模拟 ZFS 的 RAID1 ,部署 树莓派Root on ZFS (注意,这会消耗双倍的存储空间),所以我仅使用 (128G x2)
一个 树莓派Raspberry Pi 5 使用传统的 EXT文件系统 4 ,简单构建 树莓派5使用nvme存储启动 ,使用 128G (对应另外一个 树莓派Raspberry Pi 5 ),然后再准备 128G EXT4文件系统(这个分区对应另一个 树莓派Raspberry Pi 5 的 ZFS RAID1多消耗的冗余数据空间),这个第二分区将作为 ZFS 的实验室,也就是使用模拟块文件来测试ZFS的 RAIDZ
两个 树莓派Raspberry Pi 5 都使用 256G 来构建一个 Docker ZFS 存储驱动 (开启压缩),实现容器镜像本地存储
两个 树莓派Raspberry Pi 5 划分 1T 用于构建 Ceph ,实现 Kubernetes 云存储
两个 树莓派Raspberry Pi 5 剩余 512G (实际不足) 用于构建 Gluster ,作为日常数据冗余存储,也提供给 Kubernetes 作为文件存储和离线存储
Kubernetes 集群主要容器镜像都存储在 Ceph 云存储,仅对数据库容器存储采用本地存储(数据库有自己的容灾)
我的构思三
正如 边缘云计算架构(2024) 所述,我最终剁手了 3台
树莓派Raspberry Pi 5 :
考虑到性能以及扩展性 ( 树莓派AI套件 / 树莓派5 PCIe转M.2 NVMe SSD存储 ),我最终决定采用 3台
4台
树莓派Raspberry Pi 5 来构建模拟集群考虑到SSD磁盘宝贵(价格昂贵),方案二中ZFS的RAID模拟测试我准备改为虚拟机模拟测试,以便随时回收测试资源避免磁盘空间浪费
最初我安装 Raspbery Pi OS(Raspbian) 采用了精简的 Raspbery Pi OS(Raspbian)软件初始化 ,并且使用了
64GB
TF卡安装。所以后续 树莓派5使用nvme存储启动 继承了64GB的操作系统使用分区空间大小我认为对于稳定的服务器系统,64GB空间是足够的,后续数据存储将使用 ZFS 构建,不会占用基础OS磁盘分区空间
Ceph 使用 1T 存储
树莓派5 NVMe存储ZFS 使用剩余存储空间,采用一个
zpool-data
来构建 树莓派5 NVMe存储ZFS
分区 |
挂载 |
大小 |
文件系统 |
说明 |
---|---|---|---|---|
1 |
/boot/firmware |
512M |
fat32 |
EFI启动分区 |
2 |
/ |
59G |
ext4 |
操作系统根分区 |
3 |
1024G |
ceph专用bluestore存储 |
||
4 |
/var/lib/docker |
剩余空间 |
zfs |
zpool-data存储池 |
我的构思四
继续使用 树莓派Raspberry Pi 3 / 树莓派Raspberry Pi 4 / 树莓派Raspberry Pi 5 设备 构建集群,但是存储从树莓派抽离,主要集中安装到我组装的 纳斯NASSE C246 ITX主板 桌面主机
通过 FreeBSD 的 ZFS 构建
RAIDZ0
存储数据,虽然没有任何数据冗余,但是4个 铠侠KIOXIA EXCERIA G2 NVMe SSD存储 构建高性能大容量存储通过 bhyve(BSD hypervisor) 运行 FreeBSD 虚拟机,来构建3个节点的 Ceph 分布存储
使用软交换方式( 纳斯NASSE C246 ITX主板 提供了4个 2.5G 网络),实现 树莓派Raspberry Pi 5 高速访问存储,来构建一个使用 Ceph 存储的 Kubernetes 集群
实际上我的 Raspberry Pi Cluster 方案已经偏离了我最初的设想,而是趋向于 hybrid-infra cluster
,也就是混合架构集群:
树莓派的I/O性能较弱,所以
hybrid-infra cluster
将存储后端迁移到我自己组装的X86 FreeBSD 服务器上,利用Intel架构成熟的服务器硬件(其实是桌面设备)实现高速(虚拟化模拟) Ceph 集群前端应用采用 Kubernetes 动态启动服务容器,为外部访问提供服务,例如 Web ,但是所有的数据都存储在模拟的基于 FreeBSD 的 Ceph 存储(虽然数据没有冗余安全保障,但是测试环境可以忽略数据丢失问题,随时通过不断改进的自动化部署来实现一键恢复)
当然,也不能忽视 ARM 架构的 Ceph 和 Gluster 实现,我依然会在我有限性能的 树莓派Raspberry Pi 4 集群上构建一个性能较弱但依然模拟生产的集群,作为不同平台不同架构解决方案的对比。
业界的产品化集群
随着树莓派生态完善,涌现了不同的集群构建硬件。其中使用 树莓派Compute Model 4计算模块 (BCM2711) 和 树莓派Raspberry Pi 5 计算模块 (BCM2712) 构建的微型集群,非常有特色。2025年6月6日,看到油管博主Jeff Geerling介绍的 Cute, but powerful: meet NanoCluster, a tiny supercomputer ,也就是 硅速科技
正在预售的 Sipeed NanoCluster :

以一个可乐罐大小的体积提供
7个
树莓派Compute Model 4计算模块 (BCM2711) 或 树莓派Raspberry Pi 5 计算模块 (BCM2712)构建的高性能树莓派集群底部采用一个Open SDK for RISC-V GbE交换机互联
第一个slot的树莓派可以管理所有slot的电源,以及支持4个slot的 树莓派UART串口通讯 ,非常类似服务器的 HP服务器iLO技术 管理(虽然比较简陋)
支持POE电源简化连线,也支持60W PD
最高支持7个SOMs,如果使用7个 树莓派Raspberry Pi 5 计算模块 (BCM2712) 可以获得 56 CPU核心,126TOPS 计算能力(可能还达不到NVIDIA Jetson 256TOPS能力) (此处采用产品宣发资料,未验证)
7个SOM组合包售价
250$
备注
这是一个有意思的产品,非常吸引人。不过我已经购买了大量的 树莓派Raspberry Pi 3 / 树莓派Raspberry Pi 4 / 树莓派Raspberry Pi 5 设备,所以不太可能再购买。不过我的树莓派集群虽然达不到这么紧凑,但是功能和软件能力上并不弱,我将用软件定义方式来实现复杂的云计算平台。