On Thu, Jan 28, 2010 at 07:26:42AM -0800, Ed Fang wrote:
> 4 x x6 vdevs in RaidZ1 configuration
> 3 x x8 vdevs in RaidZ2 configuration

Another choice might be
 2 x x12 vdevs in raidz2 configuration

This gets you the space of the first, with the recovery properties of
the second - at a cost in potential performance.  Your workload
(mostly streaming, not many parallel streams, large files) sounds like
it might be one that can tolerate this cost, but care will be needed.
Experiment and measure, if you can.

2 x x12 could also get you to raidz3, for extra safety, making the
same performance tradeoff against 3x8 with constant space.  I don't
think this is a choice you're likely to want, but worth mentioning.

> Obviously if a drive fails, it'll take a good several days to
> resilver.  The data is important but not critical.  

That's important information.

> Using raidz1
> allows you one drive failure, but my understanding is that if the
> zpool has four vdevs using raidz1, then any single vdev failure of
> more than one drive may fail the entire zpool ????

Correct, as already discussed.

However, there are actually two questions here, and your
final decision depends on both:

 - how many vdevs of what type?
 - how many pools?

Do you need all the space available in one common pool, or can your 
application distribute space and load between multiple resource
containers?   You probably have more degrees of trade-off freedom,
even for the same choices of base vdevs.

If space is more important to you, and losing 1/4 of your non-critical
files on a second disk failure is a tolerable risk, you might consider
4 pools of 6-disk raidz1.  Likewise, 3 pools of 8-disk raidz2 reduces
the worst impact of a third disk failure to 1/3 of you data, and 2
pools of 12-disk vdevs to 1/2.

> If that is the
> case, then it sounds better to consider 3 x8 with raidz2.  

Others have recommended raidz2, and I agree with them, in general
principle. 

All that said, for large files that will fill large blocks, I'm wary
of raidz pools with an odd number of data disks, and prefer if
possible, a power-of-two number of data disks (plus whatever
redundancy level you choose).   Raid-z striping can leave holes, and
this seems like it may result in inefficencies, either in space,
fragmentation or just extra work.  I have not measured this, and it
may be irrelevant or invisible, generally or in your workload.

So, I would recommend raidz2 vdevs, either 3x8 or 2x12. Test and
compare the performance under your workload and see if you can afford
the cost of the extra space the wide stripes offer.  Test the
performance while scrubs and resilvers are going on as well as real
workload. If 2x12 can carry this for you, go for it. Then choose
whether to combine the vdevs into a big pool, or keep them separate.

--
Dan.

Attachment: pgpTn58UmlK25.pgp
Description: PGP signature

_______________________________________________
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss

Reply via email to