前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >DapuStor:计算型存储 Stream CSD

DapuStor:计算型存储 Stream CSD

作者头像
数据存储前沿技术
发布2025-02-11 18:42:52
发布2025-02-11 18:42:52
1130
举报

按:Stream CSD在SSD侧构建语义层(类似文件系统),将部分计算任务下沉到SSD中,创新点是主控上接口开发及操作系统层面用户态调用。

问题意识

  • 存储行业中的挑战与趋势:在存储行业快速发展的背景下,面临哪些关键挑战,尤其是在数据存储和处理需求不断增长的情况下,如何应对新兴的技术需求。
  • NAND 闪存中的垃圾回收效率:NAND 闪存中垃圾回收(GC)机制的效率问题对整体存储性能产生了显著影响,需要深入分析和优化,以避免过度的写放大和性能瓶颈。
  • 块接口税与优化方法:当前块接口的高开销(即“块接口税”)是制约存储性能的因素之一,如何通过有效的技术手段(如 DapuStor StreamCSD)来降低这种开销,从而提升系统的整体效率。

NAND 原厂面临的行业压力

  • • 营业利润(亏损):三星、SK 海力士、美光和铠侠在其 NAND 业务上累计亏损了 245.93 亿美元。
  • • 难以在 2024 年底之前恢复这些亏损。

其中从年增长率来看,存储厂商 SK Hynix 的下降幅度更大。

全球数据加速积累,对高效存储技术提出更多需求。

Note:从云厂商IaaS资源池来看,80%数据存储在HDDs,20%是高性能SSD。

参考阅读:

NAND 存储的经典问题:写放大(WA)与垃圾回收(GC)

NAND 存储中的写放大(Write Amplification, WA)垃圾回收(Garbage Collection, GC)是影响性能和寿命的两个经典问题:

1. 写放大(WA): 写放大是指为了写入一定量的数据,NAND 闪存中实际写入的数据量往往会大于用户请求的数据量。这种现象主要是由于 NAND 闪存的“擦除块(Erase Block)”操作需要在更新数据时重新组织存储单元。写放大会导致更多的写入操作,增加了存储单元的磨损,缩短了 NAND 的寿命,同时还降低了写入性能。 2. 垃圾回收(GC): 垃圾回收是 NAND 闪存中用于回收无效数据空间的过程。由于 NAND 闪存只能擦除整块数据而不能逐字节擦除,因此当数据被更新或删除时,原位置的数据会被标记为无效。为了释放空间,GC 过程会定期将有效数据移动到新的位置,并擦除整块包含无效数据的存储单元。这一过程可能会触发额外的写操作,加剧写放大,进一步影响性能。 这两个问题相互影响:频繁的垃圾回收会增加写放大,而写放大又会导致更多的垃圾回收需求。因此,优化 WA 和 GC 是 NAND 存储系统设计中的核心挑战,直接关系到设备的性能和耐久性。

图左示意两种常见下的GC效率:

  • • 左1 File 乱序写入SSD页,分布在不同块上,文件操作后GC过程需擦除原页,并迁移数据到新页,造成额外的数据写入和空间占用;
  • • 左2 File 顺序写入SSD页,集中分布在相同/邻块上,GC过程相对简单,迁移和额外写入量少。

上述问题课题研究

图中从左至右,讨论了几种优化方案。

  • • 左1 传统SSD方案,没有在SSD 页/块 层面做优化,写放大和GC影响明显;
  • • 左2 主机侧优化的写入方案,以ZNS方案为代表,文件写入到SSD之前,需Host参与页面分配和写入顺序规划;
  • • 左3 主机侧不参与,内核(文件系统?)优化
  • • 左4 DapuStor 方案[1]:StreamCSD,无需Host、OS定制优化,在SSD侧完成数据重排写入,并将其定义成计算型存储(CSD)

Note:这和海外厂商以压缩、加密、搜索、重删等场景定义计算型存储,还是有些差异的,如果StreamCSD的实现是通过文件系统下沉SSD完成的,那这个方案和国内忆芯的CSD就非常接近了,一体两面,核心都是基于文件系统来完成。

参考阅读

STARBLAZE(忆芯):SSD中分布式软件架构

前面讨论的问题,优化方案和实现逻辑:聚类

根据文本格式和数据结构,不同的数据(场景)适配不同的聚类算法。

这里简要介绍下 TF-IDF 和 K-means 聚类

1. TF-IDF(Term Frequency-Inverse Document Frequency) TF-IDF 是一种常用的文本特征提取方法,用于衡量一个词语在文档中的重要性。它主要通过两个要素来计算:

  • • 词频(TF):一个词在文档中出现的次数,表示该词在文档中的重要性。如果某个词在文档中出现频率高,则该词对该文档的描述性较强。
  • • 逆文档频率(IDF):衡量一个词在整个文档集中的稀有性。如果一个词在多个文档中出现频率较低,则该词的重要性更高。

