TrueNAS 26 Release Schedule, Dataset Tiering, and Viewer Questions | TrueNAS Tech Talk (T3) E056

Dataset Tiering is an interesting one. Shame CE isn’t getting it as such, but I kind of get that. Wouldn’t be against being able to pay a license or sub to have enterprise features on roll-your-own hardware though, especially given iX still doesn’t offer redundant OS drives in the R-series (that’s M-series HA and above territory only).

On to the interesting part. I don’t believe iX/TrueNAS is coding anything special at the storage engine level to make this work. This is middleware work, wrapping existing OpenZFS 2.4 capabilities into a GUI-driven workflow with dataset-level policy controls. The zfs features/options are all already there and any CE user could do this manually.

Here’s a rough breakdown of what’s under the hood:

The ZFS special vdev allocation engine does the tiering. It handles block placement decisions between your NVMe special vdev and your HDD data vdevs based on the policies you set.

special_small_blocks is your placement policy control. Set this per-dataset/zvol and any blocks at or below that size threshold get routed to the special vdev (NVMe), larger blocks stay on the HDD pool. This is the main lever for controlling what lives on flash vs spinning disk.

zfs rewrite handles block relocation in-place after a policy change. It rewrites existing blocks without touching metadata, timestamps, or filenames.

zfs snapshot + zfs send | zfs receive is the migration path for moving a full dataset or ZVOL between different pools. The dataset will be briefly unavailable during final cutover, so stop any VMs using the ZVOL before confirming. Assuming this is the workflow TrueNAS 26 will be orchestrating behind the GUI migration. Additional feature.

TrueNAS 26 Tiering in theory wraps all of that in a GUI with per-dataset tier visibility, migrate and rewrite controls, and a progress log for the underlying operations.

The concept images below illustrate my vision for the interface, showing NVMe and HDD pool utilization, IOPS and throughput for each tier, dataset level tier assignments, special_small_blocks configuration, and capacity tracking, all presented within a single unified view.

1 Like