SSD寻址单元IU对寿命的影响有多大?

原创 古猫先生 存储随笔 2024-01-30 08:30 发表于浙江

【转载】SSD寻址单元IU对寿命的影响有多大? (qq.com)

随着存储技术的不断进步,固态硬盘SSD的容量正以惊人的速度增长,尤其是采用高密度QLC NAND闪存技术的大容量SSD,如30TB及以上级别的产品。QLC NAND由于每个单元能够存储4比特数据,从而显著提高了存储密度,但同时也带来了一系列挑战,其中包括写入放大、耐久性以及如何有效管理映射表的问题。

扩展阅读:

在这个背景下,间接寻址单元(Indirection Unit, IU)的作用及其对SSD寿命的影响显得尤为重要。在SSD内部,逻辑地址到物理地址的转换是通过一个称为“逻辑到物理映射”(Logical to Physical mapping, L2P)的机制实现的。L2P映射表通常存储在设备RAM中,用于将主机发送来的逻辑块地址(LBA)对应到NAND闪存上的实际物理位置。为了优化资源使用和提高效率,SSD引入了间接寻址单元的概念,即将多个连续或非连续的逻辑块映射到单个物理块上。

例如,若IU设置为16KB,则意味着每16KB的逻辑空间仅需要一个映射条目指向一个物理块。这样可以显著减少RAM消耗,尤其是在大容量SSD上,避免因存储映射信息所需的DRAM资源过多而增加成本。

随着SSD容量的增长,存储映射表所需的RAM成本也随之增加。假设采用1:1的L2P映射以及4KB的逻辑块大小,对于一个256GB的SSD,至少需要256MB的RAM来存放映射表。随着SSD容量达到64TB级别,按照这种比例计算,所需的RAM容量将会高达64GB,这对设备的成本控制等构成挑战。

因此,设备供应商开始采用新的技术手段来控制映射表所需的RAM,其中一种方法就是增大映射比率或间接寻址单元(IU)。不再采用1:1映射,而是采用n:1 L2P映射,其中n大于1。RAM占用量与n成反比,即多个逻辑块可以共享一个物理映射。

增大间接寻址单元IU虽然有助于降低DRAM需求,但也可能带来性能和耐久性方面的挑战。当主机发出的IO大小小于IU时,会发生读取-修改-写回(Read-Modify-Write, RMW)操作。这意味着即使只是更新一小部分数据,SSD也必须先读取整个物理块的内容,合并新的数据,然后将整个块重新写入闪存。这种情况下,原本只需要一次的小规模写入操作被放大成了整块物理区块的写入,这就是所谓的“写放大效应”。

具体来说,假设SSD设置了一个16KB的IU,这意味着一个物理闪存块可以对应多个连续的4KB LBA。如果主机发出一个仅写入4KB的数据请求,且该请求起始位置不在IU的边界上,则SSD需要首先读取包含目标4KB区域的整个16KB物理块,将新的4KB数据合并到已读取的数据中,然后将整个更新后的16KB物理块重新写入NAND闪存。这个过程实际上执行了原本只需写入4KB数据量的四倍,即产生了4x的写放大因子。

扩展阅读:SSD写放大的优化策略要统一标准了吗?

对于耐久性敏感的QLC NAND而言,这种写入放大的影响尤为严重,因为QLC NAND的每个单元可编程次数相对较少。每一次额外的写入都会加速NAND单元的老化,缩短整个SSD的使用寿命。

然而,随着IO尺寸增加至接近或大于16KB,这种情况会有所改变。一旦IO大小等于或大于IU大小,那么这种IO就可以直接且完整地写入对应的物理块,无需进行额外的读取和合并操作。因此,在这种情况下,大尺寸IO对WAF的贡献就会明显降低,几乎不会产生额外的写放大效应

尽管存在上述挑战,随着SSD容量的增长和技术的进步,设备制造商已经开发出多种策略来缓解间接寻址单元增大带来的问题:

  1. 智能数据管理和垃圾回收算法:SSD控制器通过更加高效的垃圾回收机制来最大限度地减少不必要的写入操作,并尝试确保新的写入尽可能均匀分布在整个NAND阵列中,减轻局部磨损。
  2. 混合使用不同类型的NAND:某些高端SSD会结合使用QLC NAND与其他类型(如TLC或SLC)的NAND,利用高速和高耐久性的NAND区域作为缓存或临时存储,以缓冲小尺寸IO写入导致的额外写入负载。
  3. 优化应用程序I/O模式:系统设计者和软件开发者可以通过调整应用层的数据访问模式,尽量使写入操作对齐并按IU大小进行,从而降低因未对齐引发的RMW操作,进而减少写入放大。

随着SSD容量的提升和QLC NAND的广泛应用,间接寻址单元IU管理成为了一个关键的设计考量因素。通过技术创新和合理的工作负载管理,可以在维持成本效益的同时,有效延长大容量SSD的使用寿命。未来的SSD设计将继续探索这一领域的平衡点,兼顾容量、性能和耐久性的最佳组合。

 

