Re-sparse a file-backed IO device + zfs

Shawn Webb shawn.webb at
Tue Dec 13 01:25:22 UTC 2016

On Mon, Dec 12, 2016 at 05:20:21PM -0800, javocado wrote:
> Hi,
> I'm setting up a bhyve wherein:
> host #  truncate -s 1T vol.file
> host #  du -ah vol.file
> 200K    vol.file
> host #  /usr/sbin/bhyve ... -s 4,ahci-hd,vol.file ...
> Then inside the bhyve I create a zpool (ada0 = vol.file):
> bhyve #  zpool create -O devices=off -O atime=off -O compression=on -m
> /mnt/data1 data1 ada0
> And I put a bunch of stuff in the zpool ... and the vol.file grows in size:
> host #  du -ah vol.file
> 100G    vol.file
> Then I remove the files from the zpool and the zpool usage returns to 0 but
> of course the vol.file size does not shrink, the data is still there (but
> not referenced?)
> Normally I'd just write zeros to a file inside the zpool until the pool
> fills up, then maybe cp --sparse vol.file for good measure, but with
> compression on in the zpool the zeroing doesn't really fill up space or
> seem to overwrite anything. In my testing the zero file grew larger than
> 100G with no change to vol.file  I did not let it run forever, however.
> Any other ideas how to scrub off or clear out deleted data from a zpool
> and/or this kind of file-backed device?

Instead of dd'ing /dev/zero, try /dev/random. All zeros compress
extremely well, [pseudo-]random data does (or, ideally, should) not.

Shawn Webb
Cofounder and Security Engineer

GPG Key ID:          0x6A84658F52456EEE
GPG Key Fingerprint: 2ABA B6BD EF6A F486 BE89  3D9E 6A84 658F 5245 6EEE
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <>

More information about the freebsd-questions mailing list