On Mon, May 9, 2011 at 8:33 AM, Darren Honeyball <ml...@spod.net> wrote:
> I'm just mulling over the best configuration for this system - our work load 
> is mostly writing millions of small files (around 50k) with occasional reads 
> & we need to keep as much space as possible.

If space is a priority, then raidz or raidz2 are probably the best
bets. If you're going to have a lot of random iops, then mirrors are
best.

You have some control over the performance : space ratio with raidz by
adjusting the width of the radiz vdevs. For instance, mirrors will
provide 34TB of space and best random iops. 24 x 3-disk raidz vdevs
will have 48TB of space but still have pretty strong random iops
performance. 13 x 5-disk raidz vdevs will give 52TB of space at the
lost of lower random iops.

Testing will help you find the best configuration for your environment.

> HP's recommendations for configuring the MDS 600 with ZFS is to let the P212 
> do the raid functions (raid 1+0 is recommended here) by configuring each half 
> of the MDS 600 as a single logical drive (35 drives) & then use a basic zfs 
> pool on top to provide the zfs functionality - to me this would seem to loose 
> a lot of the error checking functions of zfs?

If you configured the two logical drives as a mirror in ZFS, then
you'd still have full protection. Your overhead would be really high
though - 3/4 of your original capacity would be used for data
protection if I understand the recommendation correctly. (You'd use
1/2 of the original capacity for RAID1 in the MDS, then 1/2 of the
remaining for the ZFS mirror.) You could use non-redundant pool in ZFS
to reduce the overhead, but you sacrifice the self-healing properties
of ZFS when you do that.

> Another option is to use raidz and let zfs handle the smart stuff - as the 
> P212 doesn't support a true dumb JBOD function I'd need to create each drive 
> as a single raid 0 logical drive - are there any drawback to doing this? Or 
> would it be better to create slightly larger logical drives using say 2 
> physical drives per logical drive?

Single-device logical drives are required when you can't configure a
card or device as JBOD, and I believe its usually the recommended
solution. Once you have the LUNs created, you can use ZFS to create
mirrors or raidz vdevs.

> I'm planning on having 2 hot spares - one in each side of the MDS 600, is it 
> also worth using a dedicated ZIL spindle or 2?

It would depend on your workload. (How's that for helpful?)

If you're experiencing a lot of synchronous writes, then a ZIL will
help. If you aren't seeing a lot of sync writes, then a ZIL won't
help. The ZIL doesn't have to be very large, since it's flushed on a
regular basis. From the Best Practices guide:
"For a target throughput of X MB/sec and given that ZFS pushes
transaction groups every 5 seconds (and have 2 outstanding), we also
expect the ZIL to not grow beyond X MB/sec * 10 sec. So to service
100MB/sec of synchronous writes, 1 GB of log device should be
sufficient."

If the MDS has a non-volatile cache, there should be little or no need
to use a ZIL.

However, some reports have shown ZFS with a ZIL to be faster than
using non-volatile cache. You should test performance using your
workload.

> Is it worth tweaking zfs_nocacheflush or zfs_vdev_max_pending?

As I mentioned above, if the MDS has a non-volatile cache, then
setting zfs_nocacheflush might help performance.

If you're exporting one LUN per device then you shouldn't need to
adjust the max_pending. If you're exporting larger RAID10 luns from
the MDS, then increasing the value might help for read workloads.

-B

-- 
Brandon High : bh...@freaks.com
_______________________________________________
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss

Reply via email to