Update on data corruption with Tyan/3Ware

Bart Silverstrim bsilver at chrononomicon.com
Tue Sep 25 04:51:35 PDT 2007


Ted Mittelstaedt wrote:
> 
>> -----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.

A) Holy @#$!@...good job and thank you for pointing that out!  :-)
B) Does that mean that this would affect all 3Ware products on FreeBSD, 
or only when running the 64 bit OS?  I believe I am storing 4+ gig files 
on a Linux system with a 3Ware controller in it and to my knowledge 
there hasn't been any problems with it.

Sorry if it's a silly question...I'm not a programmer.


More information about the freebsd-questions mailing list