Weekly status for the week of the 15th August to the 21st August.
Introduction
The highlights of the past week were the releases of LXD 5.5 and LXD 5.0.1 LTS.
LXD 5.5 is the latest feature release which adds initial support for object storage and adds the concept of instance ready state.
LXD 5.0.1 LTS is the first bugfix release for LXD 5.0 series (which is supported until June 2027).
Also @stgraber has continued his series of videos about LXD storage drivers, this time looking at LVM:
LXD
All of the past weeks changes made it into the LXD 5.5 release.
New features:
- Added object storage feature using Ceph Object Storage gateway (
radosgw
). Please see Linux Containers - LXD - Has been moved to Canonical and and Linux Containers - LXD - Has been moved to Canonical for more details. - Added
--all-projects
flag to thelxc storage volume list
command (and associated API endpoint). - Added new
lxd_memory_OOM_kills_total
andmetrics_memory_oom_total
metrics to the metrics exported.
Improvements:
- Only use instant queries on Grafana piechart graphs as calculating old data isn’t needed.
- Adds additional unique index to
storage_volumes
table to protect against duplicate volumes at the database layer. There was already a unique index that was doing this for local storage volumes, but was not effective for volumes on remote storage pools because thenode_id
field value wasNULL
meaning the current unique index didn’t take effect. - Include underlying error in message returned to user when failing to generate automatic IP address for new
bridge
networks. - Avoid using one-time prepared statements (that incur an additional network round trip time to setup) when loading and changing config rows. Also avoids unnecessary duplicated queries when loading daemon config at LXD start time.
Bug fixes:
- Fixed an unreleased regression in LXD’s BGP integration that was preventing operation since the new hold time feature was merged.
- Fixed an issue that was preventing instance copy/move/migration if the instance didn’t have the
volatile.uuid
setting. This is now automatically generated if needed. - Fixed an issue that was preventing OVN DNS names from working if the instance name had upper case characters in it. DNS names are now lower cased.
- Fixed an issue related to storage pool deletion that was incorrectly using the requested project name when deleting remaining images before the pool was removed.
- Fixed an issue that was preventing the use of the
mtu
setting onphysical
networks whoseparent
was set to an existing bridge when used as anovn
network uplink. This is now used to set the MTU of the veth interfaces connected to the bridge. - Fixed an issue when concurrently altering ACL rules when used with the
xtables
firewall driver that was causing races. Now uses the-w
flag withiptables
command for ACL rules.
LXC
Bug fixes:
- Fixed docbook2x detection with meson.
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 planned currently.
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
- [LXD] Object storage (S3 API)
- Infiniband support for VMs
- Dqlite disk-only operation mode
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
- Storage: Add object storage buckets for ceph radosgw
- Storage: Adds
--all-projects
tolxc storage volume list
- lxd/network: Fix BGP without hold time
- grafana: Only use instant queries on piechart graphs
- Instance: Generate
volatile.uuid
if needed on move - Database: Adds remote storage aware unique index to
storage_volumes
- Network: Include error from bridge n.populateAutoConfig
- Network: Lower case OVN DNS names
- Storage: Don’t use project param when deleting image volumes during storage pool deletion
- metrics: new metric: lxd_memory_OOM_kills_total
- Generator: Remove unnecessary statement prepares from Config/Devices
- Database: Use QueryScan rowFunc for SelectObjects
- Makefile: Moves shellcheck version call into static-analysis target.
- Doc: Separate storage howtos to cover pool and volumes separately
- doc/storage/ceph: remove YouTube link from content that is reused
- lxd-generate: Allow GetOne filter to include a ‘type’ field.
- Network: Fixes impossibility to set MTU for a pair of veths connecting OVN uplink and ovs-system bridges
- Doc for lxd-migrate
- api: metrics_memory_oom_total
- Storage: Fix detection of missing lxd-admin radosgw user in cephobject driver
- Node: Removes inefficient convenience functions that load all node config unnecessarily
- Firewall: Use xtables locking in
NetworkApplyACLRules
- Storage: Ceate admin cephobject radosgw-admin user if missing in CreateBucket
- lxd/db/generate/db/method: Fix lxd-generate typo
- Doc: Fix typo in howto/storage_backup
- doc: backquote mac in doc/api-extensions.md
- doc: backqoute cloud-init in doc/cloud-init.md
- doc: backquote instance types in events.md
- Fix dependencies
- doc: backquote true and NO_PROXY in doc/server.md
LXC
LXCFS
- Nothing to report this week
Distrobuilder
- Nothing to report this week
Dqlite (RAFT library)
- Nothing to report this week
Dqlite (database)
- Nothing to report this week
Dqlite (Go bindings)
- Nothing to report this week
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
- ceph: Added radosgw-admin to ceph.external option
- lxd: Bump to 5.5