文件系统保护存储介质

文件系统保护存储介质

我正在开发一个将充当服务器的嵌入式系统,问题是它运行的环境非常恶劣,会遭遇突然的电源中断。因此,我计划使用 OverlayFS 将根文件系统挂载为假可写。这个想法来自 RaspberryPi,开发人员有一种机制来启用/禁用将 rootfs 挂载为 OverlayFS(如您所见,可以使用raspi-配置脚本)

我的问题是...这有助于保护物理设备免受损坏吗?或者甚至是文件系统本身?我的想法是延长物理设备的使用寿命,我认为我可以通过避免写入操作来做到这一点,但系统不能纯粹是只读的,因为有些程序需要将 FS 视为可写的,这就是我考虑使用 OverlayFS 的原因。

你怎么看?你对如何解决这个问题还有其他想法吗?谢谢大家。

PS:我必须使用的系统是Debian Buster。

答案1

写入仍然会发生,overlayfs 会将它们重定向到上层。而下层最终将需要更新。因此,仅仅拥有覆盖层并不能解决持久性问题。您应该考虑哪些数据需要持久,以及如何从故障中恢复。

写入期间断电可能会导致文件系统、块和存储介质的多个层中的某个位置的数据丢失。好的文件系统有元数据日志,因此它们可以保存下来,但可能会丢失数据。通过在使用时关闭设备来测试这一点,检查数据完整性是否得到维护。

raspi-config 似乎在 tmpfs 上有上限,因此可以避免存储介质磨损,但重启时写入会丢失!这在某些用例中可能是可以接受的,重启后它会返回到已知状态。

需要保存的数据可以发送到其他地方,例如,将系统日志转发到稳定电源上的中央日志服务器。或者将数据发布到某个远程 API。或者保存到与安装软件的卷不同的本地数据分区。

说到稳定电源,如果电力不稳定,不间断电源是一项很好的投资。如果断电,一块相对较小的电池就足以正常关机。

对于下层,升级软件是设备正常运行所必需的操作。考虑基于映像的更新,例如SWUpdate 嵌入式设备更新程序(或者Ubuntu 映像升级或者Fedora 物联网,有多种可供选择)。即使没有为该项目实施,带恢复功能的双重映像也值得研究。

相关内容