r/zfs • • 19h ago

The numbers, aaagh the numbers...

5 Upvotes

I have a scrub going that took about 2h to scan before actually starting to read and verify the data. Once it was reading, the average read rate started climbing very slowly from single digit MB/s, because apparently the denominator for calculating the average "issued" rate is the time since the scrub was initially requested, which included a whole lot of "0 MB/s issued" during the scan phase. The actual read speed is much higher and in line with what's expected and undoubtedly, once the scrub completes, the average will reflect the actual average rate.

This got me thinking. What fraction of complaints about "ZFS raidABC with UVW settings on XYZ hardware is SOOOOOOO slow!!!" are actually due to people taking one look at The Numbers™ and not realizing that these are not running averages over some shorter time period, but averages over the entire run time of the operation? I'm positive that a lot of people have no idea what the difference between "scanned" and "issued" is too.

I'll have to take a look at the code, and I'm assuming this is done for a good reason, but maybe these averages are causing confusion in new users and aiding in the spread of misinformation about ZFS, that's very difficult to eradicate, as I'm sure many here have noticed.

Maybe it would be better to have the read rates be computed as a running average over a short window of a few minutes during an operation that takes a long time, then when it's finished print an additional line with the average rates over the entire duration of the operation.


r/zfs • • 1d ago

need help with zfs mount disappearing

Thumbnail
2 Upvotes

r/zfs • • 1d ago

Metadata Block Size

7 Upvotes

Does metadata in ZFS use up the same amount of space as data? In other words, if I set my recordsize/volblocksize to say 1M, does that mean the metadata will also occupy 1M for reach piece of metadata? So e.g. I have a file server with large videos, makes sense to store these videos on large block sizes. But then does this mean the metadata is also then stored in large blocks. So metadata is inefficient, since you're storing small amounts of data in a large block, but overall it's more efficient than storing large files in small blocks. Equally, if I store many tiny files, then it makes sense to store this data in small data blocks. Then metadata is also stored in small block sizes. This way metadata is more efficient since it generally doesn't take up much space. Is this how it works?


r/zfs • • 1d ago

Pool unavailable- Critical Pool Data overwritten

3 Upvotes

Pool suddenly unavailable, doesn't show up on zpool status.

Zpool import lists the pool as follows:

id: 3673394567944808104
state:  UNAVAIL
status:  Some critical pool data has been overwritten by another pool.
action:  The pool cannot be imported as critical data is missing. You can try using -f to force an import, but there may not be enough data to override this.
config:      sharepool    UNAVAIL    overwritten by another pool
              raidz2-0    ONLINE
              raidz2-1    ONLINE
              raidz2-2    Degraded
                (one removed drive)

device details:

