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 Atlas 和 Ceph 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 Atlas 和 NanoPi ): 最高可以达到64GB内存,4端口2.5Gb
高速网络(可支持虚拟化)但是这样强大的设备(我甚至觉得可以扩展PCIe显卡)运行 OpenWrt 实在有些 "超纲" 了: OpenWrt采用了类似 Alpine Linux 的特殊库,可以适应低配置硬件,但是兼容性较弱; 所以达到这个级别硬件,不如直接安装标准版本的 Arch Linux 来构建标准服务器
不考虑社区支持广泛性,从硬件性价比来说,可以选择 NanoPi R5S : 可以获得NVMe存储以及多网卡互联,可以构建一个模拟集群(仅演示)
要集中精力学习,则选择 Raspberry Pi Atlas 虽然硬件价格太贵,但是广泛的社区支持可以解决大多数问题,方便实现不同的部署方案
考虑到我已经在 HPE ProLiant DL360 Gen9服务器 和 Raspberry Pi Atlas 投入大量的成本(钱和精力),所以我决定不再新购买设备,而采用现有设备来实践:
希捷GoFlex Home存储 运行OpenWrt来实现 Gluster Atlas ,实现数据存储
再次用 树莓派一代 来安装OpenWrt,学习和实践OpenWrt的部署,以及参考 OpenWrt-DIY 和 OpenWrt与嵌入式Linux 等文章如何构建OpenWrt,这是我想学习的技术
使用 HPE ProLiant DL360 Gen9服务器 的 私有云架构 运行X86虚拟机来构建OpenWrt,实现编译和安装运行
总之,虽然我花费了不少时间查询资料和想象硬件对比,但是我目前需要节约花费,用最小的成本来学习技术。