[linux-lvm] Data corruption on large, multi-device filesystem
joe at eiler.net
joe at eiler.net
Tue Jan 25 17:37:28 UTC 2005
I just thought I would give a quick update on what I have been doing in case
anyone can give me more/better direction.
I incorporated the (sector_t) cast and I also changed stripe_width to sector_t
since my individual devices are bigger than 2TB.
I took lvm out of the equation by using dmsetup and striping together my
devices. Then I created and mounted and XFS filesystem directly on /dev/dm-0
This still caused corruption.
I have compiled hashdd with largefile support and am now letting it run directly
on /dev/dm-0. The write finished last night and I am running the read pass now
(man it takes a long time to to write and verify 4+TB)
I have also been putting some debug statements in stripe_map() but this hasn't
shown me anything useful yet.
Quoting Jens Beyer <jbe at webde-ag.de>:
> On Thu, Jan 20, 2005 at 05:59:00PM +0000, Alasdair G Kergon wrote:
> > On Thu, Jan 20, 2005 at 09:06:44AM -0500, Randall A. Jones wrote:
> > > To verify, this corruption you are seeing only happens when you have a
> > > LV larger than 2TB
> > > and when you use striping specifically with lvcreate -i.
> > > Has anyone experienced data corruption with >2TB LV and no striping?
> > Does this patch help?
> No, it doesn't. I just checked multiple times in different setups.
> To address the 'chunksize' Problem mentioned i used lvcreate -i 3 -I 256 .
> > Missing cast causing data corruption on devices with stripes > ~1TB.
> > --- diff/drivers/md/dm-stripe.c 2005-01-20 17:32:37.000000000 +0000
> > +++ source/drivers/md/dm-stripe.c 2005-01-20 17:32:26.000000000 +0000
> > @@ -179,7 +179,7 @@
> > bio->bi_bdev = sc->stripe[stripe].dev->bdev;
> > bio->bi_sector = sc->stripe[stripe].physical_start +
> > - (chunk << sc->chunk_shift) + (offset & sc->chunk_mask);
> > + ((sector_t) chunk << sc->chunk_shift) + (offset & sc->chunk_mask);
> > return 1;
> > }
> Nur tote Fische schwimmen mit dem Strom
> linux-lvm mailing list
> linux-lvm at redhat.com
> read the LVM HOW-TO at http://tldp.org/HOWTO/LVM-HOWTO/
More information about the linux-lvm