Weekly status #287


Weekly status for the week of 20th February to 26th February.

Introduction

This past week was primarily an improvements and bug fix week after last week’s LXD 5.11 release. These include a fix for ZFS block filesystem volume resize and a potential fix for an intermittent race condition between LXD and systemd when configuring NIC MAC addresses.

LXD

Improvements:

  • Improved validation of proxy devices and bridge network forwards to prevent their listen addresses conflicting.
  • Switched to using ip command to setup host-side routes and neighbour proxy entries for the ipvlan NIC type. This brings it inline with how the routed NIC type works.
  • Don’t force atime on ZFS volumes. By not forcing atime to on, we get the relatime behavior and we also allow an admin to disable the feature by setting atime=off on the dataset itself or on a parent.
  • When modifying a stopped VM’s settings its config volume needs to be activated and mounted. This is required because LXD will write the new settings to the instance’s backup.yaml file (which is stored in the config volume). However previously LXD was also activating the VM’s root volume, which was taking extra time and was unnecessary. Now LXD only activates and mounts the VM’s config volume.

Bug fixes:

  • Fixed panic if metric collection occurred during instance stop.
  • Fixed some minor issues with the lxc query command.
  • Fixed non-recursive filtering in lxc list command (via API handler).
  • Fixed unpredictable ordering of Starlark dict keys. Unlike Go’s map type, Starlark’s dict keys have a predictable order. So when LXD converts a Go map into a Starlark dict it now sorts the keys before inserting them into the dict so that it uses predictable ordering.
  • Fixed volume resize for ZFS block mode filesystem volumes.
  • Fixed VM early boot /dev/lxd availability by retrying establishing the vsock connection in lxd-agent.
  • Changed how LXD sets the MAC address and MTU of network interfaces it creates. Previously it called ip link add to create the interface and then made subsequent calls to ip link set to apply specific settings to the new interface. However it is thought this was allowing a race to occur between LXD and systemd-network’s default MACAddressPolicy=persistent policy for interfaces, which was causing systemd-udevd to later set the MAC address to a random one (overriding what LXD had set earlier). This was causing problems with applications that require the instances’s interface to have a predictable MAC address in order to identify the NIC interface (such as cloud-init). LXD now creates the interface and sets its MAC address & MTU in a single call to ip. It is thought this should prevent the systemd from identifying the new interface as having a random MAC from the kernel and avoid triggering the automatic persistent MAC address policy. This also has the desirable side-effect that LXD makes fewer calls to the ip command.
  • Fixed missing “Project not found” error when running lxc monitor --project=<unknown project>.
  • Fixed ceph keyring lookup logic to match what the ceph tool itself does.

Distrobuilder

Improvements:

  • Initial work has begun on reworking and refreshing the distrobuilder documentation.

Job openings

Canonical Ltd. strengthens its investment into LXD and is looking at building multiple squads under the technical leadership of @stgraber.

As such, we are looking for first line managers (highly technical) and individual contributors to grow the team and pursue our efforts around scalability and clustering.

All positions are 100% remote with some travel for internal events and conferences.

For more info please see LXD related openings at Canonical Ltd (2022-2023)

LXD

YouTube videos

The LXD team is running a YouTube channel with live streams covering LXD releases and weekly videos on different aspects of LXD. You may want to give it a watch and/or subscribe for more content in the coming weeks.

https://www.youtube.com/lxd-videos

Contribute to LXD

Ever wanted to contribute to LXD but not sure where to start?
We’ve recently gone through some effort to properly tag issues suitable for new contributors on Github: Easy issues for new contributors

Upcoming events

  • Nothing to report this week

Ongoing projects

The list below is feature or refactoring work which will span several weeks/months and can’t be tied directly to a single Github issue or pull request.

  • Stable release work for LXC, LXCFS and LXD

Upstream changes

The items listed below are highlights of the work which happened upstream over the past week and which will be included in the next release.

LXD

LXC

  • Nothing to report this week

LXCFS

  • Nothing to report this week

Distrobuilder

LXD Charm

  • Nothing to report this week

Distribution work

This section is used to track the work done in downstream Linux distributions to ship the latest LXC, LXD and LXCFS as well as work to get various software to work properly inside containers.

Ubuntu

  • Nothing to report this week

Snap

  • Nothing to report this week
1 Like