Loading

Linux下有关外置SSD的TRIM支持

前言

电脑升级换下一块128GB的M.2接口SSD,使用SATA协议,计划使用外置硬盘盒子转为移动固态使用。
开始想当然格式化为exfat格式,方便Linux/MacOS/Windows传文件,使用一段时间后写入速度越来越慢。
上网一查,果然低端硬盘盒主控不支持TRIM没辙重买……这里提醒一下:
全网最便宜JMS580方案支持TRIM的盒子售价大约在49元,低于这个价格的JMS576不带TRIM注意甄别。

后续

更换硬盘盒,查看旋转flag成功变为0识别信息也由普通磁盘变为SSD图标。

$ lsblk -o NAME,ROTA /dev/sdb
NAME   ROTA
sdb       0
└─sdb1    0

再次检查磁盘是否支持垃圾回收:

$ lsblk --discard /dev/sdb
NAME   DISC-ALN DISC-GRAN DISC-MAX DISC-ZERO
sdb           0        4K       4G         0
└─sdb1        0        4K       4G         0

可以看到正常支持,但无法调用fstrim进行垃圾回收

$ sudo fstrim -v /Data 
fstrim: /Data: the discard operation is not supported

百思不得其解。

思考

对比了内置的固态硬盘,怀疑是exfat文件系统的问题。
开始求证,最终在ArchWiki找到了答案

for exFAT, fstrim is supported since kernel 5.13

相比更新5.13内核,还是把SSD格式化为ext4更快……
果然,使用ext4格式后,顺利TRIM速度也恢复正常。

参考

USB - SATA-USB Bridge Controller-Products-JMicron-Leading the storage revolution!
Enable Trim on an External SSD on Linux [Glump.net]
Solid state drive - ArchWiki
kernel/git/torvalds/linux.git - Linux kernel source tree

posted @ 2021-10-29 19:03  azureology  阅读(917)  评论(1编辑  收藏  举报