搭建自己的 HomeLab(一):聊聊我的硬件清单
真正值得关注的不是少数派这一条动作本身,而是它可能把「硬件」的竞争焦点推向算力经济性与终端入口竞争。
原文链接:https://sspai.com/post/113880
Matrix 是少数派的写作社区,我们主张分享真实的产品体验,有实用价值的经验与思考。我们会不定期挑选 Matrix 最优质的文章,展示来自用户的最真实的体验和观点。
作为一个软件开发者,我一直想有一台自己的服务器,NAS 和软路由就是我通往这个梦想的起点。2019 年入手第一台 NAS(Network Attached Storage,网络附加存储),算是为我打开了一扇新世界的大门,折腾蓝光电影、备份家庭照片和视频、共享文件等,完全不需要依赖别人给的网盘和 OSS。
加上电信和联通的 2 个公网 IP,我开始痴迷于玩儿网络设备,后面几年陆陆续续添置软路由、小主机、服务器和交换机,慢慢就攒齐了现在这套东西。
关于 HomeLab 的文章已经很多了,我还是想把自己搭的过程、遇到的问题和解决方式记录下来。如果正好能帮到同样想开始折腾的人,那就更好了。
作为系列的第一篇,这里想把三件事讲清楚:什么是 HomeLab、我为什么愿意折腾它、以及这套东西需要哪些硬件、它们大概又要花多少钱。系列其他文章的目录放在文末。
HomeLab,顾名思义就是家庭实验室,可以理解成家庭版的云服务器,用来跑各种自建服务,比如个人网盘、影音服务、开发环境、智能家居、私有云等等。
门槛没有想象中那么高。一台成品 NAS,或者一台能装 Docker 的小主机,实在不行一台就笔记本就足够开始,不需要一上来就配齐四类。我现在的这套也不是一次买齐的,而是踩一步看一步折腾出来的,具体清单放在了后面的硬件章节。
对我来说,搭 HomeLab 是一种浪漫的「折腾」。理由有三个,按重要性排是:数据、隐私、以及折腾本身。
我对数据安全比较在意,所以重要的数据都存在自己的服务器上,而不是交给云存储。早些年用七牛云 OSS 存博客的配图,后来搞忘续费,全部图片直接访问不了了,连抢救的机会都不给,加上大批量的云存储服务商跑路,现在我对这类云存储服务商没有任何信任感。
家人的照片、儿子的成长记录这类东西,放在本地私有化存储我会更放心。这类数据不需要分享给任何人,也不需要经过任何第三方。
我本身喜欢尝试新技术,有一套自己的环境,就能快速验证一个新方案行不行,而不用等公司排期。这大概也是很多同行入坑 HomeLab 的真实动机。
首先是 KISS 原则:Keep It Simple, Stupid。
HomeLab 搭建是一件费时费力的事,为了避免占用大量个人时间,我尽量选简单易用的方案,避开复杂的配置和操作。本着够用的原则也不会上太复杂的软件架构。
对重要的数据,我会直接选择成品 NAS,避免数据丢失;其他没那么重要的服务,用 Docker 跑就行,管理灵活、成本也好控制。所以整套 HomeLab 是围绕 NAS 展开的,剩下那些不太重要的服务,直接去咸鱼捡垃圾。
对 HomeLab 来说,最大的投入是硬件成本和时间。为了压住时间成本,我直接用 Docker,不搭 K8S 这类比较折腾的东西:目前的服务数量和质量还不至于用上它(也许下次升级会考虑)。
因为大部分服务都跑在 Docker 里,是否支持虚拟化就成为了选设备时的一条硬指标。
稳定性 :优先选可靠性高的产品,避免频繁处理硬件故障,这既影响效率,也可能丢数据
稳定性是我最看重的一条,我不想频繁处理各种硬件故障,所以排除了把所有功能塞进一台机器的「全功能一体机」(All In One,也叫 All in Boom)。这类产品看着很吸引人,但往往牺牲了性能和升级空间。
我的做法是把服务拆到多台独立机器上。一台出问题不影响其他服务,可靠性和数据的连续性都更有保障。
当然,每个人玩儿 HomeLab 的思路不一样,硬件设备也不一样,适合自己当下的条件才最重要。不想折腾,买个成品服务器最省心;愿意折腾,去收二手硬件自己组装,性价比是真的高。
我的做法算是折中。数据这种最要紧的东西直接上成品 NAS,配上冗余和冷备。只要数据保住了,其他的随便折腾。
云服务器 :99 元一年,一口气买了 2 年,主要用来放博客和做异地组网的中转
也有买贵的时候。早年买的 Mac mini 2018 的内存条,第一条 32G 花了接近 3000,三个月后买第二条只要 1000 出头,只能用「早买早享受」安慰自己。另外,二手货最大的隐性成本是时间和运气:要花时间刷、要花时间验、偶尔也会买到不合用的东西。
这是书房的总耗电量,大约 80% 的设备在运行,这导致我经常做噩梦,梦到我媳妇儿每次交完电费都要去书房拔电源插头。
下面按用途分成八类:主机、NAS、硬路由、软路由、交换机、影音硬件、云服务器,以及一堆拿来做实验的开发板和外设。
设备 关键配置 数量 备注 MBP 16 寸/M1 Pro Max 64G/4T 1 主力机 Mac mini 2018 i7/64G 内存/1T/万兆电口 1 原来的主力机,现在沦为下载机与服务器 Mac mini 2023 M2/16G 内存/256G/万兆电口 1 缓存服务器,小模型的试验机 ThinkStation M920x Tiny i7/64G 内存/4.5T/双万兆光口 1 主要的服务器,大部分 Docker 和虚拟机的寄主机 台式组装机 双路 E5 2680V4/256G 内存/2T/万兆电口/2080Ti+P40 1 炼丹炉 因为工作的原因,从 2015 年买第一台 MBP 开始便一发不可收拾,陆陆续续把 Apple 全家桶买了回来:一是 macOS 非常适合开发,二是简约的系统和工业设计确实讨喜。
后来组建 HomeLab 又赶上 AI 这一波,我开始买 X86 硬件和显卡,并组装了第一台家用服务器。但它耗电量巨大,做不到 24 小时开机,于是又入手了联想的 M920X 准系统,一路升级到现在的配置,装的是 Ubuntu Server。
这是我的第二台 MBP。在 LLM 爆发的 AI 元年,很庆幸买了 64G 内存的版本,得益于 llama.cpp 这样的框架,即使在 CPU 上也能相对流畅地跑大模型。
Apple 从 Intel 换到 Apple Silicon,我最直观的感受是只有跑 LLM 时才会稍微感觉到温度,其他时候都冷手。目前 LLM 正处于百花齐放的阶段,从自然语言交互到图像和语音生成,再到多模态,各领域应用层出不穷。但对个人用户来说,部署 LLM 仍需要不小的硬件投入,尤其是在端侧,隐私和算力的问题都还没解决得很好。
如果哪天能在树莓派这样的开发板上顺畅跑起来,那才是每个人都能拥有私密又低成本的个人 LLM 的时候。
Mac mini 2018 是我第一台 Mac 主机。主要看重它能换内存,所以买了最小的 8G 版本,然后升级到 64G。
内部结构,看着赏心悦目 一条超贵的 32G 内存条 后来又入手了一台同型号的 Mac mini 2018 放在公司当开发主力机,还配了 Blackmagic eGPU,因为当时 Mac mini 2018 带两台 4K 显示器略微吃力,有了 eGPU 加持,IDEA 的流畅度提升明显。
Intel 芯片发热太严重了,我陆陆续续换过多个外置散热,最离谱的是还试过半导体散热方案,不开散热一会儿就烫手。Apple Silicon YYDS。
Mac mini M1 上市后我还在观望,看了大量测试视频之后,决定直接等 M2 版本,于是出掉了一台 Mac mini 2018,Blackmagic eGPU 卖给了朋友。剩下这台 Mac mini 2018 就留作 Apple Intel CPU 最后一代的见证——其实真正的原因是 M 系列上市后 Intel 版 Mac mini 降价太严重,犹豫之后干脆留下来当服务器用。
忽略杂乱的线,前面显示器一盖就什么都看不到了(更乱的线还在后面 😂) Mac mini M2 的配置是 16G 内存 + 256G SSD + 万兆电口,应该是最具性价比的 M 系列小主机。对开发者来说内存比闪存更重要,而且当时已经有更换闪存的成功案例,想着后期自己换一块大闪存会比官网便宜太多,就买了 256G 版本。
目前 Mac mini M2 主要当缓存服务器,并部署了服务于博客的大量服务,因为统一内存架构,还能跑一跑 GGUF 格式的小模型。256G 闪存不仅小还被阉割,现在都不敢装太多 APP,跑 LLM 时模型文件还得放到 NAS 上。
用久了之后,虚拟机的资源总是要重新调整,而像文件系统这类资源调整起来很麻烦
所以我现在就是 Ubuntu + Docker + KVM/QEMU:Docker 里跑着四十多个服务,共用文件系统和显卡;偶尔有跑其他内核系统的需求,就在 KVM/QEMU 里开个虚拟机。简单而不失优雅。
目前我只跑了 4 个虚拟机。WAF 作为防火墙是所有外网流量的第二层入口,负责代理局域网的其他服务,出问题可以快速熔断。但顶不住这小主机便宜好用,所以又买了 2 台,加上之前的一台和后面买的 NUC,组了一套 40G 高速内网玩儿了玩,主要用于 ceph 服务:
网卡:板载双千兆电口网卡 + PCIe 转万兆电口网卡 + PCIe 转 2.5G 电口网卡 + USB 蓝牙 & WiFi 模块。