Zoned Namespace (ZNS) defines a new abstraction for host software to flexibly manage storage in flash-based SSDs as append-only zones. It also provides a Zone Append primitive to further boost the write performance of ZNS SSDs by exploiting intra-zone parallelism. However, making Zone Append effective for reliable and scalable storage, in the form of a RAID array of multiple ZNS SSDs, is non-trivial since Zone Append offloads address management to ZNS SSDs and requires hosts to dedicatedly manage RAID stripes across multiple drives. We propose ZapRAID, a high-performance log-structured RAID system for ZNS SSDs by carefully exploiting Zone Append to achieve high write parallelism and lightweight stripe management. ZapRAID adopts a group-based data layout with a coarse-grained ordering across multiple groups of stripes, such that it can use small-size metadata for stripe management on a per-group basis under Zone Append. It further adopts hybrid data management to simultaneously achieve intra-zone and inter-zone parallelism through a careful combination of both Zone Append and Zone Write primitives. We evaluate ZapRAID using microbenchmarks, trace-driven experiments, and real-application experiments. Our evaluation results show that ZapRAID achieves high write throughput and maintains high performance in normal reads, degraded reads, crash recovery, and full-drive recovery.
翻译:分区命名空间(ZNS)为宿主机软件定义了一种新的抽象,使其能够将基于闪存的SSD以仅追加区域的形式灵活管理存储。它同时提供了区域追加原语,通过利用区内并行性进一步提升ZNS SSD的写入性能。然而,在以多块ZNS SSD构成RAID阵列的可扩展可靠存储系统中,有效利用区域追加功能具有挑战性——因为区域追加将地址管理卸载至ZNS SSD,并要求宿主系统专门管理跨多块驱动器的RAID条带。我们提出了ZapRAID——一种面向ZNS SSD的高性能日志结构RAID系统,通过精细利用区域追加实现高写入并行度与轻量级条带管理。ZapRAID采用基于组的数据布局,并在多组条带间实现粗粒度排序,从而在区域追加机制下以组为单位使用小尺寸元数据进行条带管理。它进一步通过混合区域追加与区域写入原语,实现区内并行与区间并行的同步优化。我们通过微基准测试、轨迹驱动实验及实际应用对ZapRAID进行评测。评估结果表明,ZapRAID在常规读取、降级读取、崩溃恢复及全盘恢复场景中均能保持高写入吞吐量与优异性能。