[linux-lvm] how to convert a disk containing a snapshot to a snapshot lv?

Tomas Dalebjörk tomas.dalebjork at gmail.com
Tue Dec 21 14:44:16 UTC 2021


I think I didn’t explain this clear enough 
Allthe lvm data is present in the snapshot that I provision from our backup system 
I can guarantee that!

If I just mount that snapshot from our backup system, it works perfectly well

so we don’t need the origin volumes in other way than copying back to it
we just need to reanimate it as a cow volume
mentioning that all data has been changed
the cow is just referencing to the origin location, so no problem there
All our data is in the cow volume, not just the changes

just to compare 
if you change just 1 byte on every chunksize in the origin volume, than the snapshot will contain all data, plus some meta data etc.
That is what I talk about here.
So how do I retach this volume to a new server?

as the only argument acceptable argument by the lvconvert is vg/s1 ?

That assumes that vg/s1 is present 
so how to make it present?

Regards Tomas 

Sent from my iPhone

> On 21 Dec 2021, at 14:46, Zdenek Kabelac <zdenek.kabelac at gmail.com> wrote:
> Dne 19. 12. 21 v 17:43 Tomas Dalebjörk napsal(a):
>> Hi,
>> I am trying to understand how to convert a disk containing snapshot data.
>> This is how I tested this:
>> 1. locate the snapshot testlv.211218.232255
>> root at debian10:/dev/mapper# lvs
>>   LV                   VG          Attr       LSize   Pool Origin Data%   Meta%  Move Log Cpy%Sync Convert
>>   home                 debian10-vg -wi-ao----   1.00g
>>   root                 debian10-vg -wi-ao----  <3.81g
>>   swap_1               debian10-vg -wi-ao---- 976.00m
>>   testlv               debian10-vg owi-aos--- 100.00m
>> testlv.211218.232255 debian10-vg swi-a-s--- 104.00m      testlv 1.44
>> root at debian10:/dev/mapper#
> Hi
> It looks like there is some sort of misunderstanding HOW these snapshots with lvm2 do work.
> The snapshot LV does NOT contain whole copy of the origin LV (the one you've take its snapshot)
> So while 'lvs' is presenting you the size of snapshot - it's not a 'regular' volume behind the scene. Instead it's a set of differentiating blocks from your origin stored in a way the came in use.
> So while your snapshot looks it has size 104Mib and origin 100MiB - it means
> there is just allocated max possible size of snapshot to store all different chunk + some extra metadata.  But ATM only 1.44% of this space is actually used to hold all these block (AKA ~1.5MiB or real storage was used so far)
> There is basically NO WAY to use this 'COW' storage area without its original volume.
> If you want to use such 'snapshot' elsewhere you simply need to *dd* such LV - which is presented (via magic world of DM targets) to user-space to appear like your original LV in the moment of snapshot.
> But the actual 'raw' content stored in disk is in 'internal' form - not really usable outside (although the format is not really a complicated one)
> Note - these so called 'thick' snapshot or 'old' snapshot are now better handled via thin-provisioning - giving much better performance - especially if you plan to keep snapshot for long term or have it in bigger size.
> Hopefully it now makes it way more clear.
> Regards
> Zdenek

More information about the linux-lvm mailing list