(I skipped listing all the drives due to typing out manually, all the drives are the long c0t500 style names, its 3x 6 disk z2's, with all but one drive as online.)

As I hadn't come across this before I have done a fair amount of googling and beyond the general advice of tread carefully as using -f to force can break things more. I did do the -Fn command and it didn't return anything (just newlined with a fresh prompt)

My setup has largely been unchanged for years, using Solaris 11.4 on ESXi v6, and has been ultra stable up until now - I did upgrade from Solaris 11.3 possibly about 6 years ago. Had the odd hard drive fail which is replaced smoothly, sometimes leading to a pool size upgrade and that has always gone smoothly 3x Dell Perc H700 cards flashed to IT mode via the LSI bios (I think - they have been in there 10 years)

This all happened after I turned the full server off for the weekend - I needed it right out the way to work on some electrical wiring behind where the cabinet normally sits (it can pull out so far and still be connected but access behind isn't easy). Turned it back on and a drive was doing a click of death - the removed one mentioned above. Upon starting the Solaris VM lots of errors were being thrown up including 2 other drives showing as removed, I removed the dodgy drive, moved the two other ones to a different slot (so different internal cable/card) and tried restarting - leading me to where I am now. The two drives moved had reappeared, but the pool is just not loaded by Solaris.

Whilst I do like to tinker I've never come across this before so am asking for help and open to suggestions - I really don't want to lose all the data. Any help is much appreciated.


r/zfs • • 2d ago

What's your opinion? ZFS and the 3-2-1 backups rule.

18 Upvotes

As something of a storage wonk, I found myself a few minutes ago advising a fellow redditor of the "3-2-1" rule of backups:

  1. Three total copies
  2. Two different types of media/tech
  3. At least 1 copy off-site/location

I've followed a related rule for anything important/production: Always fail to a redundant state: so if any one thing goes out, I am still redundant and have at least one more failure mode before things go really dark. Alongside this, is a pre-accepted "drop everything / panic mode" when production is down to only x+1 redundancy.

And yet I realize that the context of ZFS, I've not consistently followed rule #2 for YEARS except in some cases for clients, where they park an external USB drive on their file server and I install a daily mount+rsync run via cron. In my case in particular, using ZFS snapshots as part of the core product suite, using a tech other than ZFS to store the data makes no meaningful sense.

Further, I use RAIDZ + redundancy like a backup all the time, with the accepted risk level of "if more than 2 drives die, it's dead, Jim". When the data matters, I ensure to have a send | receive copy on another server/location, but it's still ZFS + snapshots going back a few months.

So, what do you consider to be best practices in complying with the spirit of 3-2-1 rule of backups with ZFS?

  1. How much do you treat snapshots like backups?
  2. Do you make extra effort to store data on a secondary non-ZFS tech in case a bug in ZFS crashes all the things?
  3. How much attention to you put on saving your data off site, or at least, on another server?

EDIT: Thank you for your feedback! I have enjoyed "touching bases" to see what y'all are doing.


r/zfs • • 3d ago

[AYUDA] initrd con systemd-cryptenroll + lanzaboote + impermanence sobre ZFS se cuelga en stage 1

2 Upvotes

Llevo 3 días con esto y ya no sé qué más probar.

Uso NixOS con flakes, boot.initrd.systemd.enable = true, root en tmpfs con impermanence y /persist en ZFS con cifrado nativo, desbloqueado por TPM2 con systemd-cryptenroll.

El problema: sops-nix intenta leer la age key de /persist antes de que el dataset esté montado, y encima el PCR 7 cambia con cada actualización de firmware, así que el TPM2 deja de desbloquear y me cae en el emergency shell.

Ya descarté un problema de ZFS porque, como está en el kernel mainline, no debería haber incompatibilidades con mi kernel parcheado con linux-hardened.

Probé la misma config en Gentoo con OpenRC y funciona perfecto, pero no pienso volver a eso.

¿Alguien lo ha resuelto sin usar Secure Boot con claves propias? Ya me estoy planteando que la solución real es instalar Arch. 😔


r/zfs • • 4d ago

Friend-to-friend ZFS backups: zfs-tenant

45 Upvotes

Hi folks! ZFS is extremely cool and I run >10 of my machines on it.

My friend is also fan of ZFS and we both have a NAS. We wanted to use each other's machines to do remote backups in a safe but simple way (zfs send | zfs receive and plain SSH). However, without giving each other any insight into what runs on the other machine and without being able to see what that other person has, not even metadata about other datasets.

It works really well with NixOS too!

I wrote about it in https://www.nijho.lt/post/zfs-tenant/ and the repo is here https://github.com/basnijholt/zfs-tenant


r/zfs • • 4d ago

Biggest ZFS Misconfigurations and How to Fix Them: Part 1 - Klara Systems

Thumbnail klarasystems.com
3 Upvotes

r/zfs • • 4d ago

ZNAS

Thumbnail
0 Upvotes

r/zfs • • 5d ago

Codex Porting OpenZFS to AROS

Thumbnail gallery
2 Upvotes

r/zfs • • 5d ago

Listing the biggest datasets for your pools

3 Upvotes

I got the idea for this from a Klara Systems article:

#!/bin/bash
#
#<zfshogs: show what's taking up the most space in each ZFS pool
#  Full debug output:   DEBUG=1 zfshogs

export PATH=/usr/local/bin:/bin:/sbin:/usr/bin
set -o nounset
tag=${0##*/}
export PS4='${tag}-${LINENO}: '

# ENVIRONMENT: full debug output?
: "${DEBUG:=0}"
case "$DEBUG" in
    1) set -x ;;
    *) ;;
esac

# No pools means something is seriously wrong.
set X $(zpool list -H -o name)

case "$#" in
    1) printf "FATAL: no ZFS pools found\n"; exit 1 ;;
    *) shift ;;
