分享

发布于 August 31, 2023

作者 Sarika Mehta, Kapil Karkra, Wayne Gao

文章预计阅读时间

云存储加速层 (CSAL) 的优势

Solidigm 利用 CSAL 写入整形来改善高密度 QLC SSD 的 TCO

 Cloud storage acceleration layer depicted with a data point overlay on a real-world intersection.
 Cloud storage acceleration layer depicted with a data point overlay on a real-world intersection.

当前的数据中心空间和功耗预算正试图跟上前所未有的数据增长,以及对足够存储性能的需求,以便将数据反馈给用户或人工智能训练模型。业界迫切需要高密度存储,以最大限度地利用现有数据中心空间。 当 HDD 领域正在努力寻找提高密度和性能的方法,Solidigm 的 3D NAND QLC SSD 已经实现了这两项目标,事实上,自 2018 年以来就一直在生产。 凭借最新的 61.44TB D5-P5336 3D NAND QLC SSD,Solidigm 推出了迄今为止最大容量的 NAND 驱动器,其成本和性能优势可帮助数据中心实现更高的密度。 适用于混合工作负载的 CSAL + 高密度驱动器 Solidigm D5-P5336 等高密度 QLC SSD 已经为读取密集型应用带来了益处,那么对于混合工作负载和数据放置应用又如何呢? 为了进一步扩大高密度 Solidigm 61.44TB SSD 在混合工作负载和新兴 NVMe 设计(如数据放置技术,如流、灵活数据放置 (FDP) 和分区命名空间 (ZNS))方面的应用优势,Solidigm 团队正在利用 CSAL(云存储加速层),这是存储性能开发工具包 (SPDK) 中的一个新的开源云级共享无存储软件层(bdev,即块设备)。 CSAL 支持灵活设计,可提高整个平台的 SSD 耐用性。这使得该解决方案能够通过新兴存储级内存 (SCM) SSD(如 Solidigm 的第一代 SLC SSD)保持较高的应用写入性能,并且,通过利用低成本和高密度 QLC 存储 ,同时利用 Solidigm QLC SSD 提供的 TLC 等效读取性能,可以优化 TCO。[1] 图 1 显示了内存分层结构,最慢的层位于金字塔底部,最快的层位于金字塔顶部。

从存档存储到 QLC、TLC、SLC、CXL、DRAM 再到 CPU 缓存的分层结构图

图 1. 存储分层结构中的 SLC SSD 和 QLC SSD

写缓存架构概述

在传统的缓存架构中,高性能存储(如存储级内存 (SCM) SSD)放置在主存储(如 QLC SSD)之前。数据写入缓存层后,系统会立即向用户或应用程序确认写入,而不是直接将数据写入主存储。然后,数据被写回到容量层。

传统缓存可以帮助高密度 NAND 介质保持每 TB 的写入性能,并提高高时间局部性工作负载的耐用性。例如,高性能、高耐用性的 SCM 层可以吸收频繁更新的写入,而无需将其发送到 QLC NAND 层。

CSAL 如何提高平台性能和耐用性

CSAL 的关键策略是利用 SCM SSD 作为缓存,将用户随机写入压缩并形成 SSD 友好写入。CSAL 设计的目标是最大限度地减少 NAND SSD 的系统级写入放大和损耗,从而提高基于 NAND 主存储的整体性能和系统耐用性。

CSAL 在三个方面改进了传统的缓存技术:

  1. CSAL 使用超快写入缓冲区 (SCM) 对 QLC 设备的 I/O 写入进行“顺序化”处理,以提高系统级的性能和耐用性。
  2. CSAL 吸收并压缩缓存层中的大量用户写入,进一步延长容量层的耐用性和寿命:QLC NAND SSD。
  3. CSAL 保证缓存层中的数据能在可预测的时间内写回容量层。

下图 2 显示了传统写入缓存与写入整形缓存之间的主要区别。

图 2. 传统写缓存与 CSAL 设计之间的差异

云存储加速层 (CSAL) 架构概述

在给定的场景中,CSAL 在高性能存储系统的 SPDK 中实现。SPDK 提供了从逻辑卷、通用块层到 NVMe 驱动器的全栈存储系统。CSAL 在 SPDK 块层中实现,并以虚拟块设备的形式公开,该虚拟块设备由两个物理块设备组成:

  • SLC SSD,作为缓存层
  • QLC SSD,作为容量层

