闪存存储策略与文件系统全解析
1. 闪存转换层(FTL)部署方式
闪存转换层(FTL)有以下几种部署方式:
- 文件系统中 :如JFFS2、YAFFS2和UBIFS。
- 块设备驱动中 :UBIFS依赖的UBI驱动实现了部分闪存转换层功能。
- 设备控制器中 :如托管闪存设备。
当闪存转换层位于文件系统或块驱动中时,代码是内核的一部分,属于开源代码,我们可以查看其工作原理,并期待其不断改进。而如果FTL在托管闪存设备内,它是不可见的,我们无法验证其是否按预期工作。此外,将FTL置于磁盘控制器会使其错过文件系统层的信息,不过可以通过在文件系统和设备间添加传递信息的命令来解决该问题。
2. NOR和NAND闪存文件系统
要使用原始闪存芯片进行大容量存储,需使用能理解底层技术特性的文件系统,主要有以下三种:
| 文件系统 | 适用范围 | 特点 |
| ---- | ---- | ---- |
| JFFS2(日志闪存文件系统2) | NOR和NAND内存 | 最早的Linux闪存文件系统,至今仍在使用,但挂载速度慢。 |
| YAFFS2(另一种闪存文件系统2) | 专门用于NAND闪存内存 | 与JFFS2类似,被Google选为Android设备首选原始闪存文件系统。 |
| UBIFS(无序块映像文件系统) | NOR和NAND内存 | 与UBI块驱动配合创建可靠的闪存文件系统,性能通常优于JFFS2和YAFFS2,是新设计的首选方案。 |
这