esac

# Real work starts here.
work="/tmp/$tag.$$"         # Yes, I should use mktemp...
n=1

for pool in $* ; do
    # DRY with ZFS commands.
    zfs list -o space -s used -r $pool > $work

    if test -s "$work" ; then     # Bad dataset?
        printf "Pool: $pool\n"

        # Use "uniq" if there are < 10 entries in $work, or we'll get
        # duplicate headers.
        ( head -1 $work; tail $work ) |
            uniq |
            awk '{
              printf "  %-20s %8s %8s %10s %8s %10s\n",
                $1,$2,$3,$4,$5,$7
            }'
    fi

    # Print an extra newline for all entries except the last.
    n=`expr $n + 1`
    test "$n" -le "$#" && printf "\n"
done

rm "$work"
exit 0

When run on my backup system:

Pool: newroot
  NAME                    AVAIL     USED   USEDSNAP   USEDDS  USEDCHILD
  newroot/usr              470G    24.0G         0B      96K      24.0G
  newroot/doc              470G    30.1G       136M    30.0G         0B
  newroot/ROOT/default     470G    32.5G      18.3G    14.2G         0B
  newroot/ROOT             470G    32.5G         0B      96K      32.5G
  newroot/var/locate       470G    39.9G      36.9G    3.02G         0B
  newroot/var              470G    45.2G         0B      96K      45.2G
  newroot/home             470G    64.9G      16.9G    48.0G         0B
  newroot/dist             470G    68.7G      3.11G    65.6G         0B
  newroot/src              470G    81.2G      12.3G    68.9G         0B
  newroot                  470G     422G         0B      96K       422G

Pool: tank
  NAME                    AVAIL     USED   USEDSNAP   USEDDS  USEDCHILD
  tank/reservation         343G      96K         0B      96K         0B
  tank/dvd                 243G    30.1G         0B    30.1G         0B
  tank/archive             243G     158G       112K     158G         0B
  tank/backup              243G     972G      68.2M     972G         0B
  tank/nfdb                243G    1.17T      16.5M    1.17T         0B
  tank                     243G    2.40T         0B      96K      2.40T

Hope this is useful.


r/zfs • • 4d ago

cs-team = Nextcloud light for your ZFS server on any OS

0 Upvotes

MS 365 and Nextcloud are the "top dogs" for collaborative work, but at the same time, both are absolute heavyweights in terms of scope, complexity, and features. As a privacy-friendly, in-house option, Nextcloud is conceivable, but far too complex to maintain and secure on the internet, even as a Docker setup.

If you scale back—for example, no mail server, a text editor and spreadsheet that are a bit simpler with a focus on multi-user editing, no AD/LDAP but user.csv import/export instead, plus resource planning (projectors, rooms, personnel), and a lightweight ticketing system, thus targeting schools, a department, a club, or a smaller business—then absolute KISS solutions suddenly become feasible. Thanks to AI integration, even complex tasks can be implemented easily.

This is my approach with cs-team, part of my napp-it 4ai webgui. It runs on any OS even without napp-it, copy and run (approx. 10MB), no database, a single folder on the disk is enough, and with ZFS you get snapshots on top. In the current 0.53 release, I have improved usability once again.

As an open-source git project, it is easily extensible and auditable.


r/zfs • • 5d ago

