Our great sponsors
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
-
zfs-autosnapshot
Automatically snapshot your zfs filesystem, and remove (garbage collect) stale snapshots after a while
-
zfs-localpv
Dynamically provision Stateful Persistent Node-Local Volumes & Filesystems for Kubernetes that is integrated with a backend ZFS data storage stack.
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
"production" at home on Debian 11, previously on FreeBSD 10-13. The weirdest gotcha has been related to sending encrypted raw snapshots to remote machines[0],[1]. These have been the first instabilities I had with ZFS in roughly 15 years around the filesystem since switching to native encryption this year. Native encryption seems to be barely stable for production use; no actual data corruption but automatic synchronization (I use znapzend) was breaking frequently. Recent kernel updates fixed my problem although some of the bug reports are still open. I only moved on from FreeBSD because of more familiarity with Linux.
A slightly annoying property of snapshots and clones is the inability to fully re-root a tree of snapshots, e.g. permanently split a clone from its original source and allow first-class send/receive from that clone. The snapshot which originated the clone needs to stick around forever[2]. This prevents a typical virtual machine imagine process of keeping a base image up to date over time that VMs can be cloned from when desired and eventually removing the storage used by the original base image after e.g. several OS upgrades.
I don't have any big performance requirements and most file storage is throughput based on spinning disks which can easily saturate the gigabit network.
I also use ZFS on my laptop's SSD under Ubuntu with about 1GB/s performance and no shortage of IOPS and the ability to send snapshots off to the backup system which is pretty nice. Ubuntu is going backwards on support for ZFS and native encryption uses a hacky intermediate key under LUKS, but it works.
[0] https://github.com/openzfs/zfs/issues/12014
Not in production, but using ZoL on my personal workstations. https://zfsonlinux.org/
Some discussion: https://www.reddit.com/r/NixOS/comments/ops0n0/big_shoutout_...
You can get psuedo-snapshots on XFS with a tool like https://github.com/aravindavk/reflink-snapshot
But, it still has to duplicate metadata which depending on the amount of files may cause inconsistency in the snapshot.
> Systems are set up to automatically make snapshots
I do that with sqlite to keep a selection of snapshots from the last hours, days etc.
https://github.com/csdvrx/zfs-autosnapshot
I use it in Kubernetes via https://github.com/openebs/zfs-localpv
The PersistentVolume API is a nice way to divvy up a shared resource across different teams, and using ZFS for that gives us the snapshotting, deduplication, and compression for free. For our workloads, it benchmarked faster than XFS so it was a no-brainer.
After I removed duplicates (with help of https://github.com/sahib/rmlint ), I migrated my photos to an ordinary zpool instead.
[2] : https://github.com/intel/qatlib/tree/main#revision-history