[linux-lvm] determining snapshot overhead
Bram Klein Gunnewiek
bram at shockmedia.nl
Wed Jan 14 12:38:42 UTC 2015
On 01/14/2015 12:42 PM, Zdenek Kabelac wrote:
> Dne 14.1.2015 v 11:18 Bram Klein Gunnewiek napsal(a):
>> Thanks for your reply. I tested it out and it does not seem to work
>> (lvm2
>> version used is 2.02.98-6ubuntu2):
>>
>
> yep - too old for this feature being supported.
Ok, then we have to do it ourself since we don't want to go with
backports / custom versions on our systems
>
>> lvcreate -n testvolume3 -L 1G vg
>> lvcreate -n testvolume3_snapshot -s /dev/vg/testvolume3 -l100%ORIGIN
>> dd if=/dev/zero of=/dev/vg/testvolume3 bs=1G count=1
>>
>> After this the snapshot is invalid:
>>
>> testvolume3_snapshot vg swi-I-s-- 1.00g testvolume3 100.00
>>
>> I checked out the lvm2 source code and found the methods
>> cow_max_extents and
>> _cow_max_size in snapshot_manip.c. Do these methods calculate the
>> exact max
>> size of the snapshot meta data?
>
> yes.
>
> It's probably worth to note there has been some related kernel fixes
> for old snaps - otherwise there has been theoretical path to create
> much bigger snapshots then the origin size was - though it's nearly
> impossible to reach such state.
Thanks again. I did some tests and calculations and it seems that the
overhead is ~0.39% of the origin size when chunk sizes of 4KiB are used.
Bigger chunk size means less overhead. If we use 0.5% of the origin
space as meta data overhead we should be on the safe side I think?
> Zdenek
>
>
>>
>> On 01/14/2015 09:34 AM, Zdenek Kabelac wrote:
>>> Dne 14.1.2015 v 08:24 Bram Klein Gunnewiek napsal(a):
>>>> Hello,
>>>>
>>>> I am trying to create snapshots of thick volumes that can't break
>>>> because they
>>>> overflow (thin volumes are not an option right now). I can't find
>>>> information
>>>> on how to calculate (in advance) the metadata overhead of a
>>>> snapshot when all
>>>> blocks in the origin volume are changed (e.g. the snapshot is 100%
>>>> full). Is
>>>> there a way to do this?
>>>
>>>
>>> Recent versions of lvm2 (let's say >= 111) are able to determine
>>> this size
>>> automatically - just use: 'lvcreate -s -l100%ORIGIN vg/origin'
>>>
>>> Regards
>>>
>>> Zdenek
>>>
>>> _______________________________________________
>>> linux-lvm mailing list
>>> linux-lvm at redhat.com
>>> https://www.redhat.com/mailman/listinfo/linux-lvm
>>> read the LVM HOW-TO at http://tldp.org/HOWTO/LVM-HOWTO/
>>
>> _______________________________________________
>> linux-lvm mailing list
>> linux-lvm at redhat.com
>> https://www.redhat.com/mailman/listinfo/linux-lvm
>> read the LVM HOW-TO at http://tldp.org/HOWTO/LVM-HOWTO/
>>
>
> _______________________________________________
> linux-lvm mailing list
> linux-lvm at redhat.com
> https://www.redhat.com/mailman/listinfo/linux-lvm
> read the LVM HOW-TO at http://tldp.org/HOWTO/LVM-HOWTO/
More information about the linux-lvm
mailing list