Ubuntu Server Changelog

What's new in Ubuntu Server 20.04.3 LTS

Aug 30, 2021
  • UBUNTU SERVER:
  • Installer:
  • The live server installer is now the preferred media to install Ubuntu Server on all architectures.
  • Besides architecture support, the main user visible new features are support for automated installs and being able to install the bootloader to multiple disks (for a more resilient system).
  • There have been many other fixes under the hood to make using encryption easier, better support installing to multipath disks, more reliable installation onto disks that have been used in various ways and allowing failures to be reported more usefully.
  • Starting from Ubuntu Server 20.04.2 the ISO images can optionally boot the installer using the HWE kernel. In this case the installed system will automatically make use of the HWE stack.
  • QEMU:
  • QEMU was updated to 4.2 release. There is so much that it is hard to select individual improvements to highlight, here just a few:
  • free page hinting through virtio-balloon to avoid migrating unused pages which can speed up migrations
  • PPC: NVIDIA V100 GPU/NVLink2 passthrough for spapr using VFIO PCI
  • Many speed improvements for LUKS backend
  • pmem/nvdimm support
  • Therefore please see the full change logs 4.2 and 4.1 for major changes since Ubuntu 19.10.
  • For Upgraders from Ubuntu 18.04 please also check out 4.0, 3.1, 3.0 and 2.12.
  • When upgrading it is always recommended to upgrade the machine types allowing guests to fully benefit from all the improvements and fixes of the most recent version.
  • upgrading from 19.10:
  • For trimmed down container like isolation use-cases the new qemu has the microvm machine type which can be combined with the qboot ROM (available as bios-microvm.bin) to provide a reduced feature set at a much faster startup time. To further emphasize that you can use the package qemu-system-x86-microvm which provides an alternative QEMU binary stripped of all features not needed these use cases as sugegsted by the qboot ROM.
  • The VMX related features can now be controlled individually instead of just vmx on/off. Due to that the VMX-subfeatures of certain CPU types might have slightly changed (matching those of the selected CPU type now instead of almost randomly depending on the underlying hardware). In general it is - and always was - recommended to use a well defined cpu type when defining a guest, this is also what almost all higher level management tools from virt-manager to openstack will do. But if you want the most generic and compatible cpu but also enable VMX please use the type kvm64 instead of qemu64 now.
  • People that like to work or experiment with nvdimms and persistent memory QEMU now has pmem and nvdimm support enabled in Ubuntu Focal Fossa.
  • upgrading from 18.04:
  • QEMU now has virglrenderer enabled which allows to create a virtual 3D GPU inside QEMU virtual machines. That is inferior to GPU passthrough, but can be handy if the platform used lacks the capability for classic PCI passthrough as well as more modern mediated devices.
  • The graphical QEMU back-end is now based on GTK instead of SDL. That provides much better Desktop integration and is often faster.
  • libvirt:
  • libvirt was updated to version 6.0. See the upstream change log for details since version 5.6 that was in Ubuntu 19.04 or further back since verison 4.0 that was in Ubuntu 18.04.
  • upgrading from 19.10:
  • Among many improvements worth to mention might be the features:
  • to access NVMe disks directly now allowing a speed oriented setup that still supports migration.
  • Mediated GPU devices are now supported as boot display.
  • Support kvm-hint-dedicated performance hint allowing the guest to enable optimizations when running on dedicated vCPUs
  • ...see the detailed changelog linked above for much more
  • upgrading from 18.04:
  • Worth mentioning is that libvirt can now enable QEMUs ability to use parallel connections for migration which can help to speed up migrations if one doesn't saturate your network yet.
  • Administrators might like the ease of a new local include apparmor to the libvirt-qemu profile that allows local overrides for special devices or paths matching your setup without conffile delta that has to be managed on later upgrades.
  • Added the ability to have GL enabled graphics as well as mediated devices to be configured while still being guarded by custom apparmor profiles generated per guest. This is required for the use of gpu based mediated devices as well as VirGL mentioned above in the qemu section.
  • Transition libvirt-bin -> libvirt-clients / libvirt-daemon / libvirt-daemon-system
  • Already in Ubuntu 18.04 the package was split from an almost single monolithic package libvirt-bin into three main components:
  • libvirt-daemon-system - system integration of the daemon with config and systemd service files (this is the most similar single package to the old libvirt-bin)
  • libvirt-clients - cli tools to interact with libvirt like virsh
  • libvirt-daemon - just the libvirt daemon, without services/configuration
  • In a similar fashion rarely used and less supported sub-features like virtualbox and xen control, as well as uncommon storage options are broken out into various libvirt-daemon-driver-* packages. That allows to reduce the install footprint and active code in the majority of installations.
  • Packages and project had plenty of time to transition, so now the empty compatibility package libvirt-bin that was pulling in libvirt-daemon-system + libvirt-clients was finally dropped. If you happen to have scripts or third party components referring to the old name use the list above to select which new package makes most sense to you.
  • dpdk:
  • Ubuntu 20.04 LTS includes the latest stable release 19.11.1 of the latest LTS series 19.11.x. The very latest (non-stable) version being 20.02 was not chosen for downstream projects of DPDK (like Open vSwitch) not being compatible yet.
  • See the 19.11 and 19.11.1 release notes for details.
  • upgrading from 18.04:
  • DPDK dependencies were reorganized into more or less common/tested components. Due to that most DPDK installations will now have a smaller installation footprint and less potentially active code to care about.
  • Open vSwitch:
  • Open vSwitch has been updated to 2.13.
  • Please read the 2.13 release notes for more detail.
  • Upgraders from 18.04 might also want to take a look at release notes of:
  • Chrony:
  • Chrony been updated to version 3.5 which provides plenty of improvements in accuracy and controls. Furthermore it also adds additional isolation for non-x86 by enabling syscall filters on those architectures as well.
  • To further allow feeding Hardware time into Chrony the package GPSD is now also fully supported.
  • But still for simple time-sync needs the base system already comes with systemd-timesyncd. Chrony is only needed to act as a time server or if you want the advertised more accurate and efficient syncing.
  • cloud-init:
  • Cloud-init was updated to version 20.1-10. Notable features include:
  • Cloud platform features:
  • New datasource detection/support: e24cloud, Exoscale, Zstack
  • Azure dhcp6 support, fix runtime error on cc_disk_setup, add support for byte-swapped instance-id
  • EC2: render IPv4 and IPv6 network on all NICs, IMDSv2 session-based API tokens and add secondary IPs as static
  • Scaleway: Fix DatasourceScaleway network rendering when unset
  • LRU cache frequently used utils for improved performance
  • Drop python2 support
  • Networking features:
  • Prioritize netplan rendering above /etc/network/interfaces even when both
  • are present
  • Read network config from initramfs
  • net: support network-config:disabled on the kernel commandline
  • Add physical network type: cascading to openstack helpers
  • net/cmdline: correctly handle static ip= config
  • Config module features:
  • distros: drop leading/trailing hyphens from mirror URL labels
  • cc_disk_setup: add swap filesystem force flag
  • cloud-init query surfaces merged_cfg and system_info dicts for use in
  • Jinja templated cloud-config when opinionated based on series, platform
  • use SystemRandom when generating random password.
  • PHP 7.4:
  • PHP 7.4 is a new feature update, bringing typed properties, arrow functions, weak references, and unpacking inside arrays among other things. For more information on the new features and improvements, see the PHP 7.4 Release Announcement.
  • For more details about deprecated functionality, and suggested replacements, see the PHP 7.4 Deprecated Features page. Migration guides to 7.4 from 7.3 or earlier versions of PHP are also available in the PHP Manual. Users coming from Ubuntu 18.04 will be moving from 7.2 to 7.4, so should also refer to the Migration guides to 7.3 from 7.2.
  • Ruby 2.7:
  • The default Ruby interpreter was updated to version 2.7. It comes with some nice features and improvements like: Pattern Matching, REPL improvement, Compaction GC, Separation of positional and keyword arguments and much more. To have a broad overview about the cool features and improvements check the Ruby 2.7 Release Announcement.
  • Users coming from previous Ubuntu releases (from 18.04 on) will be moving from Ruby 2.5 to 2.7, in this case the Ruby 2.6 Release Announcement might be useful as well. An important thing to keep in mind is that some libraries are not bundled anymore in Ruby. If you need them please install them separately:
  • CMath
  • Scanf
  • Shell
  • Synchronizer (ruby-sync)
  • ThreadsWait (ruby-thwait)
  • E2MM (ruby-e2mmap)
  • Ruby on Rails 5.2.3:
  • Ruby on Rails was updated to version 5.2.3. From users coming from Ubuntu 18.04 is a major change, moving from version 4.2.10 to 5.2.3. Some highlights are: addition of Action Cable framework, option to create slimmed down API only appli cations, Active Record attributes API and so on. Check the Ruby on Rails 5 and 5.2 Release Notes for an overview.
  • If you need to upgrade your Ruby on Rails application please take a look at the upstream upgrading guide.
  • Ubuntu HA/Clustering:
  • Kronosnet:
  • kronosnet (or knet for short) is the new underlying network protocol for Linux HA components (corosync), that features the ability to use multiple links between nodes, active/active and active/passive link failover policies, automatic link recovery, FIPS compliant encryption (NSS and/or OpenSSL), automatic PMTUd and in general better performance compared to the old network protocol.
  • Main NEW features:
  • Up to 8 links dynamically reconfigured without restart of corosync
  • MTU auto-configuration
  • Support for NSS or OpenSSL encryption of packets
  • Compression
  • Higher throughput and lower latency
  • Support for RDMA and Upstart is gone
  • Corosync:
  • From Corosync 3 release notes:
  • Corosync 3.0 contains many interesting features mostly related to usage of Kronosnet (https://kronosnet.org/) as a default (and preferred) network transport.
  • Pacemaker:
  • From Pacemaker 2.0 release notes:
  • The main goal of the 2.0 release was to remove support for deprecated syntax, along with some small changes in default configuration behavior and tool behavior. Highlights: Only Corosync version 2 and greater is now supported as the underlying cluster layer. Support for Heartbeat and Corosync 1 (including CMAN) is removed.
  • Rolling upgrades from Pacemaker versions earlier than 1.1.11 are not possible, even if the underlying cluster stack is corosync 2 or greater. Other rolling upgrades, from newer versions on top of corosync 2 or greater, should be possible with little to no change.
  • https://wiki.clusterlabs.org/wiki/Pacemaker_2.0_Configuration_Changes
  • https://wiki.clusterlabs.org/wiki/Pacemaker_2.0_Daemon_Changes
  • https://wiki.clusterlabs.org/wiki/Pacemaker_2.0_Tool_Changes
  • https://wiki.clusterlabs.org/wiki/Pacemaker_2.0_API_Changes
  • Resource Agents:
  • Cluster Resource Agents (RAs), compliant with the Open Cluster Framework (OCF) specification, used to interface with various services in a High Availability environment managed by the Pacemaker resource manager.
  • Complete Changelog:
  • https://github.com/ClusterLabs/resource-agents/blob/master/ChangeLog
  • Fence Agents:
  • Fence Agents is a collection of scripts to handle remote power management for several devices. They allow failed or unreachable nodes to be forcibly restarted and removed from the cluster.
  • keepalived:
  • Failover and monitoring daemon for LVS clusters, used for monitoring real servers within a Linux Virtual Server (LVS) cluster. It can be configured to remove real servers from the cluster pool if they stop responding, as well as send a notification email to make the admin aware of the service failure.
  • isc-kea 1.6 stable track:
  • Even though it's a Universe package, isc-kea is a promising new dhcp server from the same upstream that created Bind and isc-dhcp. For Focal, we updated it to the 1.6.x stable series.
  • Bind 9.16:
  • Bind has been updated to the new stable release series from upstream: 9.16.x.
  • Important packaging changes are:
  • no -dev package at the moment, as upstream discourages linking with its libraries. See a bit of a discussion about that here: https://gitlab.isc.org/isc-projects/bind9/-/merge_requests/3089#note_111299. Debian just added the dev package back (2020-04-16), we might follow with an SRU: https://bugs.debian.org/954906
  • bind-libs 9.11.x package: used for software projects that do not yet work with the new 9.16 version, like isc-dhcp.
  • bind-dyndb-ldap has not yet been ported to bind9 9.16.x
  • geoip legacy support was removed and replaced with geoip2 (libmaxminddb)
  • OpenSSH updates with U2F Support:
  • OpenSSH 8.2 added support for U2F/FIDO hardware devices to allow easy hardware-based two factor authentication. It is as simple as:
  • # plug device in and:
  • $ ssh-keygen -t ecdsa-sk
  • Generating public/private ecdsa-sk key pair.
  • You may need to touch your authenticator to authorize key generation.