前言

声明

本文是个人对 HomeLab 即家庭私有实验室的学习探索,参杂着一些经验总结,记录下来,也希望可以让他人少走一些弯路。

HomeLab 是什么?

本质上是一个连接各种设备的复杂系统,你可以用任何树莓派/PC/服务器/路由器组成一个 HomeLab。

HomeLab 能做什么?

  1. 搭建属于私人的网盘,不必在各个设备上安装云盘 App 才能上传/下载文件
  2. 不受版权控制的家庭多媒体,集成影视订阅,实现观影追剧自由
  3. 集成 HomeBridge 以实现在 iOS/macOS 的 Home.app 中操作非 HomeKit 认证的设备
  4. BT 下载器,无需开启个人电脑,后台下载资源
  5. RSS 订阅器,抛弃无意义地刷手机,只获取自己想要的内容
  6. bilibili/京东每日任务,各种脚本反薅资本家的羊毛
  7. 最重要的是你可以搭建包括但不限于 K8S/ELK/MySQL/Redis/Prometheus 等各种服务,也可以在上面跑 CI/CD 自动化构建发布你的代码

阅读门槛

  1. 基本的网络知识,比如光猫和路由器的区别,交换机的作用是什么
  2. 基本的 Linux 操作,可以理解计算机不是一定要连接显示器才可以操作
  3. 遇到问题先使用英文进行 Google,内容过长可以开启页面翻译,请不要看 CSDN 的内容
  4. 不求甚解,当你发现你让它跑起来了的时候,会获得极大的心理满足感

设备

架构说明

主要分为服务器和网络设备。考虑到网络设备的稳定性及网络隔离对整套系统的重要程度,没有采用虚拟化 AIO(ALL IN ONE) 方案。

作为服务端开发者看来所谓的 AIO 毫无稳定性可言,ESXi 的 OpenWrt 虚拟机出了故障会影响其他业务虚拟机的运行,甚至连 iLO 后台都进不去,需要连接显示器手动配置 ESXi 进行修复,这种情况在异地操作 HomeLab 节点的时候是毁灭性的灾难。

当然这种方式的好处也有:网络上的 教程 较多,按视频操作一步步做几乎没有难点,小白也能轻松搭建。

缺点就是对整体的 HomeLab 环境一知半解甚至根本不懂,只会复制粘贴。当然你可以说“我只是想快速搭建一整套服务,不想了解细节”,这样的话本文可能不适合你。

服务器

首先是最重要的服务器部分,绝大多数设备购入时间为 2021年2-3月,价格相比当前可能有很大差距,费用清单如下:

设备价格(元)数量备注
HPE Gen10 Plus G5420/8GB40001淘宝/德国转运
iLO5 NIC Kit3991同上
Intel Xeon E-2146G14001淘宝/QS版
海力士 32GB DDR4 2666MHz ECC26002淘宝
希捷 Exos X18 16TB42002淘宝/国行
英睿达 MX500 SATA SSD 2TB24002京东自营
三星 PM991 256GB + 佳翼硬盘盒3001PM991闲鱼/硬盘盒京东
三星 850PRO SATA SSD 256G02家用闲置
Intel 傲腾 NVMe SSD 16GB02家用闲置
Intel 奔腾 G5420-4881闲鱼出了
HPE 原装海力士 8GB ECC-3001闲鱼出了
盈通 GTX1650 4GB DDR68511535购入/1450出了
佳翼 NVMe 4X4 阵列卡12001淘宝
总计15796

之前没怎么认真统计花费,看到总计后还是惊了一下,老实说这个价格可以上塔式服务器或者洋垃圾 DIY。选择 Gen10 Plus 的理由无外乎精致/美观/静音,毕竟这是一台可以放在卧室的服务器。

总的来说硬盘/存储占比重较大,当前情况下的配置不是最终配置,目的也仅仅是为了满足个人需求。

