Hi,

On Tue, Jan 22, 2002 at 08:22:25AM -0500, Coffin Michael C wrote:

> I'm planning on implementing LVM and wasn't aware that there were an
> instabilities.  Can you comment on what instabilities exist at this time?
> Are they platform (S/390) specific?

I've started looking at it more closely, mainly because I'm the author
of ext3 and had been getting bug reports involving ext3 running on
LVM. I discovered a couple of places in LVM which specifically
affected ext3 in ways it didn't affect ext2.  As ext3's author, that
becomes a problem, so I started digging to see if it could be fixed
easily.

The results were not pretty, but the problems do look
fixable.  Unfortunately, some of the problems I uncovered were
definitely not ext3-specific.

The biggest problem seems to be pvmove on live volumes.  That
basically is just not reliable on LVM right now.  The locking relies
on fsync_dev() flushing all IO on the LV device, but that function
does not flush IO from certain special sources, including swap, raw
or direct IO, and ext3's journal.  Basically, anything that doesn't
use the normal buffer cache for writes will break LVM's lockings.

pvmove is also deadlock prone, and it is not cache coherent with live
filesystems (it performs partition moves via buffered IO to the
physical devices, without making sure that those devices are coherent
with the logical devices on top of them.)

I've got a proof-of-concept fix for the IO locking now, and have
started to attack the other two problems.

The good news is that the new "device-mapper" LVM layer that Joe
Thornber is working on looks as if it fixes all of these problems
cleanly.

Cheers,
 Stephen

Reply via email to