Best way to create a large data space

John Nielsen lists at jnielsen.net
Thu Jul 13 20:21:03 UTC 2006


On Thursday 13 July 2006 08:34, stan wrote:
>  i have a Sun Ultra 40 with 4 500F SATA drives. I plan on using this
>  machine primarily for a large data storage requirement.
>
>  What I want is one large /data partition. Given all the choices for doing
>  this in FreeBSD (software) what's the "best" choice here? The partio will
>  be shared via SAMBA if that affects the thhinking here.

"Best" really depends on what your needs and goals are. Here's a quick 
overview of what the choices ARE, based mostly on memory. Corrections and 
additions welcome. I'll try to make some notes about pros and cons as well.

ccd(4). This is pretty well deprecated by other choices now, although it is 
still available. Supports pseudo-RAID1, pseudo-RAID0, and JBOD setups.

ataraid(4)/atacontrol(8). This is the tool used to do RAID on ata-driven 
devices whether the hardware pretends to support it or not. A good choice if 
you have a supported software "RAID" card, especially if you want your array 
to be usable under other OSes. Supports RAID0, RAID1, RAID0+1, SPAN, and JBOD 
setups. Again, only works with the ata(4) driver.

gvinum(8). This is the best (only?) choice if you want RAID5. Supports most 
setups imaginable on any type of disk (or combinations thereof). Setup and 
maintenance is a bit more complex than with other options. Migration from the 
original vinum (now unusable) to the GEOM-compatible gvinum is mostly (but 
not entirely) complete.

newer geom(4) tools: gstripe(8), gmirror(8), gconcat(8), graid3(8). Between, 
them, these tools support RAID0, RAID1, RAID3, and SPAN configurations on any 
type of disk (or combination thereof). In my experience these tools are 
easier to use than any of the above (and just as robust), so they are great 
options. Due to the way the metadata is stored on-disk, it's possible to 
shuffle disks around and still have your arrays detected correctly, which is 
not the case for at least some of the other options above.

Given the (somewhat sparse) details you provided, I would suggest either RAID5 
using gvinum or RAID0+1 using gmirror and gstripe. The former would give you 
high capacity and redundancy, the latter would give you high performance and 
redundancy. Since it's possible the network may already be a bottleneck the 
RAID5 performance hit might not be relevant.

If you really want high capacity and high performance you could use gstripe 
only, but only do so if you don't care if you lose all of your data (which 
you would as soon as any one of your disks had a problem).

JN


More information about the freebsd-questions mailing list