如果能把硬盘换成 SATA SSD 4TB * 4 会更好,当然 NVMe 阵列卡插满4条 m.2 也可,主做 NAS 服务器的话直接更换为 10G/25G/40G 网卡。配置是为了匹配实际用途,否则就是卑鄙的浪费。

主机

主机从下单到收货前前后后差不多一个月的时间。

开箱,高贵的日耳曼甜美空气扑面而来(doge)。

即使在公司加班也阻止不了我欣赏它的美。

拧开快拆螺丝,欣赏大厂的工整做工,简直是一件艺术品。

CPU

首先我们要知道 Gen10 Plus 的 DC 电源是 180W,在官方高配也就是 Intel E-2224/16GB/单SSD 的情况下整机功耗能达到 110W,最多只能留下 70W 的可用空间。考虑到电源转换效率以及需要留点余量(20W),这样我们可以操作的空间就只剩下 50W。

每一块希捷 Exos X18 16TB 的待机功耗大概是 5W,满载功耗是 10W,4块满载 40W,这么看来光是硬盘塞满的情况下电源就已经快撑不住了,更别提上个网卡或显卡了。

然而事实是我们不会让服务器始终跑在 100% 的负载下,也就是说功耗峰值不代表日常功耗。根据我目前的配置,待机功耗在 35W 左右,目前跑了 20+ 个服务的情况下也不过 50W,程序的 CPU 占用率也可以在 docker 命令中加以限制。

现在我们再来看 CPU 的选择:

HPE ProLiant MicroServer Gen10 Plus Ultimate Customization Guide

上图来自 servethehome.comHPE ProLiant MicroServer Gen10 Plus Ultimate Customization Guide 一文,是一篇非常好的 HPE Gen10 Plus 设备选择指导。

根据 servethehome.com 的测试结果,当使用 E-2288G/64GB/单SSD 在 Windows Server 2019 上跑 Prime95 时,功率计上的数值达到了 194.5W,所以 8核16线程 直接排除。

由于跑大量服务需要更多的核心/线程数,并且官方高配就是 4核4线程,所以我们筛选 6核12线程 的 CPU 如下:

型号核心/线程数频率TDP(W)
基准 E-22244C/4T3.4-4.6GHz71W
E-2276G6C/12T3.8-4.9GHz80W
E-2246G6C/12T3.6-4.8GHz80W
E-22366C/12T3.4-4.8GHz80W
E-2176G6C/12T3.7-4.7GHz80W
E-2146G6C/12T3.5-4.5GHz80W
E-21366C/12T3.3-4.5GHz80W

最好的选择当然是 E-2276G,但当时 E-22XX 系列太贵了,而且 Intel Xeon 8代与9代性能差距不大,所以范围缩小成了 E-2176G、E-2146G、E-2136 三款。

根据 CPU Benchmarks 的对比结果来看三款在跑分上基本上可以说是没什么差距,由于 E-2146G 相比 E-2136 多了核显,虽然 Gen10 Plus 主板屏蔽了核显,但以后可以等 E-2278G 价格亲民后进行置换,拆下来 E-2146G 可以给别的机器用,所以最终选择了 E-2146G。

淘宝 1400 拿下 E-2146G QS 正显,步进和正式版相同 e4,成色相当之好,插上点亮。

iLO 中处理器信息一切正常。

稍微测了下,睿频 4.5GHz,全核心满载 4.2GHz,此时 CPU 温度 85度 左右,插座显示 120W,对这个结果相当满意。

内存

HPE Gen10 Plus 官方产品页上写的最大支持内存是 32GB,实测支持 64GB,且不像 Gen8,Gen10 Plus 支持非 ECC 内存,给预算不充足的玩家留足了余地。

HPE 的原装内存是海力士的 8GB DDR4 ECC 2666MHz,在奔腾 G5420 下只能以 2400MHz 运行,不多说直接挂闲鱼。

