Hi Zdenek,

I assumed that LVM thin snapshots would work like git branches. 
Since git also uses diffs on the backend, and git is popular with developers, 
the same kind of behaviour seems reasonable to me.

e.g.

```
git checkout master
git branch branchA # equivalent to creating snapshotA
echo "modify" > file.txt # modify origin
git checkout branchA ; git branch branchB # copy snapshotA to snapshotB
git checkout master ; git merge branchA # restore snapshotA
git branch # snapshotB still exists
echo "modify2" > file.txt # modify origin
git checkout branchB # restoring snapshot to root
```

Oh well. It doesn't matter too much, since I've figured out how to get it to 
work. I just need to restore the oldest snapshot each time. Then LVM updates 
the origin accordingly.

Regards,
Matt

-----Original Message-----
From: Zdenek Kabelac [mailto:[email protected]] 
Sent: Thursday, 17 January 2019 8:22 PM
To: Davis, Matthew <[email protected]>; LVM general discussion 
and development <[email protected]>
Subject: Re: how to copy a snapshot, or restore snapshot without deleting it

Dne 17. 01. 19 v 2:12 Davis, Matthew napsal(a):
> Hi Zdenek,
> 
> What do you mean "it's origin is already gone"?

Hi

Your field 'Origin' in your 'lvs -a' was empty - so the actual origin used for 
taking 'fresh' LV snapshot is simply no longer existing.

lvm2 is (ATM) not a database tool trying to resolve/guess what can or cannot be 
still considered as the origin -  so i.e. if you take multiple snapshots of a 
single origin and then you merge one snapshot back to origin -  'the original 
origin' used for all other snapshots is 'gone' -  as lvm2 is not resolving here 
the history and relation of data content whether the meaning of origin still 
applies.

What can make sense in your case is to extend probably  'lvconvert' logic and 
provide  operation  i.e. --replace - which would be working mostly like merge
- but with thins you would be able to specify  which thinLV should replace some 
other thinLV so basically specifying replace LV1 with LV2 - which you can do by 
lvremove + lvrename ATM - but I can see usefulness for supporting this for i.e. 
root LV which is typically in-use all the time.

I'm not seeing possible to extended the internal logic in lvm2 that would be 
deciding which NEW origin should be replacing removed/merged origin in all 
related snapshots - I'm pretty sure every user would expect a different one...

Zdenek

_______________________________________________
linux-lvm mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/linux-lvm
read the LVM HOW-TO at http://tldp.org/HOWTO/LVM-HOWTO/

Reply via email to