[linux-lvm] exposing snapshot block device
Zdenek Kabelac
zkabelac at redhat.com
Wed Oct 23 12:59:50 UTC 2019
Dne 23. 10. 19 v 13:08 Gionatan Danti napsal(a):
> On 23/10/19 12:46, Zdenek Kabelac wrote:
>> Just few 'comments' - it's not really comparable - the efficiency of
>> thin-pool metadata outperforms old snapshot in BIG way (there is no point to
>> talk about snapshots that takes just couple of MiB)
>
> Yes, this matches my experience.
>
>> There is also BIG difference about the usage of old snapshot origin and
>> snapshot.
>>
>> COW of old snapshot effectively cuts performance 1/2 if you write to origin.
>
> If used without non-volatile RAID controller, 1/2 is generous - I measured
> performance as low as 1/5 (with fat snapshot).
>
> Talking about thin snapshot, an obvious performance optimization which seems
> to not be implemented is to skip reading source data when overwriting in
> larger-than-chunksize blocks.
Hi
There is no such optimization possible for old snapshots.
You would need to write ONLY to snapshots.
As soon as you start to write to origin - you have to 'read' original data
from origin, copy them to COW storage, once this is finished, you can
overwrite origin data area with your writing I/O.
This is simply never going to work fast ;) - the fast way is thin-pool...
Old snapshots were designed for 'short' lived snapshots (so you can take
a backup of volume which is not being modified underneath).
Any idea of improving this old snapshots target are sooner or later going to
end-up with thin-pool anyway :) (we've been in this river many many years
back in time...)
> For example, consider a completely filled 64k chunk thin volume (with thinpool
> having ample free space). Snapshotting it and writing a 4k block on origin
There is no support of snapshot of snapshot with old snaps...
It would be extremely slow to use...
> However, my testing shows that source chunks are always read, even when
> completely overwritten.
>
> Am I missing something?
Yep - you would need to always jump to your 'snapshot' - so instead of
keeping 'origin' on major:minor - it would need to become a 'snapshot'...
Seriously complex concept to work with - especially when there is thin-pool...
Regards
Zdenek
More information about the linux-lvm
mailing list