赞
踩
ssd 不支持fstrim
在过去的十年中,固态驱动器(SSD)带来了一种管理存储的新方法。 与上一代的祖先产品相比,SSD具有无声,冷却操作和更快的接口规格等优点。 当然,新技术带来了新的维护和管理方法。 SSD具有称为TRIM的功能。 从本质上讲,这是一种用于回收设备上未使用的块的方法,该块可能先前已被写入,但不再包含有效数据,因此可以返回到通用存储池以供重用。 Opensource.com的Don Watkins在其2017年的文章“ Linux固态驱动器:为SSD启用TRIM”中首次写了有关TRIM的文章。
我最初使用mount命令的discard选项启用了此功能。 每个文件系统的配置都放置在/ etc / fstab文件中。
-
-
-
-
-
-
- # cat /etc/fstab
-
-
- UUID=3453g54-6628-2346-8123435f /home xfs defaults,discard 0 0
-
-
-
丢弃选项可启用自动在线TRIM。 由于可能会对性能造成负面影响,最近关于是否是最佳方法一直存在争议。 使用此选项会在每次将新数据写入驱动器时启动TRIM。 这可能会引入其他活动,从而影响存储性能。
我从fstab文件中删除了丢弃选项。 然后,我创建了一个cron作业来按计划调用该命令。
-
-
-
-
-
-
- # crontab -l
-
-
- @midnight /usr/bin/trim
-
-
-
这是我最近在Ubuntu Linux系统上使用的方法,直到我了解了另一种方法。
我最近发现存在用于TRIM的systemd服务。 Fedora在版本30中将其引入了发行版中,尽管默认情况下在版本30和31中未启用它,但计划在版本32中使用它。如果您正在使用Fedora Workstation 31,并且您想开始使用它功能,您可以非常轻松地启用它。 我还将在下面向您展示如何对其进行测试。 该服务并非Fedora独有。 存在和地位将取决于个人分配的基础。
我喜欢先进行测试,以更好地了解幕后情况。 我通过打开终端并发出配置服务调用的命令来执行此操作。
/usr/sbin/fstrim --fstab --verbose --quiet
fstrim的–help参数将描述这些参数和其他参数。
-
-
-
-
-
-
- $ sudo /usr/sbin/fstrim --help
-
-
-
-
-
- Usage:
-
-
- fstrim [options] <mount point>
-
-
-
-
-
- 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 <num> the offset in bytes to start discarding from
-
-
- -l, --length <num> the number of bytes to discard
-
-
- -m, --minimum <num> 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任何错误消息。 了解这些选项对测试很有帮助。 例如,我可以从最安全的方法开始,即空运行。 我还将保留安静参数,以便确定驱动器设置是否会发生任何错误。
$ 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的调用位置。 与时间相关的字段显示为“不适用”,因为该服务刚刚启用且尚未运行。
-
-
-
-
-
-
- NEXT LEFT LAST PASSED UNIT ACTIVATES
-
-
- n/a n/a n/a n/a fstrim.timer fstrim.service
-
-
-
该服务似乎是在驱动器上运行TRIM的最佳方法。 这比必须创建自己的crontab条目来调用fstrim命令要简单得多。 不必编辑fstab文件也更安全。 观察固态存储技术的发展非常有趣,并且很高兴知道Linux似乎正朝着实现其的标准且安全的方式发展。
翻译自: https://opensource.com/article/20/2/trim-solid-state-storage-linux
ssd 不支持fstrim
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。