Skip to content

Unable to set special_small_blocks to more than 128 k #13815

Closed
@Nikratio

Description

@Nikratio

If I understand 624222a correctly, then since ZFS 2.0.0 I should be able to set special_small_blocks to up to 1 MB.

Indeed, on my Debian stable system zfsprops(7) says:

     special_small_blocks=size
       This value represents the threshold block size for including small file blocks into
       the special allocation class.  Blocks smaller than or equal to this value will be as‐
       signed 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 512B up to 1M.  The de‐
       fault size is 0 which means no small file blocks will be allocated in the special
       class.

However, I'm unable to actually set the value:

$ zpool create -f -R /zpools -o ashift=12 -o autotrim=on -o failmode=continue \
  -O acltype=posixacl -O relatime=on -O xattr=sa -O compression=zstd-19 \
  -O checksum=sha256 -O sync=disabled -O special_small_blocks=262144 \
  -O redundant_metadata=most -O recordsize=524288 -O encryption=on \
  -O feature@large_blocks=enabled-O keyformat=passphrase \
  -O keylocation=file:///<path> \
  memory /dev/nbd2 special /dev/nbd1
cannot create 'memory': invalid 'special_small_blocks=262144' property: must be zero or a power of 2 from 512B to 128K

Version:

$ zpool --version
zfs-2.1.5-1~bpo11+1
zfs-kmod-2.1.5-1~bpo11+1
$ uname -a
Linux vostro.rath.org 5.18.0-0.deb11.3-amd64 #1 SMP PREEMPT_DYNAMIC Debian 5.18.14-1~bpo11+1 (2022-07-28) x86_64 GNU/Linux

What am I doing wrong?

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type: DefectIncorrect behavior (e.g. crash, hang)

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions