首页 > 其他分享 >如何突破DRAM对SSD容量提升的限制?

如何突破DRAM对SSD容量提升的限制?

时间:2024-03-18 22:03:12浏览次数:25  
标签:映射 容量 写入 NAND ZNS DRAM SSD

近日小编看到Pure Storage公司的研发高级副总裁肖恩·罗斯马林(Shawn Rosemarin)的一个观点“由于DRAM的局限性,固态硬盘(SSD)的容量难以突破30TB”。

这个观点不是完全准确,实际上,Solidigm已经发布了最大容量61.44TB QLC SSD。

图片

但是,这个观点背后的逻辑依然是业内在提升SSD容量中不可避免遇到的问题。

图片

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

图片

第一个思路是在SSD内部想办法降低DRAM需求。一种方法就是增大映射比率或间接寻址单元(IU),不再采用1:1映射,而是采用n:1 L2P映射,其中n大于1。RAM占用量与n成反比,即多个逻辑块可以共享一个物理映射。

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

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

图片

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

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

图片

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

第二个思路:从Host软件层面接管SSD内部的FTL功能。比如Open-channel、ZNS SSD等。

在ZNS的场景下,不同应用按照Zone配置信息,相应存放业务数据。主要集中在顺序读写的workload场景。由于是Host管理数据的摆放和存取位置,会最大程度减少GC垃圾回收。

图片

减少SSD的DRAM空间和去掉OP冗余空间,提升用户可用的容量。

图片

二者具体的优劣对比:

图片

扩展阅读:

小编每日撰文不易,如果您看完有所受益,欢迎点击文章底部左下角“关注”并点击“分享”、“在看”,非常感谢!

精彩推荐:

图片

如果您也想针对存储行业分享自己的想法和经验,诚挚欢迎您的大作。
投稿邮箱:[email protected] (投稿就有惊喜哦~)

《存储随笔》自媒体矩阵

图片

更多存储随笔科普视频讲解,请移步B站账号

图片

如您有任何的建议与指正,敬请在文章底部留言,感谢您不吝指教!如有相关合作意向,请后台私信,小编会尽快给您取得联系,谢谢!

图片

标签:映射,容量,写入,NAND,ZNS,DRAM,SSD
From: https://blog.csdn.net/zhuzongpeng/article/details/136823335

相关文章

  • 详解GaussDB(DWS)中3个防过载检查项
    本文分享自华为云社区《【防过载检查项】》,作者:譡里个檔。1.GUC参数检查目的:针对不同版本建议设定不同的参数值,当前先检查出来,后续diagnosis会给出建议值SELECTsplit_part((substring(version()from'\((.*)\)')),'',2)ASversion,(EXISTS(SELECT1FROM(S......
  • Arduino RP2040 + SSD1306 I2C OLED +LittleFS存储GBK字库实现中文显示
    ArduinoRP2040+SSD1306I2COLED+LittleFS存储GBK字库实现中文显示......
  • 如何才能同时测试更多SSD硬盘?
    我国企业级SSD市场规模持续扩大,对于SSD生产企业来说是机遇,也是挑战,传统的SSD生产厂家在做出厂测试时,通常仅能测试4个盘,测试数量低、耗时长,相对来说时间成本也高。为此,深圳市联瑞电子有限公司推出了新的高速硬盘扩展测试解决方案,一、该方案如下:主板------扩展卡(LRNV-9F48)------......
  • 实例带你了解GaussDB的索引管理
    本文分享自华为云社区《GaussDB数据库的索引管理》,作者:Gauss松鼠会小助手2。一、引言GaussDB数据库是华为公司倾力打造的自研企业级分布式关系型数据库,索引的设计和管理对于提高查询性能至关重要。下面将通过实际例子深入研究GaussDB数据库的索引管理。二、GaussDB数据库中的......
  • GaussDB的gs_dump工具问题整理,疑似BUG
     GaussDB的gs_dump工具问题整理,疑似BUG 目前分布式GaussDB用起来问题感觉巨多啊。版本信息如下:09:04:11root@postgres>selectversion();-[RECORD1]-----------------------------------------------------------------------------------------------------------......
  • 固态存储是未来|浅析SSD架构的演进与创新技术-1
    常见的SSD架构中,包括了SSD控制器、NAND颗粒、DRAM颗粒三大组件,SSD控制器的固件需要兼顾坏块管理、ECC纠错、垃圾回收GC、磨损均衡WL、NANDdie介质管理、缓存交互等等。随着时代的发展,SSD架构,也不断有新的挑战和需求。基于小编目前的看到的信息,总结大概有几个方面:首先就......
  • 固态存储是未来|浅析SSD架构的演进与创新技术-2
    除了性能和容量这两个最大的诉求外,其他的需求已经成为SSD现场架构的核心竞争力。一是安全性:随着数据安全威胁日益严重,SSD的安全设计成为关键,包括提供单芯片硬件信任根、遵循FIPS140-3安全标准以及支持一次性可编程位字段来锁定生产后的接口,确保数据加密传输和保护,并集成加密引......
  • 在stm32f767中使用fmc外挂dram
    `uint16_tbuf[6]attribute((at(0xd0000000)))={0};//将缓冲数组分配到外部dram中。voidTestDram(void){uint16_txxx[6]={0x1111,0x2222,0x3333,0x4444,0x5555,0x6666};for(inti=0;i<5;i++){buf[i]=xxx[i];}for(inti=0;i<5;i++){ if(xxx[i]!......
  • 实例带你了解GaussDB数据库的LOCK TABLE
    本文分享自华为云社区《GaussDB数据库SQL系列-LOCKTABLE》,作者:酷哥。一、前言GaussDB是一款高性能、高可用的分布式数据库,广泛应用于各类行业和场景。在GaussDB中,锁是实现并发控制的关键机制之一,用于协调多个事务之间的数据访问,确保数据的一致性和完整性。本文将围绕GaussDB数......
  • Libcomm通信库:GaussDB(DWS) 为解决建联过多的小妙招
    本文分享自华为云社区《GaussDB(DWS)集群通信系列三:Libcomm通信库》,作者:半岛里有个小铁盒。1.前言适用版本:【8.1.0(及以上)】在大规模集群、高并发业务下,如果有1000DN集群,每个stream线程需要建立1000个连接。如果1000stream并发,DN总共需要建立100万个连接,会消耗大量的连接、......