Features/Migration
Summary
Migration roadmap.
Owner
- Name: Juan Quintela
- Email: quintela@redhat.com
Detailed Summary
This page describes what are the changes planned for migration and who is supposed to do each of the changes.
Status
This is the roadmap, features are integrated upstream as they are done.
TODO Short Term
- send RHEL fix to get qcow2 working with migration
- split migration in its own thread/subroutine. This allows several improments:
- monitor can be used on migration target
- vcpus/iothreads can work while live migration part is working
- we can remove several layers of buffering (due to the mainloop design, we are forced to have several layers of buffering).
- split foo_live_migration_calls() onto its parts. Other devices that don't have live migration also need the setup part (ivshm, device assignment).
- foo_setup() (was stage 1)
- foo_save_live() (was stage 2)
- foo_save_rest() (was stage 3, better name needed)
- foo_cancel() (was stage -1)
- Once previous split is done, we can create the setup of live handlers for the ones that really exit, not for the rest of them.
- fix migration while using a cdrom (cdrom is not opened correctly on target)
- fix migration during reboot (haven't triaged what data is missing)
- port rest of devices to VMState (several of them are already done, but they are on my local tree and not upstream).
TODO Long Term
- Add size + checksum to sections. This is one incompatible change and needs further thought.
- Make embedded sections real sections, with headers. This will allow us to version internal state.
- Unit testing. In colaboration with qdev, allow devices to be tested alone with old/new migration versions/subsections.
- define target machine from the monitor. This will allow us to migrate the configuration of the machine from source to destination, instead of having to had an identical command line in both places.
Code
The code still not merged is currently kept in several branches of this git repository: