ZFS for Dummies
I'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:- Use sane defaults for pool creation. ashift=12, lz4 compression, xattr=sa, acltype=posixacl, and atime=off. Don't even ask me.- Make encryption just on or off instead of offering five or six options- 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- `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- No recursive datasets and use {pool}:{dataset} instead of {pool}/{dataset} to maintain a clear distinction between pools and datasets.- Don'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- Don't make me type disk IDs when creating pools. Store metadata on the disk so ZFS doesn't get confused if I set up a pool with `/dev/sda` and `/dev/sdb` references and then shuffle around the drives- Always use `pv` to show progress- Automatically set up weekly scrubs- Automatically set up hourly/daily/weekly/monthly snapshots and snapshot pruning- 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- collapse `zpool` and `zfs` into a single command- Automatically use `--raw` when sending encrypted datasets, default to `--replicate` when sending, and use `-I` whenever possible when sending- Provide an obvious way to mount and navigate a snapshot dataset instead of hiding the snapshot filesystem in a hidden directory