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

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服务

我最近发现存在用于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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值