XPU - 利用 RAID 卸载重新定义数据冗余(部分功能卸载到SSD)

2024-09-18 08:29:59 浏览数 (2)

XPU - 利用 RAID 卸载重新定义数据冗余(部分功能卸载到SSD) - RAID 卸载技术 - 使用 NVMe SSD 重新发明 RAID 和纠删码数据保护的新范式

术语

XPU: xPU 代表一系列架构(即 CPU、GPU、FPGA 和其他加速器),具体取决于应用

简介

数据冗余解决方案

(例如 RAID1或 Erasure Code2)本质上是计算密集型的,并且在写入操作路径中消耗大量 DRAM 带宽。特别是,RAID 解决方案还会导致 CPU(中央处理器)缓存抖动。随着 NVMe™ SSD 添加到系统中,读/写性能会随着每一代 PCIe® 翻倍。SSD 性能的提升已将性能瓶颈转移到这些数据冗余解决方案上,无论是硬件还是软件(图 1)。 为了利用这种转变,KIOXIA 开发了 RAID 卸载技术,该技术将 RAID 计算和 DRAM 利用率卸载到 SSD 上。RAID 卸载技术是一种横向扩展解决方案,因此随着 SSD 数量的增加,性能可以按比例扩展。它还可以非常灵活地与现有的硬件和软件 RAID 应用程序一起使用,提供以下优势: • 增强性能 • 减少内存墙问题 • 优化 CPU 核心和 DRAM 带宽使用率 • 降低总拥有成本 (TCO) 所有这些优势都是在利用现有的成熟 RAID 堆栈和用户界面时实现的

RAID 问题

原始 NVMe SSD 性能的大幅提升已将瓶颈从存储转移到堆栈中的更高层(硬件和软件 RAID实现),而这些层无法很好地扩展: • 软件 RAID 是内存和计算密集型的。 • 在一个 SSD 上进行 RAID 5部分条带写入时,数据要穿过 DRAM 接口十次。 • 一次 RAID 5 全条带写入穿过 DRAM 接口的数据量 = (n-1) * 3 * 段大小

  • 段大小 = RAID 条带中一个磁盘上存储的数据量。
  • n = RAID 5 中的 SSD 数量。 • RAID 6和擦除编码增加了权重乘法成本,导致 DRAM 带宽、计算周期和 CPU 缓存增加, 几年前,业界将计算和 DRAM 带宽转移并卸载到硬件 RAID 解决方案。这种策略在硬盘驱动器 (HDD) 上效果很好,但随着 PCIe 接口上 NVMe SSD 的出现,硬件 RAID 解决方案面临相同的计算和 DRAM 带宽问题,并成为瓶颈。下图(图 2)描述了硬件或软件 RAID 应用程序消耗的 DRAM 带宽水平(具体实施情况),以提供每秒 1 千兆字节 (GB/s) 的 RAID 写入性能

RAID 卸载架构

