RAID (Redundant array of inexpensive/independent disks) is a data storage virtualization technology that combines multiple physical data storage components into one or more logical units for the purposes of data redundancy, performance improvement, or both.
RAID levels and their associated data formats are standardized by the Storage Networking Industry Association (SNIA) in the Common RAID Disk Drive Format (DDF) standard. Please read Wiki page Standard RAID levels, and to get more details.
ZFS user number in the name of RAID (like RAIDZ1) and it may confuse. Number in ZFS RAID means RAID parity, not RAID level. RAIDZ is not exactly the same but very similar equivalent of Standard RAID with benefits of ZFS. For file storages with more than 12 disks ZFS developers propose to use dRAID.
| Standard RAID level | ZFS RAID type | Description | Available Storage |
|---|---|---|---|
| RAID 0 | Striped ZFS Pool | Data stripe | ~97% |
| RAID 1 | Mirrored ZFS Pool | Data mirror | ~50% |
| RAID 5 | RAIDZ1 | Data stripe with single distributed parity | ~64% |
| RAID 6 | RAIDZ2 | Data stripe with double distributed parity | ~47% |
| RAID 7 | RAIDZ3 | Data stripe with triple distributed parity | ~38% |
| RAID 10 (1+0) | Stripe of Mirrored ZFS Pools | Data stripe with series of mirrored drives | ~49% |
$ zpool status -v tank-stripe
pool: tank-stripe
state: ONLINE
config:
NAME STATE READ WRITE CKSUM
tank ONLINE 0 0 0
/dev/sda1 ONLINE 0 0 0
/dev/sdb1 ONLINE 0 0 0
errors: No known data errors
$ zpool status -v tank-mirror
pool: tank-mirror
state: ONLINE
config:
NAME STATE READ WRITE CKSUM
tank ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
/dev/sda1 ONLINE 0 0 0
mirror-1 ONLINE 0 0 0
/dev/sdb1 ONLINE 0 0 0
errors: No known data errors
$ zpool status -v tank-raidz1
pool: tank-raidz1
state: ONLINE
config:
NAME STATE READ WRITE CKSUM
tank ONLINE 0 0 0
raidz1-0 ONLINE 0 0 0
/dev/sda1 ONLINE 0 0 0
/dev/sdb1 ONLINE 0 0 0
/dev/sdc1 ONLINE 0 0 0
errors: No known data errors
$ zpool status -v tank-raidz2
pool: tank-raidz2
state: ONLINE
config:
NAME STATE READ WRITE CKSUM
tank ONLINE 0 0 0
raidz2-0 ONLINE 0 0 0
/dev/sda1 ONLINE 0 0 0
/dev/sdb1 ONLINE 0 0 0
/dev/sdc1 ONLINE 0 0 0
/dev/sdd1 ONLINE 0 0 0
errors: No known data errors
$ zpool status -v tank-raidz3
pool: tank-raidz3
state: ONLINE
config:
NAME STATE READ WRITE CKSUM
tank ONLINE 0 0 0
raidz3-0 ONLINE 0 0 0
/dev/sda1 ONLINE 0 0 0
/dev/sdb1 ONLINE 0 0 0
/dev/sdc1 ONLINE 0 0 0
/dev/sdd1 ONLINE 0 0 0
/dev/sde1 ONLINE 0 0 0
errors: No known data errors
The array can sustain multiple drive losses so long as no mirror loses all its drives.
$ zpool status -v tank-ten
pool: tank-ten
state: ONLINE
config:
NAME STATE READ WRITE CKSUM
tank ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
/dev/sda1 ONLINE 0 0 0
/dev/sdb1 ONLINE 0 0 0
mirror-1 ONLINE 0 0 0
/dev/sdc1 ONLINE 0 0 0
/dev/sdd1 ONLINE 0 0 0
errors: No known data errors