suggestions for SATA RAID cards

Chris BeHanna chris at behanna.org
Wed Oct 4 10:00:59 PDT 2006


On Oct 4, 2006, at 12:35 PM, Pete French wrote:

>> I would guess that's nothing to do with blocks or striping per se.  A
>> single big file won't be laid out 'sequentially' on the disk; the
>> filesystem tries to avoid filling up cylinder blocks.  It puts enough
>> in given places that the seek costs are pretty low.  So, after  
>> reading
>> one bit a while, it'll seek somewhere and start another read.  The
>> controller could issue that read to another component of the mirror;
>
> yes, the filesystenm layout may well make it leap around the  
> drives. But
> what I am wanting to ensure is that if I issue a 128k block read to
> the drives then it will satisfy this by reading two lots of 64k,  
> one from
> each mirror, in parallel. If this is true, and if I am sequentially
> reading blocks from a file, then even if the files moves about on  
> the drives,
> the requests for blocks should always come from both drives at once.
>
> It isn't doung this, and I found a couple of interesting things - one
> being the 'stripe size' parameter inside the RAID controller which
> is set to 64k, and the oter being a comment somewhere that FreeBSD  
> never
> issues more than 64k read requests at once. So I was speculating that
> what is happening is that I am reading 64k chunks, and is this is less
> than the stipre size then controller is almost always satisfying  
> these from
> a single drive.

	Drives typically have a track buffer of 2-8MB, which is well in  
excess of the size of your read request.  If a single drive can  
satisfy the entire read with a single seek and a partial rotation,  
then that's going to be faster than splitting the request up into two  
separate physical I/O requests, one per drive, involving two seeks  
and rotational latency of two drives.

	RAID-1 is going to shine when you have multiple parallel accesses to  
the volume, or when you're doing random I/O on a large file, or when  
the file is so large that you have to follow indirect blocks to get  
all of it.  In those cases, both spindles are going to come to the  
party.

Chris BeHanna



More information about the freebsd-amd64 mailing list