这些天我在研究嵌入式系统。它需要在没有适当关闭的情况下关闭。我们正在考虑像只读文件系统这样的Aufs。但问题是应用程序中存在一些可更新的数据,并且允许用户更改IP、日期时间等,因此,系统需要额外的R/W分区。
我有几个问题要澄清。
发布于 2016-08-27 03:17:29
从文件系统的角度来看,使用带有默认选项的ext3或ext4通常会为您提供足够的崩溃一致性。当然,您不会遭受文件系统丢失或任何文件在断电之前未被写入的损坏。
对于如何处理任何文件系统上的崩溃一致性,有许多考虑因素。如果您的应用程序只创建新文件,或者通过创建临时文件覆盖现有文件并使用重命名进行原子覆盖,那么默认的data=ordered模式ext4将很好。尽管在文件和目录条目上对fsync()的调用完成之前,或者OS刷新了它的缓存,但无法保证在停电后数据会出现在那里。这也假设您的存储设备遵守fsync()。
如果应用程序需要确保文件元数据和数据之间的一致性,而不关心性能,则可以使用data=journal,以便记录对文件和文件系统元数据的所有更改,而不仅仅是记录元数据。这将避免不完整的写入情况,比如文件大小越来越大,但是附加的数据会丢失并被空字符替换。
https://unix.stackexchange.com/questions/305860
复制相似问题