我一直认为传统的文件系统是为非 ssd 驱动器设计和优化的,例如,数据本地性很重要,而碎片是有问题的。
今天是否有推荐用于 SSD 驱动器的文件系统?我最好只使用 ext4 吗?
Tok*_*Tok 13
如果 SSD 是您唯一的磁盘平台,无论设备数量如何,那么您都会遇到难题;如何在保持可靠性和性能的同时最大限度地减少写入。
更具体地说,ext4 和 3、NILFS 和几乎所有其他现代文件系统都将维护日志。通常这是可取的,但是,在处理 SSD 设备时,它会增加对设备执行的写入操作,从而缩短其使用寿命。一种选择是选择传统的 IDE、SATA 或其他设备,文件系统可以将其日志写入其中。通过这种方式,人们可以在不牺牲 SSD 设备的使用寿命的情况下保持日志的好处。在 ext4 的情况下,这可以通过以下方式完成:mke2fs -O journal_dev /dev/external_device然后附加到特定的文件系统:mkfs.ext4 -J journal=/dev/external_device。更多信息可以在手册页中找到。
处理 SSD 设备时要记住的文件系统的附加功能是时间。随着时间的推移,在文件系统上设置 atime 可以显着增加对给定设备的写入次数。更改此行为的选项包括“relatime”和“noatime”。
由于我们似乎专注于 ext4,因此文件系统的内核文档(包括其可用选项)可在此处参考。
需要考虑的其他一些选项:noload,正如 vorbote 建议的那样,以及errors=remount-ro;
自从提出这个问题并发布答案以来,已经过去了几年。是时候发布有关此主题的一些最新信息了。如果有什么过时的,请发表评论。
由于这个问题专门针对“今天是否有推荐用于 SSD 驱动器的文件系统?” 我将专注于回答该问题并发布指向其他相关信息的链接。
目前(截至 2014 年 12 月 20 日)Arch Linux wiki上的固态硬盘文章推荐以下文件系统:
Btrfs是在 GPL 下发布的用于 Linux的写时复制文件系统。它的开发始于 2007 年的 Oracle。自 Linux 2.6.29(2009 年 3 月)以来,它已包含在主线中。目前磁盘格式是稳定的,预计不会改变。
ext4(第四扩展文件系统)是Linux的日志文件系统,最初是作为 ext3 的一系列向后兼容扩展,后来发展为 ext3 的继承者。ext4 的官方开发计划于2006 年 6 月由 Theodore Ts'o发布为Proposal and plan for ext2/3 未来开发工作。它自 Linux 2.6.19(2006 年 11 月)起包含在主线中,并自 Linux 2.6 起标记为稳定.28(2008 年 12 月)。
XFS是 Silicon Graphics 于 1993 年创建的 64 位日志文件系统,自 5.3 (1994) 以来默认在 IRIX 中,2001 年移植到 Linux。目前一些 Linux 发行版使用它作为默认文件系统。XFS对 SSD 具有 TRIM 支持。
JFS是 IBM 创建的 64 位日志文件系统。IBM 于 1990 年在 AIX 3.1 中引入了 JFS。1999 年它作为开源发布并开始移植到 Linux。用于 Linux 的 JFS 的第一个稳定版本于 2001 年 6 月发布。它包含在 2.4.18pre9-ac4 的 Alan Cox 树和 2.5.6 (2002) 的主线中。2012 年,JFS 中添加了 TRIM 支持。