前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >SiliconMotion:ZNS在QLC闪存上的测试数据

SiliconMotion:ZNS在QLC闪存上的测试数据

作者头像
数据存储前沿技术
发布于 2025-02-11 08:55:19
发布于 2025-02-11 08:55:19
970
举报

关键要点

1. ZNS(Zone Name Space)是一种灵活的闪存存储配置方式,适用于需要大量随机写入的应用场景。

2. QLC(Quad Level Cell)具有更低的成本和较好的读性能,但耐久性较差。

3. ZNS+QLC可以满足只进行顺序写入且不需要垃圾回收的应用需求,并提供良好的读性能和较低的成本。

4. SM8366是一款支持ZNS的控制器,可实现多种ZNS配置模式,并具有较高的IO性能和功率效率。

问题意识

为什么在QLC闪存中要使用ZNS?

先来了解下QLC和ZNS的概念。

QLC(四级单元) 闪存是一种存储技术,能够在每个存储单元中存储4比特数据。其主要特点包括:

  1. 1. 高存储密度:相比于TLC(三级单元)和MLC(双级单元),QLC可以在相同的物理空间内存储更多数据,提升了存储密度。
  2. 2. 成本效益:由于更高的存储密度,QLC闪存通常在单位存储成本上更具优势,适合大容量存储需求。
  3. 3. 较低的写入性能:QLC的写入速度和耐用性通常低于TLC和MLC,因为更多的电压级别使得数据编程和擦除过程更复杂。
  4. 4. 适合读取密集型应用:由于其较高的读取速度,QLC闪存适用于读取频繁但写入较少的场景,如数据中心的冷存储和大数据分析

Zone Name Space(ZNS) 是一种新兴的存储技术,旨在优化高密度固态硬盘(SSD)的性能和效率。它的背景主要源于传统NAND闪存的写入放大(WAF)和垃圾回收(GC)问题。随着数据中心对高性能和高密度存储需求的增加,ZNS通过将存储介质划分为多个“区域”,允许应用程序直接管理数据的写入,从而减少写入放大,提高写入性能,降低延迟。

ZNS特别适合大数据分析云计算高性能计算等场景,可以显著提高存储资源的利用率,使得数据的管理更加灵活高效。随着越来越多的SSD厂商和软件平台支持ZNS,预计这一技术将在未来的存储生态系统中扮演重要角色。

图讨论了使用ZNS与QLC结合的理由。强调了GC和WA的高成本,以及SSD在处理这些操作时的局限性,建议将这些任务交给主机来管理,并指出仅允许顺序写入以提高效率。右侧的图表展示了写放大(WA)与操作(OP)的关系,随着顺序写操作的增加,写放大值逐渐降低。

为什么选择QLC?

  • • 更低成本:70~80% 的TLC成本
  • • 良好的读取性能:
    • • ~100微秒读取延迟
    • • 在随机读取工作负载下,饱和PCIe Gen 5 x4所需的芯片数少于100(减少数据引脚)
  • • 一般写入性能
  • • 较差的耐久性:1.5K~3K PEC
    • • TLC的写入放大(WA)为5 → 良好的DWPD
    • • QLC的写入放大(WA)为1 → 也有良好的DWPD

数据对比表:

  • • 各厂商(Kioxia/WD, Micron, SK-Hynix, Samsung)在层数、面数、面积密度、程序带宽、延迟和接口等方面的技术规格。

图展示了ZNS与QLC结合的优势,主要针对那些进行顺序写入的主机。它强调了在无需垃圾回收或自行处理垃圾回收的情况下,ZNS + QLC能够提供良好的读取性能和降低成本。这种组合特别适用于OLAP大数据、AI、媒体流及NoSQL等应用场景。

罗列了3类适合ZNS的业务模型

模型 A

模型 B

模型 C

示例用例

广泛应用,如流媒体应用、数据库应用(WAL、日志结构化写入)、AFA

高主机 IO 并行性以实现媒体带宽的完全利用,更兼容 ZBC/ZAC 主机软件栈,归档存储为例

