QEMU, KVM and the other ones
Learn about virtualising the Linux way, with libvir t and Virtual Machine Manager, and jokes about Inception
V
irtualBox
and
VMWare,
with their friendly GUIs, are great tools for spinning up VMs on whatever OS you happen to be running at the time. They also both have command line interfaces, and
VMWare
Pro
has all kinds of enterprise management features. So if you want to deal with more VMs than you can comfortably fit on your screen at once, these tools are more than fit for purpose.
Linux has its own virtualisation solution, KVM (the Kernel Virtual Machine) and it’s hugely popular, both at home and at scale. As the name suggests, KVM resides in the kernel, and transforms it into a hypervisor. But to make use of it, we need a userspace program to provision our abstract hardware and disk images and such. The most common way to do this is through QEMU, which is an emulator, but also a virtualiser.
You can run QEMU from the command line if you really want, but once you realise how much you need to type to get everything just right you’ll find yourself clamouring for something a little friendly. Enter Libvirt, which provides a high-level API for creating and managing VMs. It’s not in itself a friendly GUI, but such a thing does exist in the form of the imaginatively Virtual Machine Manager.
Having four tiers in a virtualisation stack might seem like the kind of unnecessary overcomplication that Linux is so often accused of, but they all do different things and can interoperate with other tools. Libvirt, for example, can happily manage VirtualBox machines as well as QEMU/KVM ones. It can also set up virtual networks and bridges and things so your guests can talk to each other or the physical network as you wish.