Ubuntu's Zsys Client/Daemon For ZFS On Linux Continues Maturing For Eoan

Written by Michael Larabel in Ubuntu on 18 July 2019 at 08:26 AM EDT. 16 Comments
Looking ahead to Ubuntu 19.10 as the cycle before Ubuntu 20.04 LTS, one of the areas exciting us with the work being done by Canonical is (besides the great upstream GNOME performance work) easily comes down to the work they are pursuing on better ZFS On Linux integration with even aiming to offer ZFS as a file-system option from their desktop installer. A big role in their ZoL play is also the new "Zsys" component they have been developing.

Zsys is the Ubuntu/Canonical daemon / client for ZFS on Ubuntu systems in the future. Presumably they are aiming to have it ready for production with Ubuntu 19.10 to vet it ahead of the all important Ubuntu 20.04 LTS cycle.

Canonical has also been working on GRUB boot-loader integration for handling boots to different ZFS snapshots, automating snapshot management, improved ZFS file-system management with Zsys, disk encryption integration, Nautilus file manager integration, and various other features.

The ZFS On Linux maintainer for Fedora has also expressed interest in packaging Zsys. Though don't count on Fedora offering any level of nice ZoL integration due to their strict legal policies at least until if/when Oracle were to more liberally license (or rather, more appropriate for inclusion into the Linux kernel) the ZFS source code and that is highly unlikely at this stage. But we'll also likely see this Zsys work found in time on the likes of Arch and other distributions not minding the out-of-tree ZoL support.

As for the latest Ubuntu Zsys work, the latest update includes:
Implemented the “machine” layer, which enable to detect and group ZFS datasets per machine (system on boot and late system datasets, userdata and persistent datasets) + history of each one (clones and snapshots)
Continue discussion and addressing comments of the Fedora zfs maintainer.
Implemented Boot phase: Switch on and off correct datasets for mounting + cloning what’s needed to be cloned, like userdata with user dataset revert if booting on a snapshot. /!\ needs to make them idempotent.
Implemented Commit phase: Tag as appropriate user datasets with system, and promote needed ones.
Incremented and changed/rethought the design to have as few changes as possible before Commit() and ensure that if boot fails, no impact on further boots.
Adapted zfs layer to those changes, simplifying the golden files.
Note: tests nor CLI hooks are implemented yet, this will be the next steps
Found an issue with go-libzfs 0.8 compatible upstream branch now that 0.8 migrated to eoan: https://github.com/bicomsystems/go-libzfs/issues/192. Proposed a fix upstream as https://github.com/bicomsystems/go-libzfs/pull/201. We are using our fork right now.

The Zsys work continues to be available under a GPLv3 license on GitHub. We're certainly eager to see the state of their ZFS support come October with the Ubuntu 19.10 Eoan Ermine release.
Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via MichaelLarabel.com.

Popular News This Week