
按:QLC 高密度SSD 在云存储实践中,除FDP/ZNS等主控上改进措施之外,也需关注缓存层设计,Solidigm 提出 CSAL 缓存加速层来提高其 QLC 产品可用性。
1. CSAL是一种基于Flash Translation Layer(FTL)的共享无状态层,提供透明块设备供上层应用程序使用。
2. CSAL采用优化的NAND媒体作为缓存设备,减少写放大因子(WAF),并实现更快的缓存查找时间。
3. CSAL通过只读访问模式和高效的映射和查找来解决技术挑战,并提供了可扩展的NAND性能和容量以满足用户/工作负载需求。
Cloud Storage Acceleration Layer(CSAL)云存储加速层[1]。
CSAL 是一种写入整形缓存,可释放高密度 NAND 闪存介质的价值。通过利用主机端 FTL,CSAL 保留了现有的软件接口,同时将任何写入工作负载转换为顺序写入工作负载(降低写放大)。
众所周知 QLC SSD,随着容量密度不断提高,设备写放大问题不断突出,不仅降低写入效率,且减少QLC 硬盘实际可用寿命。
为改善QLC 高密度硬盘可用性,业界基于CSAL+SPDK协议,重塑IO写入QLC的系统堆栈,CSAL作为缓存加速软件实现部分,发挥重要作用。

CSAL(右) v.s 传统缓存层
CSAL 关键策略是利用 SCM SSD 作为缓存,将用户随机写入压缩并形成 SSD 友好写入。CSAL 设计的目标是最大限度地减少 NAND SSD 的系统级写入放大和损耗,从而提高基于 NAND 主存储的整体性能和系统耐用性。
CSAL 在三个方面改进了传统的缓存技术:
1. CSAL 使用超快写入缓冲区 (SCM) 对 QLC 设备的 I/O 写入进行“顺序化”处理,以提高系统级的性能和耐用性。
2. CSAL 整合并压缩缓存层中的大量用户写入,进一步延长容量层的耐用性和寿命:QLC NAND SSD。
3. CSAL 保证缓存层中的数据能在可预测的时间内写回容量层。
上图显示了传统写入缓存与写入整形缓存之间的主要区别(append-only write)。

CSAL IO系统堆栈设计
上图 显示了 CSAL 的整体架构。其中有几个要点需要强调:
1. CSAL 是一种通用的 SPDK 块设备 (bdev),可通过 SPDK 为 NVMe-oF 目标提供有机支持。
2. 应用读/写首先经过 SPDK 通用 bdev 层,然后进入 CSAL bdev。
3. CSAL bdev 层是一个虚拟化闪存转换层 (FTL) 设备,它利用 P5810 SSD 作为持久写入缓冲区和 L2P 表,将随机工作负载转变为序列工作负载。
4. FTL 将在 Solidigm P5810 上以 FIFO 日志的形式记录用户写入持久写缓冲区的 IO(追加写的实现),然后更新逻辑到物理 (L2P) 表,以指向 P5810 LBA。
5. 当缓存容量达到一定阈值时,FTL 后台压缩过程就会启动:
• 从 P5810 SSD 读取 FIFO 日志
• 清除无效日志
• 将有效日志作为大型顺序 IO 合并并写入 QLC SSD
• 更新 L2P 表以指向 QLC LBA。
6. 数据再次通过标准 SPDK bdev 写入 QLC 和 P5810 SSD。
7. FTL 设备类似于 SSD 设备,碎片整理旨在执行内务处理,为新写入内容保留可用空间。
为了实现上述数据转换,CSAL管理四个关键组件:
Note:最近在读JuiceFS的缓存实现方案,和CSAL大同小异。简单来理解,缓存的作用是先找个地方放着,去忙其他的,等堆积数据达到一定阈值,调度CPU来执行一定策略,在CSAL中是IO整合、压缩,写入容量层。

Solidigm:CSAL 云存储加速层实现与优势-Fig-1
CSAL 云存储加速层的发展历程
此外,在2024年的FMS会议上,CSAL又有新的进展,包括:

Solidigm:CSAL 云存储加速层实现与优势-Fig-2
CSAL追加缓存的功能特点:
右侧是一个系统结构示意图,显示了CSAL Append Cache是如何工作的。其中包含以下几个部分:
整个流程如下:虚拟机产生的新数据首先通过VHOST发送到CSAL Append Cache,然后由Append Cache追加到Base Device。由于WAF=1,说明追加缓存有效地降低了写入操作对存储设备的压力,从而提高了整体性能。

Solidigm:CSAL 云存储加速层实现与优势-Fig-3
高密度QLC SSD 的应用挑战
挑战:
解决方案:

Solidigm:CSAL 云存储加速层实现与优势-Fig-4
Open CAS(Open Cache Acceleration Software) 是一款开源的缓存加速软件,旨在通过在快速存储设备(如 NVMe SSD 或 Optane)与传统较慢存储设备(如 HDD 或 SATA SSD)之间配置缓存层,提升存储系统的整体性能。它的核心思想是利用高性能存储设备(例如 NVMe 驱动器)来加速对慢速存储设备的访问。
Open CAS 主要应用于那些需要大容量存储但也追求高性能的环境,如数据中心、虚拟化平台和高性能计算中,提供显著的 I/O 加速。

Open CAS v.s CSAL

Solidigm:CSAL 云存储加速层实现与优势-Fig-5
写入带宽(Write bandwidth):
写入99%延迟(Write 99th latency):
CSAL 持续提供更高的带宽,并且显著改善了写入延迟的质量保障(QoS)。

Solidigm:CSAL 云存储加速层实现与优势-Fig-6
读带宽(Read bandwidth):
读99%延迟(Read 99th latency):
CSAL 持续提供更高的读带宽,并显著改善了读延迟的质量保障(QoS)。

Solidigm:CSAL 云存储加速层实现与优势-Fig-7
Open-CAS 与 CSALappend 缓存之间的缓存设备写入放大因子(WAF)对比,这是衡量 SSD 写入效率的重要指标。
从图表可以看出:

Solidigm:CSAL 云存储加速层实现与优势-Fig-8
使用 CSAL 的缓存追加模式 带来了以下关键优势:
[1] 云存储加速层: https://www.solidigmtechnology.cn/products/technology/cloud-storage-acceleration-layer-write-shaping-csal.html