iConnect
V2EX  ›  问与答

SSD 硬盘一般都预留 7%的空间作为冗余,是不是冗余坏完了,硬盘才报废?

  •  
  •   iConnect · Nov 23, 2017 via Android · 7967 views
    This topic created in 3127 days ago, the information mentioned may be changed or developed.
    比如 256G 的 SSD,实际标注的可用空间是 240G。预留了 7%左右(各品牌预留比例有差异)的冗余空间。

    这个冗余空间的意思很明显,是为读写空间错误准备的。一块 SSD 坏掉,是不是冗余空间全坏光了?
    27 replies    2017-11-24 13:12:20 +08:00
    tyhunter
        1
    tyhunter  
       Nov 23, 2017
    233333 难道这空间差异不是厂商和系统计算方式不同吗
    硬盘厂商是按照 1000 进制算的,那么 256G 是等于 1000*1000*256
    系统是按照 1024 进制算的,那么厂商的 256G 在系统眼里等于 1000*1000*256/( 1024*1024 )=244.140625GB
    goodan
        2
    goodan  
       Nov 23, 2017 via iPhone   ❤️ 2
    lz 思路有意思
    azh7138m
        3
    azh7138m  
       Nov 23, 2017
    @tyhunter 是预留了,不是因为 GiB 与 GB 的这种区别
    Icezers
        4
    Icezers  
       Nov 23, 2017 via iPhone   ❤️ 1
    的确有冗余 但是坏掉不一定是因为冗余用完了,大部分 SSD 挂掉是因为主控芯片
    flynaj
        5
    flynaj  
       Nov 24, 2017 via Android
    确实有很多 SSD 是 120g 跟 240g 的并不是
    128 跟 256,主控不同,价格有区别
    DiamondbacK
        6
    DiamondbacK  
       Nov 24, 2017
    @tyhunter
    GiB 和 GB 的区别与 SSD 预留空间( OP )是两回事。
    OP = Over-Provisioning
    OP 的大小因厂商、品牌、型号不同而不同,最小为 0,大的见过 50% 的,比如 256GB 的闪存用在 128GB 型号上。
    xupefei
        7
    xupefei  
       Nov 24, 2017
    不同品牌的 SSD 预留空间也不同。有些可以通过 SMART 查到具体剩下几块,有些只能查到剩余百分比:
    crazycen
        8
    crazycen  
       Nov 24, 2017 via iPhone
    @tyhunter 这个和单位换算没有关系,企业 ssd op 预留空间更是高达 30%
    mm163
        9
    mm163  
       Nov 24, 2017
    要想寿命长点儿,自己使用中要始终留出 1/4 ~ 1/3 以上的空间来。
    kokutou
        10
    kokutou  
       Nov 24, 2017 via Android
    @tyhunter
    ssd 是真的预留了,机械硬盘才是换算问题。
    md5
        11
    md5  
       Nov 24, 2017 via Android
    @kokutou ssd 标称容量是换算过的 还是 预留过的?
    runntuu
        12
    runntuu  
       Nov 24, 2017 via iPhone
    由于 ssd 只能对干净块执行写入,ssd 使用垃圾回收机制来对脏块进行回收合并。
    当 ssd 被填满后,就必须等待垃圾回收将脏块回收,这需要几个毫秒,而一般写是微秒级别,这会导致 ssd 性能严重下降。所以 ssd 一般会预留一部分空间来始终保证有干净块可写。
    realism
        13
    realism  
       Nov 24, 2017 via Android   ❤️ 12
    业内人士现身说法。

    是有预留的。但是不知道你这算法怎么来的。不是你这样算的。
    首先是 NAND Flash 厂商供应的闪存颗粒就有预留——每个 page 提供给用户的大小是 16KB,然而实际上有 18KB 左右的物理空间可用。
    然后就是 ssd 厂商预留用来做坏块替换的 block。这部分跟你讲的大致差不多。
    所以实际上如果你看到的硬盘有 240G,它物理上应该可以写 270G 甚至更多吧。

    跟二进制十进制换算没关系。但是厂商喜欢拿十进制换算来说事,假装这是历史遗留问题。消费者那边好解释一些。

    在坏块替换这个部分,各家的管理策略不一样。
    ssd 里面用 NAND Flash 组了阵列,全部并行做读写操作,这是 ssd 速度快的一个原因。
    如果一块 ssd 有 8ch 4ce 2plane,那就等于是 8*4*2=64 个 plane 在并行工作。不妨把 plane 理解为跑道,有 64 个跑道一起在为你发车。

    假如按你的 7%预留来考虑。其实质上是给每个 plane 都留了 7%的 block 用来做坏块替换。
    但如果有某个 plane 擦写次数特别多,导致很快就把 7%用完了呢?那它就不能跟其他 plane 一起做并行了。在有些厂商那里(实际上我认为大多数厂商都是吧),这块 ssd 就被认为寿命到头了,firmware 会将它设为 read only,只允许 host 从里面读取数据,做一点最后的抢救。

    至于为什么跑道少了一根就牵连所有跑道,这涉及 firmware 管理的问题。当然是受制于主控啊、DRAM 啊那些。不能把 firmware 写得太复杂。

    firmware 写得好的厂商,能确保均匀使用各个 plane。到最后寿命将近的时候,所有 plane 几乎会一起坏掉。
    realism
        14
    realism  
       Nov 24, 2017 via Android
    另外,SMART 查到的信息是没有参考价值的。host 发查询指令的时候,我们 ssd 这边的 firmware 想给它回什么值就回什么值。
    kokutou
        15
    kokutou  
       Nov 24, 2017   ❤️ 1
    @md5 #11
    预留后再换算。。。

    SSD 还有点特殊就是,例如有的时候用的实际物理颗粒容量是比 128 大这种,多的做 op,然后包装上的就是 128G
    实际物理就只有 128 的话,那包装上的可能就是 120G 这样。
    最后再 128 和 120 换算一下。。。

    也没有说包装上是 128G 的就很良心,因为它也可以 OP 设很小,只是让数字很漂亮而已,但是稳定就差了。
    不同主控,不同厂家,同厂家不同产品具体怎么做的都有可能不一样。。。
    mentalkiller
        16
    mentalkiller  
       Nov 24, 2017
    @twistedmeadows #13 感谢大佬分享知识,受益良多
    tyhunter
        17
    tyhunter  
       Nov 24, 2017
    @crazycen
    @azh7138m
    @DiamondbacK
    新知识 Get
    autoxbc
        18
    autoxbc  
       Nov 24, 2017 via iPhone
    注意买 mlc,平均寿命长的设备,在低区间的故障率也低,这是 tlc 比不了的
    imcxy
        19
    imcxy  
       Nov 24, 2017
    @autoxbc 现在 MLC 很少了吧,现在还是买个大容量靠谱,寿命跟容量也有关系
    honeycomb
        20
    honeycomb  
       Nov 24, 2017
    差不多就是这么回事

    @twistedmeadows
    楼主说的是 SSD 出厂时的默认 over provision(用来替换 block 的),不是说闪存上每个 page 单元的预留部分

    消费级别的往往是 7%(480GB 的实际上用了 512GB 的 die),企业级的比较喜欢用 21%(400GB/512GB)
    honeycomb
        21
    honeycomb  
       Nov 24, 2017
    这个 over provision 主要是用来帮助减小写入放大系数的(有越大的垃圾回收空间,写入放大系数越小),同时也能移植因空闲块数量变少导致的性能下降(空闲块的比例下限不会比 OP 的百分比更低)
    iyg429
        22
    iyg429  
       Nov 24, 2017 via iPhone
    @Icezers 其实 大部分坏的 ssd 都是主控问题。本身的 nand 颗粒还是好的。所以才会有回收旧 ssd。拆片重新开卡买的 很高利润。
    realism
        23
    realism  
       Nov 24, 2017 via Android
    @honeycomb 这位兄弟也是业内的?
    我是做后端的,所以对 NAND 这块比较熟。不知道你有没有手算过容量,即使按每个 page 16KB 来算,一个 64GB 的 die 也不止 64G 的可用容量。
    具体数据我就不摆了,因为不清楚哪些算机密。

    OP 留多大,我觉得是非常 various 的。
    跟 firmware 管理机制、NAND 厂商提供的 extended blocks 数量、面向的客户都有关。
    有些企业级客户会直接要求 OP 的大小。消费级也并不是固定 7%
    realism
        24
    realism  
       Nov 24, 2017 via Android
    @iyg429 有证据吗?哪家的主控?

    我觉得还是 NAND 寿命对 ssd 寿命影响大点。
    honeycomb
        25
    honeycomb  
       Nov 24, 2017 via Android
    @twistedmeadows
    是业内的话也会像你一样能手算容量啦

    我前面说的注释“用来替换 block 的”不对

    消费级 op 具体多少如你所说并不是固定,只是有些数字很容易猜。
    比如 128G 的比较像没留 op,120G 的比较可能是 7%,100G 的企业级产品比较像 21%,英特尔的 optane/三星的 slc ( znand 产品线)可能又用了别的 op
    redsonic
        26
    redsonic  
       Nov 24, 2017
    冗余空间全坏肯定 SSD 要归西,但反过来不成立。 很多 SSD 都是中了即死技挂掉的,比如主控算法 bug,映射表错误,缺乏掉电保护。SSD 就是 raid 控制器+存储片子,raid 挂了数据都在也读不出来。SSD 也不可能像传统 raid 那样支持 metadata 的备份。企业级的高端货不清楚,说错了请补充。
    realism
        27
    realism  
       Nov 24, 2017 via Android   ❤️ 1
    @honeycomb 诶,但是其实,NAND 厂商提供的闪存并不会专门对齐 64G、128G。
    所以用户端如果能用的容量有 128GB,那实际可用容量多半是大于 128G 的啦
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1066 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 81ms · UTC 18:29 · PVG 02:29 · LAX 11:29 · JFK 14:29
    ♥ Do have faith in what you're doing.