当前位置:   article > 正文

ssd 不支持fstrim_使用fstrim延长SSD驱动器的寿命

ssd的fstrim

ssd 不支持fstrim

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

旧的方式

丢弃

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

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

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

克龙

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

  1. # crontab -l
  2. @midnight /usr/bin/trim

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

新的TRIM服务

我最近发现存在用于TRIM的systemd服务。 Fedora在版本30中将其引入了发行版中,尽管默认情况下在版本30和31中未启用它,但计划在版本32中使用它。如果您正在使用Fedora Workstation 31,并且您想开始使用它功能,您可以非常轻松地启用它。 我还将在下面向您展示如何对其进行测试。 该服务并非Fedora独有。 存在和地位将取决于个人分配的基础。

测试

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

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

fstrim–help参数将描述这些参数和其他参数。

  1. $ sudo /usr/sbin/fstrim --help
  2. Usage:
  3.  fstrim [options] <mount point>
  4. Discard unused blocks on a mounted filesystem.
  5. Options:
  6.  -a, --all           trim all supported mounted filesystems
  7.  -A, --fstab         trim all supported mounted filesystems from /etc/fstab
  8.  -o, --offset <num>  the offset in bytes to start discarding from
  9.  -l, --length <num>  the number of bytes to discard
  10.  -m, --minimum <num> the minimum extent length to discard
  11.  -v, --verbose       print number of discarded bytes
  12.      --quiet         suppress error messages
  13.  -n, --dry-run       does everything, but trim
  14.  -h, --help          display this help
  15.  -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之后的示例。

  1. /home: 291.5 GiB (313011310592 bytes) trimmed on /dev/mapper/wkst-home
  2. /boot/efi: 579.2 MiB (607301632 bytes) trimmed on /dev/nvme0n1p1
  3. /boot: 787.5 MiB (825778176 bytes) trimmed on /dev/nvme0n1p2
  4. /: 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的调用位置。 与时间相关的字段显示为“不适用”,因为该服务刚刚启用且尚未运行。

  1. NEXT   LEFT    LAST   PASSED   UNIT           ACTIVATES
  2. 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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/217437?site
推荐阅读
相关标签
  

闽ICP备14008679号