ZFS
Tools
ZFS Capacity Calculator ZFSBootMenu
RAID Equivalents
RAID 0
- Stripe across disks without parity
- 100% utilisation
RAID 1
- Mirror
- 50% utilisation (for 2 way mirror, in general)
RAID 5
- Stripe across disks with parity 1
- utilisation (67% for 3 disks, 80% for 5)
RAID 6
- Stripes across disk with parity 2
- utilisation (60% for 5 disks)
RAID 10
- Stripe across mirrors
- 50% utilisation (for 2 way mirror, in general)
Guides
ZFS: You should use mirror vdevs, not RAIDZ.
- Use mirrored pairs of devs as vdevs instead of RAIDZ
- Quicker re-silver
- Very little impact on performance of pool
- Survival chances
- = number of disks already failed
- = number of disks in full pool
- e.g 8 disk pool (2-way mirrors)
- 100% survival of the first disk failure
- 85.7% survival of a second disk failure
- 66.7% survival of a third disk failure
- don’t be greedy. 50% storage efficiency is plenty.
- for a given number of disks, a pool of mirrors will significantly outperform a RAIDZ stripe.
- a degraded pool of mirrors will severely outperform a degraded RAIDZ stripe. ZFS Handbook ZFS write allocation in 0.7.x
- Don’t mix rust and SSD in the same pool or vdev Assessing the Potential for Data Loss
Install
# debian
sudo apt install zfsutils-linux
# fedora
sudo dnf install https://zfsonlinux.org/epel/zfs-release.el7_9.noarch.rpm
sudo dnf install zfs
sudo modprobe zfs
# arch
sudo yay -S zfs-dkms zfs-utils
sudo modprobe zfs
lsmod | grep zfs
Create
- Check devices
lsblk
- Create ZPool
# single disk
sudo zpool create mypool /dev/sdb
# mirror
sudo zpool create mypool mirror /dev/sdb /dev/sdc
# raid-z1
sudo zpool create mypool raidz /dev/sdb /dev/sdc /dev/sdd