存储策略创建指南
在当今的科技世界中,存储策略的制定对于设备的性能和稳定性至关重要。本文将深入探讨几种常见的闪存文件系统,包括JFFS2、YAFFS2、UBI和UBIFS,以及如何为托管闪存选择合适的文件系统,并介绍用于检测闪存参数的工具Flashbench。
JFFS2文件系统
JFFS2是一种日志结构的文件系统,在闪存存储中有着广泛的应用。它具有一些独特的特性和机制。
- 垃圾回收与损耗均衡 :垃圾回收器通过将有效数据从一个块循环到另一个块,提供了一种粗略的损耗均衡形式。只要块中包含不时变化的数据,每个块的擦除次数大致相同。有时会选择干净的块进行垃圾回收,以确保包含很少写入的静态数据的块也能实现损耗均衡。
- 写透缓存 :JFFS2文件系统具有写透缓存,这意味着写入操作会同步写入闪存内存,就像使用 -o sync
选项挂载一样。虽然提高了可靠性,但会增加写入数据的时间。对于小写入操作,当写入长度与节点头(40字节)的大小相当时,开销会变得很高,例如syslogd生成的日志文件就是一个典型的例子。
- 总结节点 :JFFS2的一个主要缺点是没有片上索引,因此在挂载时需要从头到尾读取日志来推断目录结构。扫描时间与分区大小成正比,通常每兆字节的挂载时间约为一秒,导致总挂载时间可能达到数十或数百秒。为了减少挂载时的扫描时间,在Linux 2.6.15中引入了总结节点选项。总结节点在开放擦除块关闭之前写入其末尾,包含了挂载时扫描所需的所有信息,从而减少了扫描期间需要处理的数据量。总结节点可以将挂载时间缩短2到5倍,但会占用约5%的存储