SSD Trim 是 Linux
SSD Trim on Linux
我听到了很多关于 SSD Trim 的不同意见,通常了解它是如何处理的并不是很重要,因为你知道它是如何处理的,除非我使用的系统大部分安装步骤都是手动的,比如拱 Linux.
Arch Linux 文档确实解释了几种配置 SSD 的方法 Trimming、continuous、periodic...等等,但它没有说明内核是否正在做 trim默认在支持的文件系统上运行,无需任何额外的配置步骤。
我可以安全地跳过在文档中找到的连续或定期 trim 的手动配置吗?我如何监控这些操作?在不使用文档中解释的任何方法的情况下,使用内核 5+ 和 ext4 作为 fs 进行全新安装是否安全?
(https://wiki.archlinux.org/index.php/Solid_state_drive)?
从长远来看,我是否应该担心,因为当 Arch Linux 默默地假装健康这么久时,我从未 trim 装过 SSD 磁盘?
-- @user1686 在 https://superuser.com/questions/1546128/ssd-trim-on-archlinux/1546136#1546136 上亲切地回答了这个答案--
内核只在两种情况下发出丢弃操作:
定期:当 fstrim 工具要求时。
连续:只要文件被删除,如果文件系统是使用丢弃选项安装的。默认情况下禁用此选项。
第二个选项通常被避免,因为它是同步的——大多数文件系统每次都等待丢弃完成,这使得同步写入磁盘相当慢,因为丢弃并不是一个快速的操作。 (异步丢弃仅出现在 XFS 中,最近才出现在 Btrfs 中。)我还认为不必要的频繁丢弃操作对 SSD 的使用寿命也没有多大帮助。
(更重要的是,您可以在您的链接文章中看到一条通知,一些较旧的基于 SATA 的 SSD 不支持“排队”TRIM,这意味着所有操作 - 甚至读取 - 都必须等待直到 TRIM 请求完成它的工作。)
出于这个原因,大多数系统改为选择第一个选项并每周左右安排一次 fstrim -Av。这通常是使用“fstrim.timer”systemd 单元完成的。 fstrim 服务将在每次调用时写入系统日志:
$ journalctl -u fstrim
Feb 07 19:18:23 fstrim[401]: /: 484.5 GiB (520173604864 bytes) trimmed on /dev/sdb3
如果您选择完全不使用 TRIM,您的 SSD 将不会起火(即使它是三星制造的);一旦它认为 100% 的磁盘正在使用中,它在接受写入时只会变得稍微慢一些。
(也就是说,新的 SSD 似乎有足够的备用 space 可以继续正常工作,即使 TRIM 从未使用过,但我还没有做过或寻求任何关于这如何影响的研究他们的表现,这只是我的一般猜测。)
请注意,如果您使用的是 LVM 或 cryptsetup,则所有此类层都需要配置为通过丢弃操作传递到较低层。默认情况下,cryptsetup 忽略丢弃操作,因为它优先考虑隐私而不是性能 – TRIM 本质上揭示了哪些磁盘区域正在使用,哪些是空闲的。
我听到了很多关于 SSD Trim 的不同意见,通常了解它是如何处理的并不是很重要,因为你知道它是如何处理的,除非我使用的系统大部分安装步骤都是手动的,比如拱 Linux.
Arch Linux 文档确实解释了几种配置 SSD 的方法 Trimming、continuous、periodic...等等,但它没有说明内核是否正在做 trim默认在支持的文件系统上运行,无需任何额外的配置步骤。
我可以安全地跳过在文档中找到的连续或定期 trim 的手动配置吗?我如何监控这些操作?在不使用文档中解释的任何方法的情况下,使用内核 5+ 和 ext4 作为 fs 进行全新安装是否安全?
(https://wiki.archlinux.org/index.php/Solid_state_drive)?
从长远来看,我是否应该担心,因为当 Arch Linux 默默地假装健康这么久时,我从未 trim 装过 SSD 磁盘?
-- @user1686 在 https://superuser.com/questions/1546128/ssd-trim-on-archlinux/1546136#1546136 上亲切地回答了这个答案--
内核只在两种情况下发出丢弃操作:
定期:当 fstrim 工具要求时。
连续:只要文件被删除,如果文件系统是使用丢弃选项安装的。默认情况下禁用此选项。
第二个选项通常被避免,因为它是同步的——大多数文件系统每次都等待丢弃完成,这使得同步写入磁盘相当慢,因为丢弃并不是一个快速的操作。 (异步丢弃仅出现在 XFS 中,最近才出现在 Btrfs 中。)我还认为不必要的频繁丢弃操作对 SSD 的使用寿命也没有多大帮助。
(更重要的是,您可以在您的链接文章中看到一条通知,一些较旧的基于 SATA 的 SSD 不支持“排队”TRIM,这意味着所有操作 - 甚至读取 - 都必须等待直到 TRIM 请求完成它的工作。)
出于这个原因,大多数系统改为选择第一个选项并每周左右安排一次 fstrim -Av。这通常是使用“fstrim.timer”systemd 单元完成的。 fstrim 服务将在每次调用时写入系统日志:
$ journalctl -u fstrim
Feb 07 19:18:23 fstrim[401]: /: 484.5 GiB (520173604864 bytes) trimmed on /dev/sdb3
如果您选择完全不使用 TRIM,您的 SSD 将不会起火(即使它是三星制造的);一旦它认为 100% 的磁盘正在使用中,它在接受写入时只会变得稍微慢一些。
(也就是说,新的 SSD 似乎有足够的备用 space 可以继续正常工作,即使 TRIM 从未使用过,但我还没有做过或寻求任何关于这如何影响的研究他们的表现,这只是我的一般猜测。)
请注意,如果您使用的是 LVM 或 cryptsetup,则所有此类层都需要配置为通过丢弃操作传递到较低层。默认情况下,cryptsetup 忽略丢弃操作,因为它优先考虑隐私而不是性能 – TRIM 本质上揭示了哪些磁盘区域正在使用,哪些是空闲的。