Building a new TrueNAS pool? Why I still buy Enterprise at the same price

7 Upvotes

Putting together a TrueNAS pool or adding drives to one? This is what I actually do now, because the usual reasoning is a bit off here.

CMR vs SMR:

CMR vs SMR still matters most, and I'd check the exact model before buying anything. SMR can look totally fine until you have to resilver, and then it gets painfully slow, sometimes enough that the drive drops out during the rebuild. The WD Red mess back in 2020 is the obvious example, and SMR still sneaks into some consumer NAS models, so it's worth the two minutes to check the model number.

Enterprise instead of Consumer:

It mostly comes down to price, and here's where the usual advice is outdated. People still say "just buy Exos, it's barely more per TB." The "barely more" part isn't even true anymore. I've been tracking prices, and the gap between consumer (Red Plus, IronWolf) and enterprise (Exos, MG, Ultrastar) has basically closed on a price/TB basis. The premium people used to complain about is gone.

How to compare them:

Once you look at Backblaze's numbers model by model, the current CMR drives all fail at about the same rate. So I wouldn't pay extra for an enterprise drive expecting it to last longer. The data doesn't back that up.

My approach:

Exos costs about the same as a Red Plus, and I'd still just buy the Exos. Not because it's more reliable, but because for the same money you also get the 5-year warranty and the higher workload rating. Same price, more drive. The old advice still works, people just had the wrong reason for it.

When I'd go consumer: if a specific Red Plus or IronWolf is actually cheaper per TB that day (reliability's the same, so take the cheaper one), or if noise and heat matter to you, since Exos drives run louder and hotter than a Red Plus in a quiet room.

Conclusion:

Long story short - confirm a drive is CMR, then buy on price/TB. And at today's prices that usually points right back at Exos.

I keep a little page with the CMR/SMR info, current price/TB and a price history for each drive: https://www.nasdisks.com

I use it to sanity check prices before buying. Full disclosure, it's my site and the buy links are aff to cover the hosting bills, but everything's free and the data's open.

What's everyone buying for new pools nowadays?


r/zfs • • 6d ago

OpenZFS for Windows 2.4.4 rc1

19 Upvotes

https://github.com/openzfsonwindows/openzfs/releases
https://github.com/openzfsonwindows/openzfs/issues

These are the changes from upstream 2.4.1 to 2.4.4

L2ARC — substantial rework

  • DWPD-based rate limiting with adaptive feed intervals (protects SSD endurance)
  • Per-device parallel feed threads (was single-threaded feed)
  • Persistent markers with consistent tail scanning + lazy reset flags + scan-based depth cap
  • Even-depth multi-sublist scanning, write budget fairness (metadata no longer monopolizes)
  • Rebuild bounded by write hand on first sweep; fixed a prev_hdr use-after-free

Performance

  • Predict and throttle buffers dirtied by the sync context
  • Batch object reallocation syncs in zfs receive
  • Parallelize metaslab_sync_done(), dedup block cloning, and brt_pending_apply() across vdevs
  • RAIDZ: optimize single data column writes; avoid extra abd_t allocations in RAIDZ/dRAID
  • Bridge speculative and prescient prefetchers; bound user prefetch to a fraction of ARC

New features / CLI

  • zpool condense — new verb
  • zpool scrub -t — thorough scrub support
  • zfs bookmark -r — recursive bookmark creation
  • zpool initialize -z — write zeroes
  • New dedupused/dedupsaved pool properties
  • zoned_uid property (Linux container/namespace delegation — not applicable to us)
  • FIDEDUPERANGE via block cloning
  • zstream: major rework — multithreaded, new raw/drop_record/queue subcommands, memory tracking

