[Discuss] lvm snapshot cloning

Richard Pieri richard.pieri at gmail.com
Mon Oct 24 19:53:32 EDT 2011


On Oct 24, 2011, at 7:41 AM, markw at mohawksoft.com wrote:
> 
> Why are you saying this? LVM is designed for much of this. The strategy
> described is perfectly valid within the context of read/write snapshots.

That's where I say that you are mistaken, because it isn't, not really.  It does a fair job of pretending but once you get deep into it you'll find it there grinning, waiting to bite your face off.


> Not really true, LVM snapshots are a copy-on-write devices. Yes, there is
> an exception log behind them to map the COW data.

You're quibbling over implementation.  In practice, LVM snapshots work like ever-expanding transaction logs that are presented to the VFS layer as block devices.


> Why? Snapshots are read/write and work fine.

They don't.  See the previous discussion about LVM snapshot performance degradation.


> Its a bit more than a block driver. Yes, it is presented to the higher
> levels of the OS as a block driver, but it does remapping of blocks, it
> has modules for raid, etc.

Okay, it's a *fancy* block device driver.  Because at the end of the day, when it comes to doing any real work on it, the kernel presents LVM volumes just like it does raw disk partitions which are (pause) block devices.  This is a lot of why the features that you want will never be implemented.

I'm not saying that this is a failing.  In fact, this is central to LVM's versatility.  You can put practically any file system on an LVM volume specifically because it is a block device.  For example, I could put a FreeBSD domU on a Linux dom0 and give that domU an entire LVM volume to itself.  FreeBSD doesn't care because the volume is just a block device.  I can stick DRBD underneath that volume and replicate it block-for-block to my redundant dom0 because it is a block device.  Linux and Xen don't care because (pause) the volume is just a block device.  I could never do something like this with AdvFS, and I expect that doing it with zpools would be more work than lvcreate, add device to config file, boot installer image.

This is what I'm on about.  If you treat LVM volumes as block devices then you can do some amazing things with them.  If you treat them as something else then you're going to have problems.

--Rich P.




More information about the Discuss mailing list