Subject: RAIDframe queueing strategies, LFS, etc.
To: None <tech-kern@netbsd.org, tech-perform@netbsd.org>
From: Blair Sadewitz <blair.sadewitz@gmail.com>
List: tech-kern
Date: 08/14/2007 23:05:55
I've been experimenting with RAIDframe, and found a certain
configuration that's very useful.

-- First off, the cvscan queue strategy is far preferable to FIFO (in
the situations that I've examined).  To employ it properly, make sure
to use dkctl to set the bufq strategy on your component disks to
"fcfs".

-- LFS works *VERY* well with RAIDframe and the cvscan queue strategy.
 Try this out and you'll see how much "smooth syncer" problems are
ameliorated.

-- Using larger block/frag sizes with LFS helps a lot, especially with
RAIDframe.  Consider MAXPHYS and calculate your block/frag sizes using
that.  For example, if you have a two-component raid0 set, try
32768/4096.  I've also noticed that with 32768/4096 or 65536/8192,
there isn't any resource starvation when performing lots of metadata
operations, e.g. untarring pkgsrc.

-- Unfortunately, mounting a large (see the PR I just filed) LFS
filesystem with larger block/frag sizes (the frag size seems to matter
somewhat more, as using -b65536 -f{1024,2048} isn't problematic) will
panic the kernel.  LFS is also virtually unusable in -current on an MP
system due to deadlocks.  Those with UP systems using "smaller"
filesystems will probably be able to immediately benefit from the tips
outlined here.

I haven't had any problems thusfar with cvscan itself, though.

Regards,

--Blair