| #
48efb6c4 |
| 13-Jun-2026 |
voidanix <voidanix@freebsd.org> |
gzoned: Introduce Zoned Storage emulator
gzoned(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 emulator
gzoned(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 default sequential-write-required. Such zones can be turned into conventional zones if desired. The zoned drive's state and configuration is persistent through metadata at the tail of the backing provider, meaning the zoned device gets recreated at the provider retaste. Zone state changes 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 incorporating per-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 additional features useful for testing.
While at it, fix zonectl's report of write pointer LBAs for zones that should 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)) are included, featuring helpers (see zoned_subr.sh) for testing zoned storage support in other components or GEOM classes.
Reviewed by: asomers, fuz, ken Sponsored by: Google Summer of Code 2026 Pull Request: https://github.com/freebsd/freebsd-src/pull/2326
show more ...
|
| #
e9ac4169 |
| 15-Jul-2024 |
Warner Losh <imp@FreeBSD.org> |
Remove residual blank line at start of Makefile
This is a residual of the $FreeBSD$ removal.
MFC After: 3 days (though I'll just run the command on the branches) Sponsored by: Netflix
|
| #
d0b2dbfa |
| 16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
Remove $FreeBSD$: one-line sh pattern
Remove /^\s*#[#!]?\s*\$FreeBSD\$.*$\n/
|
| #
daf2519e |
| 09-Jul-2023 |
Jessica Clarke <jrtc27@FreeBSD.org> |
geom: Migrate from COMPAT_32BIT to generic COMPAT_libcompat
See commit 8fad2cda93c7 ("bsd.compat.mk: Provide new CPP and sub-make variables") for the context behind this change.
Reviewed by: imp, b
geom: Migrate from COMPAT_32BIT to generic COMPAT_libcompat
See commit 8fad2cda93c7 ("bsd.compat.mk: Provide new CPP and sub-make variables") for the context behind this change.
Reviewed by: imp, brooks, jhb Differential Revision: https://reviews.freebsd.org/D40927
show more ...
|
| #
c7996ddf |
| 01-Mar-2022 |
Kirk McKusick <mckusick@FreeBSD.org> |
Create a new GEOM utility, gunion(8).
The gunion(8) utility is used to track changes to a read-only disk on a writable disk. Logically, a writable disk is placed over a read-only disk. Write request
Create a new GEOM utility, gunion(8).
The gunion(8) utility is used to track changes to a read-only disk on a writable disk. Logically, a writable disk is placed over a read-only disk. Write requests are intercepted and stored on the writable disk. Read requests are first checked to see if they have been written on the top (writable disk) and if found are returned. If they have not been written on the top disk, then they are read from the lower disk.
The gunion(8) utility can be especially useful if you have a large disk with a corrupted filesystem that you are unsure of how to repair. You can use gunion(8) to place another disk over the corrupted disk and then attempt to repair the filesystem. If the repair fails, you can revert all the changes in the upper disk and be back to the unchanged state of the lower disk thus allowing you to try another approach to repairing it. If the repair is successful you can commit all the writes recorded on the top disk to the lower disk.
Another use of the gunion(8) utility is to try out upgrades to your system. Place the upper disk over the disk holding your filesystem that is to be upgraded and then run the upgrade on it. If it works, commit it; if it fails, revert the upgrade.
Further details can be found in the gunion(8) manual page.
Reviewed by: Chuck Silvers, kib (earlier version) tested by: Peter Holm Differential Revision: https://reviews.freebsd.org/D32697
show more ...
|
| #
86c06ff8 |
| 29-Dec-2019 |
Alexander Motin <mav@FreeBSD.org> |
Remove GEOM_SCHED class and gsched tool.
This code was not actively maintained since it was introduced 10 years ago. It lacks support for many later GEOM features, such as direct dispatch, unmapped
Remove GEOM_SCHED class and gsched tool.
This code was not actively maintained since it was introduced 10 years ago. It lacks support for many later GEOM features, such as direct dispatch, unmapped I/O, stripesize/stripeoffset, resize, etc. Plus it is the only remaining use of GEOM nstart/nend request counters, used there to implement live insertion/removal, questionable by itself. Plus, as number of people commented, GEOM is not the best place for I/O scheduler, since it has limited information about layers both above and below it, required for efficient scheduling. Plus with the modern shift to SSDs there is just no more significant need for this kind of scheduling.
Approved by: imp, phk, luigi Relnotes: yes
show more ...
|
| #
9ad8ab54 |
| 25-Jun-2018 |
Brad Davis <brd@FreeBSD.org> |
Add a file missed in r335645.
Approved by: brooks, allanjude (mentor) Differential Revision: https://reviews.freebsd.org/D15360
|