对于使用 NAND 的存储设备是否需要定期搬运冷数据? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
wr410
V2EX    硬件

对于使用 NAND 的存储设备是否需要定期搬运冷数据?

  •  
  •   wr410 5 天前 1007 次点击

    两个冷知识

    1. RAM 需要定时刷新才能保存数据
    2. NAND 存储的数据会随时间而流逝

    遇到的现象

    我有一个树莓派,使用 TF 卡作为存储,根分区在启动加载时设置为只读模式。理论上来说,根分区是不会发生数据变更的。而事实上,当使用一段时间(可能是半年或一年)后,就会出现 IO 读取错误。为了确认是否 TF 卡的(物理)损坏,我直接用备份的镜像重新整个写入,惊奇的发现可以继续正常(无错误)的使用。因为 TF 卡容量较小只有 4G ,且 IO 错误的位置处于镜像数据范围内,跑 badblocks 后没有报错,所以可以确认 IO 错误并非因为 TF 卡自身的损坏。

    提出问题/h3>

    基于上述现象,我认为是被称为 [ Bit Rot ] 的现象所导致的结果。究其原因很可能是长期只读使用过程中,形成的 [ Read Disturb ] 或自然衰减造成的。

    对于 SSD 来说,主控可能会对冷数据进行搬运。实际上硬盘设备并没有自己的时间概念,也只能对于擦写次数相对而言来进行冷热判断。如果写入次数很少又或者容量较大的情况下,很可能长期不会对冷数据进行处置。但如果搬运频繁或者刷新重写,又会造成写入放大的问题。所以我认为这个机制实际上在一般的 SSD 中并不存在。同样的,对于 TF 这类更为低级的存储设备来说,这些机制更不可能存在。操作系统和文件系统也不会参与其中。

    因此,我想提出这样一个问题: 对于 NAND 存储设备而言,冷数据是否需要自己来定期搬运?

    12 条回复    2026-01-06 10:21:43 +08:00
    levn
        1
    levn  
       5 天前
    搜索一下西数固态“冷数据门”
    Overfill3641
        2
    Overfill3641  
       5 天前
    10 多年前就被存储卡坑过一次。
    存储卡、U 盘只用于临时转存。
    持久化运行,不用机械盘也得上好点的固态盘。
    备份就随意了,多份备份随便搞,恢复就是了。
    ntedshen
        3
    ntedshen  
       5 天前
    https://www.ni.com/en-us/support/documentation/supplemental/12/understanding-life-expectancy-of-flash-storage.html
    https://www.jedec.org/sites/default/files/docs/JESD218.pdf

    nand 你就当他个电容,他必定会漏电,漏电就必定会丢
    正常情况下会有一些机制确保数据不那么冷,不然就不会单独拉西数三星出来叫冷数据门了。。。
    但是你不通电那是完犊子
    stinkytofux
        4
    stinkytofux  
       5 天前
    担忧的有道理, TF 卡不合适长期存储数据.
    tool2dx
        5
    tool2dx  
       5 天前
    @ntedshen 以前固态似乎好一些, 我有个十几年前的二手三星 pm871 512G, 买回来一直放在 USB 硬盘盒里, 一年难得用几次, 数据从没掉过.
    ntedshen
        6
    ntedshen  
       5 天前
    @tool2dx 硅片这东西就是制程越老漏电率越低,都不是固态一家的事,所有都是。。。
        7
    wr410  
    OP
       5 天前
    @ntedshen 只讨论硬盘的话确实有可能有加热数据的功能,但是这个特性并不会标明在硬盘上,用户也没办法知道具不具备这个特性。其实我主要讨论的还是,像不具备这种特性的数据卡,U 盘,是不是应该主动去加热?甚至是各种单片机设备上 NAND 里的固件,这些数据又怎么去加热?
    wr410
    ntedshen
        8
    ntedshen  
       5 天前
    @wr410 u 盘 tf 卡。。。没办法,这种东西他压根不会自己热。。。。。。。。。
    这些功能都是要算力支撑的,现在 ssd 的主控都开始上 arm 处理器了,但是 tf 卡 sd 卡那主控。。。还没个棉签头大呢,实现不了。。。

    要么就 diskfresh 那种软件定期烤烤,要么就自己倒下数据了,隔壁掌机区好似经常这么干的。。。
    L4Linux
        9
    L4Linux  
       5 天前 via Android
    有个东西叫 trim ,有的文件系统能自动 trim ,操作系统有任务定期 trim 。
    WuSiYu
        10
    WuSiYu  
       5 天前 via iPhone
    ssd 主控一般会智能一点,不放心的话定期全盘读一遍,如果 bit rot 严重的话会表现为读速度变慢( LDPC 纠错码是迭代式的,错误越严重耗时越长)
    kokutou
        11
    kokutou  
       5 天前 via Android
    杂牌 tf+工作环境长期高温
    nkidgm
        12
    nkidgm  
       5 天前
    tf 卡从来都不是为了生产环境准备的,就是一个消费级玩具。

    不过就算是生产级别的 nand 储存产品,也得留一份备份,企业级最看重这个了。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2661 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 21ms UTC 04:12 PVG 12:12 LAX 20:12 JFK 23:12
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86