我的家庭实验室从一台旧笔记本开始,中间添过机架、交换机、一堆开发板,去年做了一次大减法。现在留下的东西只有五样,每一样都是被故障教育过的结果。
一台小型服务器
我用的是一台低功耗的小主机,八核、64G 内存、两个 NVMe。它跑虚拟化,上面有几个虚拟机:一个做网关,一个跑容器,一个做存储。功耗在三十瓦上下,放在书房角落听不见声音。
我没有上机架。机架好看,但噪音、功耗和布线成本都会翻倍,而我并不需要那种扩展性。选型时我只看三件事:内存上限、网卡数量、能不能在不拆机的情况下换硬盘。
UPS 与备份
UPS 是最容易被跳过的一样。我住的地方一年停两三次电,一次意外断电就可能让数据库文件损坏。一台小的在线式 UPS 能撑十几分钟,足够自动关机。
- 用 USB 或网络连到主机,跑 NUT 这类守护进程
- 设置低电量触发关机,不要等电池耗尽
- 每半年做一次放电测试,电池是会老化的
- 只接关键设备,打印机和显示器不用接
备份的关键不是工具,是恢复演练。我现在的策略是三份:本地快照、异地对象存储、离线冷备。快照每天一次,异地每周一次,冷备每月一次。
我给自己定了一条规矩:每季度从备份里完整恢复一次,恢复到独立环境,不覆盖生产。第一次做这件事的时候,我发现有个数据库的备份脚本一直在静默失败,因为密码过期了,日志里只有一行警告。
监控
监控的价值在于让你在用户之前发现问题。我用 Prometheus 加 Grafana,采集节点指标、容器状态、磁盘 SMART 和 UPS 状态。
- 磁盘温度和剩余寿命比容量更重要
- 证书到期时间要有告警,我吃过一次教训
- 备份任务的退出码要上报,不要只看有没有日志
- 告警收敛,只留能让人真正起床的那几条
网络隔离
还有一样是 VLAN。主网络、IoT 设备、实验环境分开,防火墙默认拒绝跨网段访问。这件事做起来麻烦,收益却很直接:一台被入侵的摄像头访问不到我的 NAS。
我没有搞复杂的零信任方案,家庭环境的威胁模型没那么高。够用的隔离加及时打补丁,比堆一堆看不懂的规则更实际。
删掉的东西里有机架服务器、独立防火墙盒子、一堆单板机。它们的共同问题是维护成本高于带来的能力。家庭实验室的意义是让我能放心地折腾,不是让我多一份运维工作。留下这几样之后,我花在维护上的时间从每周几个小时降到每月一两个小时,反而有精力做真正想做的实验。