KVM plans big boosts to storage and nested virtualization
Project maintainer Paolo Bonzini details open source hypervisor's future directions
The Kernel-based Virtual Machine is making waves. Better known as “KVM”, the open source hypervisor runs Google's cloud and Cisco's using it as the hypervisor for its network function virtualization efforts. It is widely used by OpenStack users while Nutanix uses it to power the Acropolis code it hopes will see its users ditch VMware.
Speaking of Virtzilla, it's about to spew forth a torrent of news at VMworld, so The Register's virtualization desk decided we'd best balance out the week's virtualization coverage with a bit of KVM news.
We've been helped by project maintainer Paolo Bonzini. Like many who work on KVM, Bonzini's a Red Hat employee - the company contributes a comfortable majority of all code to KVM, QEMU and Libvirt. Bonzini responded to our request for a heads' up on KVM's directions with news that the project is “working hard on nested virtualization.”
“OpenStack has been using nested virtualization for some time in their continuous integration environment. And despite (or because of) the hype around containers, some people do want to use virtualization to get better isolation in scenarios where you would usually go with containers.”
Bonzini thinks that's where nested virtualization will come in handy, “because containers are usually run inside virtual machines (for example in the cloud). Of course, using nested virtualization in the cloud depends on the cloud providers enabling it.”
“Our part is to make sure that cloud providers using KVM have stable and complete support for it. Not surprisingly, Google is the main contributor here.”
Bigger VMs are also on the agenda.
“Breaking the barrier of 256 virtual CPUs was a large work because such large machines need interrupt remapping, which in turn requires an IOMMU. This spanned all of the low-level virtualization stack (KVM, QEMU and the firmware),” Bonzini said.
Storage is on Bonzini's mind, too, because he says “Compared to VMware and Hyper-V, support for some enterprise storage features has been lacking in KVM. Things like NPIV and persistent reservations are a mess to use right now, and we want to fix that.”
Another complicated problem is backups. “Interoperability of KVM with backup software has always been problematic, but that is being fixed,” Bonzini told The Register.
NVMe has the development team busy readying QEMU to handle new storage devices, “especially for block devices (virtio-blk and virtio-scsi).”
“In addition to improving QEMU, we are also working on interoperability with external storage backends: the vhost-user backend was introduced for network devices to talk to DPDK (data plane development kit), and we now have added a virtio-scsi version of it to talk to SPDK (storage performance development kit).”
Bonzini also told us that “Windows guests and their performance are a major concern.”
“KVM, like other major hypervisors, supports Hyper-V's paravirtualization features,” he wrote. “We are also working on native support for Hyper-V devices, where a KVM guest would look to Windows just like if it was running on Hyper-V.”
Bonzini also works on QEMU and said version 2.10 is imminent, adding support for LUKS-encrypted virtual machine images.
“ Future versions of QEMU will have vhost-user for virtio-blk, and will also be able to talk to storage directly with a user space driver (based on VFIO), without going through the kernel.”
The last agenda item Bonzini mentioned is vsock , the VMware-created lightweight network between guest and host that means the host is less likely to send traffic beyond the firewall.
Bonzini told us vsock is already supported in Linux, QEMU, Wireshark and systemd (for socket activation) “and many other userspace pieces”, adding that “Stefan Hajnoczi is currently working on NFS support for vsock.” ®