Allow opt-in of zvol blocks in special class

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Alexander Motin <mav@FreeBSD.org>
Reviewed-by: Kjeld Schouten <kjeld@schouten-lebbing.nl>
Signed-off-by: Don Brady <dev.fs.zfs@gmail.com>
Closes #14876
This commit is contained in:
Don Brady
2025-05-24 14:44:26 -06:00
committed by GitHub
parent 9d76950d67
commit b048bfa9c1
8 changed files with 75 additions and 10 deletions
+2 -2
View File
@@ -1281,12 +1281,12 @@ This feature must be enabled to be used
.Pc .
.It Sy special_small_blocks Ns = Ns Ar size
This value represents the threshold block size for including small file
blocks into the special allocation class.
or zvol blocks into the special allocation class.
Blocks smaller than or equal to this
value will be assigned to the special allocation class while greater blocks
will be assigned to the regular class.
Valid values are zero or a power of two from 512 up to 1048576 (1 MiB).
The default size is 0 which means no small file blocks
The default size is 0 which means no small file or zvol blocks
will be allocated in the special class.
.Pp
Before setting this property, a special class vdev must be added to the
+3 -2
View File
@@ -488,7 +488,8 @@ current state of the pool won't be scanned during a scrub.
Allocations in the special class are dedicated to specific block types.
By default, this includes all metadata, the indirect blocks of user data, and
any deduplication tables.
The class can also be provisioned to accept small file blocks.
The class can also be provisioned to accept small file blocks or zvol blocks
on a per dataset granularity.
.Pp
A pool must always have at least one normal
.Pq non- Ns Sy dedup Ns /- Ns Sy special
@@ -503,7 +504,7 @@ Deduplication tables can be excluded from the special class by unsetting the
.Sy zfs_ddt_data_is_special
ZFS module parameter.
.Pp
Inclusion of small file blocks in the special class is opt-in.
Inclusion of small file or zvol blocks in the special class is opt-in.
Each dataset can control the size of small file blocks allowed
in the special class by setting the
.Sy special_small_blocks