存储应用程序,如 NVMe-oF (NVMe over Fabrics),可以使用此虚拟块设备作为通用块设备。

采用 QLC + SLC 架构的 CSAL 图形

图 3. 写入整形缓存块示意图

图 3 显示了 CSAL 的整体架构。其中有几个要点需要强调:

  1. CSAL 是一种通用的 SPDK 块设备 (bdev),可通过 SPDK 为 NVMe-oF 目标提供有机支持。
  2. 应用读/写首先经过 SPDK 通用 bdev 层,然后进入 CSAL bdev。
  3. CSAL bdev 层是一个虚拟化闪存转换层 (FTL) 设备,它利用 SLC SSD 作为持久写入缓冲区和 L2P 表,将随机工作负载转变为序列工作负载。
  4. FTL 将在 Solidigm SLC 上以 FIFO 日志的形式记录用户写入持久写缓冲区的 IO,然后更新逻辑到物理 (L2P) 表,以指向 SLC LBA。
  5. 当缓存容量达到一定阈值时,FTL 后台压缩过程就会启动:
    • 从 SLC SSD 读取 FIFO 日志
    • 清除无效日志
    • 将有效日志作为大型顺序 IO 合并并写入 QLC SSD
    • 更新 L2P 表以指向 QLC LBA。
  6. 数据再次通过标准 SPDK bdev 写入 QLC 和 SLC SSD。
  7. FTL 设备类似于 SSD 设备,碎片整理旨在执行内务处理,为新写入内容保留可用空间。

为了实现上述数据转换,CSAL 管理四个关键组件:

  • 逻辑到物理地址表
  • 持久写入缓冲区
  • 压缩工作程序
  • 垃圾收集 (GC) 工作程序

CSAL 开源部署

CSAL 软件解决方案架构不局限于任何特定的硬件架构,可以部署在包括 Intel、AMD、ARM、IPU/DPU、GPU 等在内的各种服务器架构上。我们渴望看到开源社区的参与和对各种架构支持的有机增长。

 

CSAL:底线

CSAL 是一种写入整形缓存,可释放高密度 NAND 闪存介质的价值。通过利用主机端 FTL,CSAL 保留了现有的软件接口,同时将任何写入工作负载转换为顺序写入工作负载。此外,CSAL 还能在 SLC SSD 上缓存频繁更新或临时数据,从而最大限度地降低写入频率。

通过这两种策略,CSAL 增强了整个平台的耐用性并提供了应用性能。CSAL 是一种软件定义的灵活存储架构,适用于下一代媒体和数据放置技术。它很容易在数据中心进行横向扩展,并且可以轻松调整以满足各种性能和 TCO 要求。

参考资料

[1] https://www.solidigm.com/products/data-center/d5/p5336.html

补充阅读

在粗粒度间接单元 SSD 上实现最佳性能和耐用性

IDC 全球 DataSphere 预测,2022 年 5 月

Open-CAS / standalone-linux-io-tracer

作者简介

Sarika Mehta 是存储解决方案架构师,拥有 15 年以上的存储经验。她致力于与 Solidigm 客户和合作伙伴密切合作,以优化其存储解决方案的成本和性能。 Kapil Karkra 是 Solidigm 的高级首席工程师兼首席存储平台架构师,负责云存储加速层 (CSAL)(基于主机的 FTL)的架构。他目前的工作重点是定义一个包括软件和硬件在内的交钥匙参考存储平台 (RSP),该平台有助于深入了解云计算用例,并加快高密度 NAND 固态硬盘的开发和采用。Kapil 拥有超过 25 年的存储经验,并拥有超过 20 项专利申请/授权。Kapil 拥有印度国家理工学院 (NIT) 电气工程学士学位和亚利桑那州立大学 MBA 学位。 Wayne Gao 是一名存储解决方案架构师兼首席工程师,曾参与从 PF 到 Alibaba 商业版的 CSAL 项目。作为前 DellEMC ECS 全闪存对象存储团队成员,Wayne 拥有 20 多年的存储开发经验,拥有 4 项美国专利申请/授权,发表了 1 篇 EuroSys 论文。

CSAL data shaping for write-intensive workloads