Weekly status for the week of 27th March to 2nd April.
Introduction
This past week there has been a focus on VM instance functionality, with support for differential VM image downloads and migration subsystem changes that lay the ground work for QEMU to QEMU live migration support.
This week @stgraber has added two new videos.
The first continues his series on LXD instance devices and covers the none
device:
https://www.youtube.com/watch?v=6NCLnd5_guQ
The second video covers the LXD image serving infrastructure:
https://www.youtube.com/embed/pM0EgUqj2a0
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
Improvements:
- Added support for differential VM image download to simplestreams.
- Reworked migration subsystem so that intra-cluster ceph instance moves are now handled by the per-instance driver migration logic, rather than being its own implementation (using stateful stop & start). This lays the ground work for supporting live QEMU to QEMU VM migration.
- Reworked migration subsystem to remove unnecessary concept of src/dest field containing the
migrationFields
struct and instead embedded that struct directly into the associated src/dest struct that already exists. This removed the need for lots of logic testing for which field to use based on whether it was a push or pull migration. - Reworked how the migration connections (control, filesystem and state) are established and managed. Previously connections were expected to be established before the negotiation process had taken place, and for backward compatibility this is still the case for containers, as well as for VMs (but just for control and filesystem connections). But internally this has now been pushed down into the instance driver so that each driver can decide when to connect/wait for a particular type of connection to be established. This lays the ground work for the VM driver to add live QEMU to QEMU migration feature detection during the negotiation phase and then, if that feature is available on both sides, connect/wait for the state connection to be established before performing live state transfer over it.
- Reworked CPU topology logic for the VM driver. This reduces the number of times the CPU topology was calculated from 3 down to 1 and moved all of the
limits.cpu
handling over to it making it much easier to fix issues in the future.
Bug fixes:
- Fixed an issue that was preventing instance creation when using an alternative target whether specified by the user or as the result of internal placement logic. We were forwarding the request to that target with the notify bit on. This would then cause the target server to think this was a legitimate notification, that is, the completion of a cluster internal instance relocation. LXD no longer sets the notify bit when forwarding the instance creation request to another cluster member.
- Fixed a crash in certain circumstances when updating server config in
api10Put
caused by passingnil
for rather thanlocalConfig
todoApi10UpdateTriggers
. - Fixed candid based authentication on file transfers.
LXD Charm
Improvements:
- General cleanup and improvement in the HTTPS relation.
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
- shared/simplestreams: Add support for disk-kvm.img.vcdiff
- lxd/api: Don’t crash by passing a nil localConfig
- Instance: Rework intra-cluster ceph instance move to use migration subsystem
- Rework cpuTopology in QEMU
- Migration: Removes unnecessary concept of src/dest
migrationFields
frommigrationSink
- lxd/instances: Don’t use notify for targetting
- Fix candid based authentication on file transfers
- Migration: Reworks how migration connections are established and managed
LXC
- Nothing to report this week
LXCFS
- Nothing to report this week
Distrobuilder
LXD Charm
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