ZFS for Dummies
I&#x27;m getting started with ZFS just now. The learning curve is steeper than I expected. I would love to have a dumbed down wrapper that made the common case dead-simple. For example:<p>- Use sane defaults for pool creation. ashift=12, lz4 compression, xattr=sa, acltype=posixacl, and atime=off. Don&#x27;t even ask me.<p>- Make encryption just on or off instead of offering five or six options<p>- Generate the encryption key for me, set up the systemd service to decrypt the pool at start up, and prompt me to back up the key somewhere<p>- `zfs list` should show if a dataset is mounted or not, if it is encrypted or not, and if the encryption key is loaded or not<p>- No recursive datasets and use {pool}:{dataset} instead of {pool}&#x2F;{dataset} to maintain a clear distinction between pools and datasets.<p>- Don&#x27;t make me name pools or snapshots. Assign pools the name {hostname}-[A-Z]. Name snapshots {pool name}_{datetime created} and give them numerical shortcuts so I never have to type that all out<p>- Don&#x27;t make me type disk IDs when creating pools. Store metadata on the disk so ZFS doesn&#x27;t get confused if I set up a pool with `&#x2F;dev&#x2F;sda` and `&#x2F;dev&#x2F;sdb` references and then shuffle around the drives<p>- Always use `pv` to show progress<p>- Automatically set up weekly scrubs<p>- Automatically set up hourly&#x2F;daily&#x2F;weekly&#x2F;monthly snapshots and snapshot pruning<p>- If I send to a disk without a pool, ask for confirmation and then create a new single disk pool for me with the same settings as on the sending pool<p>- collapse `zpool` and `zfs` into a single command<p>- Automatically use `--raw` when sending encrypted datasets, default to `--replicate` when sending, and use `-I` whenever possible when sending<p>- Provide an obvious way to mount and navigate a snapshot dataset instead of hiding the snapshot filesystem in a hidden directory