Weekly status for the week of 16th June to 22nd June.
Introduction
This past week, LXD received several bug fixes and improvements, including a new configuration option to control the size of the virtiofsd thread pool.
Thanks to all the contributors!
virtiofsd
thread pool size for VM filesystem disk
devices
LXD now uses the Rust implementation of virtiofsd
, improving compatibility and enabling new features. The change enables direct I/O passthrough from guests, ensuring correct behavior when applications request direct I/O instead of silently falling back to buffered access.
Additionally, a new io.threads
option has been introduced for VM filesystem disk
devices to control the virtiofsd
thread pool size, which can help improve I/O performance. In restricted projects, this option can only be used if the restricted.virtual-machines.lowlevel
project setting is set to allow
.
API extension: disk_io_threads_virtiofsd
Bug Fixes
-
Fixed an issue where NIC devices were not cleaned up after instance migration, causing issues with
dnsmasq
leases. -
Fixed an issue where instance migration could fail with a
not supported
error due to incorrect handling of local volumes. Now, only shared volumes trigger setup actions on target systems (from Incus). -
Improved LXD Agent to expose the memory RSS metric (
lxd_memory_RSS_bytes
).
LXD UI
- The network bridge configuration has a new setting for
bridge.external_interfaces
.
All changes
The items listed below is all of the work which happened over the past week and which will be included in the next release.
LXD
- lxd-agent: Added RSS metrics + Simplified calculation for better scalability
- Cluster: Add post-migration instance device cleanup
- dqlite: Revert pin and use main
- doc: update and add information about releases and snap
- devlxd: Separate UbutuPro type used in LXD and in devLXD
- lxd: Add headers only if value is not empty when connecting to other cluster member
- Device: Add thread pool option for VM filesystem
disk
shares usingvirtiofsd
- lxd/instance/qemu: Fix shared storage volume setup during instance migration (from Incus)
- test/suites/basic: check
--version
and--help
for all binaries - doc: add vGPU acronym for virtual GPU
- build(deps): bump github.com/minio/minio-go/v7 from 7.0.92 to 7.0.93
- build(deps): bump github.com/canonical/go-dqlite/v2 from 2.0.0 to 2.0.1
- build(deps): bump github/codeql-action from 3.28.19 to 3.29.0
- build(deps): bump github.com/minio/minio-go/v7 from 7.0.92 to 7.0.93
- build(deps): bump github.com/zitadel/oidc/v3 from 3.38.1 to 3.39.0
- build(deps): bump github.com/minio/minio-go/v7 from 7.0.92 to 7.0.93
- build(deps): bump github.com/openfga/openfga from 1.8.13 to 1.8.15
- build(deps): bump golang.org/x/tools from 0.33.0 to 0.34.0
- build(deps): bump github.com/canonical/go-dqlite/v2 from 2.0.0 to 2.0.1
- build(deps): bump github.com/openfga/openfga from 1.8.13 to 1.8.15
- build(deps): bump github/codeql-action from 3.28.19 to 3.29.0
- Run CI on
tmpfs
mount - Device: Add thread pool option for VM filesystem disk shares using virtiofsd (stable-5.21)
- Test tweaks
- lxd-benchmark: test report generation and
launch
command - Add basic VM tests
- doc: add sphinx-sitemap to generate sitemap for SEO
- Migration test improvements
- doc: css to hide rtd versions flyout when printing
- Doc: Cover VM
disk
io.*
options in the storage-configure-IO section - Tests backport (stable-5.21)
- Makefile: do not build doc on
make dist
on GH PRs - Refactor UnixSocket function (from Incus)
- doc: rename variable used by sitemap per conflict
LXD UI
- fix(volume) ensure volumes with same name and location in different pools are filtered correctly in volume list
- chore(deps): update dependency @canonical/react-components to v2.7.2
- feat: [WD-22252] Edit storage buckets
- feat: [WD-22810] Create + Edit Bucket E2E Tests
- fix(operations) ensure date wraps well on small screens
- feat: [WD-22736] Include buckets in pool used by list
- feat: [WD-22927] CephObject driver SB creation helptext
- chore(deps): update dependency @canonical/react-components to v2.7.3
- chore(panels) remove dead panel code
- chore(readme) move screenshots to assets server to avoid loading problems with github hosted images
- feat(network) add bridge.external_interfaces config option
- chore(deps): update dependency @canonical/react-components to v2.7.4
LXD Charm
- Nothing to report this week
LXD Terraform provider
PyLXD
- Nothing to report this week