Useful commands for ZFS on Linux. Less “Getting Started,” more “How Did I Get it Started Before?”
Tested on Linux Mint 18.3. This guide is not yet complete.
All commands are expected to be run as root. Use sudo in front of these commands if you are not root user.
Checking on Things
See what pools are online, last scrub time, and if they have any errors.
Check every pool and file system that is currently active
Can’t find a pool? Look for it here.
zfs get compressratio pool/dataset
Amount of effective compression in a dataset as a ratio.
Make a Pool
Don’t format your disks or anything. ZFS does that for you.
zpool create -f pool/dev/DRIVE1/dev/DRIVE2 ...
pool is whatever you want your zpool to be called. This is like a hostname, pick a good one, it’s a pain to change.
/dev/DRIVEx just enter the names of your drives you want in the zpool
There is no confirmation, whatever disks you tell it to mess with will be used and that’s final. Be careful!
Add Pool To Cache
Allegedly automatic, but may fail, resulting in your pool not importing on boot.
zpool set cachefile=/etc/zfs/zpool.cache pool
Make a Dataset (ZFS Filesystem)
zfs create pool/dataset
Datasets are required for snapshots and bookmarks, as well as file stuff such as quota and compression for directories.
zfs set quota=5G pool/dataset
5G quota size.
zfs set compression=lz4 pool/dataset
lz4 is the recommended compression format based on speed vs compression ratio
You may not immediately notice tangible benefits from compression as most already compressed files such as video (mp4, mov, …), photos (jpg), and music (mp3, flac, …) actually become larger when compressed. ZFS is very smart about not compressing files that won’t get smaller. This is a good thing.
Tested on the MacPro 1,1 running Linux Mint 18.3 Xfce 64-bit
The pool used in the real world testing of this reference was composed of 4 Western Digital 1TB Green Drives attached via a SFF-8088 External SAS to 4x SATA cable connected to an LSI HBA.