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?
>> --- a/doc/iallocator.rst
>> +++ b/doc/iallocator.rst
>> + moved within its node group. The ``multi-evacuate`` protocol
>> + requests that the script computes the optimal relocate solution for
>> + all secondary instances of the given nodes.
>
> … and is marked deprecated.
Interdiff:
@@ -193,9 +193,12 @@ In all cases, it includes:
``multi-relocate`` or ``multi-evacuate``. The ``allocate`` request
is used when a new instance needs to be placed on the cluster. The
``relocate`` request is used when an existing instance needs to be
- moved within its node group. The ``multi-evacuate`` protocol
- requests that the script computes the optimal relocate solution for
- all secondary instances of the given nodes.
+ moved within its node group.
+
+ The ``multi-evacuate`` protocol used to request that the script
+ computes the optimal relocate solution for all secondary instances
+ of the given nodes. It is now deprecated and should no longer be
+ used.
Michael