On Fri, Jun 10, 2011 at 05:06:00PM +0200, Michael Hanselmann wrote: > Am 9. Juni 2011 14:44 schrieb Iustin Pop <[email protected]>: > > On Mon, Jun 06, 2011 at 05:11:15PM +0200, Michael Hanselmann wrote: > >> --- a/doc/design-multi-reloc.rst > >> +++ b/doc/design-multi-reloc.rst > >> +To implement this, we propose the addition of new IAllocator calls to > >> +compute inter-group instance moves and group-aware node evacuation, > >> +taking into account mobility domains as appropriate. The interface > >> +proposed below should be enough to cover the use cases mentioned above. > > > > Maybe we should mention that the old multi-evac is deprecated? > > Indeed: > > @@ -28,6 +28,9 @@ compute inter-group instance moves and group-aware > node evacuation, > taking into account mobility domains as appropriate. The interface > proposed below should be enough to cover the use cases mentioned above. > > +With the implementation of this design proposal, the previous > +``multi-evacuate`` mode will be deprecated. > + > .. _multi-reloc-detailed-design: > > > >> +Changing instance's groups > >> +-------------------------- > >> > >> +Takes a list of instances and a list of node group UUIDs; the instances > >> +will be moved away from their current group, to any of the groups in > >> +this list. If the list is empty, the request is simply "change group" > >> +and the instances are placed in any group but their original one. > > > > Plus mention that for the moment, all instances must come from the same > > group? > > Interdiff: > > Takes a list of instances and a list of node group UUIDs; the instances > -will be moved away from their current group, to any of the groups in > -this list. If the list is empty, the request is simply "change group" > -and the instances are placed in any group but their original one. > +will be moved away from their current group, to any of the groups in the > +target list. All instances need to have their primary node in the same > +group, which may not be a target group. If the target group list is > +empty, the request is simply "change group" and the instances are placed > +in any group but their original one. > > >> +Node evacuation > >> +--------------- > >> > >> +Evacuates instances off their primary nodes. The evacuation mode > >> +can be given as ``primary-only``, ``secondary-only`` or > >> +``all``. The call is given a list of instances whose primary nodes need > >> +to be in the same node group. > >> > >> +The iallocator can decide whether it wants to keep instances in the same > >> +node group or move them to another group. > > > > IMHO this shouldn't be doable. The node evac is simply in-group. Any > > inter-group moves need to be handled via change-group. > > We can add an option (or separate mode) for this, but I wouldn't > forbid it. If one has to evacuate a number of nodes quickly, moving > instances to other groups as part of the evacuation can help. Do you > think there could be an issue with at least allowing this?
Allowing it, no. Actually implementing it in htools will be much more difficult, because the two modes (in-group evac and out-of-group evac) are very different. Plus, the out-of-group evac only makes sense when you pass both, so for primary or secondary only it shouldn't be used, etc. Basically I see these as very different operations, hence I like the clear separation. In an emergency, I would suspect that Ganeti does two steps: first in-group evacuation for what instances are possible to move and then out-of group evacuation for the rest. But these as separate logical steps. Other changes that you sent are LGTM. thanks, iustin
