suggestions for SATA RAID cards

Pete French petefrench at ticketswitch.com
Wed Oct 4 09:37:07 PDT 2006


> 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.

Of course I am making some large assumtions here about the internal
workings of the RAID controller, which may well be wrong - but then thats
why I asked the question.

> I'd expect a sufficiently smart RAID controller to even out across the
> disks, even when there's only one process reading (not that the
> controller knows anything about 'processes', but...)

Yes, so would I - and it isn't doing so.

-pete.


More information about the freebsd-amd64 mailing list