在运行 Linux 的计算机中安装了我的第一块固态硬盘 (SSD) 后,我开始探索如何维护它们。固态硬盘与传统磁性硬盘的运行方式不同,并且需要来自软件方面的不同维护才能实现最佳功能。
在传统磁性硬盘上,删除的文件在删除时不会从磁盘上完全移除。这就是您可以恢复已删除文件的原因。本质上,文件系统只是引用磁盘上文件的位置,当文件被删除时,该引用被擦除,允许您在这些空白空间中写入新数据。 但是,对于 SSD, 新数据只能写入驱动器的全新或已擦除的单元格中。由于必须在写入之前清除空间, 如果在写入文件时没有足够的可用空间,则必须先将其擦除。这可能会对性能产生负面影响。
如果操作系统在写入新数据之前擦除未使用的空间,并且在设备未同时尝试写入时进行擦除,则可以提高文件保存性能。引入了 TRIM。TRIM 命令本质上允许您的操作系统告诉驱动器哪些数据区域不再使用,以便它可以擦除它们,从而加快驱动器未来写入的速度,并为 SSD 用户提供更优化的体验。
在 Linux 中,fstrim 提供了此功能,使驱动器准备好写入新数据,并从长远来看延长驱动器的寿命。由于在我使用过的 Linux 发行版中,TRIM SSD 不是自动的,因此必须对其进行计划,否则 SSD 的性能会随着时间的推移而降低。
为了在驱动器上运行 fstrim,驱动器本身以及位于其之上的文件系统都必须支持 TRIM。启用 TRIM 可以在文件系统挂载过程中完成。例如,为了在启用 TRIM 的情况下将设备 /dev/sda2 挂载到 /mnt,您需要运行
mount -t ext4 -o discard /dev/sda2 /mnt
一旦启用,TRIM 过程本身就相当简单。 您的 SSD 的 TRIM 也可以通过命令行手动完成或在 cron 作业中完成。作为超级用户(使用 su 或 sudo),运行 fstrim / -v 以完成手动 TRIM,或者设置一个 cron 作业,以便在您的计算机不使用时定期为您运行此命令。有关 fstrim 选项的完整列表,请参阅其 man page。
硬件支持因使用的驱动器接口类型而异,无论是 PCI、ATA、SCSI 还是 SD/MMC。还值得咨询您的 Linux 供应商,以了解更多关于您的特定发行版如何支持 TRIM 的信息。
例如,红帽提供了以下 SSD 磁盘指南。“随着已用块数接近磁盘容量,性能会下降。性能影响程度因供应商而异。但是,所有设备都会经历某种程度的性能下降。为了解决性能下降问题,主机系统(例如,Linux 内核)可以使用丢弃请求来通知存储,给定范围的块不再使用。”
Debian wiki 为 SSD 的使用提供了一些基本注意事项:使用 Linux kernel 3.2 或更新版本,使用 SSD 的最新固件,使用 EXT4 文件系统,以及“拥有足够的 DRAM,以便在正常工作负载下无需交换空间即可运行。”
19 条评论