homelab ARM 服务器篇一:硬件选择与搭建
homelab ARM 服务器的硬件选择与搭建

需求起因

从十多年前开始,这些年里玩过不少 ARM 设备。比如早年玩过初代树莓派,德仪(TI)的 Beagle Board,以及国内朋友当时做的 Radxa 开发版。受限于当时的硬件水平,大多还在 Arm v7 的时代,设备计算能力普遍很弱,也不支持 64 位应用,这些设备最终的用途大多也就是当个小玩具,或者在特定的场合下跑些定时小脚本,来做一些家里自动化运维的功能。毕竟我本人并不从事硬件或者终端设备开发,也就没有更多的应用场景了。

不过时代在发展,去年入手了一个 KubeSail 基于树莓派 CM4 做出来的小盒子 PiBox,ARM 设备底层性能已经有了长足的发展,已经有了原生的 PCI-E 支持,能够支持 nvme 存储,Arm64 也已经变成了很平常的基础能力。

然后最近因为个人需求,需要开发编译或者测试一些服务端软件,评估它们在 arm64 环境下的兼容性与适配程度。其实在不添置硬件设备的情况下,如果考虑仅仅只是简单玩玩,现在也有两个替代方案。

  1. 可以用 QEMU 在 x86 环境上模拟 Arm 设备。但是这个方案,实测下来对于但凡稍微有点 CPU 需求的业务,就显著的慢,只适合特别简单的做些模拟验证。

  2. 可以使用云服务厂商提供的 ARM 云服务器。国内外的云计算大厂,近些年其实已经开始尝试提供基于 ARM 的计算服务了。尤其国内因为信创要求的大背景,上面不希望因为 x86 被掐脖子,厂商相对还是比较积极的,所以云环境能力也能用。

相对来说,云环境也是一个很好的选择,只不过对于我而言,还有个问题是,我还希望在自己 homelab 的 k8s 集群里能有一个异构节点,把一些负载放到 ARM 节点上。如果整个集群放在云平台上,每年的成本还是相对可观的。而且,作为一个资深的 homelab 玩家,怎么可以随随便便向云厂商屈服呢。如果有可行的方案,当然自己折腾下来会更有意思。

所以,最终还是决定,看看能不能自己在家里搞一台小型的 ARM 服务器出来。然后大致梳理了一下我自己的主要需求:

  • 性能足够,能够跑虚拟机

    • CPU 性能不能太弱,可以支持的内存容量足够大 (32GB 以上),能够运行多个虚拟机

    • CPU 大小核的构型,不利于虚拟机与应用层调度管理

    • 希望能直接接入家里 homelab 现成的 Proxmox VE + Ceph 集群,直接利用已有的集群存储

    • 能够运行 Debian / RHEL 系列 Linux 的原生 arm64 发行版

  • 功耗噪音低

    • 毕竟是在自己家里用,噪音问题当然要考虑

    • 功耗也不宜过大,不然散热也会成为新的问题

  • 资料开放,文档齐全

    • 不是封闭的定制化解决方案,有一个相对活跃的社区

平台选择

前期简单调查了一下,大概选择了几个觉得可以考虑的平台来对比参考下。

  • 技嘉 Ampere Altra

    • 芯片和阿里云 ARM 平台相同

    • 主要问题:商用服务器方案,功耗过高,价格不便宜

      Ampere Altra

  • 华为鲲鹏 920

    • 华为自己主推的方案,云上也在用,同时有工作站版本

    • 主要问题,价格过高,二手的都很贵,而且商用服务器的设计,功耗偏大

  • HoneyComb LX2

    • 以色列公司 SolidRun

    • NXP LX2160A 16核 2.0G 主频,功耗不高,散热压力不大

    • ITX 标准版,支持 ATX 电源,支持 64GB 内存,同时内存也支持 ECC

    • 带一个千兆口以及 4 个 SFP+ 端口

    • 主要问题:价格小贵,性价比不算高,国内没有找到代理商

      HoneyComb LX2

  • Orange Pi 5

    • 价格十分便宜

    • 官方表示会出 32G 内存的版本,只是暂时还没看到

    • 主要问题,大小核的设计,不利于虚拟化 & 应用层资源调度管理

    • 另外,非标的尺寸规格,缺少合适的机箱,只适合简单把玩

    Orange Pi

  • 树莓派4 系列

    • 价格相对不贵

    • 主要问题,性能太弱,尤其内存太小,没有扩展性

  • Mac mini M1/M2

    • 苹果夹带私货的 Arm 解决方案

    • 内存容量太小

    • 虽然目前已经看到社区有 Linux 方案的尝试,但是鉴于相对封闭的生态,就不想踩坑了

其中的前三个选择,都在设计的时候,有对服务器/工作站场景进行考虑。综合来看,大版普遍为了大规模商用场景考虑,功耗相对较大,相比之下还是 ITX 规格的 HoneyComb LX2 更加合适。而且 HoneyComb LX2 还有个优势是,由于其本身是模块化搭建的设计,SolidRun 基于其本身也做了相关的网络产品,所以直接板载了 4个 SFP+ 模块网口,而无需再考虑网络连接的问题。(虽然实际因为不是主流网卡方案,Linux 没有原生支持,不过驱动都有相对简单的方式解决)

对于 SolidRun 的这块板子,我也是很偶然的在 Reddit 上看到有帖子提到。然后调查了下,还真的有国外大佬选择在 homelab 场景下用这块平台,github 上也有见到 proxmox 下游项目的 issue 提到了这块板子,还是有一定社区活跃度的,只不过国内没看到对这块板有太多关注。

下单 & 开箱

最终确定选择 HoneyComb LX2 的方案以后,由于没有合适的国内代理商,所以直接在 SolidRun 官网下单。本体原价 800 刀,运费差不多 150 刀不到,还不包含税,还是有点小贵的。不过相比淘宝上有些代购报价 8~9k,自己买相对还是要划算些。

订单

我下单是时候已经是 12 月,已经进入了西方的圣诞节假期,虽然厂商本身在以色列,但是因为没有现货,中间因为各种物流原因,到了 2023 年的 1月12日,才算发货。从以色列海法出发,当天到特拉维夫,上飞机去德国莱比锡经传,兜兜转转三天到国内海关,提交清关材料以后,也就交了货值 10% 的关税,顺利在年前的最后一个工作日,收到了这块漂洋过海而来的板子。过年期间闲着无聊的时候,也算是又多了样可以折腾的东西。

物流

收到的包裹里面东西很简单,就只有一块带了散热器的 HoneyComb LX2 板子本体,厂家甚至没有提供一块机箱挡板😅。不过至少东西包装没问题,也能正常在预期的条件下点亮。

包裹

HoneyComb

篇幅有限,故事性的内容就先到这里,毕竟这次折腾的不是常规平台,下一篇将开启对于系统初始化安装与踩坑,加入 Proxmox VE 集群,网卡驱动问题解决相关的介绍。


最后修改于 2023-01-26