File System Support for Zoned Block Devices

Monday, February 24, 2020 - 10:00 am10:30 am

Naohiro Aota, Western Digital

Abstract: 

Due to travel restrictions, Naohiro Aota could not attend the conference and their work was presented by Johannes Thumshirn, Western Digital, Inc.

Zoned block device (ZBD) support has been introduced in Linux with kernel version 4.10. ZBDs have different write constraints than regular block devices. A ZBD is divided into several zones and each zone must be written sequentially and must be reset before rewriting.

The main type of ZBD currently available is SMR HDDs. The NVMe Zoned NameSpace proposal is also being drafted to add a zone abstraction to the NVMe specifications.

Natively supporting ZBDs in a filesystem is not a trivial change. Some filesystems must rely on special block layer drivers to ensure sequential writes (e.g. ext4 and the dm-zoned device mappers). Filesystems using a copy-on-write design are better candidates for native ZBD support. Examples are F2FS and btrfs.

This talk discusses the principles of ZBD and ZNS native support in filesystems. Support in F2FS is discussed and the approach taken with btrfs is next presented. This is followed with a performance comparison between filesystems with native ZBD/ZNS support and regular ones using dm-zoned.

Naohiro Aota, Western Digital

Naohiro Aota is working at the System Software Group within Western Digital Research. He is working on zoned block device support for file systems like btrfs. He presented the on-going btrfs work at LSFMM 2019 and Open Source Summit Europe 2019.

Open Access Media

USENIX is committed to Open Access to the research presented at our events. Papers and proceedings are freely available to everyone once the event begins. Any video, audio, and/or slides that are posted after the event are also free and open to everyone. Support USENIX and our commitment to Open Access.

BibTeX
@conference {246546,
author = {Naohiro Aota},
title = {File System Support for Zoned Block Devices},
year = {2020},
address = {Santa Clara, CA},
publisher = {USENIX Association},
month = feb
}