Canonical just announced the release of a virtualization HWE stack: Ubuntu’s virtualization hardware enablement (HWE) stack: a new model for confidential computing enablement | Ubuntu
That is great news! I personally run HWE kernels on all my LXD nodes for the latest support and features, and this new stack should further improve that!
But how will Canonical’s in-house virtualization solution LXD benefit from this new stack?
With LXD being confined to a snap, as far as I am aware the system’s packages are not used at all. Only the kernel is. qemu and edk2 binaries are included with the snap.
LXD started out as a management daemon for LXC containers. LXD stood for LXC on steroids, was the joke we used in our team. A breeze compared to setting LXCs up yourself on a plain debian system!
A few years ago, LXD introduced support for virtual machines. Starting with LTS 5.0 those became a first class citizen.
Today, with all the features that 6.9 offers us, LXD is becoming a full blown virtualization solution. A lightweight openstack is how I would describe it!
For a LXC management daemon, snap was fine. But when you start to look at LXD as a hypervisor, there are some limitations of lxd being confined to a snap that are in the way.
Compared to alternatives like Proxmox, OpenNebula, XCP-ng or Harvester there are some features not possible due to the limitations of a snap.
Basic features like:
- Cockpit-like host management:
- being able to power off or reboot a node via API/UI.
- Host OS updates visibility
- Host logs
- Host metrics visibility (SMART / sensors / thermal)
- Network configuration beyond LXD-managed bridges
Powerful and basic features that LXD’s competitors offer.
Almost all of our/my deployments rely on host OS managed bridges to directly connect to the physical VLANs, all the way back to 2017. Network management is consistently the thing people struggle with most when I suggest LXD to someone. Most people just want to bridge a VM directly onto the physical network, and not everyone has a spare NIC to dedicate to a managed LXD bridge. “Give my VM an IP on vlan 20” is what is expected by most.
I am not suggesting LXD immediately abandons the snap model, i get why it exists. There are also benefits to shipping binaries/libraries with your software (Hello docker!).
But I feel that LXD (and microovn, microceph) are fighting the limitations of snap. They’re not simple desktop applications like Spotify, Firefox, Discord, or server applications that work wonderfully in a docker container like nginx or mysql.
LXD (And the MicroCloud snaps) are becoming richer and richer in features. And to grow even further beyond I think the snap confinement needs to be discussed.
Curious to hear your thoughts!