在 Linux 下使用 fstrim 延长 SSD 驱动器的寿命
创始人
2024-03-02 04:36:04
0

这个新的系统服务可以使你的生活更轻松。

在过去的十年中,固态驱动器(SSD)带来了一种管理存储的新方法。与上一代的转盘产品相比,SSD 具有无声、更冷却的操作和更快的接口规格等优点。当然,新技术带来了新的维护和管理方法。SSD 具有一种称为 TRIM 的功能。从本质上讲,这是一种用于回收设备上未使用的块的方法,该块可能先前已被写入,但不再包含有效数据,因此可以返回到通用存储池以供重用。Opensource.com 的 Don Watkins 首先在其 2017 年的文章《Linux 固态驱动器:为 SSD 启用 TRIM》中介绍过 TRIM 的内容。

如果你一直在 Linux 系统上使用此功能,则你可能熟悉下面描述的两种方法。

老的方式

丢弃选项

我最初使用 mount 命令的 discard 选项启用了此功能。每个文件系统的配置都放在 /etc/fstab 文件中。

# cat /etc/fstab
UUID=3453g54-6628-2346-8123435f  /home  xfs  defaults,discard   0 0

丢弃选项可启用自动的在线 TRIM。由于可能会对性能造成负面影响,最近关于这是否是最佳方法一直存在争议。使用此选项会在每次将新数据写入驱动器时启动 TRIM。这可能会引入其他磁盘活动,从而影响存储性能。

Cron 作业

我从 fstab 文件中删除了丢弃选项。然后,我创建了一个 cron 作业来按计划调用该命令。

# crontab -l
@midnight /usr/bin/trim

这是我最近在 Ubuntu Linux 系统上使用的方法,直到我了解到另一种方法。

一个新的 TRIM 服务

我最近发现有一个用于 TRIM 的 systemd 服务。Fedora 在版本 30 中将其引入,尽管默认情况下在版本 30 和 31 中未启用它,但计划在版本 32 中使用它。如果你使用的是 Fedora 工作站 31,并且你想要开始使用此功能,可以非常轻松地启用它。我还将在下面向你展示如何对其进行测试。该服务并非 Fedora 独有的服务。它是否存在及其地位将因发行版而异。

测试

我喜欢先进行测试,以更好地了解幕后情况。我通过打开终端并发出配置服务调用的命令来执行此操作。

/usr/sbin/fstrim --fstab --verbose --quiet

fstrim-help 参数将描述这些信息和其他参数。

$ sudo /usr/sbin/fstrim --help

Usage:
 fstrim [options] 

Discard unused blocks on a mounted filesystem.

Options:
 -a, --all           trim all supported mounted filesystems
 -A, --fstab         trim all supported mounted filesystems from /etc/fstab
 -o, --offset   the offset in bytes to start discarding from
 -l, --length   the number of bytes to discard
 -m, --minimum  the minimum extent length to discard
 -v, --verbose       print number of discarded bytes
     --quiet         suppress error messages
 -n, --dry-run       does everything, but trim

 -h, --help          display this help
 -V, --version       display version

因此,现在我可以看到这个 systemd 服务已配置为在我的 /etc/fstab 文件中的所有受支持的挂载文件系统上运行该修剪操作(-fstab),并打印出所丢弃的字节数(-verbose),但是抑制了任何可能会发生的错误消息(–quiet)。了解这些选项对测试很有帮助。例如,我可以从最安全的方法开始,即空运行。我还将去掉 -quiet 参数,以便确定驱动器设置是否发生任何错误。

$ sudo /usr/sbin/fstrim --fstab --verbose --dry-run

这就会显示 fstrim 命令根据在 /etc/fstab 文件中找到的文件系统要执行的操作。

$ sudo /usr/sbin/fstrim --fstab --verbose

现在,这会将 TRIM 操作发送到驱动器,并报告每个文件系统中丢弃的字节数。以下是我最近在新的 NVME SSD 上全新安装 Fedora 之后的示例。

