awesome-zfs
awesome-zfs copied to clipboard
Curated list of resources on OpenZFS
Awesome OpenZFS 
OpenZFS is a high-performance, open-source file system and volume manager engineered for exceptional data integrity, scalability, and advanced storage features. Originally developed by Sun Microsystems for the Solaris OS, it is now maintained by the OpenZFS Project and serves as the industry standard for modern data storage.
Key Features of OpenZFS
- Self-Healing Data: Automatically detects and corrects data corruption in real-time—no manual fsck required.
- Data Compression & Deduplication: Save space and improve performance with built-in compression algorithms and intelligent data deduplication.
- Copy-on-Write & Snapshots: Create efficient, instant snapshots and clones without data duplication.
- RAID-Z & Pooling: Replace traditional RAID with more robust, flexible volume management using virtual devices.
- Cross-Platform Support: Runs on FreeBSD, Linux, macOS, and other UNIX-like systems.
- Max File Size: Up to 18.44 exabytes (that’s 18.4 million TB!)
- Max Volume Size: Up to 256 trillion yobibytes (~340 undecillion TB)
- From Homelab to Datacenters: Whether you're backing up a Homelab or running a Datacenter, OpenZFS is built to handle it—reliably and efficiently.
About

A curated list of high-quality resources includes the best tutorials, tools, cheat sheets, benchmarks, and community resources for OpenZFS—ideal for Linux sysadmins, homelab enthusiasts, developers, and enterprise storage architects. Also good for learning, managing, and optimizing OpenZFS.
From :estonia: with :heart:.
Support us
We're community-driven and appreciate your support! Help us build and maintain OpenZFS test hardware by: This project has no sponsors but we accepting donations to purchase hardware for OpenZFS test rig.
You can support us by:
- ⭐ Starring this GitHub repository
- 🔗 Sharing it with your network
- ☕ Buying us a coffee
- 🛒 Donating hardware via our Amazon Wishlist
- 🤝 Contribution in this repo
We would like to compare performance with same set of hardware components and all the money from "Buy Me a Coffee" will be spent on hardware. Please find more details about in ZFS Performance Test scenario
📚 Table of Contents
- Awesome OpenZFS
- Key Features of OpenZFS
- About
- Support us
- 📚 Table of Contents
- Legend
- 📘 Official Resources
- 🧭 RAIDZ official doc
- 🧭 dRAID official doc
- 🧭 RAID with ZFS
- 📚 Tutorials
- 🛣️ Beginner Guides
- 🔁 Snapshots, Backups and Replication
- ZFS performance tuning and benchmarks
- ZFS Data Protection
- ZFS Encryption
- ZFS RAID and RAIDZ
- ZFS dRAID
- 🛠️ ZFS tools
- ZFS Calculators
- OpenZFS System Administration Commands
- ZFS GUI
- ZFS Monitoring
- ZFS Backup tools
- ZFS other tools
- ZFS Cheat Sheets
- Root on ZFS (Linux)
- How to Use OpenZFS on Windows (ZFS on Windows)
- How to Use OpenZFS on macOS (ZFS on Mac)
- How to Use OpenZFS on Raspberry Pi (ZFS on Raspberry Pi)
- How to Use OpenZFS with Kubernetes for Persistent Storage (ZFS on K8S)
- How to Use OpenZFS with Docker for Persistent Storage (ZFS on Docker)
- Other Awesome ZFS
- 🧰 ZFS troubleshooting
- ZFS vs. other Filesystems
- Simple comparison table
- Complex comparison table
- Btrfs
- XFS
- Books and Presentations
- Videos
- Test scenarios
- License
Legend
- Abandoned :skull:
- Monetized :moneybag:
- Beta version :warning:
- Something wrong :broken_heart:
- Higly recommended :cupid:
📘 Official Resources
🧭 RAIDZ official doc
RAIDZ documentation is a variation on RAID-5 that allows for better distribution of parity and eliminates the RAID-5 “write hole”. Data and parity is striped across all disks within a raidz group. RAIDZ is effective for large block sizes and sequential workloads.
🧭 dRAID official doc
dRAID documentation is a variant of RAIDZ that provides integrated distributed hot spares which allows for faster resilvering while retaining the benefits of raidz.
🧭 RAID with ZFS
Open ZFS focused on RAID5-like RAIDZ and dRAID. Meanwhile it also support other RAID types like RAID0 and RAID1.
📚 Tutorials
🛣️ Beginner Guides
- :cupid: ZFS 101
- OpenZFS Topology FAQ: What’s a zpool? What’s a vdev?
- ZFS Guide for starters and advanced users
- What is ZFS? Why are People Crazy About it?
- 10 Reasons Why ZFS Rocks
- ZFS walkthrough
- ZFS CLI reference
- Aaron’s ZFS Guide: Zpool Best Practices and Caveats
- OpenZFS - the final word in file systems
🔁 Snapshots, Backups and Replication
- Secure External Backup with ZFS Native Encryptionp
- Sending and Receiving ZFS Data
- How to use snapshots, clones and replication in ZFS on Linux
- :cupid: ZFS Snapshot Tools
- Efficient ZFS Replication with Snapshots
- Backup storage for thousands of virtual machines using free tools
ZFS performance tuning and benchmarks
- Managing and Tracking Storage Performance – OpenZFS Storage Bottlenecks
- 5 Reasons Why Your ZFS Storage Benchmarks Are Wrong
- FreeBSD vs. Linux – Which Operating System to Use for OpenZFS
- ZFS performance results
- ZFS performance considerations
- ZFS RAID vs. Linux mdraid
ZFS Data Protection
ZFS Encryption
- A quick-start guide to OpenZFS native encryption
- ZFS handbook - Encryption
- OpenZFS on OS X encryption support
- Tutorial on how to backup encrypted ZFS data on untrusted storage without the need of unlocking it.
- How to install LUKS encrypted Server and enable remote unlocking tutorial
ZFS RAID and RAIDZ
- ZFS RAID types
- Understanding ZFS RAID Levels: Types, Modes, and Configurations
- ZFS RAIDZ vs. traditional RAID
- :cupid: ZFS versus RAID
ZFS dRAID
🛠️ ZFS tools
ZFS Calculators
- OpenZFS Capacity Calculator
- ZFS raidz calculator
- ZFS Capacity Calculator
- ZFS / RAIDZ Capacity Calculator (beta)
OpenZFS System Administration Commands
- :cupid: zdb — display ZFS storage pool debugging and consistency information
- :cupid: fsck.zfs — dummy ZFS filesystem checker
- :cupid: ZED — ZFS Event Daemon
- :cupid: zfs_prepare_disk
ZFS GUI
- :skull: Zyggy - Simple GUI for ZFS administration
- :moneybag: Poolsman - Web UI for OpenZFS
- Cockpit ZFS Manager
- :skull: ZFS Commander
- :warning: ZfDash ZFS Management GUI / WEBUI
- Terminal UI for inspecting and restoring file history on ZFS snapshots
- ZFS administration tool for Webmin
ZFS Monitoring
- ZFS pool monitoring and notification daemon
- Prometheus and ZFS
- Prometheus ZFS exporter
- Zabbix ZFS monitor
- Zabbix template and user parameters to monitor zfs on linux
- Nagios/Icinga plugin to monitor ZFS Pools
- :skull: Nagios plugin to check ZFS pool in the Linux environment
- collectd plugin for ZFS
ZFS Backup tools
- bzfs - Backup command line tool
- httm - Interactive, file-level Time Machine-like tool for ZFS
- pyznapv - ZFS snapshot tool
- sanoid - Policy-driven snapshot management and replication tool
- zap - Management of zfs snapshots
- zfs_autobackup - ZFS autobackup is used to periodicly backup ZFS filesystems to other locations
- zfs-autosnapshot - Shell script that takes snapshots
- zfs-auto-snapshot - ZFS Automatic Snapshot Service
- zfs-backup - ZFS backup via zfs send/recv over SSH
- zfs-backup-blob - Backup-tools for ZFS to blob-storage backups
- zfs-backup-manager - Automatic ZFS Backup Management Tool
- zfs_mgmt - Managing zfs snapshots
- zfsnap - Rolling ZFS snapshots
- zfsnap - Rolling ZFS snapshots
- zfs-periodic - Scripts to take zfs snapshots with periodic on FreeBSD
- zfs-prune-snapshots - Remove snapshots from one or more zpools that match given criteria
- zfs-rclone - Script to periodically backup ZFS datasets using rclone
- zfs-remote-mirror - Setting up a remote ZFS mirror
- zfs-replicate - Shell script to manage ZFS snapshot replication locally, or between hosts.
- zfs-snapshot-mgmt - Script for automating ZFS snapshot creation for FreeBSD
- zfstools
- zfs-tool - Tool to help with various zfs tasks, e.g. cleanup snapshots
- zfs-tools - ZFS backup tools
- znapzend - High performance open source ZFS backup with mbuffer and ssh support
- zrep - ZFS replication and failover
- zrepl - ZFS backup & replication solution
- zxfer - Script for managing ZFS snapshot replication
ZFS other tools
- Simple bash script to rebalance pool data between all mirrors when adding vdevs to a pool
- :cupid: "zpool iostats" for humans. Find the slow parts of ZFS pool
- Script to check ZFS replication status
- ZSys - daemon and client for zfs systems
- ZFS Boot Environment manager
- HomeLab setup with ZFS, Docker & Ansible
- ansible-zfs
- ZTop
- :cupid: ZFS statistics tool
- Script to load ZFS encryption keys
- zfs-health-check
- shavee - Program to automatically decrypt and mount ZFS datasets using Yubikey HMAC as 2FA or any File on USB/SFTP/HTTPS drive
- A simple script for showing progress bar for ZFS scrub operations
ZFS Cheat Sheets
- ZFS Cheat Sheet #1
- :cupid: ZFS Cheat Sheet #2
- :cupid: ZFS Cheat Sheet #3
- ZFS Cheatsheet + Backups tutorial
- :cupid: ZFS tuning cheat sheet
- ZFS RAIDZ Expansion Is Awesome but Has a Small Caveat
Root on ZFS (Linux)
Linux kernel have no official ZFS support. This is workaround.
- ZFS Bootloader for root-on-ZFS systems
- Alpine installer with ZFS as root
- Arch Linux - ZFS‑first installer
- Arch Linux - Root on ZFS
- Debian Bookworm - Root on ZFS
- Fedora Linux - Root on ZFS
- Gentoo Linux - Root on ZFS
- NixOS Linux - Root on ZFS
- openSUSE Linux - Root on ZFS
- Rocky Linux Root on ZFS
- Slackware Linux Root on ZFS
- Ubuntu Linux Root on ZFS
How to Use OpenZFS on Windows (ZFS on Windows)
How to Use OpenZFS on macOS (ZFS on Mac)
- OpenZFS on OS X
- :skull: An extensive ZFS setup on MacOS
- :skull: ZFS on macOS instructions and scripts
- ZFS OSX Menu Bar widget
How to Use OpenZFS on Raspberry Pi (ZFS on Raspberry Pi)
How to Use OpenZFS with Kubernetes for Persistent Storage (ZFS on K8S)
-
Sync ZFS backups to an offsite location natively in Kubernetes
-
Automated K8S controller that removes orphaned ZFSVolume CRDs in OpenEBS ZFS environments
How to Use OpenZFS with Docker for Persistent Storage (ZFS on Docker)
- Docker volume plugin for creating persistent volumes as a dedicated zfs dataset
- ZFS snapshotter plugin for containerd
Other Awesome ZFS
🧰 ZFS troubleshooting
ZFS vs. other Filesystems
Simple comparison table
Complex comparison table
Btrfs
XFS
Books and Presentations
- :cupid: iXsystems - ZFS Vdev Reliability
- :cupid: iXsystems - ZFS Adaptive Replacement Cache
- :cupid: iXsystems - ZFS Copy-on-Write
- :cupid: iXsystems - ZFS Snapshots
- :cupid: iXsystems - ZFS ZIL and SLOG
- OpenZFS dRAID Presentation
Videos
- Cockpit+ZFS Manager plugin
- Top Tools to Recover Data from ZFS Drives. How to Recover Data from ZFS File System
- The BEST Linux filesystem encryption in 2020 ext4 vs btrfs vs zfs vs luks vs gocryptfs comparison
- Explaining ZFS LOG and L2ARC Cache: Do You Need One and How Do They Work?
- Tuesday Tech Tip - ZFS Best Practices
- ZFS Basics - Pools and VDEVs - Testing, Configuration, and Expansion
- ZFS Boot Menu - I put that stuff on everything
- ZFS 101: Leveraging Datasets and Zvols for Better Data Management
- OpenZFS novel algorithms: snapshots, space allocation, RAID-Z - Matt Ahrens
- Lecture on OpenZFS read and write code paths - Matt Ahrens
- OpenZFS Basics by Matt Ahrens and George Wilson
- Software Tools to Read a ZFS Disk in Windows / How to Open a ZFS Disk in Windows
- Project ZeroFault: OpenZFS-Level Safeguards Against Pool Faults
- Understanding ZFS in the Real World: Mistakes Made, Lessons Learned & Future Plans
- Best Practice Architecture for Open-Source Storage using ZFS
- OpenZFS at scale: learning, challenges, and awesome customers by Sam Atkinson
Test scenarios
License
This code is released under the GNU General Public License v3.0. See LICENSE.
