gzoned: Introduce Zoned Storage emulatorgzoned(8) is a new GEOM class that exposes a host-managed zoned device(similar to ZAC/ZBC drives) on top of regular, non-zoned providers.The created mediu
gzoned: Introduce Zoned Storage emulatorgzoned(8) is a new GEOM class that exposes a host-managed zoned device(similar to ZAC/ZBC drives) on top of regular, non-zoned providers.The created medium is sliced into equally sized zones, by defaultsequential-write-required. Such zones can be turned into conventionalzones if desired. The zoned drive's state and configuration ispersistent through metadata at the tail of the backing provider, meaningthe zoned device gets recreated at the provider retaste. Zone statechanges only mark the table dirty with BIO_FLUSH committing it,mirroring drives whose zone state is volatile until a cache flush.The new class tries to emulate real zoned drives by incorporatingper-zone write pointers and support for BIO_ZONE management commands.Fault emulation through zone conditions (RWP recommended, offline, R/O),URSWRZ bit toggling and concurrent open zone limits are additionalfeatures useful for testing.While at it, fix zonectl's report of write pointer LBAs for zones thatshould have none, remove its forced debug flags and allow the geom(8)shared subroutines to detect host-managed drives.ATF-sh tests for gzoned(8) and zonectl(8) (dogfooded by gzoned(8)) areincluded, featuring helpers (see zoned_subr.sh) for testing zonedstorage support in other components or GEOM classes.Reviewed by: asomers, fuz, kenSponsored by: Google Summer of Code 2026Pull Request: https://github.com/freebsd/freebsd-src/pull/2326
show more ...