Ian Collins wrote:
On 08/11/10 05:16 AM, Terry Hull wrote:
So do I understand correctly that really the "Right" thing to do is to build
a pool not only with a consistent strip width, but also to build it with
drives on only one size?   It also sounds like from a practical point of
view that building the pool full-sized is the best policy so that the data
can be spread relatively uniformly across all the drives from the very
beginning.  In my case, I think what I will do is to start with the 16
drives in a single pool and when I need more space, I'll create a new pool and manually move the some of the existing data to the new pool to spread
the IO load.

That is what I have done when Thumpers fill up!

The other issue here seems to be RAIDZ2 vs RAIDZ3. I assume there is not a
significant performance difference between the two for most loads, but
rather I choose between them based on how badly I want the array to stay
intact.

The real issue is how long large capacity drives take to resilver and is the risk of loosing a second drive during that window high enough to cause concern. In a lot of situations with 2TB drives, it is.


Of course your redundancy requirements may be such that you are okay with taking that risk because you have a complete backup elsewhere that you can restore from in case a second drive is lost during that recovery window. Evaluate your requirements and see if it makes more sense to dedicate more drives to make a RAIDZ3 vs RAIDZ2 (or by the same argument RAIDZ2 vs RAIDZ1), than it does to dedicate those additional drives to backup. Remember that redundancy provided by RAID is not a replacement for backup. (I get the feeling that a little bit of redundancy (RAIDZ1 or RAIDZ2) with a little bit of backup (stripe or RAIDZ1) is the best compromise overall, with forces such these pushing things one way or the other: outage tolerance, time to recover from backup, and the amount of pain induced by a complete system failure in case a non-backed up RAIDZ3 falls apart.) Running a RAIDZ3 with no backup seems like one is saying "I really really want to protect against individual drive failures, but if lightning strikes or the water main upstairs breaks I'll give up." Running a main pool with a non-redundant stripe and two backups says "I can tolerate losing my day-to-day changes to the pool since the last backup was run, but I really don't want to lose the bulk of my stuff which the backup protects." Running a main pool with a little bit of redundancy (e.g. RAIDZ1) and a backup with redundancy says "I don't like downtime nor data loss of my day-to-day changes. I'm going to guard against single drive failures which is the most likely case, but resort to my more time-intensive to recover backups if I hit a bad streak and get two+ simultaneous drive failures during a long resilver. My backups have redundancy as well because if I need to fall back upon them, then it is because I really really need them."

E.g.with 24 x 1TB drives, some options include:
3 x 3x1TB RAIDZ1, 6TB usable for data, 9 drives + 2x (separate pools, not striped) 7x1TB RAIDZ1 6TB usable for backup, 14 drives + 1 hot spare. Low strength main pool. Two complete low strength backups. Hot spare. 3 x 4x1TB RAIDZ2, 6TB usable for data, 12 drives + 2x (separate pools, not striped) 6x1TB stripe (no redundancy) 6TB usable for backup, 12 drives. Strong main pool. Two complete but fragile backups.

3 x 4x1TB RAIDZ1, 9TB usable for data, 12 drives + 1x 12x1TB RAIDZ3 9TB usable for backup, 12 drives. Low strength main pool. Strong backup. 3 x 5x1TB RAIDZ2, 9TB usable for data ,15 drives + 1x 9x1TB stripe (no redundancy) 9TB usable for backup, 9 drives. Strong main pool. Fragile backup. 3 x 6x1TB RAIDZ3, 9TB usable for data ,18 drives + 1x 6x1TB stripe (no redundancy) 6TB usable for backup, 6 drives. Very strong main pool. Fragile, possibly incomplete backup (depending on compression and whether part of the directory structure is not backed up)

4 x 3x1TB RAIDZ1, 8TB usable for data, 12 drives + 1x 12x1TB RAIDZ3 9TB usable for backup, 12 drives + 0 hot spares 4 x 3x1TB RAIDZ1, 8TB usable for data, 12 drives + 1x 10x1TB RAIDZ2 8TB usable for backup, 10 drives + 2 hot spares. Low strength main pool. Strong backup. Hot spares. 4 x 4x1TB RAIDZ1, 12TB usable for data, 16 drives + 1x 12x1TB stripe (no redundancy) 12TB usable for backup, 8 drives + 0 hot spares. Low strength main pool. Fragile backup. 4 x 4x1TB RAIDZ2, 8TB usable for data ,16 drives + 1x 8x1TB stripe (no redundancy) 8TB usable for backup, 8 drives + 0 hot spares. Strong main pool. Fragile backup.



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

Reply via email to