[linux-lvm] new LVM2 feature?

Peter W. Morreale pmorreale at novell.com
Wed Oct 17 15:50:22 UTC 2007


Hello all,

I'm wondering whether there is interest (or development :-) on a new
feature for LVM2. I did look through the wiki and it doesn't appear that
this idea is on the roadmap, save for the "Stacking LVs" listed on the
roadmap page.  However there is no discussion AFAIK about stacking.

The idea is COW LV stacking below a primary LV.  The intent is to allow
a number of 'users' the ability to share a common dataset, and
independently save their changes to to a 'private' LV.    

On to the requisite bad ascii drawing:

   lv-1      lv-2      lv-[n]
     \         |        /
      \        |       /
       \       |      /
         shared ro lv
        /      |      \
       /       |       \
      /        |        \
     /         |         \
  cow_lv-1  cow_lv-2    cow_lv3

So, any changed blocks sent to "lv-1" are routed to "cow_lv-1", and
changed blocks sent to "lv-2" are routed to "cow_lv-2", etc.  The
simple, but as yet to-be-determined algorithm for reads is: if the block
'exists' in the cow, return the cow version, else return the shared
version. 

Changes from independent paths are saved to independent volumes.   From
there I can decide to destroy the COW LV, or perhaps merge it with the
shared LV to create a new "shared LV" for creation of a new set.  

Is there any interest in such a feature?  

Has this already been considered and perhaps dropped? 

Is this consistent (and/or possible) with the architecture of LVM2?

What are the source changes I need to make?  That was humor.

Thanks,
-PWM




More information about the linux-lvm mailing list