Skip to main content
QUICK REVIEW

[论文解读] Understanding NVMe Zoned Namespace (ZNS) Flash SSD Storage Devices

Nick Tehrany, Animesh Trivedi|arXiv (Cornell University)|Jun 3, 2022
Advanced Data Storage Technologies被引用 6
一句话总结

本文对NVMe Zoned Namespace(ZNS)SSD进行了系统性的性能评估,分析了Linux中的块级集成,发现要饱和设备带宽,需要较大的I/O大小(≥16KiB),且I/O调度器配置对性能的影响显著,具体取决于工作负载模式。本研究基于实测数据,为优化ZNS存储栈集成提供了初步指导,并指出了在区域管理与多工作负载干扰方面面临的关键挑战。

ABSTRACT

The standardization of NVMe Zoned Namespaces (ZNS) in the NVMe 2.0 specification presents a unique new addition to storage devices. Unlike traditional SSDs, where the flash media management idiosyncrasies are hidden behind a flash translation layer (FTL) inside the device, ZNS devices push certain operations regarding data placement and garbage collection out from the device to the host. This allows the host to achieve more optimal data placement and predictable garbage collection overheads, along with lower device write amplification. Thus, additionally increasing flash media lifetime. As a result, ZNS devices are gaining significant attention in the research community. However, with the current software stack there are numerous ways of integrating ZNS devices into a host system. In this work, we begin to systematically analyze the integration options, report on the current software support for ZNS devices in the Linux Kernel, and provide an initial set of performance measurements. Our main findings show that larger I/O sizes are required to saturate the ZNS device bandwidth, and configuration of the I/O scheduler can provide workload dependent performance gains, requiring careful consideration of ZNS integration and configuration depending on the application workload and its access patterns. Our dataset and code are available at https: //github.com/nicktehrany/ZNS-Study.

研究动机与目标

  • 系统评估将ZNS SSD集成到主机存储栈中(特别是块设备级别)的性能影响。
  • 识别出在ZNS设备上实现高性能的最优配置策略,尤其是I/O大小和调度器选择。
  • 为系统设计人员和应用开发人员提供可操作的开发指导,以针对ZNS存储进行优化。
  • 探讨在共享ZNS设备上,区域管理、垃圾回收和多应用干扰方面面临的问题。
  • 记录失败的实验和未来ZNS研究与集成中应避免的陷阱。

提出的方法

  • 使用标准化I/O工作负载,通过改变I/O大小,在顺序和随机读写工作负载下对ZNS SSD性能进行基准测试。
  • 评估不同I/O调度器(如mq-deadline、kyber)在不同访问模式下对ZNS设备性能的影响。
  • 通过Linux内核的dm-zap设备映射器模块实现并测试块级ZNS集成。
  • 分析高设备利用率(如95%满)下的垃圾回收行为和性能退化情况。
  • 通过公共GitHub仓库收集并发布完整数据集、基准测试脚本和配置说明。
  • 开展受控实验,评估多个应用共享同一ZNS设备或命名空间时的干扰情况。

实验结果

研究问题

  • RQ1在顺序和随机工作负载下,不同I/O大小和I/O调度器配置对ZNS SSD性能有何影响?
  • RQ2在不同集成级别(块、文件系统、应用)和设备利用率水平下,垃圾回收性能如何变化?
  • RQ3在相同ZNS设备上并发运行多个应用时,它们在垃圾回收和I/O调度方面相互干扰的程度如何?
  • RQ4在将ZNS设备集成到现有Linux存储栈时,主要的性能瓶颈和错误配置是什么?
  • RQ5当设备限制活动区域数量但不强制执行分配策略时,如何在多个命名空间和应用之间强制执行区域管理和公平资源共享?

主要发现

  • ZNS设备的顺序读取性能接近顺序写入的两倍,表明性能存在显著不对称性。
  • 需要16KiB或更大的I/O大小才能饱和设备带宽,表明小I/O在高吞吐量工作负载中表现不佳。
  • I/O调度器的选择(如mq-deadline与kyber)会导致工作负载相关的性能差异,没有单一调度器在所有场景下都最优。
  • 在95%设备利用率下,垃圾回收开销更加明显,尤其是在随机写入工作负载下,凸显了对工作负载感知调优的必要性。
  • 目前ZNS设备中缺乏对跨多个命名空间或应用的活动区域限制的强制管理机制,因此必须依赖外部区域管理以实现公平资源共享。
  • 本研究发现,现有软件栈缺乏原生的区域感知垃圾回收策略支持,且文件系统级别的优化(如按创建时间或死亡时间分组文件)可显著提升性能。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。