Linux – Software for managing a cluster of KVM physical hosts

kvm-virtualizationlinuxqemuvirtualization

I am looking for software recommendations for managing a cluster of KVM physical hosts. We are currently using virsh and doing just about everything by hand, and I would like to find a slightly more robust solution.

Basic features that I am looking are:

  • The ability to schedule new guests on the cluster.

    When deploying a new guest, we should not have to specify a specific physical host. The management layer should boot the guest on an appropriate host given the CPU and memory requirements of the guest and the available cluster resources.

  • Support for live migration.

  • The ability to restart guests if a physical host becomes inoperative.

    We don't want to have to restart everything by hand if a system should fail.

  • Granular access control.

    We would like to be able to delegate control of individual guests (or groups of guests) to specific users. If possible, we would like specific users to be able to deploy new guests on the cluster within certain resource limits.

  • Centralized console access.

    We would like to be able to access guest consoles without having to first figure out where the guest is running, and then looking up it's corresponding VNC port.

I am aware of http://www.linux-kvm.org/page/Management_Tools, but the list is long, unstructured, and expresses no opinion about the relative quality or feature sets of the various products. I am here, dear readers, for your opinions.

Best Answer

There's Google's ganeti. It does live migration, scheduling new guests, and restarts guests; however, it does all that without libvirt (has custom code to deal with hypervisors). It also has "unusual" security requirements (actively modifies the ssh keys of the nodes); they might not be acceptable for you.