[linux-lvm] lvm2: zeroing free space
Bryn M. Reeves
bmr at redhat.com
Fri Feb 4 16:37:14 UTC 2011
On 02/04/2011 03:54 PM, Mike Snitzer wrote:
> On Fri, Feb 04 2011 at 9:12am -0500,
> Bryn M. Reeves <bmr at redhat.com> wrote:
>> Hi Folks,
>> Recently had a query from someone using an array supporting thin provisioning
>> with zero page reclaim.
>> They wanted a method to write zeros to all the unallocated space in a VG to
>> trigger a reclaim of unused regions in the VG's PVs.
>> My suggestion was to lvcreate a -l100%FREE LV named "filler" and overwrite it
>> from /dev/zero.
>> It seems like this might something a lot of users want as this functionality
>> gets to be more common.
>> I wondered if it could be worth adding a script to automate this or even an
>> option to vgchange (e.g. --zero-free-space)?
>> Didn't have time to try putting anything together yet but it seems such a
>> feature could be useful.
> Do these HDS arrays also support discard? Would seem to me that issuing
> discards for the free space would be better (more standard) than writing
> zeros to accomplish the same.
> This variant would be: vgchange --discard-free-space
There are two variants of reclamation currently supported by external storage
The WRITE_SAME/TRIM based explicit discard support is superior when the entire
storage stack supports it and I agree it would be good to support this mode of
reclaim too (superior in that you lose the zero-write overhead and associated
reclaim lag and can get better space utilisation since the host "knows" better
which blocks are unused).
Several vendors (at least HDS/EMC that I know of) also support an implicit
reclaim mode known as zero page/space reclaim in which the storage de-allocates
blocks that are overwritten with zeros.
I suppose the ideal solution would be to detect whether the storage supports one
or the other automatically but I don't know that there is a way to achieve this
right now (TRIM/WRITE_SAME possibly but I think the zero page stuff is entirely
More information about the linux-lvm