/home: 291.5 GiB (313011310592 bytes) trimmed on /dev/mapper/wkst-home
/boot/efi: 579.2 MiB (607301632 bytes) trimmed on /dev/nvme0n1p1
/boot: 787.5 MiB (825778176 bytes) trimmed on /dev/nvme0n1p2
/: 60.7 GiB (65154805760 bytes) trimmed on /dev/mapper/wkst-root

启用

Fedora Linux 实现了一个计划每周运行它的 systemd 计时器服务。要检查其是否存在及当前状态,请运行 systemctl status

$ sudo systemctl status fstrim.timer

现在,启用该服务。

$ sudo systemctl enable fstrim.timer

验证

然后,你可以通过列出所有计时器来验证该计时器是否已启用。

$ sudo systemctl list-timers --all

会显示出下列行,表明 fstrim.timer 存在。注意,该计时器实际上激活了 fstrim.service 服务。这是实际调用 fstrim 的地方。与时间相关的字段显示为 n/a,因为该服务已启用且尚未运行。

NEXT   LEFT    LAST   PASSED   UNIT           ACTIVATES
n/a    n/a     n/a    n/a      fstrim.timer   fstrim.service

结论

该服务似乎是在驱动器上运行 TRIM 的最佳方法。这比必须创建自己的 crontab 条目来调用 fstrim 命令要简单得多。不必编辑 fstab 文件也更安全。观察固态存储技术的发展很有趣,并且我很高兴看到 Linux 似乎正在朝着标准且安全的方向实现它。

在本文中,学习了固态驱动器与传统硬盘驱动器有何不同以及它的含义…


via: https://opensource.com/article/20/2/trim-solid-state-storage-linux

作者:Alan Formy-Duval 选题:lujun9972 译者:wxy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

SSD

相关内容

广发证券:AI推理上下文存...
广发证券研报指出,超长上下文与多模态交互类应用显著推升KV Cac...
2026-01-20 07:48:22
AI驱动企业级SSD变革:...
作者:王聪彬 2025年第三季度,企业级SSD市场交出了一份亮眼的...
2025-12-29 17:48:28
闪迪推开源工具SPRand...
IT之家 12 月 22 日消息,Sandisk 闪迪近日推出了开...
2025-12-22 16:16:53
Apps 接入 GPT,A...
2025-10-07 22:43:50
ByteBuddy重新定位...
在ByteBuddy重新定位与子类和OSGi中的错误名称/NoCl...
2025-01-12 22:01:43
bytebuddy在处理嵌...
这个问题可能在使用Byte Buddy创建动态代理时出现。当代理实...
2025-01-12 21:30:55

热门资讯

“Linux 中国” 开源社区... 这是一个艰难的决定 —— 这不是调侃,而是当你真正做出改变了你十几年生活轨迹的决定时,你就会明白这个...
硬核观察 #1263 德国铁路... #1 德国铁路公司招聘 Windows for Workgroups 3.11 管理员该职位要求了解...
人工智能教程(七):Sciki... 在本系列的 上一篇文章 中,我们用 TensorFlow 构建了第一个神经网络,然后还通过 Kera...
关闭 WSL 中正在运行的 L... 以下是使用 WSL 关闭在 Windows 内运行的 Linux 系统的不同方法。你使用 WSL 在...
MX Linux 23.2 “... 最新的 MX Linux 23.2 小版本更新带来了基本的改进和新增功能。MX Linux 推出了 ...
硬核观察 #1262 网络上最... #1 网络上最古老的软件存档库之一即将关闭美国新墨西哥州立大学(NMSU)最近宣布,即将于 2024...
如何在 RHEL 上通过绑定配... 在 Linux 中,你可以根据自己的需要创建高级网络设置,如 网络绑定 Network Bondin...
Linux Matrix 消息... Matrix 用户可以升级 Fractal 6 了!Fractal 是目前 最好的 Matrix 客...
如何通过 VLC 使用字幕 使用 VLC 媒体播放器播放和管理字幕的新手指南。我是一个超级动漫迷,如果你想观看最新的剧集,那么你...
硬核观察 #1261 X 计划... #1 X 计划在奥斯汀建立内容审核总部据报道,该部门将招聘 100 名全职员工,将主要关注 CSE ...