ZFS: Difference between revisions
Appearance
	
	
| Line 12: | Line 12: | ||
# Create a zpool with a mirror vdev.  | # Create a zpool with a mirror vdev.  | ||
zpool create -f -o ashift=12 -o compression=lz4 $zpool_name mirror \  | zpool create -f -o ashift=12 -o compression=lz4 $zpool_name mirror \  | ||
   ata-diskA \  | |||
   ata-diskB  | |||
# Create a dataset.  | # Create a dataset.  | ||
zfs create -o encryption=aes-256-gcm -o keyformat=passphrase $zpool_name/$dataset_name  | zfs create -o encryption=aes-256-gcm -o keyformat=passphrase $zpool_name/$dataset_name  | ||
</pre>  | </pre>  | ||
;Notes  | |||
* You should always use the id under <code>/dev/disk/by-id/</code>  | |||
** E.g. <code>/dev/disk/by-id/ata-diskA</code>  | |||
==Pros and Cons==  | ==Pros and Cons==  | ||
Revision as of 17:27, 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(2|3) 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 
 - E.g. 
 
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.