固态硬盘吧 关注:907,044贴子:6,934,006

usb硬盘盒对trim的支持,trimcheck靠谱吗?

只看楼主收藏回复

主控是jms576,到底支不支持trim?网上有的说不支持,但是放上850evo测试trimcheck显示支持。
是不是支持uasp就可以支持trim?可我试过vl711-q4的硬盘盒放影驰黑将trimchwck显示不支持trim。


IP属地:上海来自Android客户端1楼2019-01-03 16:16回复
    定一下


    IP属地:上海来自Android客户端2楼2019-01-03 17:18
    回复
      该楼层疑似违规已被系统折叠 查看此楼


      IP属地:广东3楼2019-01-12 16:04
      回复
        trim包含非确定性trim(ocz arc100这款盘属于这种), 确定性trim(DRAT),确定性读零trim(RZAT,大部分固态都是这种),固态硬盘跟硬盘盒固件这些可能性加在一起导致trimcheck软件有时候也不一定能准确判断,另外我认为硬盘盒不支持trim也未必是坏事


        IP属地:河南4楼2019-01-12 16:37
        收起回复
          JMS576这个芯片好像不支持的。斐讯H1硬盘盒上就是这个芯片。淘宝上很多易驱和盒子是JMS578这个芯片,这个是支持的,不过买的早的话,固件不是最新的,可能不支持,我也是翻出老的盒子来刷,准备装SSD做WTG。
          希望对你有帮助。
          等我解决了验证方式,我再来跟帖。


          IP属地:江苏5楼2019-02-12 22:22
          回复
            据我一晚上的研究,和网友测试。JMS芯片中JMS578存疑(也可能实现原理不同)。但是ASM1153E是绝对可以的。稳妥点,选这个芯片吧。


            IP属地:江苏7楼2019-02-12 23:39
            收起回复
              佳翼的支持


              9楼2019-12-05 15:13
              收起回复
                一年半以后,终于搞清楚怎么判断硬盘盒支持trim了。
                win10的碎片整理和优化驱动器工具,如果盒子硬盘的驱动器(盘符E:)没有被识别为固态硬盘,那肯定不支持trim。我手头只有win10,win7/8不知道有没有这个功能。
                win10会定期对固态盘发起trim,用优化驱动器工具也可以手动发起trim。不能识别为固态盘,win10 就不可能发起trim,不管有什么复杂的trim逻辑。

                最近测试了几个盒子
                vl716是肯定不支持trim的,我试了jeyi的i8和orico的2.5“透明盒子,vl716的都不能识别为固态硬盘,尝试刷了几个固件也不能支持。
                jms 576/578 盒子同样不能被win识别为固态硬盘,虽然jms 578网上“公认”支持trim,并没有找到切实的证据,都是些trimchecker 测试结果,不靠谱。
                1153e支持trim,jeyi的msata支持trim,一个orico的msata type-c盒子不支持,刷固件后可识别为固态。
                jms 583 nvme支持trim
                rtl9210b nvme/sata双协议盒子支持trim.


                IP属地:上海10楼2020-06-21 02:08
                收起回复
                  顺便说一下,ORICO这个厂很有意思,产品质量一般(我说的是硬盘盒子)
                  老喜欢搞一些奇怪的创新,比如把不支持c口的主控方案弄成c口,
                  比如
                  ASM1153E的c口盒子,
                  JMS578的c口盒子
                  大概C口看上去高贵好卖,事实上JMS578、ASM1153e都是不支C口特性,
                  无论数据带宽和供电都只能以兼容usb3的方式运行的。


                  IP属地:上海12楼2020-06-21 11:35
                  收起回复
                    jiayi的vl716不是宣传支持trim?


                    13楼2020-06-21 12:38
                    收起回复
                      JMS580也不支持,至少佳翼的q5cw 2.5寸硬盘盒不行,网上也没有公开的固件。
                      至此jms576/jms578/jms580均不支持trim。
                      Jmicron目前只有nvme转usb的jms583是支持trim的。


                      IP属地:上海14楼2020-06-23 15:06
                      收起回复
                        最近又了解了一些linux下usb硬盘盒的信息,作了一些实践,认识有些突破。
                        总结我做过的一些测试
                        1)linux下对usb2sata/nvme芯片的trim支持
                        usb转sata/nvme的trim支持实际上依赖于UASP,usb硬盘盒世纪上被当作scsi设备对待,trim在scsi下就是unmap,因此usb转接芯片必须能够把操作系统发出的scsi unmap指令翻译成sata 的trim。linux下用下面命令查询usb芯片对unmap的支持
                        # sg_vpd -a /dev/sda
                        Logical block provisioning VPD page (SBC):
                        Unmap command supported (LBPU): 1
                        Write same (16) with unmap bit supported (LBPWS): 0
                        Write same (10) with unmap bit supported (LBPWS10):
                        LBPU这一项很多uasp主控都支持,ASM1153e/1351/2362、jms583/576/580、vl716/711-q4、rtl9210b,三星T5等,而linux上面三个选项有一个支持就可以trim,当然linux默认情况下还需要LBPME为1,否则需要手动设置udev规则指定使用unmap
                        然而LBPME项ASM1153e/1351/2362、jms583、 甚至三星T5都不支持,只有rtl9210b满足
                        sudo sg_readcap -l /dev/sdc
                        Read Capacity results:
                        Protection: prot_en=0, p_type=0, p_i_exponent=0
                        Logical block provisioning: lbpme=0, lbprz=0
                        Last LBA=488397167 (0x1d1c596f), Number of logical blocks=488397168
                        Logical block length=512 bytes
                        Logical blocks per physical block exponent=0
                        Lowest aligned LBA=0
                        这样运行fstrim或者blkdiscard都会报错
                        fstrim: /media/xxx/xxxxxxxxx: the discard operation is not supporte
                        blkdiscard: /dev/sdc: BLKDISCARD ioctl failed: Operation not supporte
                        需要添加这样的udev规则(idVendor:idProduct是USB设备号)
                        ACTION=="add|change", ATTRS{idVendor}=="174c", ATTRS{idProduct}=="0583", SUBSYSTEM=="scsi_disk", ATTR{provisioning_mode}="unmap
                        这样ASM1153e/1351/2362、jms583/576/580、vl716/711-q4在linux下都可以支持trim,可以运行blkdiscard/fstrim
                        PS:一个ASM1351盒子默认固件在windows下不能识别为SSD,linux下LBPU也是0,但是更新固件后win10识别为SSD,linux下LBPU也变成1了。
                        2)Trimcheck测试
                        Jms576/580 win10下trimcheck显示支持trim,但是win10不识别为SSD,上面说了linux下Jms576/580的LBPU为1支持trim. 两票对一票,我选trimcheck和linux获取到的LBPU靠谱
                        vl716/711-q4在为win10下用trimcheck显示不支持trim,但是把trimcheck第一次运行后拿到linux下面运行fstrim,然后再次在win上运行trimcheck显示trim成功。当然测试的用的文件系统是ntfs。这说明windows下vl716/711确实不支持trim而linux下确实支持。这也巩固了我对trimcheck和LBPU的信心。
                        win10 不能把jms576/580识别为SSD,这很可能是windows的问题。
                        3)win10 的碎片整理和优化驱动器工具
                        ASM 1153e/1531/2632、jms583、rtl9210b可以被识别为SSD.
                        vl716/711-q4、Jms576/578/580不能识别为固态
                        这个工具是用来手动在windows下发出retrim操作的。windows对trim操作的队列大小有一定限制,如果删除操作过多trim请求数量超过限制后windows就将这些trim请求丢弃,然后定期执行retrim以保证所有无效块都得到trim。
                        如果我们上面2)里面的结论正确,即jms576/580支持常规的trim,那么即使不运行retrim,问题也不是很大。但是jms576/580在win10下既然能够执行trim,却不能被一个trim相关的工具识别为固态这又有些奇怪了。然后l716/711-q4在linux下支持trim,为和windows不支持?
                        由于我对ssd/trim/usb/usap等缺乏理论知识,以上观点基本是靠实践摸索的,理解和表达上的错误在所难免。对于windows如何识别固态硬盘,linux为何LBPME为0不甚理解。希望这些信息对想了解这个问题的人有帮助.,希望有识之士指正和补充。
                        附上一些参考链接:
                        https://www.zhihu.com/question/305139112
                        https://www.glump.net/howto/desktop/enable-trim-on-an-external-ssd-on-linux
                        https://wiki.archlinux.org/index.php/Solid_state_drive#External_SSD_with_TRIM_support
                        https://spod.cx/blog/enabling_trim_support_via_VL817_usb_sata_adaptor.shtml
                        https://social.technet.microsoft.com/Forums/windowsserver/en-US/2cfc8c18-57ed-435d-a648-049cdda329bf/will-windows-do-unmap-on-usb-drives-in-any-case
                        http://salutepc.altervista.org/ssd-on-usb-3-0-3-1-with-trim-support-windows-linux.html
                        https://bbs.archlinux.org/viewtopic.php?id=236280
                        https://bbs.archlinux.org/viewtopic.php?id=244636


                        IP属地:上海18楼2020-06-28 04:58
                        收起回复
                          顶,绿联1153E路过,完美支持。


                          IP属地:河北19楼2020-06-28 16:20
                          回复
                            我上一个贴18楼说vl716/711-q4在为win10下用trimcheck测试显示不支持trim,这个结论有点武断。
                            1)我当时用了一个朗科的msata N5m120g + vl716/711 ,trimcheck不成功。等更长时间,安全删除在插上,重启win10等都不影响结果。
                            2)此时不删除timcheck的json文件到linux下运行fstrim,再返回win10运行trimcheck显示trim成功,这显然说明linux下fstrim发生了作用,至少fstrim这种现在linux默认的trim方式vl716/711是支持的。
                            3)换用西数蓝盘win10 trimcheck+vl716/711测试 trimcheck成功。
                            4)朗科N5m+jms576在win10下trimchek显示成功。!!!
                            1)现象说明的是朗科的msata N5m120g + vl716/711在win10 trim没有发生还是如4楼@yhhekeda所讲的非确定性trim,我很困惑。
                            2)可以让我们乐观一点,vl716/711硬件肯定支持trim的,至少linux下fstrim这种方式trim成功了。


                            IP属地:上海20楼2020-07-01 17:49
                            收起回复
                              jms576 到底能否支持trim在win10下面。ASM系列都没问题,可能JMS系列和V系列兼容性就是没那么好,三星的移动盘用ASM主控也不是没道理的。


                              IP属地:吉林21楼2020-08-05 11:38
                              回复