[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 16:12:59 UTC 2021


Thanks for explaining all that details about how a snapshot is formatted on
the COW device.
I already know that part.

I am more interested in how the disk containing the COW data can be merged
back to an LV volume.
The second part only mentioned that it is possible, but not which steps are
involved.

As documented in the manual.
To split a snapshot from its origin (our words detach) one can use:
lvconvert --splitsnapshot vg/s1
Right?

To reverse that process, according to the manual; one can use:
lvconvert -s vg/s1
Right?

But as I mentioned before, this requires that the vg/s1 exists as an object
in the LVM metadata.
What if you are on a new server, that does not have vg/s1?
How to create that object or whatever you like to call this on the server?
The only way I got it is to use the
vgextend
lvcreate
lvconvert --splitsnapshot

And now reattach it, so that the actual merge can happen.
The object should exist now, so that the command: lvconvert -s vg/s1 can
work

Or how can the object vg/s1 be created so that it can be referenced to by
the lvconvert command?
The disk is formated as a COW device, and contains all of the data.
So how hard can it be to just reattach that volume to an empty or existing
LV volume on the server?

If it works on same server, why can't it work on any other new servers, as
the COW device contains ALL the data needed (we make sure it contains all
the data)

If you want to give it a try, just create a snapshot on a specific device
And change all the blocks on the origin, there you are, you now have a cow
device containing all data needed.
How to move this snapshot device to another server, reattach it to an empty
lv volume as a snapshot.
lvconvert -s, command requires an argument of an existing snapshot volume
name.
But there is no snapshot on the new server, so it can't re-attach the
volume.
So what procedures should be invoked to create just the detached references
in LVM, so that the lvconver -s command can work?

Regards Tomas

Den tis 21 dec. 2021 kl 16:30 skrev Zdenek Kabelac <zdenek.kabelac at gmail.com
>:

> Dne 21. 12. 21 v 15:44 Tomas Dalebjörk napsal(a):
> > hi
> >
> > 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?
>
> Hi
>
> As said in my previous post - the 'format' of data stored on COW storage
> (which is the 'real' meaning of snapshot LV) does NOT in any way resembles
> the
> 'normal' LV.
>
> So the COW LV could be really ONLY use together with 'snapshot' target.
>
> The easiest way how to 'copy' this snapshot to normal LV is like this:
>
>
> lvcreate -L size  -n newLV  vg
>
> dd if=/dev/vg/snapshotLV  of=/dev/vg/newLV  bs=512K
>
>
> (so with 'DD' you copy data in 'correct' format)
>
> You cannot convert snapshot LV to 'normal' LV in any other way then to
> merge
> this snapshot LV into your origin LV  (so origin is gone)
> (lvconvert --merge....)
>
> You can also  'split' snapshot COW LV and 'reattach' such snapshot to
> other LV
> - but this requires rather good knowledge about whole functioning of this
> snapshotting - so you know what can you do and what can you expect. But
> I'd
> likely recommend  'dd'.
> You cannot use 'splitted' COW LV for i.e. filesystem - as it contains
> 'mixed'
> snapshot metadata and snapshot blocks.
>
> Old snapshot meaning was - to take 'time consistent' snapshot of LV which
> then
> you can use for i.e. taking backup....
>
> Regards
>
> Zdenek
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/linux-lvm/attachments/20211221/c3d76f2d/attachment.htm>


More information about the linux-lvm mailing list