Hi, On Fri, Feb 01, 2002 at 05:12:51AM -0500, Arjan van de Ven wrote: > On Thu, Jan 31, 2002 at 01:09:13PM +0000, Joe Thornber wrote: > > > > Now our hero decides to PV move PV2 to PV4: > > > > 1. Suspend our LV (254:3), this starts queueing all io, and flushes > > all pending io. > > But "flushes all pending io" is *far* from trivial. there's no current > kernel functionality for this, so you'll have to do "weird shit" that will > break easy and often. I've been all through this with Joe. He *does* track pending IO in device_mapper, and he's got a layered device_mirror driver which can be overlayed on top of the segments of the device that you want to copy. His design looks solid and the necessary infrastructure for getting the locking right is all there. > Also "suspending" is rather dangerous because it can deadlock the machine > (think about the VM needing to write back dirty data on this LV in order to > make memory available for your move)... There's a copy thread which preallocates a fully-populated kiobuf for the data. There's no VM pressure, and since it uses unbuffered IO, there are no cache coherency problems like current LVM has. Arjan, I *told* you they have thought this stuff through. :-) Cheers, Stephen _______________________________________________ linux-lvm mailing list linux-lvm@sistina.com http://lists.sistina.com/mailman/listinfo/linux-lvm read the LVM HOW-TO at http://www.sistina.com/lvm/Pages/howto.html