Linux USB-SSD固态硬盘开启Trim

By | 2020 年 6 月 11 日

在使用Proxmox的时候,想吧SATA控制器直通给虚拟机(受制于PCIE槽不足、机箱空间不足、散热、功耗、成本等原因)。就把系统盘做到USB3.0的SSD上。在网上找了很多资料,基本上都是英文的,配置好后还是记录一下:
1.使用ASM1153E芯片的ngff转usb转接卡
2.在linux系统看看硬盘是不是已经支持trim:

root@pve:~#lsblk --discard /dev/sda
NAME   DISC-ALN DISC-GRAN DISC-MAX DISC-ZERO
sda           0        0B       0B         0
└─sda1        0        0B       0B         0

看到上面DISC-MAX都是0B就是还没开trim
3.使用lsusb命令找到对应的Vendor ID 和 Product ID,我这个转接卡是174C:55AA
4.针对这个设备配置trim规则,映射trim操作为unmap

#编辑规则文件
root@pve:~#nano /etc/udev/rules.d/50-usb-ssd-trim.rules
#输入下面内容并保存
ACTION=="add|change", ATTRS{idVendor}=="174C", ATTRS{idProduct}=="55AA", SUBSYSTEM=="scsi_disk", ATTR{provisioning_mode}="unmap"

5.重启后再查看硬盘是不是已经支持trim:

root@pve:~#lsblk --discard /dev/sda
NAME   DISC-ALN DISC-GRAN DISC-MAX DISC-ZERO
sda           0        4K      32G         0
└─sda1        0        4K      32G         0

6.看到上面的DISC-MAX显示xxG代表已经支持trim了,如果还是不支持联系转接卡卖家更新固件.测试确定ASM1153E芯片是支持的,但是要更新固件.
7.确定转接卡和lsblk查看trim开启正常后,就可以使用fstrim来做trim啦

fstrim /挂载目录

8.如果fstrim提示设备不支持的话,要确定分区的格式,要是ext4、xfs等支持trim的格式才行.
9.lvm开启trim

#修改lvm.conf
root@pve:~#nano /etc/lvm/lvm.conf
#找到issue_discards并改为1
issue_discards 1

最后重启解决。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注