Re: BUG: Files corrupt after moving LVM volume to USB disk

From: Marti Raudsepp
Date: Wed Mar 21 2007 - 12:16:15 EST


On 3/21/07, Lennart Sorensen <lsorense@xxxxxxxxxxxxxxxxxxx> wrote:
Not that I really have a clue, but some questions anyhow:
Thanks for your response; I will answer the remaining questions after I've
freed up some space on the USB disk and done some additional tests. Possibly
later today, or maybe tomorrow.

Do you ever unmount and shutdown the lvm during this test?
What happens if you were to build the LVM and filesystem, then issue the
move, and then reboot. Can you then read them from the USB device or is
it still corrupt?
Yes, when I first came across this problem, I had done several reboots, prior
to and following the lvmove; the filesystem-level corruptions remained
afterwards (though, as reported, everything worked fine again after moving it
back).

Using any insane gentoo compiler options?
Nothing insane, just -fstack-protector -march=athlon64 -fomit-frame-pointer

On Tue, Mar 20, 2007 at 12:34:08PM +0200, Marti Raudsepp wrote:
> * Test partition is 68 extents times 16MiB = 1088 MiB large (that's the
> largest I could allocate while remaining in one segment -- otherwise lvmove
> wouldn't move the partition back to /dev/sda5 after "defragmenting" it.)

That sounds strange.
I suppose it's a shortcoming of the current LVM mirror target -- when
allocating a larger LV on the primary disk, it initially creates the volume in
two segments; after done moving them to the secondary disk, it merges them into
one, as the two segments had been allocated continuously.

However, when attempting to move back the LV, the allocater can create two
extents, but the "mirror" LVM target does not appear to support regions that
are continuous on one copy and fragmented on another.

I even tried explicitly specifying --alloc= to lvmove, and it didn't have any
effect, confirming that it's not about allocation, but likely the "mirror"
stage of the move.

Regards,
Marti Raudsepp
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/