32GB 纯 ECC 内存的选择有三星和海力士。三星由于贴牌寨条较多,正品库存少不好买,海力士也是 HPE 认证内存厂商,所以选择了后者。

iLO 内存信息,64GB DDR4 2666MHz ECC,双通道运行。

奇怪的是制造商一栏显示不适用,但其他信息完全正常,Reddit 上查到只有官方部件号的 16GB 单条才有制造商信息,无所谓了。

硬盘

HDD

HDD 选择了两块加拿大白嫖王多次认证的 希捷 Exos X18 16TB,没什么好说的。购入的时候单价 2100(2021.3),一个月后 Chia 大火价格翻了一倍,目前价格降到了 1800(2022.5) 左右,早知道当时应该出了。

出色的稳定性和相对较低的磁盘共振噪音让 Exos X18 依旧相较于 WD Ultrastar DC HC550 来说是更好的选择。

smartctl -a /dev/sda |grep Temperature_Celsius
Temperature_Celsius     33
smartctl -a /dev/sdb |grep Temperature_Celsius
Temperature_Celsius     34

日常待机温度也让人相当安心。

悲催的是其中一块在插到另一台机器上调试的时候,SATA 接口附近的塑料片被带掉了下来。联系了售后,要上海解封后才能换接口,先用一块三星 850 PRO 256G 做系统盘。

SSD

既然要跑服务,HDD 的读写速度当然是不够看的。Intel D3-S4610Intel D3-S4510 等企业级 SSD 除了贵没有任何缺点,但闲鱼上全是高强度锻炼清零盘,实在让人买不下手。

于是目光转向便宜大碗的京东自营 英睿达 MX500 2TB

刚好有活动单价 1199 拿下,5年质保。英睿达京东自营算是全球指定售后点,出了问题基本上直接换新。

PCIe

PCIe 插槽的选择是最让人纠结的地方,由于 Gen10 Plus 内部只有一个 PCIe 3.0 X16 单槽/半高插槽,能使用的配件主要有下面几个类型:

  1. 显卡
  2. 网卡
  3. SAS卡
  4. PCIe SSD/PCIe 转 NVMe 转接卡

显卡

选择显卡的理由显而易见:可以硬解 Jellyfin/Emby;可以跑 CUDA;可以虚拟化环境中直通到 Windows 打游戏。

功耗是不得不考虑的问题,PCIe X16 可提供功耗为 70W,高负载模式下对 Gen10 Plus 的供电来说是不小的挑战。

本人为了硬解视频先后尝试了 Radeon RX550/GeForce GTX 1650,总的来说 ESXi 环境中A卡的兼容性会好一些,但在特定的应用中转换效率较低;N卡(指1650这样的非专业卡)在 ESXi7.0 中的表现极差,费劲直通到 Windows 却做不到持久化,虚拟机重启就会失效,说到底还是 ESXi 对消费级显卡的不兼容,但在纯 docker 环境中N卡的视频解码表现远比A卡要强。

上图为盈通 GeForce GTX1650 4GB DDR6,目前 (2022.1) 不用外接电源单槽半高最强显卡,HTPC 最优选择,支持各种视频解码。145mm 全长/纯铜散热片,做工扎实,丽台同款价格 2699,除了 logo 其他完全一样。

网卡

由于 2.5G/5G 都可以通过 USB3.0 的方式转换,这里推荐 威联通(QNAP)5G转换器,在 Linux 下也有很好的兼容性。

10G(万兆) 分为 电口(RJ45) 和 光口(SFP+),Gen10 Plus 的 PCIe 区域是没有风道的,从功耗和散热来说,光口更值得推荐。如果有主做 NAS 需求的话,推荐 Intel X710-DA4,但记得同时购入光转电模块。

25G 及以上不在本文讨论范围内。

SAS卡

除非有非常强烈的硬 RAID 需求,否则不推荐 SAS卡占用唯一的 PCIe 插槽这样的宝贵资源。

