MMC内存芯片上使用的最佳Linux文件系统?


8

我有一个新的嵌入式Linux项目。硬件团队已为系统的非易失性存储器选择了MMC闪存芯片(部件号MTFC64GJVDN-4M)。数据表位于http://www.micron.com/parts/nand-flash/managed-nand/mtfc64gjvdn-4m-it

与该部分一起使用的最佳Linux文件系统是什么?我相信这是一个块类型的设备,因此JFFS2 MTD类型的文件系统不适合在原始闪存上运行。我首先要寻找可靠性,然后才是性能。

据我了解,这些MMC设备就像SD卡的“内脏”一样,即具有自己的板载控制器。以前,我对SD卡发生故障的经历非常糟糕,而由于硬件故障导致SD卡无法读取。那是使用ext3文件系统的,所以我正在研究看看这个新项目是否还有更好的选择。



1
很棒的链接-谢谢。有谁知道这些家伙用什么工具对他们的SD卡进行压力测试?
SeanLabs 2013年

为您的应用程序定义“最佳”。
Dave Tweed

Answers:


10

如果您的文件系统是只读的,请使用ext2。事实证明,这已经稳定了几十年,快速,高效,支持所有权,支持权限位,并且每个Linux盒子都支持它,因此拥有庞大的用户群。换句话说,它支持良好的Linux系统所需的一切。

如果不是只读选项,那么下一个最好的选择是ext3。除了ext2附带的所有属性之外,ext3还提供日记功能。这意味着磁盘上的每个更改仅在实际写入磁盘后才提交。非常稳定,可靠的技术。ext3的问题是损耗平衡。

Ext4在几种使用情况下都可以提高性能,但是会带来更多的CPU开销。今天,大多数发行版默认为ext4。显然,它减少了不必要的写入,这对SSD很有用。Ext4具有TRIM扩展名。

接下来是BTRFS。不要去那 尽管有几个发行版提供BTRFS或什至默认提供BTRFS,但上次我对其进行测试(H2 2012)时并不稳定。您不想使用尚未在压力下证明自己的文件系统。修复了太多错误。

Linux提供了很多文件系统,但是我上面提到的是最常见的文件系统。

当然有FAT32(vfat),请不要去那里。它太旧了,容易碎片化,并且不允许所有权和文件权限。

NTFS是封闭源代码,甚至不用考虑它。是的,它可以在Linux上运行,但是其实现完全基于逆向工程(因为Microsoft并未发布任何技术细节),并且Linux的实现并不可靠。

JFFS2需要在安装座上进行完全扫描,因此安装时间随设备尺寸线性增加。这是由于没有某种树形结构来存储文件而造成的。


4

这似乎是eMMC的一部分(请注意前面的小“ e”)。基本上,这意味着这是“可焊接的SD卡”。您可能想要将其与SD卡而不是与NAND闪存进行比较。此外,这意味着它具有额外的逻辑(例如损耗逻辑),并且还具有MMC接口而不是NAND-Flash接口。

由于该卡已经包含Wear-Logic,因此实际的文件系统并不重要。更多的问题是准备分区(例如,只读分区)。

如果您确实要评估文件系统,则应该可以执行以下操作(无特殊顺序):F2FS,BTRFS,EXT4。

还应了解,取决于您的控制器,引导加载程序或类似内容将放置在每个文件系统外部的非常特定的位置。


1
以前没有听说过F2FS,将对其进行检查。我之前曾在SD卡上测试过EXT4,看起来工作正常,但人们似乎担心该日志会产生大量额外的写入。我可能会发布另一个有关要使用的最佳分区布局的问题。
SeanLabs

1
关于日记:是的,但是由于控制器已经完成了损耗均衡,因此我认为这是一个非常小的问题。
Tom L.
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.