Update on data corruption with Tyan/3Ware
Ted Mittelstaedt
tedm at toybox.placo.com
Mon Sep 24 22:57:57 PDT 2007
> -----Original Message-----
> From: owner-freebsd-questions at freebsd.org
> [mailto:owner-freebsd-questions at freebsd.org]On Behalf Of Bart
> Silverstrim
> Sent: Monday, September 24, 2007 7:05 PM
> To: Ted Mittelstaedt
> Cc: Chris Boyd; freebsd-questions at freebsd.org
> Subject: Re: Update on data corruption with Tyan/3Ware
>
>
>
>
> Ted Mittelstaedt wrote:
> > 3ware is supported by the manufacturer - what do they say?
> >
> > Ted
> >
> >> -----Original Message-----
> >> From: owner-freebsd-questions at freebsd.org
> >> [mailto:owner-freebsd-questions at freebsd.org]On Behalf Of Chris Boyd
> >> Sent: Monday, September 24, 2007 2:54 PM
> >> To: freebsd-questions at freebsd.org
> >> Subject: Update on data corruption with Tyan/3Ware
> >>
> >>
> >> Here's an update on my odd problem. Thanks to Don B for some hints
> >> that helped us start looking in a better directions.
> >>
> >> System is a Tyan Thunder K8SE motherboard with dual Opteron 250
> >> 2.4GHz CPUs and a 3Ware 9550SX-4LP PCI Express four port RAID
> >> controller running in RAID 5. Disks are 4x Seagate 500GB SATA. 4GB
> >> Memory.
> >>
> >> Latest BIOS and firmware on mobo and RAID controller.
> >>
> >> FreeBSD 6.2 AMD64 with all patches as of 9-21-2007
> >>
> >> We've narrowed the problem down to files that are > 4GB. Anytime we
> >> have a file that's > 4GB, we get inconsistent checksums, can't
> >> uncompress it, etc. Files < 4GB are fine.
> >>
> >> So is this a RAID controller issue? A filesystem problem? All hints
> >> appreciated.
>
> How are you getting the files on the system? Network transfer? Direct
> copy from a disc?
>
> What filesystem is it you're using?
>
> 3ware is well supported under Linux, from what I can tell and what I've
> experienced, and can't imagine that a manufacturer with a good track
> record of driver support for Linux for so long would not support FreeBSD
> as well.
Bart and Chris,
The problem might be that the 3ware driver uses a 32 bit "int" to
represent
a file size. In FreeBSD, stat() ftruncate() lseek() and
friends which are based on "strut stat" had this limitation under FreeBSD
4.xx.
Note line# 821 of twe_freebsd.c the driver:
sc->twed_disk->d_maxsize = (TWE_MAX_SGL_LENGTH - 1) * PAGE_SIZE;
sc->twed_disk->d_sectorsize = TWE_BLOCK_SIZE;
sc->twed_disk->d_mediasize = TWE_BLOCK_SIZE *
(off_t)sc->twed_drive->td_size;
sc->twed_disk->d_fwsectors = sc->twed_drive->td_sectors;
that off_t also appears elsewhere.
I'm not a driver programmer but I'd bet the driver hasn't been updated
for 64 bit FreeBSD.
Ted
More information about the freebsd-questions
mailing list