Slide 1

Slide 1 text

State of transactional-update Research Engineer / SUSE transactional-update maintainer Ignaz Forster [email protected] fos on Freenode.net

Slide 2

Slide 2 text

Motivation Image source: MSDN

Slide 3

Slide 3 text

“Regular” Updates current / Backup / (pre) 1. 2. Backup / (post) 3. Active system 1. snapper creates “pre” snapshot 2. zypper updates the current system 3. snapper create “post” snapshot Update is modifying the currently active file system Restarts services immediately

Slide 4

Slide 4 text

Definition A transactional update is an update that ● is atomic – Either fully applied, or not applied at all – Update does not influence the running system ● can be rolled back – A failed or incompatible update can be quickly discarded to restore the previous system condition

Slide 5

Slide 5 text

Update with transactional-update current / next / 1. 2. Active system 1. snapper creates new target snapshot 2. zypper updates system in snapshot, makes it read-only and sets it as default for next boot ● Current root file system is not modified ● No backup snapshots required ● Discard snapshot in case of errors ➔ Reboot activates new system

Slide 6

Slide 6 text

What’s new?

Slide 7

Slide 7 text

Changelog: /var handling ● /var is (and continues to be) not mounted in the update environment – Fixed more packages modifying /var ➔ Most tickets are resolved now. ● Transactional-update now prints a list of modified files if it detects changes in directories outside the root file system. ● Did we miss something? Please open a bug report!

Slide 8

Slide 8 text

Changelog: /etc handling ● On read-only systems /etc has to be writable – Mounted as an overlay file system – Overlays stored in /var/lib/overlays ● Each snapshot has one corresponding /etc overlay – Overlay will be mounted during the update – Before: Only one overlay for all snapshots ● /etc overlays are stacked – Changes accumulated before the next boot will be visible both in the current and the next snapshot (if not changed in both overlays) – On rollback only the layers up to that snapshot will be mounted

Slide 9

Slide 9 text

overlay /etc overlay defaults,upperdir=/sysroot/var/lib/overlay/18/etc,lowerdir=/sysroot/var/lib/ overlay/16/etc:/sysroot/var/lib/overlay/12/etc:/sysroot/var/lib/overlay/10/ etc:/sysroot/var/lib/overlay/8/etc:/sysroot/var/lib/overlay/7/etc:/sysroot/ var/lib/overlay/6/etc:/sysroot/etc,workdir=/sysroot/var/lib/overlay/work- etc,x-systemd.requires-mounts-for=/var,x-systemd.requires-mounts-for=/var/lib/ overlay,x-systemd.requires-mounts-for=/sysroot/var,x-systemd.requires-mounts- for=/sysroot/var/lib/overlay,x-initrd.mount 0 0 Changelog: /etc fstab entry ● To prevent the overlayfs stack from growing infinitely the /etc state of the oldest available snapshot is synchronized into the new snapshot – The /etc directory in a snapshot (/.snapshots//snapshot/etc) alone does not represent a consistent system state! – Do not mess with the files in /var/lib/overlays (though you can use them as a backup source if you want)

Slide 10

Slide 10 text

Changelog: Misc ● Add support for kexec (okurz) and kured as reboot methods ● Support for Intel’s Telemetrics telemetry tool ● Documentation: The Transactional Update Guide ● Run zypper in --interactive / --non-interactive mode ● Rollback to last known good snapshot: transactional-update rollback last ● needs-restart support

Slide 11

Slide 11 text

Conclusion ● Use transactional-update to update from openSUSE Leap 15.0 to 15.1 ● Recommended talk: Tomorrow, 10:00 am / Atomic Updates - and /etc? (Thorsten Kukuk) ● Further talks – Richard Brown (openSUSE MicroOS, openSUSE MicroOS Desktop), – Kimlin Why you should choose openSUSE Kubic?

Slide 12

Slide 12 text

https://kubic.opensuse.org IRC: irc://irc.opensuse.org/#kubic

Slide 13

Slide 13 text

Next steps Your PC ran into a problem and needs to restart. We’re just checking if we can do something, and then we will restart for you. Hint: It’s called health-checker