Is it possible to migrating VMs between compute nodes without shared storage?

Solution Unverified - Updated -

Environment

  • Red Hat Enterprise Linux OpenStack Platform

Issue

  • We have an OpenStack upgrade scheduled, and would like to live migrate instances.
  • No shared storage configured (all VMs run on node-local SSDs in RAID1).

Resolution

It's not possible with Grizzly (or any version after that) for live migration support without shared storage.

For Block based storage (cinder/ceph) - Only the block device can be made available on destination host - instances can't be live migrated without a shared storage (NFS).

Workaround

nova migrate can be used to shut down the instance on one compute node, and start it on another. nova migrate destroys the image on the src and uses ssh to move the /var/lib/instances/ files to the destination where the image is then rebooted. It does not use shared storage and actually generates an error message if shared storage is used. The caveat is that you must have passwordless ssh setup for the nova user on both source and destination compute nodes, plus have the nova user/group uids be the same on both machines.

A way around doing that setup is to use nova image-create and then nova boot the new image. This is similar to using snapshots to migrate instances outlined here.

Root Cause

Lack of shared storage

This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.

Comments