SSD寻址单元IU对寿命的影响——古猫先生存储随笔转载的更多相关文章

  1. 参数innodb_force_recovery影响了整个InnoDB存储引擎的恢复状况

    参数innodb_force_recovery影响了整个InnoDB存储引擎的恢复状况.该值默认为0,表示当需要恢复时执行所有的恢复操作.当不能进行有效恢复时,如数据页发生了corruption,My ...

  2. 可软件定义的存储逻辑——Efficient and agile storage management in software defined environments

            note:写这个或许算是翻译,又或算是对这个论文[1]的理解,又或者仅仅是我的看法.         这篇论文和IOFlow相比較,更加注重软件定义存储的框架(利用已有的框架来创建新的 ...

  3. 【转】花开正当时,十四款120/128GB SSD横向评测

    原文地址:http://www.expreview.com/19604-all.html SSD横评是最具消费指导意义的评测文章,也是各类热门SSD固态硬盘的决斗疆场.SSD评测在行业内已经有不少网站 ...

  4. 机械硬盘和ssd固态硬盘的原理对比分析

    固态硬盘和机械硬盘的区别 机械硬盘 磁头是不是直接和盘片接触的呢 磁盘中有几个盘片 机械硬盘的工作原理 固态硬盘的寻址方式 SMR叠瓦式真的比PMR优秀吗 固态硬盘 主控芯片 闪存颗粒 缓存单元 固态 ...

  5. SSD基本工作原理

    SSD主要由SSD控制器,FLASH存储阵列,板上DRAM(可选),以及跟HOST接口(诸如SATA,SAS, PCIe等)组成. SSD主控通过若干个通道(channel)并行操作多块FLASH颗粒 ...

  6. 笔记本安装SSD固态硬盘详细的优化设置

    现在好多笔记本.台式机都加上固态硬盘了,固态硬盘的优势大家应该都有所了解了,在此略写一下固态硬盘优势:  1.启动快,没有电机加速旋转的过程:  2.不用磁头,快速随机读取,读延迟极小:  3.相对固 ...

  7. SSD写入放大问题[转]

    原文地址:http://blog.csdn.net/cywosp/article/details/29812433 之前在SSD(Solid State Drive)上设计并实现缓存系统用于存储数据块 ...

  8. SSD win7优化步骤

    随着固态硬盘价格不断下降,目前固态硬盘也得到了广泛了应用,一些新笔记本以及组装电脑也开始普遍采用固态硬盘平台,超级本就更不用说了,采用固态硬盘已经成标配化,虽然固态硬盘速度很快,但不懂的优化,依然无法 ...

  9. SSD固态硬盘是会掉速的。

    也没什么好的办法. 只是自己不再疑神疑鬼,总觉得中病毒了. 下面的文章还是挺有参考意义的. http://diy.pconline.com.cn/627/6271636_all.html SSD变慢了 ...

  10. SSD 相关基础知识

    SDD 基础知识 SSD(Solid State Drives)是固态硬盘,使用闪存颗粒来存储数据,闪存又可分为NAND Flash和NOR Flash,通常所说的SSD硬盘都使用NAND Flash ...

随机推荐

  1. 基于Java 的商城网站系统设计与实现(8000字论文)

    摘要 随着我国经济活力的不断提升和互联网的快速发展,信息的重要性正在显现出来.电子商务作为经济发展的重要一环取得了突飞猛进的发展.由于具有高效便捷的优点,网上购物已经成为一种不可或缺的新型生活方式,近 ...

  2. phpcms - 在删除文章后实现自动删除tag标签

    在使用phpcms程序制作网站的时候,我们会发现文章模型新建一篇文章后会自动向数据库中插入关键词,但如果删除文章后,数据库中的关键词表中字段中还存在之前文章的关键词,那么怎样才能在phpcms后台中删 ...

  3. [转帖]idea配置tomcat参数,防止nvarchar保存韩文、俄文、日文等乱码

    描述下我的场景: 数据库服务器在远程机器上,数据库使用的Oracle,字符集是ZHS16GBK,但保存韩文.俄文.日文等字段A的数据类型是nvarchar(120),而nvarchar使用的是Unic ...

  4. [转帖]SMEMBERS:获取集合包含的所有元素

    https://www.bookstack.cn/read/redisguide/spilt.4.291fab46a3b4f05c.md SMEMBERS set 以下代码展示了如何使用 SMEMBE ...

  5. [转帖]Oracle 创建和查看DBLink 的方法

    https://www.cnblogs.com/zhouzangood/articles/4612441.html 1.如果需要创建全局 DBLink,则需要先确定用户有创建 dblink 的权限: ...

  6. [转帖]KingbaseES不同字符类型比较转换规则

    https://www.cnblogs.com/kingbase/p/14798059.html Postgresql 常用的字符数据类型的有char.varchar和text,其中 char 固定长 ...

  7. [转帖]【Jmeter】Jmeter压力测试工具安装及使用教程(redis测试)

    摘自:https://www.cnblogs.com/monjeo/p/9330464.html 一.Jmeter下载 进入官网:http://jmeter.apache.org/ 1.第一步进入官网 ...

  8. [转帖]自动化回归测试工具 —— AREX 上手实践

    https://my.oschina.net/arextest/blog/8589156   AREX 是一款开源的自动化测试工具平台,基于 Java Agent 技术与比对技术,通过流量录制回放能力 ...

  9. [转帖]SQL Server JDBC – Set sendStringParametersAsUnicode to false

    https://vladmihalcea.com/sql-server-jdbc-sendstringparametersasunicode/ https://learn.microsoft.com/ ...

  10. XJTU少年班+自动化钱学森班+电气工程辅修专业课笔记合集

    通过百度网盘分享的文件:笔记整理链接:https://pan.baidu.com/s/1BrHQ1EqvlQlbWqpD5h_6Sg?pwd=shsg 提取码:shsg复制这段内容打开「百度网盘APP ...