[lvm-devel] userspace patches for shared snapshots

Mikulas Patocka mpatocka at redhat.com
Thu Mar 4 10:11:52 UTC 2010



On Wed, 3 Mar 2010, Mike Snitzer wrote:

> On Fri, Feb 26 2010 at  4:17pm -0500,
> Mike Snitzer <snitzer at redhat.com> wrote:
> 
> > On Thu, Feb 25 2010 at 11:52pm -0500,
> > Mikulas Patocka <mpatocka at redhat.com> wrote:
> 
> > > > # lvs
> > > >   LV             VG   Attr   LSize Origin  Snap%  Move Log Copy%  Convert
> > > >   testlv1        test owi-a- 4.00g                                       
> > > >   testlv1-shared test swi--- 1.00g testlv1 100.00                        
> > > > 
> > > > NOTE: strikes me as odd that the testlv1-shared Snap% is 100%.  I've
> > > > fixed the same with the snapshot-merge code before; will dig deeper in a
> > > > bit.
> > > 
> > > This is actually bug in the kernel, it starts with the smallest possible 
> > > size and extends the internal data structures when the first operation is 
> > > performed. So, if you ask for status without performing any operation, it 
> > > reports 100%.
> > > 
> > > Thanks for finding it, I overlooked it. I'l fix that.
> > 
> > Sure, I'll be interested to see your fix.  I'm not clear on what you're
> > referring to.

Each time someone locks the exception store, it checks the device size. If 
the size of the device has grown, the exception store extends itself.

So the problem was, that if you queried the percentage the first time 
before any locking operation, it wasn't extended yet and it reported 100%. 
I fixed it by adding a test for extension just after initialization.

> BTW, the patches I posted earlier change this behaviour, in particular
> this patch:
> http://people.redhat.com/msnitzer/patches/multisnap/lvm2/LVM2-2.02.62/lvm-shared-eliminate-shared_snapshot-in-lv.patch
> 
> Now the -shared store is hidden:
> 
> # lvs
>   LV      VG   Attr   LSize Origin Snap%  Move Log Copy%  Convert
>   testlv1 test owi-a- 4.00g                                      
> 
> # lvs -a
>   LV               VG   Attr   LSize Origin  Snap%  Move Log Copy%  Convert
>   testlv1          test owi-a- 4.00g                                       
>   [testlv1-shared] test swi--- 1.00g testlv1   0.00                        
> 
> You'll also note that Snap% is no longer 100%

No, it didn't fix that. See above.

I went through your kernel patch and uploaded a new version at 
http://people.redhat.com/mpatocka/patches/kernel/new-snapshots/r16/ . It 
contains fix for this 100% usage. It contains most of your changes (I 
rolled back that cycle change).

Mikulas




More information about the lvm-devel mailing list