Table of Contents
https://git.opendaylight.org/gerrit/#/q/topic:compute-scalein-scaleout
Add support for adding a new compute node into the existing topology and for removing or decomissioning existing compute node from topology.
Support for adding a new compute node is already available. But when we scale in a compute node, we have to cleanup its relevant flows from openflow tables and cleanup the vxlan tunnel endpoints from other compute nodes. Also if the scaled in compute node is the designated compute for a particular service like nat or subnetroute etc , then those services have to choose a new compute node.
The following are steps taken by administrator to achieve compute node scale in.
This to avoid VM’s to be scheduled to these Compute Hosts.
This is to signal the end of scale in process the following rpc will be invoked.
Incase vm migration or deletion from some of these compute nodes fails
The following recovery rpc will be invoked
scalein-compute-recover <list of not scaled in compute node ids which were passed as arg in scalein-computes-start>
Following is the typical sequence of operations.
scalein-computes-start A,B,C delete/migrate vms of A ( success ) delete/migrate vms of B ( fail ) delete/migrate vms of C ( success ) scalein-computes-end A,C scalein-computes-recover B
Typically When a single compute node gets scaled in as it gets disconnected from controller all the services who designated this compute as their designated compute would re-elect another compute node.
But when multiple compute nodes are getting scaled in during that window some of these computes should not be elected as designated compute.
To achieve that these scaled in computes are marked as tombstoned and they should be avoided when doing designated switch election or programming new services.
When we receive scalein-computes-end rpc call then corresponding computes config inventory and topology database also can be deleted.
When we receive scalein-computes-recover rpc call then corresponding computes tombstoned flag is set to false. If there are any services that do not have any compute node designated then they should start election of computes and possibly choose from these recovered computes.
None.
The following rpcs will be added.
rpc scalein-computes-start {
description "To trigger start of scale in the given dpns";
input {
leaf-list scalein-node-ids {
type string;
}
}
}
rpc scalein-computes-end {
description "To end the scale in of the given dpns";
input {
leaf-list scalein-node-ids {
type string;
}
}
}
rpc scalein-computes-recover {
description "To recover the dpns which are marked for scale in";
input {
leaf-list recover-node-ids {
type string;
}
}
}
Topology node bridge-external-ids will be updated with additional key called “tombstoned”.
None.
None.
Oxygen
None.
Primary assignee:
Other contributors:
TODO
No new dependencies.
N/A.
N/A.
N/A