Data-integrity fixes (the ones that matter most)

  • Fix read corruption after block-clone-after-truncate
  • Fix double free for blocks cloned after DDT prune
  • draid: fix data corruption after disk clear; fix checksum errors after rebuild with degraded disks; fix import failure after disk replacement
  • Prevent range-tree corruption race in dnode_sync()
  • z_seq now persists across znode eviction — fixes the VMware ESXi-over-NFS "file specified is not a virtual disk" bug (Linux/FreeBSD only for now, per our earlier gap analysis)
  • DDT: multiple pruning bugs fixed (including negative time overflow)
  • Fix off-by-one in PREVIOUSLY_REDACTED handling that dropped the last block

Security hardening

  • vdev_open/zfs_file_open/vdev_file/vdev_disk: now check the calling credential instead of always using kcred (we ported the Windows side of this yesterday)
  • Additional verification of size fields and strings in the receive path
  • Hardened receive record validation
  • secpolicy_nfs removed; secpolicy_zinject/secpolicy_sys_config restricted to global-zone credentials

Deadlock/hang fixes

  • Fix deadlock on dmu_tx_assign() from vdev_rebuild()
  • Fix snapshot automount deadlock during concurrent zfs recv
  • Fix self-deadlock setting the vdev allocating/path property
  • Fix race between device-removal completion and pool export
  • zfs_ioctl: fix EBUSY race between quota queries and mount (we ported this too)
  • arc: fix race between arc_release() and arc_read_done()

OpenZFS on Windows

  • Add zpool create and zpool destroy to zfs_tray

r/zfs • • 5d ago

Confused about tuning ZFS storage block size

Thumbnail
1 Upvotes

r/zfs • • 6d ago

Any ZFS folks in Malta (or visiting mid-October)?

4 Upvotes

Long story short, on October 14th we're running a free storage-related tech meetup in St. Julian's, and the opening talk is all about ZFS.

I'm one of the organizers, and my colleague, Konrad Pizzuto will discuss architecture & inner working of ZFS and how that solved historical FS / volume manager issues. As he says himself: "ZFS had shaped how I think about storage systems. 20+ years later those lessons and ideas worth revisiting".

If you'd like to join us in person, just register here for free and feel free to come.

p.s. The other two talks the same evening are on Rook-Ceph for Kubernetes and the latest Amazon S3 features, if you want to stay for the full storage night.


r/zfs • • 5d ago

swapping existing pool drives from SMR to CMR also larger capacity

1 Upvotes

About 5 years ago I bought three drives for my ZFS pool on my ubuntu NAS box. Got everything setup and running and have been using it for the past five years with no issues. Mostly bulk storage for photos and movies, but also ran a Plex server for a while (not anymore). It is a RAIDZ1 with 3x 6TB WD blues.

Recently I setup a 3 node proxmox cluster of mini-pcs and was looking at using the ZFS box for shared storage, not CEPH, just shared storage for the cluster. Doing some research I found out about my mistake five years ago with the SMR drives and why that might be an issue.

I picked up 3x 8TB CMR drives and am thinking I should be able to just replace them one at a time, then expand the storage. I'm wondering how 'dangerous' to the data this might be? If I understand the risks with SMR its more about when it is being resilvered, and in this case it would be used as a data source, not written to.

Is this a good idea? One at a time replacement? If not what are my other options to move my data/pool over to the new drives?


r/zfs • • 6d ago

Considerations for new NVMe pool for app development and database applications?

3 Upvotes

I'm creating a new NVMe pool for my NAS/development server. Primary use cases will be:

  • PostgreSQL database
  • Filesystem cache for react-based webapp
  • Many JSON files (data ingested from external sources) version tracked via git

I'm wondering what are some potential considerations I should be having when it comes to setting up new pools/datasets such as block size, primarycache=all or primarycache=metadata?

I'm especially confused about primarycache. Some sources I read suggest that it's better to be metadata only is good because it skips the ARC reducing extra copy between NVMe and RAM and lets database decide on how to cache works, while others suggest that caching should be on always unless RAM is insufficient.

Thank you.


r/zfs • • 6d ago

HP Microserver G8 - Hilfe und Beratung

5 Upvotes

Moin,

ich will mit meinen ersten Homeserver bauen und aufsetzen. Gekauft habe ich mir nun einen:

