前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >Micron:验证16KB IU对SSD_WAF的影响

Micron:验证16KB IU对SSD_WAF的影响

作者头像
数据存储前沿技术
发布2025-02-11 16:51:06
发布2025-02-11 16:51:06
1060
举报

关键要点

  1. 1. 16KB IU可节省SSD中DRAM空间(75%);
  2. 2. 实际应用中,额外的WAF较低,通常小于2倍,有时接近1倍;
  3. 3. 大IO写入应用更适合使用16KB IU;
  4. 4. 元数据等小IO写入场景,不适合16KB IU。

问题意识

现代SSD不直接寻址NAND,而是通过固件实现逻辑地址到物理地址的间接映射,以优化性能和耐用性。固件需要维护逻辑地址表,映射每个逻辑地址到对应的物理位置,考虑NAND的物理特性,如芯片、带区、页面和扇区。每个条目通常约为4字节。

制造商在间接表空间和粒度之间权衡,通常基于8个扇区的单位(IU),即4KB。这意味着固件以4KB为粒度进行地址转换,而主机CPU可以以更小的粒度进行访问。这种设计降低了映射成本,但可能影响SSD的写入性能和耐用性。

Indirection Units(间接寻址单元,IU) 是用于管理闪存存储器中数据映射的一种结构,特别是在固态硬盘(SSD)中。它们的主要作用是将逻辑地址映射到物理地址,帮助管理和优化数据的读写过程。

随着SSD NAND容量的增加,IU表也随之增大。例如,4KB IU每TB需约1GB表空间。为了减少表空间需求并降低DRAM成本,可以增加IU大小,如8KB和16KB,但这会对小于IU大小的写入性能产生负面影响(WAF)。因此,制造商必须在表空间需求与性能之间找到平衡

WAF(Write Amplification Factor) 是衡量闪存存储器(如SSD)在写入操作时实际写入数据量与用户请求写入数据量之间的比例。WAF越高,意味着SSD需要执行更多的写入操作,这可能导致性能下降和寿命缩短。 在SSD中,WAF问题尤为重要,因为闪存具有有限的写入周期。高WAF会加速闪存单元的磨损,降低SSD的使用寿命。此外,WAF还会影响SSD的性能,特别是在随机写入负载下。因此,优化WAF是设计高性能、长寿命SSD的关键因素。

为什么会出现WAF?HDD就没有这种现象吗?

WAF的出现主要是因为闪存存储器(如SSD)使用了“页”作为基本写入单元,而闪存的擦除操作是以“块”为单位进行的。这意味着,如果要更新存储在某一页的数据,闪存必须先将整个块的数据读出、修改,然后写入新的块,导致实际写入的数据量远大于用户请求的写入量,从而产生WAF。

相比之下,HDD(硬盘驱动器)以扇区为基本写入单位,数据的更新和删除可以直接在原位置进行,不需要像SSD那样进行块擦除和写入。因此,HDD并不存在WAF问题,写入效率通常较高,且不受写入周期的限制。然而,HDD的随机写入性能较差,整体性能不如SSD。

  • • 一般术语用于定义大于LBA大小的FTL映射单位
  • • 大IU对于支持大容量SSD是必要的
    • • 维持4K IU映射所需的DRAM大小变得不可行
    • • 16KB是大容量SSD最有前景的尺寸,但也可以考虑其他尺寸
  • • 主要关注因未对齐写入引起的写放大(WAF)
    • • ( WAF_Total = WAF_App * WAF_SSD * WAF_IU )
    • • ( WAF_IU )是大IU引起的乘法因子
    • • ( 1 < WAF_IU < leq 4 ) 当为 16KB IU时
    • • 从公式上来看16K IU将导致 ( WAF_IU = 4 ),因此耐用性降低4倍
  • • 需要现实数据来支持/挑战上述陈述

原理与测试数据

展示了不同大小的输入/输出(IO)在16KB IO单位(IU)下对写放大因子(WAF)的影响。较小的IO(如4K)导致较高的WAF,而较大的IO(如512K)则对WAF的影响较小。

  • • 仅影响写入
    • • 读取不受影响
  • • 仅影响 16KB 边界未对齐的写入
    • • 16KB 边界对齐的写入不会引入任何 WAF
  • • 随着写入大小的增加,影响呈指数下降
  • • 大多数文件系统倾向于聚合写入并发出大写入
  • • 基于写入大小的大型 IU 引起的 WAF:
    • • 4KB = 4(例如 Legacy)
    • • 64KB = 1.25(例如 TPC-H)
    • • 1MB = 1.015(例如 Kernel Block Layer max)
    • • 2MB = 1.007(例如 RocksDB)
    • • 4MB = 1.003(例如多个基于 SPDK 的解决方案)

16K IU 引起的写入放大因子(WAF)主要影响未对齐的写入操作,且对读取操作没有影响。影响随着写入大小的增加而显著降低,文件系统通常会聚合写入以减少 WAF。不同的写入大小对应不同的 WAF 值,较大的写入大小导致更低的 WAF,最终引起的 WAF 在一定条件下可以带来容量和成本的优势。

实际业务场景IO一般要经系统自带的优化,如小IO聚合后才写入SSD,图中显示了基于IO数量和数据容量两种标准下的测试结果,Avg Size一栏显示了这些业务场景基准测试过程中实际写入IO大小,可见:

  1. 1. 绝大部分业务场景的写IO都大于64KB,这使得 16KB IU的WAF因子接近1;
  2. 2. Ceph 的Metadata写IO大小只有7KB,此时使用16KB IU,WAF因子比较大。

要点总结

  • • 16K IU 在内存占用(节省75% DRAM大小)方面具有很大优势,但可能会影响 WAF(写放大因子)。
  • • 基于数值预测,16KB SSD 的 WAF 可能比 4KB IU SSD多出 4 倍。
  • • 在实际使用场景中,额外的 WAF 显示出要低得多:
    • • 基本小于2倍
    • • 有时接近1倍
  • • 某些工作负载会比其他工作负载更合适:
    • • 元数据不是一个好的选择,但当与数据混合时,不会显著影响它们。
  • • 16KB IU 对性能的影响将比假设的要小。

总结

本文档探讨了16KB Indirection Units(IUs)对现代工作负载的影响,特别是在闪存存储设备中。

通过分析不同大小和类型的写入操作,文档展示了即便是在最不利的情况下,实际的WAF值也远低于理论上的最大值,并且对于大多数工作负载来说,这种影响是可以接受的。特别是,对于那些倾向于聚合大块数据并进行批量写入的应用程序,16KB IUs实际上可以提供更好的性能和成本效益,而不会显著增加WAF。

---【本文完】---

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-08-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 王知鱼 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 关键要点
    • 问题意识
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档