使用 PCIe® 接口功能,NVMe™ SSD 可以启用计算内存卸载功能。KIOXIA 可能会为其NVMe SSD 产品线添加以下卸载功能以启用 RAID 卸载: • 用于 Galois 域计算的并行奇偶校验计算引擎: (例如,RAID 6 PQ(https://www.kernel.org/pub/linux/kernel/people/hpa/raid6.pdf),EC擦除码) CPU 通常计算多个缓冲区的奇偶校验计算,而奇偶校验计算引擎可以更有效地计算奇偶校验,从而减轻了CPU 的负载。 • 用于缓冲区到缓冲区数据复制的直接内存访问 (DMA) 引擎: DMA 引擎促进缓冲区之间的批量数据移动。应用程序可以自由地利用来自 CPU、 数据处理单元、智能网络接口卡(即 SmartNIC)、RAID 控制器等的外部 DMA 引擎。对于 RAID 应用程序,可以选择使用 RAID 卸载 DMA 引擎来减少主机系统的 DMA 引擎使用。 • 控制器内存缓冲区 (CMB): NVMe 控制器内存缓冲区功能(1.2 版及以上版本)公开了部分 NVMe 子系统的控制器内存供主机 应用程序使用。KIOXIA 企业级 SSD 可能支持 256 兆字节(MB) 的 CMB。 • 建议增加两个新的 NVMe 命令以实现标准化: 行动呼吁:TPAR 已引入 RAID 卸载技术,并且正在 NVMExpress™ 技术工作组中积极讨论。贡献成员可以查看并评论此提案。 为了描述 SSD RAID 卸载的构建方式,有几个关键点。例如,DMA 引擎可以访问整个主机地址空间

包括条形映射对等 CMB。主机管理 CMB 缓冲区、任何虚拟寻址、Galois 生成器方程和错误处理(例如写入洞)。奇偶校验计算卸载不会影响常规读/写操作的性能。下面显示的是 SSD RAID 卸载构造

RAID 卸载好处

下图(图 4)比较了传统 RAID 5 解决方案与 RAID 卸载解决方案的 4 KiB写入操作的数据流。请注意,主机可以选择如何最佳地利用对等 CMB 数据移动

左侧是传统RAID5方案, 右侧是新的RAID卸载方案

简单的 4 KiB RAID 5 写入操作需要从 SSD 读取两次并生成新的奇偶校验,然后对 SSD 进行两次写入。下表总结了 4 KiB RAID 5 写入操作的资源使用情况。

对于部分条带写入中写入的每 4 KiB,DRAM 使用量为 40 KiB,CPU 进程使用量为 24 KiB。CPU 处理的 24 KiB 数据将被缓存,留给其他应用程序的缓存较少。 下表(图 5)显示了 mdRAID 57 的有限概念验证 (PoC) 结果。在此示例中,由于 PoC 平台限制,写入带宽限制为 950 MiB/s。对于给定的性能,带有 RAID Offload 解决方案的 mdRAID 5 软件可将宝贵的 DRAM 使用量减少 91%,将 CPU 使用量减少 12%

结论

KIOXIA NVMe™ SSD 提供基于标准、主机编排的横向扩展和可持续解决方案,以卸载 RAID 奇偶校验计算。该技术释放了宝贵的主机 CPU、内存和缓存资源,现在可用于加速主要应用程序。RAID 卸载技术可以提高服务器和存储系统的性能并提高电源效率。随着卷中 SSD 数量的增加,RAID 卸载技术会随着 SSD 数量的增加而扩展(横向扩展)。现有的 RAID 和擦除编码硬件和软件解决方案可以通过两个新提出的 NVMe 命令利用 RAID 卸载技术。除了卸载任务之外,现有的 RAID 和擦除编码应用程序可以继续利用多年来开发的 RAID 算法、设备管理和错误处理。这些 RAID 应用程序可以使用 RAID 卸载技术来优化吞吐量和延迟、自定义数据流和擦除码算法。RAID 卸载技术是一种高度通用的解决方案,可用于如下所述的应用程序采用(图 6)

KIOXIA 开发的 RAID Offload 技术在构建针对延迟和吞吐量进行优化的数据冗余解决方案时提供了主机灵活性。它还可以在 SSD 的最大顺序写入性能下初始化或重建 RAID 卷。RAID Offload 技术重新构建了经过验证的数据保护技术,使 NVMe™ SSD 存储能够消除传统的性能瓶颈。

存储服务演进

  • 存储服务中的数据冗余需要大量计算资源
  • xPU 正在逐步卸载和加速存储服务堆栈
  • 未来 xPU 将面临性能挑战 – NVMeTM 性能随着每一代 PCIe® 的推出而不断翻倍

数据冗余有哪些挑战?

  • 奇偶校验计算(XOR)占用大量内存带宽和 CPU
  • RAID 5 部分条带写入需要约 10 倍 DRAM 吞吐量,例如,适度的 4KB 块 RAID 5 写入将消耗 40KB DRAM 带宽(写放大10倍)
  • RAID 6/擦除编码 (EC) 会使问题更加严重
  • 系统资源配置过多以满足这些需求(资源存在浪费)

xPU 如何利用 RAID

KIOXIA NVMe SSD 功能(部分功能卸载到SSD中) – 控制器内存缓冲区 (CMB) 用于卸载 DRAM – 异或 (XOR) 引擎用于计算最多 8 个奇偶校验 – 直接内存访问控制器 (DMAC) • 将数据放置在主机地址空间中(包括远程 CMB) • RAID 卸载支持并行计算和线性扩展

xPU 如何利用 RAID – 命令流示例

  • 新数据从最上层的NVMe-OF进来
  • EC/RAID驱动之下是CMB内存池
  • 部分功能卸载到xPU
  • CMB和XOR直接在SSD内部计算, 校验块根据数据块计算而来

为什么 xPU 应该利用 SSD RAID 卸载?

xPU 可以利用自己的加速器,但为什么要卸载到 SSD? • 加速器的性能将受限于设计时间考虑因素 • 高内存带宽要求增加了 xPU 的成本 • SSD 卸载可以随着每个 SSD 添加到集群而线性扩展 通过卸载…… • 节省计算和内存带宽以实现增值存储功能 • 可以将数据清理等丢弃操作卸载到 SSD;将数据清理操作转移到 SSD 可减少 99% 的数据移动 • 开发经济高效的数据处理系统和解决方案 • xPU 可以利用其远程直接内存访问 (RDMA) 功能扩展 RAID 解决方案

CPU 上的 RAID 卸载概念验证 (PoC) 结果

  • 利用FIO测试, 512K随机写, 性能为950MB/s
  • CPU利用率降低12%
  • DRAM带宽利用率下降91%
  • 数据清理 PoC 结果 CPU : 从清理时间, DRAM带宽占用, CPU利用率, L3缓存miss, PCIE总写入带宽对比都有较好的性能提升

xPU 与 SSD 联手打造经济高效的存储服务解决方案

此外,KIOXIA 正在探索 RAID Offload 之外的卸载功能

晓兵(ssbandjl)

博客: https://cloud.tencent.com/developer/user/5060293/articles | https://logread.cn | https://blog.csdn.net/ssbandjl | https://www.zhihu.com/people/ssbandjl/posts

https://chattoyou.cn(吐槽/留言)

DPU专栏

https://cloud.tencent.com/developer/column/101987

技术会友: 欢迎对DPU/智能网卡/卸载/网络,存储加速/安全隔离等技术感兴趣的朋友加入DPU技术交流群

0 人点赞