My best practice basic overview.
This is how I think about things today, well may change tomorrow!!:D
If the environment requires small/random (<32k) I/O then Mirror is best.
Database fit in to this area, also VMware with iSCSI.
VMware's VMFS is usually random I/O (typically around 5-10 VM's per VMFS)
Never used, people fell hard done by when they loose 50%, never mind 66%
RAIDZ & RAIDZ2
Ideal for large sequential reads/writes (>128k), eg. File Shares and backups images.
Paranoid users only, or when 2TB drive are available in S7000.
Ideal for Archive/Backup data.
Best on 7310/7410 with at least 1 Readzillia (100Gb L2ARC)
Test before use, seriously consider compression as an alternative
Record (Block) size is important, smaller better dedup ratio, large better overall system performance. (I'm still learning what the optimal number is for this, if any)
Don't use when performance is paramount. (i.e. Database)
Ideal for backups and VM templates.
Lower latency for Random I/O - Oracle, MS Exchange and MS SQL (Physical or VM's)
Use a MIRROR RAID level
Synchronous write bias to Latency (Use SSD ZIL if available)
Consider Records (block) sizes of 8k (Data/Client dependent)
Higher latency, but good for sequential reads/writes.
Ideal for Linux home directories
VMware for general machines and VDI.
This caches writes to volatile memory, if you suffer a power failure you can loose data.
The performance increase is very tempting, particularly when you don't have a Logzilla.
Choices is yours.