支持多个用户(如虚拟机)的并行访问

开放/活动区资源

推荐 12 个或更多

取决于设备

数量可达数万

性能

同时访问 1 到 4 个区域应实现最大吞吐量

取决于设备,建议一个区域跨越所有媒体单元(NAND 芯片)

设备指定实现最大 IO 吞吐量的最小开放区数量

强制 IO 命令

读、写

读、写

读、写

特性 - 区域附加

需要区域附加

不需要

不需要

特性 - ZRWA

有则更好

不需要

不需要

媒体可靠性管理

设备

设备

共享,RAID 保护以防芯片故障将移交给主机

该表格比较了三种区域存储模型(模型 A、B 和 C),重点在于它们的应用场景、性能、IO 命令要求及先进特性。

  • • 模型 A 适合广泛应用,推荐使用多个开放区域;
  • • 模型 B 强调高并行性以充分利用带宽;
  • • 模型 C 则支持多用户的并行访问。

各模型在强制 IO 命令和媒体可靠性管理方面也有所不同,反映了不同应用需求的特点。

图表阐述了使用QLC闪存的优势,包括成本低、读取性能好和可接受的写入性能,但耐久性相对较差。表格部分比较了主要厂商在技术参数上的差异,显示了不同厂商在层数、面积密度和性能指标上的特点,强调了QLC在现代存储解决方案中的潜力。

特性

模型 A

模型 B

模型 C

示例用例

支持

支持

支持

开放/活动区域资源

16 – 每区域最大吞吐量,32 – 半吞吐量,64 – ¼ 吞吐量

16 – 每区域最大吞吐量

最大到 1024,最小区域大小为 1 或 2 die-block

性能

同时访问 1 到 4 个区域以达到最大吞吐量

单区域访问达到最大 IO 吞吐量

主机管理并行访问以利用最大 IO 吞吐量

强制 IO 命令

读,写,选项简单复制

高级特性 – 区域追加

支持区域追加

高级特性 – ZRWA

支持 ZRWA,每个开放/活动区域最大 1MB 或禁用

媒体可靠性管理

除了 NAND ECC,先进的 NAND 管理和磨损平衡

设备提供 RAID 保护以防止芯片故障

共享,RAID 保护将转移到主机

表格比较了三种不同模型(A、B、C)的 SM8366 ZNS 规格,主要涵盖了示例用例、开放/活动区域资源、性能、强制 IO 命令和高级特性等方面。

模型 A 和 B 支持多区域并行访问,而模型 C 允许主机管理并行访问以提升性能。

在高级特性方面,模型 B 提供区域追加支持,而模型 A 和 C 则在媒体可靠性管理上提供不同的 RAID 保护方案。整体来看,模型 C 在资源管理和吞吐量上提供了更大的灵活性。

  • • 1K+开放区要求SSD控制器提供相当大的高带宽写入缓存。
    • • 充电捕获QLC NAND通常需要两次数据传输,且有N个字线间隔。
    • • 为了处理写-写冲突和写-擦除冲突,还需要额外的写入缓存来在等待时间内缓冲主机数据。
  • • SSD控制器约束
    • • 内部SRAM(通常为8-16MB)不足以作为所有开放区的数据操作和程序缓冲。
    • • 使用DRAM作为程序缓冲受限于两个因素:DRAM带宽和超级电容器
    • • RAID奇偶校验缓冲区大小和容量问题。

讨论了在支持1K+开放区时,SSD控制器面临的挑战。主要问题在于写入缓存的需求增加,尤其是在处理复杂的写入和擦除操作时。

此外,内部SRAM的容量有限,且使用DRAM作为缓冲也受到带宽和电源容量的限制,这对数据处理效率构成了挑战。

ZNS 数据流设计

  • • 使用 2 级缓冲(SRAM + DRAM)分别进行数据处理和编程:
    • • SRAM:RAID 编码、固件元数据插入、RAID 校验缓冲(2)(3)
    • • DRAM:用于编程 SLC(4)或直接编程 QLC 的数据缓冲(5)
  • • 解决方案 A/B 以支持 1K+ 开放/活动区域:
    • • A 方案(右图上)使用 SLC Copyback:需要较少的 DRAM 带宽,但需额外监控 SLC 块的 RBER。
    • • B 方案(右图下)使用 SLC Backup:消耗更多的 DRAM 带宽。

