V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
FS1P7dJz
V2EX  ›  问与答

U 盘静态下数据完整性

  •  1
     
  •   FS1P7dJz · 2021-06-23 17:14:18 +08:00 · 1793 次点击
    这是一个创建于 1009 天前的主题,其中的信息可能已经有所发展或是发生改变。

    之前发过一个帖子 /t/629156

    于是干脆手上几个空闲 U 盘均实际测试一下了 1-3 号 U 盘在 2020-06-20 写入,4-6 好 U 盘在 2020-06-22 写入,基本上可以认为都静态存放了 1 年,所有文件都是随机生成的一万个 32K 文件,U 盘格式化为 exFAT 格式 校验使用 flashsfv U 盘检测使用 ChipGenius_v4_19_0319


    U 盘状态

    • 1 号 U 盘:朗科 U195 32G USB 2.0 接口,从缝隙看是个黑色一体封装 U 盘,无法读取主控和闪存型号,这也是唯一一个长期通电使用的 U 盘. 实际上并未撑到 1 年时间,在 2021-01-27 即因正在使用的 key 文件出错(在此之前已经出现 key 文件数量减少的情况),只能重新写入,截至今日,原文件仅存 2391/10000,出错率 18/2391,如果把缺失文件算上,实际上的出错率应该高达 7627/10000

    • 2 号 U 盘:宜家沙发形状 U 盘,8G,USB 2.0 接口,主控 Alcor Micro,闪存 SanDisk SDTNPMAHEM-008G - 1CE/Single Channel [MLC-8K] 原本以为这个 U 盘成绩不会特别好,但是实际结果文件完整性 100% 但是,这个 U 盘还存有一份与 6 号 U 盘相同,但是在测试开始之前就已经损坏的文件,这份测试文件由于当时并未做详细记录,在今天出错率为 52/10000,但是由于这个测试文件与 6 号测试文件出错概率并不一样,因此可以断定,这份文件依然产生了损坏,修正后数据为 33/10000

    • 3 号 U 盘:金士顿 DTSE9 8G USB2.0 主控 Solid State Systems,闪存 Toshiba TC58TEG6TCKTA00 - 1CE/Single Channel [TLC-8K] 比较古老的一个金士顿低端 U 盘,金属外壳,对成绩不报太大期待,因为在之前的帖子里提到数据损失就是这个型号的 U 盘,不过之前是长期插电,这次是没有插电,实测完整性为 100%

    • 4 号 U 盘:东芝 MX 64G USB 3.0 接口,主控 SK6211BB/TC58NC6686G1F 闪存无法读取 东芝出的比较高端的一个 U 盘,写入速度可以达到 100MB/s,测试之前认为这个 U 盘应该毫无问题,实际结果也是如此,完整性 100%

    • 5 号 U 盘:夏科 32G USB2.0 接口,主控 FirstChip,闪存 Intel - 1CE/Single Channel [TLC] 薅羊毛 9.9U 盘,金属外壳,有天猫标志,TLC 颗粒基本不太有期待,不过实际结果居然是 100%

    • 6 号 U 盘:实际上 6 号并非是 U 盘,而是本机的 SSD.PM981,文件存放在桌面,电脑 7*24 开机,但是在测试期间并未去读取和覆盖过测试文件. 测试文件直接测试结果为 20/10000,但是在 2 号 U 盘中也说明了,这份测试文件本身就是有问题的,经过和 2 号文件交叉对比,修正后数据为 3/10000

    结论

    其实如果排除掉 2 号和 6 号的存疑,那么我们几乎可以得出,主控芯片明确,闪存芯片没有问题的 U 盘,可以稳定的保存数据至少 1 年而不损坏. 但是鉴于 10000 个文件,总大小也仅为 156M,即使是最小容量的 8G,也仅仅占了很小的一部分,所以似乎这个测试说服力也是不足够的,特别是 2 号 U 盘的状况,2 份测试文件,一份可以通过,一份确损坏了很多 6 号 U 盘也就是 SSD 的测试更是让人担心数据完整性

    20 条回复    2021-06-24 12:44:44 +08:00
    delectate
        1
    delectate  
       2021-06-23 18:20:00 +08:00
    很多情况下,并非文件没有丢失 or 损坏,只是你不知道。
    raid 很重要啊。

    tlc 的特性决定,越久没有上电,越容易出问题。slc 还好一点,但是几年不用也会丢数据。
    最后,感谢楼主秉承长期主义的测试。
    PhaSelEza
        2
    PhaSelEza  
       2021-06-23 19:25:09 +08:00
    exFAT 可能不太行。备份用的闪迪 CZ80,定期检查时,发现一个写入半年多的文件校验码错误。

    现在换了 ReFS,还没出过错,不知道能不能稳定些。
    v2tudnew
        3
    v2tudnew  
       2021-06-23 21:03:06 +08:00
    不只是 U 盘,HDD 也是如此,就前几个小时我就发现几个文件不见了,还有一个文件夹的权限全没了,不过数据倒是校验通过。
    mm163
        4
    mm163  
       2021-06-23 22:11:07 +08:00
    赞一下,很少看到这样的测试
    westoy
        5
    westoy  
       2021-06-23 22:14:58 +08:00
    我现在已经养成日常用 ddrescue 复制文件的习惯了......
    FS1P7dJz
        6
    FS1P7dJz  
    OP
       2021-06-23 22:42:17 +08:00
    @delectate 我目前的主要是用作解密 key 使用,无法在移动设备上实现 RAID

    @PhaSelEza 因为是听说 exFAT 对移动闪存设备有优化,所以选择,另外 NTFS 是日志型文件系统,长期通电使用怕在局部闪存区块反复写入产生问题,不过目前看来,一言难尽...
    ReFS 好像不能直接用在 U 盘上
    Osk
        7
    Osk  
       2021-06-23 22:44:53 +08:00
    这就是 BtrFS 和 ReFS 等带校验的文件系统的意义了. 不过有一些纠结的地方:

    没有镜像 /奇偶校验, 文件坏了就完了. 最过分的是 ReFS, 之前不是有 v2 帖子说 VHDX 被直接删掉(忘了是不是完整性流检测到错误导致的). 其实很多时候一些文件坏个一部分还能用啊...


    NTFS 不支持完整性流是真的遗憾.
    Osk
        8
    Osk  
       2021-06-23 22:49:20 +08:00
    另外, 垃圾的闪存简直是在垃圾堆中捞数据, 之前我对一个垃圾的 SSD 开卡, 结果 ECC bits 如果设置过低, 将导致坏块过多无法开卡, 不知道是不是我理解有误:

    开卡检测时, 若单元中错误的位数没有大于设置的 ECC bits, 则认为单元是好的. 我一开始使用 1 bits, 完全开不动...
    甚至 SLC 模拟区都一堆坏块, 模拟 SLC 都这样, 真的是稀烂了.

    简直就是靠 ECC 算法在捞数据.
    SuperMild
        9
    SuperMild  
       2021-06-23 22:50:05 +08:00
    几年前听说了文件会静默损坏,从那时开始我就一直在想该如何长期保存文件,想过 raid 也想过云端对象储存(注意低价格的网盘也不防静默损坏),最终的解决方案是自己做了一个本地备份工具 https://github.com/ahui2016/localtags
    FS1P7dJz
        10
    FS1P7dJz  
    OP
       2021-06-23 23:00:02 +08:00
    @Osk 现在的闪存真的完全靠 ECC 捞数据..真正的 RAW 就是一片混沌之海...


    @SuperMild ZFS 可以实现数据巡检,不过 ZFS 需要 ECC 内存支持,实现成本很高,技术门槛也高,扩容也不变...总之数据一旦到了 TB 级别乃至 PB 级别,如果保证数据一个比特都不错的完整性就很头疼
    Kagari
        11
    Kagari  
       2021-06-23 23:17:59 +08:00
    可以用 urwtest 填满再测一年
    备份后还要校验太麻烦了,普通的云备份校验更加麻烦
    lloovve
        12
    lloovve  
       2021-06-23 23:24:24 +08:00 via iPhone
    千年光盘
    neteroster
        13
    neteroster  
       2021-06-23 23:50:27 +08:00 via Android
    @FS1P7dJz

    ZFS 并不是一定要 ECC 内存吧。虽然 ECC 内存确实有额外好处,但是在没有的情况下也能巡检查错,若有冗余则可以恢复。按我的理解,zfs 的巡检并不主要依赖 ECC 内存。

    我以前有个移动硬盘,放了一段时间拿出来之后 zfs scrub 就报告了一些文件的错误(电脑没有 ECC 内存)。
    SuperMild
        14
    SuperMild  
       2021-06-24 00:13:24 +08:00
    @FS1P7dJz 我的方案是个笨办法,记录每个文件的 hash,然后定期检查。另外每个文件至少备份到另一个硬盘中,一旦发现文件损坏(只要不是两个硬盘同时损坏),就可以恢复。
    wttx
        15
    wttx  
       2021-06-24 08:38:03 +08:00 via Android
    要不看看我设计的盘?纯 u 盘主控基本都没有均衡磨损,ecc 也就那样,再加上 tlc 的漏电情况,丢数据很正常,😂
    hahiru
        16
    hahiru  
       2021-06-24 09:28:47 +08:00
    要不要再测试一下强磁环境下对数据保存的影响?🧐
    CatCode
        17
    CatCode  
       2021-06-24 11:12:44 +08:00
    @Osk ReFS 不支持 U 盘确实蛋疼了些。BtrFS 对于 Win 用户还是无福消受。
    FS1P7dJz
        18
    FS1P7dJz  
    OP
       2021-06-24 11:25:26 +08:00
    @wttx 我其实对性能和容量没有要求,甚至 512M 都够,只要存储稳定...不过你的 U 盘确实是很高兴能和小体积的代表了
    FS1P7dJz
        19
    FS1P7dJz  
    OP
       2021-06-24 11:31:57 +08:00
    @hahiru 缺少强磁环境啊...另外三星 TF 卡表明可以抗 15000 高斯磁场,是一般核磁共振的磁场强度
    而且...众所周知...其实 TF 卡本身并没有什么特殊的抗磁设计,只能说闪存本身就可以抗磁,所以应该可以认为常见的磁场环境对闪存应该没有影响
    celeron533
        20
    celeron533  
       2021-06-24 12:44:44 +08:00
    另外注意温度。温度越高,数据都是概率越大。如果你把颗粒放在汽车里,阳光暴晒,出问题的时间间隔会更短
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1544 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 17:04 · PVG 01:04 · LAX 10:04 · JFK 13:04
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.