How (if at all) is KVM used with enterprise workloads?
This is sort of similar to Q123566, but I want to add a few clarifications:
- KVM is the Linux-kernel-based virtualization technology (specifically: a hypervisor) that underlies most non-Xen FOSS virtualization platforms/tools.
-
QEMU is an atomic tool/utility/program, that, today, fills the role that
kvm(1)
did while its eponymous hypervisor was under development. It is capable of usingkvm(3)
as an emulation backend; this is its most efficient mode of operation on x86_64-based platforms. - Neither of these are virtualization solutions in the way that ESXi and Hyper-V (which each pack their own, purpose-built, type-1 hypervisor) are.
- A solution (not a tool or technology), whether developed in-house or acquired externally, is a crucial aspect of any enterprise IT deployment.
Clarifying that last point: a kernel module per se does not facilitate devops, nor does QEMU run itself. A tool is not a solution (though a sufficiently robust tool may lull a sysadmin into thinking their ad-hoc, in-house, undocumented solution is viable).
None but the most "confident" of sysadmins believe that an array of machines running manually-installed operating systems, configured by a (manually-administered) smattering of systemd.unit(5)
files invoking various instances of qemu-system-x86_64(1)
, is sustainable or scalable.
That gap—that KVM (partly due to being a type 2 hypervisor) is the only "odd one out"; it's a hypervisor not locked to a particular tool and/or solution—is where Red Hat's virt-manager, comes in. It seems to be (aside from oVirt, apparently a layer-on-top-of / interface-to virt-manger,) the only enterprise-grade QEMU-based (and, by extension, KVM-based) virtualization solution currently on the market.
But whereas many companies use ESXi1 and Hyper-V2, it's hard to find any3 that use virt-manager. And while a handful of companies identify as using KVM-based solutions4, information on how KVM is actually used is scarce.
So, how is KVM used with enterprise workloads, which can't afford the assorted risks of running on a shoestring shell-script-and-SSH infrastructure? Is it used at all? Do companies just commandeer something like SaltStack to corral KVM+QEMU as part of an in-house solution? Is virt-manager actually in wide use but a well-kept secret? I can't figure out why there's this information-black-hole around what is apparently the virtualization solution powering Red Hat, Inc's (and nobody else's?) entire infrastructure.
KVM is widely used in the cloud, both private and public:
- OpenStack uses KVM
- AWS uses KVM
- Oracle OLVM uses KVM
- ... probably many more
KVM is "just" a hypervisor with an API, many companies build tools around it to make it easy to use. No one expects you to use KVM directly (although it is possible).