Need advice about which tool to choose?Ask the StackShare community!
KVM vs LXD: What are the differences?
Developers describe KVM as "Kernel-based Virtual Machine is a full virtualization solution for Linux". KVM (for Kernel-based Virtual Machine) is a full virtualization solution for Linux on x86 hardware containing virtualization extensions (Intel VT or AMD-V). On the other hand, LXD is detailed as "Daemon based on liblxc offering a REST API to manage containers". LXD isn't a rewrite of LXC, in fact it's building on top of LXC to provide a new, better user experience. Under the hood, LXD uses LXC through liblxc and its Go binding to create and manage the containers. It's basically an alternative to LXC's tools and distribution template system with the added features that come from being controllable over the network.
KVM belongs to "Virtualization Platform" category of the tech stack, while LXD can be primarily classified under "Virtual Machine Platforms & Containers".
LXD is an open source tool with 2.28K GitHub stars and 531 GitHub forks. Here's a link to LXD's open source repository on GitHub.
lxd/lxc and Docker aren't congruent so this comparison needs a more detailed look; but in short I can say: the lxd-integrated administration of storage including zfs with its snapshot capabilities as well as the system container (multi-process) approach of lxc vs. the limited single-process container approach of Docker is the main reason I chose lxd over Docker.
Pros of KVM
- No license issues4
- Very fast2
- Flexible network options2
Pros of LXD
- More simple10
- Open Source8
- API8
- Best8
- Cluster7
- Multiprocess isolation (not single)5
- Fast5
- I like the goal of the LXD and found it to work great5
- Full OS isolation4
- Container3
- More stateful than docker3
- Systemctl compatibility2