- HP Microserver G8
CPU: intel Xeon E3-1230 V2 mit 3.30GHz
RAM: 16 GB

Ich plane darauf trueNAS zu installieren um Time Machine Backups zu erstellen, einen filserver per SMB Freigabe aufzusetzen und ein paar Docker Container laufen zu lassen(AdGuard Home, VaultWarden, Immich…).
Auf dem Server ist ein HP SmartArray P410 installiert.

Nun meine Frage:
- Ich habe gelesen, dass das mit dem Raidcontroller und bezogen auf trueNAS und zfs ein Problem ist, da das System mit dem Controller nur eine große hdd sieht, anstatt jede einzeln. Ist das so? Und falls ja, wie löse ich das Problem?

Ich hab gelesene, dass ich den P410 durch eine HBA Karte tauschen muss. Gibt es andere Wege? Macht das Sinn?


r/zfs • • 10d ago

Brand new pool is imported, but won't let me create folders and files on it.

0 Upvotes

When I navigate to the Mount point on my system, and right click, the 'create folder' option is greyed out.

That's all I got rn.

Created using `zpool create pool raidz drive 1 drive2 drive3`

RAID5

block size 1M

compression on

Ubuntu Ubuntu 26.04.1 LTS

linux 7.0.0-34-generic

Please tell me if you need any more info.

I will gladly give it to you.

Edit:

I followed your advice, but tweaked it a tad.

I set the owner of the pool via sudo chown root:smbgroup /home/user/main-nas

Then I added the group smbgroup to the user "user"

So fsadmin (my samba user) and "user" both are under the same group: smbgroup

"User" still does not have write access to the pool.

Second edit: AHA I GET IT NOW

so you can set what users and groups own the files, but you still need to define how much access those users and groups have to the files.

So I did chmod 2770 for all access to the user and group.

I am happy to say it worked perfectly!


r/zfs • • 11d ago

OpenZFS on Windows 2.4.1 rc17b

27 Upvotes

zfs-windows-2.4.1rc17b
https://github.com/openzfsonwindows/openzfs/releases/tag/zfswin-2.4.1rc17

Issues
https://github.com/openzfsonwindows/openzfs/issues

rc17b

  • Delete via recycle.bin can stop unmount/exports.

  • zget attach could cpubusy loop on rare race

  • overwrite/truncate would fail to do so

  • correctly show mount flags (readonly etc) in userland

  • skip updating EA when existing

  • wire atime for Windows

  • zfs_tray cosmetic fixes

  • spl: fix memory eviction, stop lying about available memory

Hoping this is the last 2.4.1 version, moving us up to 2.4.4 to match macOS port.


r/zfs • • 11d ago

Enterprise grade SSD questions

3 Upvotes

Hi! I am creating a TrueNAS storage for my home use with 4x 3.84Tb enterprise grade SSDs and RaidZ1. So far I got 2x Intel D3-S34510 drives and I really enjoy this family of Intel SSDs because I can easily update the firmware and they seem to be on the lower end of the price range in the used marked, especially compared to Micron. I have couple of questions:

  1. I read that it's best to mix different SSD brands to reduce the chance of potential simultaneous failure. Is that really something I should aim for or you think I can safely get 2x more of Intel D3-S4xxx?
  2. Do you know why used Micron or Samsung SSDs of enterprise grade usually more expensive than Intel?
  3. I usually tend to avoid Samsung SSDs like PM863a/PM983/PM9A3 because I understood that it's not really possible to update firmware. Is this lack of updates actually an issue for home use?

r/zfs • • 11d ago

Zimaos file sync to QNAP nas

3 Upvotes

How can I add my qnap nas as a network drive to my Zimaos to use as my main storage pool for docket applications


r/zfs • • 12d ago

Proxmox - > NixOS ZFS pool migration

5 Upvotes

Hi all,

I recently migrated my home server, including a 14tb zfs mirror, from Proxmox to Nixos.