PCIe SSD/PCIe 转 NVMe 转接卡

PCIe SSD 可以选择 Intel DC P3608Intel 傲腾 SSD 905P,但这类企业级 PCIe 太贵了,比较常用的做法是 PCIe 转 NVMe 转接卡类似 佳翼冷雨燕NVMe转接卡 这类经济实惠的方案。

需要注意的是,如果想要 PCIe 转接多条 m.2 NVMe 的话,需要购买自带主控芯片的拆分卡,我的选择是 佳翼 NVMe阵列卡 4x4 SSD PCIE转M.2转接卡

自带 ASM2824 主控支持拆分,不挑主板,带涡轮风扇。热量主要来自于 SSD 的芯片和主控,加上 PCIe 区域通风不佳,散热只能说马马虎虎,不是这张卡的问题。

smartctl -a /dev/nvme0n1 |grep Temperature
Temperature:    52 Celsius
smartctl -a /dev/nvme1n1 |grep Temperature
Temperature:    53 Celsius

风扇转速 14% 的情况下,最热的 07-BMC 其实是 iLO 芯片,下面的 10-PCI 1 Zone 在低负载下其实温度还行。

网络设备

OpenWrt

比较推荐 J4125 四口 2.5G 软路由,比如 康耐信J4125 I225-V 2.5G 这款,看评测比倍控的方案散热好一些,日后换 2.5G 口的 AP 也比较合适。

有树莓派的话也可以用树莓派,做个类似这样的方案:

树莓派4B + 5口千兆交换机 + USB千兆网卡,小巧又精致。

由于老家是老房子,装修的时候还是百兆网线,手头一个 斐讯N1 就够用了。

固件选择 kiddin9 或者 gd0772

Wi-Fi Mesh

目前是 红米AX6S + 小米AX1800 组 Mesh,对 Wi-Fi 速率需求没那么高,信号覆盖范围广就可以。

其他

UPS 不间断电源

UPS 选择的是 APC BK650M2-CH,390W 带 服务器 + 路由器 + 交换机足够用了。

# apt安装守护进程
sudo apt install -y apcupsd

# 修改配置文件后保存
sudo vim /etc/apcupsd/apcupsd.conf

UPSNAME APC-BK650M2 # 随意修改
UPSCABLE usb
UPSTYPE usb
DEVICE # 留空

# 重启服务
systemctl restart apcupsd.service

# 查看运行情况
apcaccess

APC      : 001,036,0873
DATE     : 2022-05-12 15:09:50 +0800
HOSTNAME : lvlv-Gen10Plus
VERSION  : 3.14.14 (31 May 2016) debian
UPSNAME  : APC-BK650M2
CABLE    : USB Cable
DRIVER   : USB UPS Driver
UPSMODE  : Stand Alone
STARTTIME: 2022-05-07 09:48:38 +0800
MODEL    : Back-UPS BK650M2-CH
STATUS   : ONLINE
LINEV    : 235.0 Volts
LOADPCT  : 13.0 Percent
BCHARGE  : 100.0 Percent
TIMELEFT : 29.9 Minutes
MBATTCHG : 5 Percent
MINTIMEL : 3 Minutes
MAXTIME  : 0 Seconds
SENSE    : Low
LOTRANS  : 160.0 Volts
HITRANS  : 278.0 Volts
ALARMDEL : 30 Seconds
BATTV    : 13.5 Volts
LASTXFER : No transfers since turnon
NUMXFERS : 0
TONBATT  : 0 Seconds
CUMONBATT: 0 Seconds
XOFFBATT : N/A
SELFTEST : NG
STATFLAG : 0x05000008
SERIALNO : 9B2131A03464
BATTDATE : 2001-01-01
NOMINV   : 220 Volts
NOMBATTV : 12.0 Volts
NOMPOWER : 390 Watts
FIRMWARE : 294803G -292804G
END APC  : 2022-05-12 15:10:03 +0800