Hi,
* Jean-François Maeyhieux <
zen2...@gmail.com> [2012-11-17 04:09:17 -0800]:
> So this patch seems to be pratically stable.
>
Nice to hear that. It is a first implementation of live instance modifications,
so there is still much to be added/changed, especially on the feedback and error
path. The whole functionallity should not change a lot although there are
plenty of design issues to discuss.
Currently the feature is hypervisor specific (kvm) but the actual provisions
are done by cmdlib. (*)
Another thing that should be noted is that the runtime file should change
anytime a hotplug succeeds. (**)
Current implementation has tried to keep 100% compatibility with existing
funtionality. So instances are devided into hotplug-able or not. Although this
is stable it may be not ideal. (***)
> Dimitris Aragiorgis: do you know if this branch will be merged on next
> ganeti version ?
>
>
I don't know if this will be the case but I am not the proper person to ask.
Our priority for the next Ganeti version is to have the IP pool management
functionality merged and not the hotplug. However, this maybe a good time
to submit a design doc regarding hotplug, for a first round of conversation.
In the following weeks I am going to refactor the code (not the API) so that
the whole funtionallity will be delivered to hypervisor in order the slots
provisioning to be shifted away from masterd. (****)
Thats all for now. Thanks again for the interest and sorry for the long mail..
Regards,
dimara
(*) The whole idea is that qemu can handle devices based on their names and
their pci slot. To this end all is needed is to ensure unique device names
(via a strictly ascending index) and keep tracking the free and occupied pci
slots of the instance. All this info is currently saved in a per instance slot
in config data (hotplug info).
(**) This is needed so that migration does not fail due to inconsistent VM
state (the --incoming instance should have identical pci configuration as the
original one). To this end block devices should be removed from the cmdline and
treated separately just like nics. This patch does this already.
(***) Non hotplug-able keep the original way of passing devices to kvm cmdline and
the way info is kept in runtime file. Hotplug-able ones obtain hotplug info
and devices are named properly and put to specific pci slots.
(****) This to take place, code only needs to parse correctly pci info output
(and other qemu monitor commands) and find the next free slot to put the
device. The success/failure of this action should be returned to the masterd
(and eventually to the user).