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:zkabelac@xxxxxxxxxx] Sent: Thursday, 17 January 2019 8:22 PM To: Davis, Matthew <Matthew.Davis.2@xxxxxxxxxxxxxxxx>; LVM general discussion and development <linux-lvm@xxxxxxxxxx> 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 linux-lvm@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/linux-lvm read the LVM HOW-TO at http://tldp.org/HOWTO/LVM-HOWTO/