TF-IDF 的结果是一个特征向量,表示每个词在文档中的权重。它在信息检索和文本分析领域广泛应用,例如搜索引擎中的关键字匹配、文本分类和聚类等。 2. K-means 聚类 K-means 是一种常见的无监督聚类算法,目的是将数据集划分为 KKK 个相互独立的簇(cluster),使得同一簇内的数据点尽可能接近,而不同簇之间的数据点相对较远。K-means 的主要过程如下:

  • • 初始化:随机选择 KKK 个初始中心点。
  • • 分配:将每个数据点分配到距离最近的中心点所在的簇。
  • • 更新:重新计算每个簇的中心点,即该簇内所有数据点的均值。
  • • 重复:重复“分配”和“更新”步骤,直到中心点不再变化或达到预设的迭代次数。

K-means 的优点是计算简单、收敛速度快,适合处理大规模数据集。但它对初始中心点敏感,容易陷入局部最优,而且只适合球状簇(簇内数据点的距离较均匀)。

左下柱状图显示:不同方案的计算敏感性,其中:

  • • TF-IDF 方案需要大量计算过程,相比之下,基于CSD方案,可以降低Host侧的计算压力。

StreamCSD 设计概述

固件运行流程(Firmware Running Process):

  • • 写请求首先进入内容学习加速器(Content Learning Accelerator),通过压缩比(CR)等特征来识别数据并分类。
  • • 数据流通过基于学习的流映射算法分类并生成 LearnedID。
  • • 之后进入辅助寿命映射模块,根据数据流的寿命(Lifetime)等信息进一步细化流映射。
  • • 最终由GC 引导的流重新映射模块,根据寿命信息进行流的冷、冻结等管理,优化写入操作的存储位置。

关键步骤

  • • 使用 压缩比(CR,Compression Ratio) 将数据页划分到不同的学习流中。
  • 写放大因子(WAF)改善
    • • 左侧图表展示了不同流策略下的写放大因子(WAF)表现,越低越好。StreamCSD 在 Microbench、RocksDB、MySQL 和 SQLite 等应用中表现出显著的写放大因子降低。
  • SSD 性能基准测试
    • • 右侧图表展示了在不同流策略下的 SSD 性能(吞吐量)基准测试,越高越好。StreamCSD 在各项测试中的性能表现相当,甚至更优。
  • • StreamCSD 在写放大因子方面实现了最高 63.4% 的降低
  • • StreamCSD 提供了与其他主机参与方法相媲美的性能。

关于 SingleStream

SingleStream 是一种数据流管理策略,通常用于 NAND 存储系统中。它的核心思想是将所有数据统一分配到一个数据流(stream)中进行写入管理。这种方式相对简单,适用于一些不需要精细化管理的场景,但在实际应用中也有其明显的优势和劣势。 1. SingleStream 的主要特点 - 简单性:SingleStream 不进行数据的细化分类或动态管理,所有数据无论特性如何,统一分配到同一个流中,这使得实现成本低,适合简化设计的存储系统。 - 固定化管理:由于不区分数据特性,SingleStream 不会根据数据的写入频率、寿命或压缩比等因素进行动态调整,所有写入操作都以相同方式处理。 2. SingleStream 的优势 - 低实现成本:SingleStream 不需要复杂的硬件或固件支持来识别和分类数据,因此在系统资源有限或需求简单的环境下具有较高的性价比。 - 降低管理开销:相较于其他精细化的流管理策略,如 MultiStream 或 StreamCSD,SingleStream 减少了数据分流的管理开销,操作流程简单直接。 3. SingleStream 的劣势 - 写放大(WA)较高:由于缺乏对数据特性的区分,SingleStream 在 NAND 闪存中的写入效率较低。垃圾回收操作(GC)中需要频繁地移动和擦除数据,从而导致写放大因子(WAF)增高,加速了 NAND 单元的磨损。 - 性能瓶颈:在某些高频写入或高并发的场景下,SingleStream 可能无法充分发挥存储硬件的性能潜力,导致整体系统的读写性能较低。 4. SingleStream 的应用场景 SingleStream 适用于以下场景: - 低写入频率应用:在数据写入频率较低的场景下,SingleStream 的性能表现尚可,且能减少管理复杂性。 - 简化系统需求的设备:一些低端存储设备或资源受限的系统,可能会选择 SingleStream 策略,以节约硬件成本。 5. 与其他流策略的对比 SingleStream 与 MultiStream、StreamCSD 等策略相比,虽然实现简单,但在写放大因子和性能上有明显的差距。其他精细化的流管理方法会根据数据特性(如压缩比、寿命等)进行分流优化,这样能更好地控制写放大,提升性能和设备寿命。然而,这些方法往往需要更高的实现成本。

总结

  1. 1. DapuStor的解决方案:StreamCSD技术,通过使用压缩率将数据页面划分为不同的学习流以降低写放大(WAF),并提供与主机参与方法相当的性能。
  2. 2. StreamCSD的优势包括改善SSD性能、延长驱动器寿命、降低成本等。
  3. 3. DapuStor的目标是为用户提供透明易用的产品,并帮助行业解决GC/WAF问题,平衡需求趋势和NAND供应
引用链接

[1] DapuStor 方案: https://www.dapustor.com/product/14.html

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 问题意识
    • NAND 原厂面临的行业压力
    • 上述问题课题研究
    • StreamCSD 设计概述
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档