一句话:ZRAID 利用 ZRWA 在数据区内暂存部分奇偶校验,消除 ZNS RAID 吞吐瓶颈并降低写放大。
ZNS SSD 可缓解传统块接口开销,但用其构建 RAID 时,不完整条带的部分奇偶校验难以管理。已有方法将部分奇偶校验永久记录在少量保留区,造成吞吐瓶颈并加剧写放大,即部分奇偶校验税。ZRAID 是软件 ZNS RAID 层,利用 ZNS 命令集新增的 Zone Random Write Area (ZRWA) 特性:ZRWA 允许在写指针附近受限区域内原地更新,因而可把部分奇偶校验临时写入各数据区的 ZRWA,分散到多个数据区,避免集中写入瓶颈;过期部分奇偶校验可被后续数据覆盖,减少闪存写入。ZRAID 还能使用通用调度器,克服 ZNS 兼容调度器的队列深度限制。在真实 ZNS SSD 上,fio 写吞吐最高提升 34.7%,RocksDB db_bench 平均提升 14.5%,写放大最高降低 1.6 倍。
The Zoned Namespace (ZNS) SSD is an innovative technology that aims to mitigate the block interface tax associated with conventional SSDs. However, constructing a RAID system using ZNS SSDs presents a significant challenge in managing partial parity for incomplete stripes. Previous research permanently logs partial parity in a limited number of reserved zones, which not only creates bottlenecks in throughput but also exacerbates write amplification, thereby reducing the device's lifetime. We refer to these inefficiencies as the partial parity tax. In this paper, we present ZRAID, a software ZNS RAID layer that leverages the newly added Zone Random Write Area (ZRWA) feature in the ZNS Command Set, to alleviate partial parity tax. ZRWA enables in-place updates within a confined area near the write pointer. ZRAID temporarily stores partial parity within the ZRWA of data zones. Thus, partial parity writes are distributed across multiple data zones, effectively eliminating throughput bottlenecks. Furthermore, any expired partial parity in the ZRWA is overwritten by subsequent data, avoiding unnecessary flash writes. With the introduction of ZRWA, ZRAID can leverage general schedulers, overcoming the queue depth limitations of ZNS-compatible schedulers. Our evaluation with actual ZNS SSDs demonstrates a significant improvement in write throughput: up to 34.7% in the fio microbenchmark, and an average of 14.5% in db_bench on RocksDB, along with up to a 1.6x reduction in flash write amplification.