quasi-live backup of virtual machines

Registered by Davide Guerri

Add VM live-backup functionality to freezer.

For instance, using pseudo-migration for KVM

 - http://www.linux-kvm.org/page/Migration#savevm.2Floadvm_to_an_external_state_file_.28using_pseudo-migration.29

and coordinating volumes snapshot with VM guest state dump, it should be possible to achieve quasi-live and consistent backups of VMs.

The idea is to follow the following steps:
 1) stop the vm emulation
 2) start LVM (or, in general, disk) snapshot
 3) restart the vm
 4) pseudo-migrate the vm to the disk

The most critical part is to assure that nothing happens between 3) and 4).

As opposed to libvirt "save" command, pseudo-migrations are very quick. This means that the downtime during backup mostly depends on the time needed to perform disk snapshots.

Related work:
https://github.com/dguerri/LibVirtKvm-scripts

Blueprint information

Status:
Started
Approver:
Fausto Marzi
Priority:
Low
Drafter:
Davide Guerri
Direction:
Needs approval
Assignee:
None
Definition:
New
Series goal:
None
Implementation:
Needs Infrastructure
Milestone target:
None
Started by
Davide Guerri

Related branches

Sprints

Whiteboard

High level backup example for an OpenStack VM with ephemeral disks and cinder volumes

<let V be the VM to backup>
<access QEMU monitor>
<stop emulation>
<save (with pseudo-migrations) V status (e.g. migrate -d "exec: dd of=status1")>
<for each ephemeral disk>
  <external/internal?? snapshot of ephemeral disk>
<for each cinder volume>
  <cinder snapshot (forced?)>
<continue emulation>

After that, V can be completely recovered with:

* external/internal?? snapshot of ephemeral disks
* V status
* cinder volumes snapshots

Some of the steps above are abviously non-trivial and they probably require some functionalities that are not currently availablt in OpenStack...

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.