首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Solidigm:CSAL 云存储加速层实现与优势

Solidigm:CSAL 云存储加速层实现与优势

作者头像
数据存储前沿技术
发布2025-02-11 18:21:44
发布2025-02-11 18:21:44
6280
举报

按:QLC 高密度SSD 在云存储实践中,除FDP/ZNS等主控上改进措施之外,也需关注缓存层设计,Solidigm 提出 CSAL 缓存加速层来提高其 QLC 产品可用性。

关键要点

1. CSAL是一种基于Flash Translation Layer(FTL)的共享无状态层,提供透明块设备供上层应用程序使用。

2. CSAL采用优化的NAND媒体作为缓存设备,减少写放大因子(WAF),并实现更快的缓存查找时间。

3. CSAL通过只读访问模式和高效的映射和查找来解决技术挑战,并提供了可扩展的NAND性能和容量以满足用户/工作负载需求。

问题意识:CSAL What/Why?

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管理四个关键组件

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

Note:最近在读JuiceFS的缓存实现方案,和CSAL大同小异。简单来理解,缓存的作用是先找个地方放着,去忙其他的,等堆积数据达到一定阈值,调度CPU来执行一定策略,在CSAL中是IO整合、压缩,写入容量层。

Solidigm:CSAL 云存储加速层实现与优势-Fig-1

CSAL 云存储加速层的发展历程

  • • 在2022年,CSAL首次发布于SPDK 22.09版本,并且应用于阿里巴巴ECS D3C服务,用于计算密集型大数据本地磁盘实例。
  • • 到了2023年,在FMS会议上,CSAL的新发展包括成为SPDK参考存储平台RSP中的一个FTL,以及基于QLC和SLC的高密度设计。
  • • 而在2024年的EuroSys会议上,讨论了CSAL如何消除QLC采用的挑战,并提供了基于QLC的本地磁盘架构。

此外,在2024年的FMS会议上,CSAL又有新的进展,包括:

  • • FDP NVMe技术实现与PCIe Gen5缓存SSD的扩展;
  • • CSAL追加缓存;
  • • 在CXL上运行L2P的CSAL演示。

Solidigm:CSAL 云存储加速层实现与优势-Fig-2

CSAL追加缓存的功能特点

  • • 优化NAND介质作为缓存设备的使用(使用SLC取代SCM)
  • • 减少写放大因子(WAF)
  • • 更快的缓存查找时间

右侧是一个系统结构示意图,显示了CSAL Append Cache是如何工作的。其中包含以下几个部分:

  • • SPDK:一个为非易失性内存(如NVMe SSD)开发的开源软件包,用于提高I/O性能。
  • • VHOST:虚拟化主机,负责处理虚拟机的块设备请求。
  • • FTL bdev:闪存转换层(Flash Translation Layer),用于管理闪存设备上的数据布局。
  • • CSAL Hash Table:CSAL哈希表,用于快速定位数据。
  • • Append Cache:追加缓存,用于存放新增的数据。
  • • Base Device (NVMe Target):基础设备(NVMe目标),即底层存储设备。

整个流程如下:虚拟机产生的新数据首先通过VHOST发送到CSAL Append Cache,然后由Append Cache追加到Base Device。由于WAF=1,说明追加缓存有效地降低了写入操作对存储设备的压力,从而提高了整体性能。

Solidigm:CSAL 云存储加速层实现与优势-Fig-3

高密度QLC SSD 的应用挑战

挑战:

  • • 写放大的因素(WAF)
  • • 缓存碎片化
  • • 缓存查找延迟

解决方案:

  • • 不随机工作负载到缓存设备:确保一致的性能
  • • 只追加访问模式:最小化复杂性和磨损
  • • 高效映射和查找:对于较大的I/Os,只用一个哈希项
  • • 无共享架构

Solidigm:CSAL 云存储加速层实现与优势-Fig-4

比较 CSAL 和 Open CAS 的工作负载和设置(实测):
  • • 8 个任务(jobs)
  • • Zipfian 1.2 分布 – 强缓存局部性
  • • 读写比例:70:30
  • • IO 深度:128
  • • 块大小:64K
前提条件:
  • • 填充所有分区并执行顺序写入操作。
测试配置和设置:
  • • 软件:CSAL SPDK, Open-CAS 内核
  • • 硬盘:
    • • Solidigm Drives: D5-P5316 (QLC, 15 TB),
    • • D7-P5520 (TLC, 800 GB)
  • • 服务器:Intel® Xeon® Platinum 8380
  • • 操作系统:Fedora 39, 内核版本:6.8.7-200.fc39.x86_64

关于 Open CAS

Open CAS(Open Cache Acceleration Software) 是一款开源的缓存加速软件,旨在通过在快速存储设备(如 NVMe SSD 或 Optane)与传统较慢存储设备(如 HDD 或 SATA SSD)之间配置缓存层,提升存储系统的整体性能。它的核心思想是利用高性能存储设备(例如 NVMe 驱动器)来加速对慢速存储设备的访问。

Open CAS 的关键特性:
  • 缓存加速:通过将频繁访问的数据保存在高速缓存设备中,减少慢速存储设备的访问次数,从而提高读写性能。
  • 灵活配置:支持多种缓存配置模式,包括写回(write-back)、写通(write-through)和直通(pass-through)模式,以满足不同的应用场景和需求。
  • 开放源码:允许开发者和企业根据需要进行定制和优化,适用于各种企业级和云计算环境。

Open CAS 主要应用于那些需要大容量存储但也追求高性能的环境,如数据中心、虚拟化平台和高性能计算中,提供显著的 I/O 加速。

Open CAS v.s CSAL

Solidigm:CSAL 云存储加速层实现与优势-Fig-5

写入带宽(Write bandwidth):

  • • 与 Open CAS 相比,CSAL 在大部分测试中的带宽表现更加一致并且较高,基本维持在接近 586 MB/s 或更高的位置,表现出良好的稳定性。
  • • CAS 的表现相对不稳定,部分测试中带宽低于 586 MB/s。

写入99%延迟(Write 99th latency):

  • • 在延迟测试中,CSAL 的写入延迟显著低于 CAS,延迟大部分保持在 100 ms 以下,表现出较低的延迟。
  • • CAS 的延迟表现则比较高,大部分测试中的写入延迟接近或超过 300 ms,显示出更大的波动。

CSAL 持续提供更高的带宽,并且显著改善了写入延迟的质量保障(QoS)。

Solidigm:CSAL 云存储加速层实现与优势-Fig-6

读带宽(Read bandwidth):

  • • CSAL 在大多数测试中显示出更一致的读带宽表现,基本维持在接近或超过 146 MB/s 的水平。
  • • 相比之下,CAS 的读带宽波动较大,一些测试结果低于 146 MB/s,表现不如 CSAL 稳定。

读99%延迟(Read 99th latency):

  • • CSAL 在所有测试中,延迟都保持在较低的范围,大多数测试的延迟保持在 100 ms 以下,显示出非常稳定的读延迟。
  • • CAS 的延迟表现较高,很多测试结果在 200 ms 以上,延迟波动较大。

CSAL 持续提供更高的读带宽,并显著改善了读延迟的质量保障(QoS)。

Solidigm:CSAL 云存储加速层实现与优势-Fig-7

Open-CAS 与 CSALappend 缓存之间的缓存设备写入放大因子(WAF)对比,这是衡量 SSD 写入效率的重要指标。

  • • 写入放大因子(WAF) 是衡量 SSD 设备写入效率的一个重要指标,越低的 WAF 代表写入过程中的数据冗余越少,SSD 的寿命和性能也会越好。

从图表可以看出:

  • • CAS 缓存设备 的写入放大因子(WAF)约为 1.5,较高,表明其写入效率较低,存在较多的写入放大。
  • CSAL 缓存设备 的写入放大因子为 1.16,明显低于 CAS,显示其写入效率更高,写入放大效应较小。

总结

Solidigm:CSAL 云存储加速层实现与优势-Fig-8

使用 CSAL 的缓存追加模式 带来了以下关键优势:

  1. 1. 更高的读写带宽:CSAL 能够在不同负载下保持较高的带宽,无论是写入还是读取性能都优于传统方案。
  2. 2. 改进的尾延迟:CSAL 提高了缓存的尾延迟表现,意味着在高负载或极端情况下,延迟更加稳定,从而带来更好的服务质量(QoS)。
  3. 3. 写入放大因子更低:通过有效管理 SSD 的写入放大,CSAL 将 WAF 降低至接近 1.0,这显著延长了缓存设备的使用寿命,提高了耐用性。
引用链接

[1] 云存储加速层: https://www.solidigmtechnology.cn/products/technology/cloud-storage-acceleration-layer-write-shaping-csal.html

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

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

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

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

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