在使用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
最后重启解决。