ZFS: Difference between revisions

From David's Wiki
Line 4: Line 4:
There are three levels to understand
There are three levels to understand
* zpools are a JBOD of one or more vdevs
* zpools are a JBOD of one or more vdevs
* vdevs are groups of drives, likely in raidz(or raidz2, raidz3) or mirror.
* vdevs are groups of drives, likely in raidz (or raidz2, raidz3) or mirror.
* datasets are filesystems stored on a zpool, similar to partitions
* datasets are filesystems stored on a zpool, similar to partitions
* zvol is a virtual block device on a zpool without a filesystem
* zvol is a virtual block device on a zpool without a filesystem

Revision as of 17:28, 8 November 2021

How to use ZFS:

Background

There are three levels to understand

  • zpools are a JBOD of one or more vdevs
  • vdevs are groups of drives, likely in raidz (or raidz2, raidz3) or mirror.
  • datasets are filesystems stored on a zpool, similar to partitions
  • zvol is a virtual block device on a zpool without a filesystem

Usage

# Create a zpool with a mirror vdev.
zpool create -f -o ashift=12 -o compression=lz4 $zpool_name mirror \
  ata-diskA \
  ata-diskB

# Create a dataset.
zfs create -o encryption=aes-256-gcm -o keyformat=passphrase $zpool_name/$dataset_name
Notes
  • You should always use the id under /dev/disk/by-id/
    • E.g. /dev/disk/by-id/ata-diskA

Pros and Cons

VS Snapraid + btrfs + mergerfs

Pros
  • ZFS has realtime parity.
  • ZFS can work while degraded.
  • ZFS snapshots with send and receive.
  • ZFS has encryption on per-dataset.
  • ZFS handles everything altogether including parity on permissions
Cons
  • The main con is that ZFS is less expandable. You need to buy all of your drives up front.
  • If many drives die, i.e. >2 for raidz2, you lose all your data.

Resources