Linux Zoned Storage Support Overview

Zoned block device support was initially released with the Linux® kernel version 4.10. Following versions improved this support and added new features beyond the raw block device access interface. More advanced features such as device mapper support and ZBD aware file systems are now available.

Features

Applications developers can use zoned block devices through various I/O paths controlled with different programming interfaces and exposing the device in different ways. A simplistic representation of the different possible access paths is shown in the figure below.

features
Zoned block device support features

Three different I/O path implement two POSIX compatible interface completely hiding the write constraints of zoned block devices sequential zones. These three I/O path are suitable to execute legacy applications, that is, applications that have not been modified to implement fully sequential write streams.

Two additional interfaces are usable by applications that have been written or modified to comply with the sequential write constraint of zoned block devices. These interfaces do not hide the constraints and applications must ensure that data is written using sequential streams starting from zones write pointer positions.

Kernel Versions

The initial release of zoned block device support with kernel 4.10 was limited to the block layer ZBD interface and I/O ordering control and native support for the F2FS file system. Following kernel versions added more feature such as device mapper drivers and support for the block multi-queue infrastructure.

The figure below summarizes the evolution of zoned block device support with kernel versions.

kver
Kernel versions and ZBD features

Improvements to the kernel zoned block device support are still ongoing. Support for new file systems (e.g. btrfs) will be released in the coming months.

All kernel versions since 4.10 include ZBD support. However, as shown in the figure Kernel versions and features, some versions are recommended over others.

For any stable or long term stable kernel version, it is recommended that system administrators use the latest available release within that version to ensure that all known problem fixes are applied.

ZBD Support Restrictions

In order to minimize the amount of changes to the block layer code, various existing features were reused. Furthermore, other kernel components that are not compatible with zoned block devices behavior and are too complex to change were left unmodified. This approach led to a set of device constraints that all zoned block devices must meet to be usable.

All known ZBC and ZAC host-managed hard disks available on the market today have characteristics compatible with these requirements and can operate with a ZBD compatible Linux kernel.