Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

This is an early draft

Bug Reference

None

Branch

Work in progress patches are here:

https://github.com/djs55/cloudstack/tree/virsh-capabilities

Introduction

Some people prefer to manage their hypervisors entirely via the libvirt control plane. At the moment these people are forced to choose the KVM hypervisor, even though libvirt also supports the Xen hypervisor. This design extends CloudStack to support management of hosts running Xen via libvirt as well as KVM. No change will be made to the XenServer plugin.

Bug Reference

None

Branch

Work in progress (ugly) patches are here:

https://github.com/djs55/cloudstack/tree/virsh-capabilities

Principles

  1. Maximise code shared between KVM and Xen. Corollary: minimise the number of Xen-specific workarounds
    1. We want people to be able to add features to the libvirt plugin without having to write unnecessary special-cases for Xen or KVM.
    2. If a libvirt hypervisor driver lacks a useful feature, we should implement it.
    3. Share the same system VM template as KVM

...

  • this section is intentionally left blank

Document History

  • 2014-06-08: initial draft

Glossary

Feature Specifications

...

On detecting hypervisors on the host: it would be better to always use /sys/hypervisor/type, but this doesn't appear to be populated by the KVM module. Another option is to query "virsh capabilities" but this requires the libvirt daemon to be already started, which is not required today.

Web Services APIs

No new APIs are needed

...