讨论了 ZNS 数据流设计的两种主要方案,强调使用 SRAM 和 DRAM 的两级缓冲来提高数据处理效率。

可配置区域选项

ZNS选项

区域容量

最大开放区域数

RAID保护选项

1

128个die-blocks(21-22GB)

8

Die/Plane/NA

2

64个die-blocks(10-11GB)

16

Die/Plane/NA

3

32个die-blocks(~5GB)

32

Die/Plane/NA

4

16个die-blocks(~2.5GB)

64

Plane/NA

5

8个die-blocks(~1.2GB)

128

Plane/NA

6

4个die-blocks(~0.6GB)

256

NA

7

2个die-blocks(0.34GB)

512

NA

8

1个die-block(0.17GB)

1024

NA

  • • 一个die-block是指同一组平面块,具有相同的Word-line偏移,例如Micron N48R QLC的die-block0由四个平面中的四个块组成。
  • • ZNS配置表基于具有128个N48R die(或LUNs)的ZNS SSD。

图表展示了可配置的ZNS选项,包括不同的区域容量、最大开放区域数量以及RAID保护选项。

每个选项的die-blocks数量和相应的存储容量不同,适用于不同的存储需求和性能要求。图中还解释了die-block的定义及其在存储设备中的作用。

在实际业务中,选择恰当的Zone Capacity时,应该参考以下数据和依据:

  1. 1. 工作负载特性:
    • • 读/写比例:分析应用程序的读写需求,以确定是否需要更高的写入性能。
    • • IOPS需求:评估每秒输入/输出操作的需求,选择能满足这些需求的容量。
  2. 2. 数据持久性
    • • 数据重要性:根据数据的重要性和保留时间,选择合适的RAID保护选项和Zone Capacity。
  3. 3. 性能要求:
    • • 延迟要求:针对低延迟需求的应用,可能需要更小的Zone Capacity以提高响应速度。
  4. 4. 存储效率:
    • • 空间利用率:考虑存储空间的利用率和碎片化情况,选择能够优化存储空间的配置。
  • • SM8366 具有可配置的数据流,支持在 SNIA 区域存储任务组定义的三种 ZNS 使用模型中灵活的区域配置。
  • • SM8366 支持 Turnkey ZNS 解决方案或完全自定义的 FTL,具有分层的 FW 架构。
  • • SM8366 展示了顶级的 ZNS IO 性能和能效。

性能指标

SM83666 ZNS QLC 使用 Micron N48R (U.2 16TB)

PCIe 接口

Gen5

128K 读取带宽 (GB/s)

14GB/s

128K 写入带宽 (GB/s)

2.2GB/s

4K 随机读取 (IOPS)

2.3M

顺序写入延迟 (4K)

7.39μs*

顺序读取延迟 (4K)

7.32μs*

随机读取延迟 (4K)

118.8μs*

*测量基于 SPDK

总结

本文介绍了使用灵活区命名空间配置来优化QLC固态硬盘(SSD)的应用程序。主要要点包括:

  1. 1. 为什么使用ZNS与QLC:使用ZNS可以解决固态硬盘不知道如何正确处理垃圾收集(GC)和写入顺序等问题,同时允许主机负责处理这些问题,并且只支持顺序写入。
  2. 2. ZNS的用途模型:ZNS有三种不同的用途模型,分别是单用户、多用户和混合工作负载。每种模型都有不同的性能指标和可扩展性需求。
  3. 3. ZNS的实现挑战:实现灵活的ZNS配置需要考虑许多因素,如高带宽写缓冲器大小、数据传输次数、等待时间等。此外,还需要考虑内部SRAM、DRAM和RAID校验和容量等因素对固态硬盘控制器的限制。

---【本文完】---

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

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

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

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

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