Is OpenStack live migration possible without shared storage?

Like many people I am considering creating 'private cloud' using either OpenStack or VMware.

VMware vMotion has a nice feature which allows Live Migration of VMs even without shared storage. I have tried this feature in a lab environment and it works well. This feature is not without it's downsides but it is appealing for sites which need a simple VM environment and don't want to spring for the complexity and expense of shared storage. Shared storage can easily add $50-100K to the cost of a Virtual/Cloud infrastructure. More information on this feature at:

  • ESXi and vCenter Server 5.1 Documentation > vCenter Server and Host Management > Migrating Virtual Machines in the vSphere Web Client
  • Techtarget: shared nothing live migration.

Does OpenStack using KVM offer a similar feature? Can OpenStack do live migration without shared storage? KVM is the default hypervisor for OpenStack and we'd prefer to stick with the default unless there is a compelling reason to use something else.


Solution 1:

Openstack supports live migration without shared storage (with reservation):

Theoretically live migration can be done with non-shared storage, using a feature known as KVM live block migration. However, this is a little-known feature in OpenStack, with limited testing when compared to live migration, and is slated for deprecation in KVM upstream.

This doc is incomplete, however. One implementation of live migration was deprecated but a new (and better) implementation was done.

There was some discussion about this on the Openstack mailing list Apr 2013 where Daniel Berrange says:

What I wrote above about the existing impl is still accurate. The new block migration code is now merged into libvirt and makes use of an NBD server built-in to the QMEU process todo block migration. API wise it should actually work in the same way as the existing deprecated block migration code. So if you have new enough libvirt and new enough KVM, it probably ought to 'just work' with openstack without needing any code changes in nova. I have not actually tested this myself though.