问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

SSD写放大与数据放置技术:从原理到实践

创作时间:
作者:
@小白创作中心

SSD写放大与数据放置技术:从原理到实践

引用
1
来源
1.
https://cloud.tencent.com/developer/article/2495674

随着数据的增长速度呈指数级上升,云原生时代的到来进一步加剧了对高性能、低成本存储解决方案的需求。然而,随着存储利用率的提升,基于SSD的存储系统面临着一个严峻的挑战——写放大(Write Amplification Factor, WAF)。本文将深入探讨SSD写放大的原理、数据放置技术的发展历程及其在实际应用中的优势,并分析不同标准化接口的优劣,帮助读者全面理解这一领域的最新进展。


20250207-1830.png

海量数据增长

  • 云原生时代加剧了对高性能和低成本存储解决方案的需求。
  • 为了降低每GB的成本,数据中心正积极寻求尽可能多地利用可用存储容量。
  • 随着存储利用率的提高,基于SSD的存储会增加其内部写放大,导致以下问题:
  • 过度的写入活动,主要是由于SSD垃圾回收
  • 随着更多写入操作损耗SSD的存储介质,耐用性降低
  • 由于功耗增加,基础设施成本更高

引用:“为了实现这些设备级别的写放大(1.1x 和 1.4x),闪存通常会超配50% (…) 但在维持当前性能水平的同时减少闪存超配,是Facebook面临的一个开放挑战。” 来源:CacheLib 缓存引擎:设计与经验,OSDI 2020

通过极端超配(例如50%)来实现高性能,但代价是双倍的媒体成本。


20250207-1830-2.png

什么是写放大(WAF)?

  • 写入放大是由于主机接口与SSD的媒体接口(NAND闪存)对齐失败造成的。
  • 减少写入放大的常规方法:
  • Trim/Unmap/DSM(解除分配)
  • 主机和设备超配
  • 数据放置:
  • 流、I/O确定性、区域命名空间、灵活的数据放置
  • 多流(2014),软件定义闪存(2014),开放通道SSD(2014, 2017),应用管理闪存(2016),等等
  • 活跃的研究话题
  • 标准化:

与 WAF 相关的文章

  1. FDP与SSD主控创新
  • 本文详细介绍了FDP(Flexible Data Placement)技术,该技术通过允许主机系统指导数据放置,优化存储资源的使用,减少数据访问延迟,提升读写性能,并显著降低写放大因子(WAF)。
  1. Samsung:FDP +CacheLib 改善写放大与时延
  • 该文章探讨了FDP与CacheLib结合使用的效果,展示了如何通过用户自定义数据放置策略来优化缓存系统,从而显著提升系统性能并降低写放大因子。
  1. WD(西数):规模化部署ZNS-SSD
  • 文章中提到ZNS(Zoned Namespaces)技术通过固定大小的区域用于数据放置,有效消除了SSD的垃圾收集(GC)和写放大(WAF),提升了性能和寿命。
  1. Micron:验证16KB IU对SSD_WAF的影响
  • 本文分析了16KB Indirection Units(IU)对SSD写放大因子的影响,指出虽然16KB IU在内存占用上有优势,但可能会影响写放大因子,尤其在未对齐写入的情况下。
    以上文章均深入探讨了SSD写放大的相关技术与优化方法,适合对存储技术感兴趣的读者。


20250207-1830-3.png

发展历程

展示了过去十年中,数据放置技术的发展历程。自2014年以来,随着多流技术、软件定义闪存和应用管理闪存等的引入,数据放置技术持续演进。之后,开放通道SSD和NVMe标准的升级(如NVMe 1.3和1.4版本的流和I/O确定性等)进一步推动了存储技术的革新。2020年以后,区域命名空间(ZNS)和灵活的数据放置(FDP)等技术的引入,推动了西部数据在存储领域的创新。2024年,西部数据继续在此领域推出了新的产品,如Ultrastar® DC SN861(FDP)。


20250207-1830-4.png

技术优势

  • 提升性能:降低写入放大可以转化为更快的写入速度和更好的服务质量(QoS)性能。
  • 减少超配:数据放置允许更好地利用SSD的原始容量。
  • 增加耐用性:减少SSD的磨损,延长其使用寿命。


20250207-1830-5.png

接口总结

详细对比了几种数据放置接口的不同特性:Streams、FDP(Stream 和完整主机集成)以及Zoned Namespaces。

  • StreamsFDP(Stream)模式中,写入命令和流ID或重申请单位ID用于数据放置,且WAF值通常高于1,要求超配以减少写入放大。
  • 与此不同,Zoned Namespaces模式要求主机拥有所有数据放置,写入命令中使用重申请单位ID,同时设备与主机状态同步,从而确保WAF值为1。此外,放置跟踪、单位状态通信和数据管理的方式在这些接口间有所不同。

20250207-1830-6.png


20250207-1830-7.png

生态系统

数据放置生态系统的不同组成部分。它包括了灵活的数据放置,通过添加对核心工具的支持,并通过passthru内核API来利用数据放置功能。对于区域存储(如SMR、ZNS和区域UFS),得到了更广泛的支持,尤其是在标准化早期和多种存储设备类型的推动下。幻灯片还列出了与数据放置相关的开发库、工具以及缓存和存储系统,如CacheLib和CSAL。对于区域存储专用的部分,展示了高性能数据库(如Percona和RocksDB)、分布式存储(如Ceph和OpenEBS)以及本地文件系统(如f2fs和xfs)等相关应用。

Note
之前整理过不少关于FDP和ZNS的技术材料,通过本文可以梳理清楚一点:FDP 数据放置是更大的应用范畴,ZNS是解决数据放置问题的经典途径之一,除此之外还有传统的方案,基于 CacheLib(Samsung 主导) 和 CSAL(Solidigm 主导)。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号