(work in progress)
See also the Roadmap page for future features.
Contents
User visible features
Power management
KVM inherits Linux' excellent power management:
- CPU frequency scaling automatically works on the host; when guests are idle, host cpu frequency is reduced
- You can suspend/hibernate/resume a host with live virtual machines
Memory management
- swapping - Linux will automatically swap out guest memory when under memory pressure
- npt - kvm will automatically use the Nested Page Tables feature on newer AMD processors for improved performance
- large pages - take advantage of large page support to improve performance, with or without NPT
Hotplug support
- hot-add and hot-remove virtual cpus from a running guest, without downtime
Live migration
You can migrate a virtual machine from one host to another.
NUMA support
You can use the numactl command to control placement of virtual machines on a numa node. You can use taskset to constrain virtual cpus to run on particular physical cpus.
Use Linux process management for VM management
You can use top, renice, ionice, and taskset to monitor and control your virtual machines.
Multiple hard disk formats
As kvm is based on qemu, it supports a wide variety of disk formats, including qcow, qcow2, vmdk, vhd, and raw partitions.
Local and remote displays
Run a virtual machine in a window, or view it over the WAN with a VNC client.
I/O
kvm supports emulated IDE and SCSI interfaces. For networking, three emulated network cards are supported: rtl8139, ne2000, and e1000. kvm also supports usb and scsi pass-through - you can connect a real usb or scsi to a virtual machine.
In addition there are high performance virtio based devices for networking and storage. Guest drivers are available for Linux.
Booting
A virtual machine can boot from an IDE or SCSI interface, or from the network using PXE. A virtual machine can also boot from a virtio based storage device.