[Kimchi-devel] [RFC] Live migration backend + API
Daniel Henrique Barboza
dhbarboza82 at gmail.com
Thu Oct 15 19:18:52 UTC 2015
Hi,
Live migration will be one of the new features for Kimchi 2.0 and I've
been investigating it for a week or so. This is how I'm planning to
implement it:
- API:
The API will be similar to the API of the 'cloneGuest', but with extra
parameters:
url : 'plugins/kimchi/vms/' +'vm_name' + "/migrate"
type: 'POST'
parameters:
* destination: the IP address of the destination host
* (optional, not sure if applicable) password: the password to log in
the destination via ssh tunnel
In my opinion we can start with a 'migrate' button in the options of the
VM, which will open up a new window to insert the destination IP
address. This of course thinking about the old UI. I believe we can do
whatever it is done with the 'Clone' function in the case of the new UI,
with this extra window.
As the migration might take a while, we'll need a progress bar or
something to demonstrate that the progress is still ongoing. Again, the
same thing as clone does :)
- backend and core functionality:
This is where it gets tricky. Libvirt has *a lot* of ways to do a live
migration between hosts. My approach, at least for this first attempt,
will be focusing in a single way, implement it, stabilize it and then
extend it to the other migration types, if necessary.
Same thing goes for the preset up. The only way I managed to do a live
migration was with a NFS storage pool in both hosts, same name and same
NFS server. This shared storage is necessary because the live migration
will *not* copy the disks of the VM, just the RAM memory. I had to share
ssh keys between the hosts to allow for password less ssh sessions.
At first, I want to relieve this first implementation from this pre
config, which will have to be done entirely by the user. If everything
goes well, I can add a few automation in this process inside the backend
before the 2.0 launch.
Kimchi internals will be implemented by using async task facilities.
Any questions? Comments?
Daniel
More information about the Kimchi-devel
mailing list