I created a new pool with a 4-drive RAIDZ2 vdev and populated it with zfs send
from another pool, which runs a single mirror vdev. I’m seeing my datasets (especially zvols) incurring a greater space penalty than I would expect. I’m hoping someone can help me better understand what’s happening:
I have a zvol with 256GiB logicalreferenced
and logicalused
, 1.26x compressratio
, and 8KiB volblocksize
.
On the mirror pool, this zvol shows 204GiB referenced
and used
, which is consistent with 1.26x compression.
Now, I expect the compression savings to be lost in the new pool. It has ashift
12, so 4KiB blocks, and the smallest stripe would have two 4KiB blocks. The 8KiB zvol blocks may be compressible, but they’ll simply be padded back to 8KiB for striping.
But I’m seeing used
and referenced
both at 295GiB. Even the volsize
is only 279GiB. What could explain this inflated space usage?