quasi-live backup of virtual machines
Add VM live-backup functionality to freezer.
For instance, using pseudo-migration for KVM
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:/
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
- Completed by
Related branches
Related bugs
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/
<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...