Weekly status for the week of the 13th January to the 19th of January.
Introduction
Last week was a busy week with the team preparing for the LXD 3.19 release midway through the week. For more information please see the release notes.
In terms of LXD, last week saw the new LVM storage driver get merged (with VM and volume striping support).
Volume striping allows an LVM storage pool to use an existing LVM volume group that spans more than one physical device to spread volumes across multiple devices, which can help I/O performance.
To do this, create a storage pool from an existing volume group that is backed by multiple physical devices, and specify that new volumes should be created with stripes:
lxc storage create lvmStripes lvm source=ExistingVolGroup volume.lvm.stripes=2
You can also optionally specify a stripe size using volume.lvm.stripes.size
, e.g. volume.lvm.stripes.size=8KiB
Note: When using LVM thin pools (the default) LVM only supports striping of the thin pool volume itself, so it must be specified at the time of LXD storage pool creation and not at volume creation time.
Virtual machines also gained the ability to have additional disks added to them using the familiar command format:
lxc config device add v1 sdb disk source=/dev/sdb
lxc config device add v1 sdb disk source=/home/my.iso
New disks will appear as new block devices inside the VM.
Virtual machine snapshot and restore support was added using the normal lxc snapshot
and lxc restore
commands.
When running commands via the lxd-agent
inside a VM using lxc exec
, a bug was fixed to support window resizing.
Multi-architecture clustering support was also added, allowing an LXD cluster to be comprised of nodes that have different architectures. When deploying a new instance only nodes running an architecture that matches the source image architecture will be selected as a target.
The LXD resources API now outputs the device_id
for a disk.
On the LXC front, several bugs were fixed, including restoring the ability to specify a fixed MTU on a bridged or routed network device, a memory leak in the cgroup initialisation, and an issue where an error in a container’s config file could leave an orphaned process and lock when start up fails.
Finally, distrobuilder gained support for building CentOS Stream images.
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: https://github.com/lxc/lxd/labels/Easy
You can also find a slightly longer, more detailed list here: Contributing to LXD
FOSDEM 2020 - containers devroom
We will once again be running the containers devroom at the upcoming FOSDEM conference in Brussels, Belgium. This year it’s going to be over the weekend of the 1st and 2nd of February.
Full schedule can be found here: https://fosdem.org/2020/schedule/track/containers/
Upcoming events
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.
- Virtual machine support
- Rework of internal LXD storage handling
- Distrobuilder virtual machine support
- Various kernel work
- 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
- Storage: LVM driver
- Support stand-by cluster members
- Storage: LVM VM support
- Wrap errors in drivers package
- Multi architecture clustering
- Database fixes
- lxd/util: IsAddressCovered takes into account host names
- lxd/db: Ensure zfs.pool_name is set
- Update all doc for instances
- lxd/instances: Fix creation from simplestreams
- lxd/db: Fix multi-arch cached images
- Implement storage patch mechanism
- Fix broken validation logic upon ceph volume rename
- lxd/storage/btrfs: Fix usage inside containers
- Storage: validation
- Storage: LVM striping
- Add device_id field in disk resources
- Pre-release bugfixes
- VM: Disk device
- Silence rebalance warning not leader
- Storage: Generic VFS functions
- Re-enable clustering upgrade test
- Instance: Common Instance prerequisites
- VM exec and delete fixes
- Various VM fixes
- [Makefiles] Whitelist ldflags in libcap pkgconfig
- VM snapshot handling
LXC
- cgroup.c: fix memory leak at cgroup init failed
- test: increase timeout for api reboot tests
- network: Restore fixed MTU functionality
- start: fix container killing logic
LXCFS
- Nothing to report this week
Distrobuilder
- sources: Support CentOS Stream
- sources/centos: Fix filename regexes
- Fix example command in index.md
- Update index.md - separate LXD and LXC examples
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
- LXD 3.19 was pushed to the candidate channel
- The edge channel was reworked to transition to core18