OpenWrt硬件选型

选型思路

  • 倾向于采用ARM架构: 节能无需风扇,适合安静的室内环境

  • 至少配置4G内存,8G或者更高则更佳: 虽然构建交换网络和路由以及基础服务只需要很少的内存,但是我希望设备能够运行 Kubernetes Atlas 集群以及 Ceph Atlas ,实现一个 边缘云计算构建

  • 支持 NVMe存储 存储,如果不行则至少支持 SATA SSD存储: 需要构建稳定的分布式存储 Ceph Atlas 或者 Gluster Atlas

  • 具备多网口(交换网络必须): 设备构建软交换,提供网络QoS管控以及细粒度的网络监控

  • 支持尽可能多的硬件虚拟化: 我需要运行 KVM Atlas 来构建一些复杂场景模拟

可选设备

某个型号的路由器

现在最新型的路由器可能硬件已经非常强(但价格也很贵),也许能够满足我运行虚拟化的要求:

  • 优点:

    • 路由器默认具备了多网口交换网络以及无线功能,可以省却购买扩展卡

    • 销量大有可能找到较为经济的型号

  • 缺点:

    • 处理器和内存可能不足且不可扩展

    • 估计很难找到支持内置存储的设备(NVMe和SATA SSD)

备注

如果有性价比比较高的二手路由器,或许可以采用这个方案(内存能够达到4G较好)

软硬件杂谈 篇九十八:要玩硬路由OpenWRT?我的踩坑手册,你的入门指南! 提到的 GL.inet 支持OpenWRT的小路由:MT1300和SFT1200 采用了 512MB DDR3内存 / 128MB DDR3内存,估计作为小型应用web以及下载工具或许比较适合。但是难以组合成适合运行 Kubernetes Atlas 集群以及 Ceph Atlas 的硬件平台

符合高内存以及NVMe存储扩展的路由器估计需要花费大量时间对比筛选,并且这个市场非常狭窄,性价比可能不高。

树莓派

树莓派已经在 Raspberry Pi Atlas 中做了很多实践,优缺点都非常明显:

  • 优点:

    • 社区支持广泛,有太多的开源项目可以提供借鉴学习

    • 兼容性好,得到众多Linux发行版支持,甚至可以运行 Android Atlas

  • 缺点:

    • 硬件性能有限,特别是内存最高8G,对于大型程序运行有很多限制

    • 缺乏NVMe和SATA控制芯片,虽然可以通过扩展卡得到NVMe和SATA支持,但是由于扩展卡市场小导致售价较高,累积起来的整体费用甚至超过了Intel的NUC

    • 网络接口只有1个,虽然第三方扩展主板可以实现多网口,但是一方面太小众售价高,另一方面由于树莓派共享网络和存储总线导致性能限制

树莓派原本作为低成本ARM架构的通用SBC是非常有性价比的,然而最近几年芯片荒、中美贸易战、反全球化导致半导体市场出现了诡异的价格疯涨。我吃惊地看到,原本我购买的 树莓派Raspberry Pi 4 价格翻倍:

  • 2020年9月购买2G规格树莓派4B是255元,两年后2022年10月售价是708元

  • 2020年9月购买8G规格树莓派4B是565元,两年后2022年10月售价是1088元

这是多么疯狂的扭曲,使得目前树莓派完全没有性价比可言:树莓派虽然好玩,但是同样的售价购买Intel多网口工控机可以体验更为强大的性能以及扩展性(Intel的服务器技术也可模拟)

NanoPi R4S/R5S

NanoPi 应该是借鉴了 Raspberry Pi Atlas 思路进一步改进而来,由于近几年芯片集成度和 NVMe存储 技术迭代,NanoPi可以说基本补齐了树莓派的短板,性价比更高的一款产品:

  • 优点:

    • R4S集成2个千兆网口; R5S集成2个2.5G网口和1个千兆网口: 这使得NanoPi非常适合堆叠成 Raspberry Pi Cluster ,完美实现 Kubernetes AtlasCeph Atlas 集群基本硬件

    • 内存达到4GB,也就是刚好满足构建集群运行较为大型的软件(虽然可能只能演示)

    • 集成了NVMe存储接口 可以直接安装扩展存储,这使得该设备性价比得到极大提升,可以作为存储服务器

    • 主芯片就是用于手机的MTK芯片,可以直接安装运行Android

  • 缺点:

    • 社区支持还达不到树莓派层次,使用不够广泛,所以可能很多问题需要自己摸索

备注

不管怎样,NanoPi的均衡硬件配置以及低廉的售价(含官方CNC金属外壳)售价还不到树莓派2G规格单主板的售价,性价比非常突出。并且也比较契合我选在运行OpenWrt的硬件构想,特别是能够3个堆叠组件集群,可以说可玩性超群。我单独再规划一个 NanoPi 硬件构想…

Intel架构多网口工控机

在淘宝上能够找到Intel赛扬N5105多网口工控机,可能是最经济的高性能硬件:

  • 优点:

    • 标准X86架构(就是有点乏味)能得到最兼容的软硬件支持

    • 可更换扩展笔记本内存,最高达到 64G (这点是低端ARM设备无法企及的),可以满足运行大型程序(注意,需要对Intel处理器规格进行详细对比,以选择最佳虚拟化支持型号)

    • 4口 2.5Gb 高速网络(虽然连接树莓派等设备只能用到千兆性能,但是如果多设备堆叠可以获得更大带宽,我甚至想采用2个网口binding方式来获得更好带宽)

    • Intel网卡可以实现 Sigle Root I/O Virtualization(SR-IOV)

我的选择(思路)

我对比了不同硬件的组合,我觉得:

  • 最好的设备是 Intel赛扬N5105多网口工控机 ,性能太强(同价位下),可扩展性远超过ARM设备( Raspberry Pi AtlasNanoPi ): 最高可以达到64GB内存,4端口 2.5Gb 高速网络(可支持虚拟化)

    • 但是这样强大的设备(我甚至觉得可以扩展PCIe显卡)运行 OpenWrt 实在有些 “超纲” 了: OpenWrt采用了类似 Alpine Linux 的特殊库,可以适应低配置硬件,但是兼容性较弱; 所以达到这个级别硬件,不如直接安装标准版本的 Arch Linux 来构建标准服务器

  • 不考虑社区支持广泛性,从硬件性价比来说,可以选择 NanoPi R5S : 可以获得NVMe存储以及多网卡互联,可以构建一个模拟集群(仅演示)

  • 要集中精力学习,则选择 Raspberry Pi Atlas 虽然硬件价格太贵,但是广泛的社区支持可以解决大多数问题,方便实现不同的部署方案

考虑到我已经在 HPE ProLiant DL360 Gen9服务器Raspberry Pi Atlas 投入大量的成本(钱和精力),所以我决定不再新购买设备,而采用现有设备来实践:

总之,虽然我花费了不少时间查询资料和想象硬件对比,但是我目前需要节约花费,用最小的成本来学习技术。

参考