关于长时间运行的 Raspberry Pi 的一些考虑
工程师和爱好者们交流了让 Raspberry Pi 稳定运行多年的经验,重点集中在 microSD 卡导致的存储故障及其规避方式。建议包括从 SSD 启动、使用只读或 overlay 文件系统、把日志放到 tmpfs、使用 UPS 和看门狗,以及更激进的方案,如网络启动、使用带 eMMC 的 Compute Module,或直接用 x86 迷你电脑或 ESP32 等微控制器取代 Pi。虽然许多人表示只要 SD 卡质量好、电源稳定,就能实现无故障运行,但也有人认为,一旦设备数量增多或工作负载以写入为主,就值得投入额外工程来提高可靠性。
存储与 SD 卡可靠性
- SD 卡问题主导了讨论。许多人报告称,多年来 SD 卡会损坏或失效;也有人说,好的卡片加上好的电源可以稳定运行十年。
- 提到的原因包括:不稳定的供电(廉价充电器、劣质连接器、瞬时掉电)、质量差的 SD 卡、较旧的系统默认设置(例如访问时间写入)、高写入负载(日志、数据库)。
- 缓解方法:使用高耐久或工业级 SD 卡、为更大的卡预留更多空间、避免 SDR104/高速模式(发热更少),或者通过 USB/PCIe 改用 SSD/NVMe。
- 几个人建议从 USB SSD 或 NVMe 启动;有人把 SSD 视为事实上“可消耗品”,但也指出它们在实际中很少失效。
- 还有人认为,带焊接 eMMC 的 Compute Module 可以避免接触问题,并且闪存规格更明确。
只读与低写入文件系统方案
- 常见策略:根分区只读并使用 overlayfs、将
/tmp以及通常还有/var放在 tmpfs、log2ram、远程日志,以及无盘/近似无盘模式(Alpine diskless、TinyCore、Buildroot、NetBSD embedded、gokrazy、自定义 overlay 方案)。 - 有些人更进一步,使用 A/B 系统分区和完整镜像更新,或者完全通过 NFS 启动而不使用本地存储。
- 也有人认为这些措施对家庭环境来说过于夸张,他们依靠备份和定期更换 SD 卡。
电源、网络与看门狗
- 稳定供电被反复强调:官方或品牌 5V 电源,避免不稳定的 USB 充电器,有时还会配 UPS 或电池包。
- micro-USB 和松动的连接器被视为可靠性风险;有些人会改装桶形电源接口。
- 对于长期运行的系统,优先使用以太网;WiFi 被认为不稳定,常见做法是使用“看门狗脚本”重置网卡或在连接中断时重启。
- 建议无人值守系统使用硬件看门狗(以及 systemd 看门狗集成)。
替代硬件
- 许多人建议使用 x86 迷你电脑/NUC、瘦客户端,或二手企业台式机/Chromebox,认为它们比现代 Pi 更划算:更多内存/CPU、SSD、广泛的 Linux 支持,而且通常空闲功耗也低。
- 另一些人强调 ARM/微控制器(ESP32、RP2040)更便宜、功耗更低,而且更适合简单或电池供电的任务,尽管开发门槛更高。
- 争论仍在继续:有人说 Pi “几乎从来不是”正确答案;也有人将 Pi 用于展示牌、家庭服务器、网关和大量 GPIO 项目,并报告了多年不间断运行。
运维实践
- 常见做法包括:禁用 swap、尽量减少日志、定期克隆 SD 卡、使用配置管理(Ansible)以便可重复地重建系统,以及在更新后重启,以尽早发现故障。