Re-sparse a file-backed IO device + zfs

Jan Bramkamp crest at rlwinm.de
Tue Dec 13 09:59:39 UTC 2016


On 13/12/2016 07:54, Karli Sjöberg wrote:
>
> Den 13 dec. 2016 02:20 skrev javocado <javocado at gmail.com>:
>>
>> 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?
>
> Wouldn't you have needed TRIM on the disk(s) inside the VM and it would have taken care of all this for you?

The ahci-hd driver supports TRIM on ZFS volumes. Why do you use sparse 
file instead of a ZFS volume?


More information about the freebsd-fs mailing list