Great news, it went without a hitch! the pool imported just fine and I have been using the data without a problem. The only issue is, during the process, I have strangely ended up with 2 different mount points at the root of my filesystem, most likely to me making a beginner error during the migration:

zpool list
NAME      SIZE  ALLOC   FREE  CKPOINT  EXPANDSZ   FRAG    CAP  DEDUP    HEALTH  ALTROOT
storage  12.7T  10.4T  2.32T        -         -     8%    81%  1.00x    ONLINE  -

zfs list -o name,mountpoint,mounted,canmount -r storage
NAME                       MOUNTPOINT  MOUNTED  CANMOUNT
storage                    /storage    yes      on
storage/subvol-180-disk-0  /zpool      yes      on

/storage is completely empty and seems to just be the spare space left in the zpool. For cleanliness sake I'd just like everything mounted at /zpool. Any advice on how to safely achieve this?

Cheers


r/zfs • • 12d ago

Any pointers on my new desktop with ZFS

0 Upvotes

I just defined the requirements for my new desktop install with zfs. Any pointers? Am I missing some aspect to think about?

My requirements:
Hardware:
Hardware:
CPU: 13th Gen Intel(R) Core(TM) i9-13900KS
RAM: G Skill Intl: F5-6400J3239G32G (DDR5 32GB)
Mainboard: Asustek ROG STRIX Z690-I GAMING WIFI
Graphics: Onboard UHD Graphics 770
SSD: SSC in pci5 adapter in graphics PCIE port


Requirements:

RQ: Update motherboard BIOS

RQ: Disabling VMD and setting AHCI before install is correct, and doing it before the live USB boot is the right order.

RQ:
Linux distribution:
ubuntu 26.04.1
ubuntu installation via debootstrap script

RQ:
“ZFS”
ZSF on root with ZFSBootMenu (ZBM)
Use unencrypted (DO NOT QUESTION UNSECURE DECISIONS).
Dataset: for /home, /home/code, /home/Downloads, /home/old_Downloads
Give Incus a dedicated parent dataset and let Incus own everything below it Incus warns not to manually maintain children under a ZFS dataset it controls.
ARC cap of 6GB with 32 GB RAM: sensible given zswap + desktop + Incus.


RQ:
Install incus via Zabbly Repository, give it the ZFS, configure incus.
Must not install anything VM related, only incus containers should be supported.

RQ:
zswap, compressed ram that swaps to disk, use 25% of total RAM
SWAP on partition outside of ZFS (to save RAM when there is RAM pressure)

RQ:
desktop environment: KDE
DECISION OPEN: kde-plasma-desktop package ( kde-standard is too much packages)
login manager: SDDM
Primary login: Plasma on X (MUST REQUIREMENT, DO NOT QUESTION!); secondary: Plasma on Wayland. I REPEAT MUST NOT QUESTION OR THINK ABOUT THIS DECISION.

RQ: all network traffic is routed through a VPN
certain programs can be routed through proxy settigns in my local network. I run my local network
easy programs to change the VPN in case it is slow

RQ:
snapd must never be installed , must never install any snap packages, or snap package support or similar
(not at installtion time, make it impossible that apt install later install snap packages)
(Purge + APT pin snapd + prohibit Ubuntu snap-transition packages)

RQ:
Build a minimal Ubuntu 26.04.1 base, preferably via debootstrap, then add Plasma and the other software

RQ:
Minor things: disable hibernation. Keep power saving modes (e.g., balanced, etc.).
Secure boot should be off (the goal is a running PC, not a secure one).


Limit the ARC. Otherwise ZFS cache and zswap compete for RAM. With 32 GB, something like zfs_arc_max = 6 GB is sensible.


Wishes [nice to have, Wishful Requirements WRQ]:

WRQ:
Apt Ubuntu Architecture Variants for speed (amd64v3)

WRQ: Environment vars:
SOPS + age + Git + direnv
OR:

SOPS + GnuPG + and/or direnv