[ https://issues.apache.org/jira/browse/CLOUDSTACK-10132?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16400235#comment-16400235 ]
ASF subversion and git services commented on CLOUDSTACK-10132: -------------------------------------------------------------- Commit 30175d6879ff323f0e1abac71a9fe3a7232f8b61 in cloudstack's branch refs/heads/4.11 from [~rohithsharma] [ https://gitbox.apache.org/repos/asf?p=cloudstack.git;h=30175d6 ] CLOUDSTACK-10132: Extend support for management servers LB for agents (#2469) The new CA framework introduced basic support for comma-separated list of management servers for agent, which makes an external LB unnecessary. This extends that feature to implement LB sorting algorithms that sorts the management server list before they are sent to the agents. This adds a central intelligence in the management server and adds additional enhancements to Agent class to be algorithm aware and have a background mechanism to check/fallback to preferred management server (assumed as the first in the list). This is support for any indirect agent such as the KVM, CPVM and SSVM agent, and would provide support for management server host migration during upgrade (when instead of in-place, new hosts are used to setup new mgmt server). This FR introduces two new global settings: - `indirect.agent.lb.algorithm`: The algorithm for the indirect agent LB. - `indirect.agent.lb.check.interval`: The preferred host check interval for the agent's background task that checks and switches to agent's preferred host. The indirect.agent.lb.algorithm supports following algorithm options: - static: use the list as provided. - roundrobin: evenly spreads hosts across management servers based on host's id. - shuffle: (pseudo) randomly sorts the list (not recommended for production). Any changes to the global settings - `indirect.agent.lb.algorithm` and `host` does not require restarting of the mangement server(s) and the agents. A message bus based system dynamically reacts to change in these global settings and propagates them to all connected agents. Comma-separated management server list is propagated to agents on following cases: - Addition of a host (including ssvm, cpvm systevms). - Connection or reconnection by the agents to a management server. - After admin changes the 'host' and/or the 'indirect.agent.lb.algorithm' global settings. On the agent side, the 'host' setting is saved in its properties file as: `host=<comma separated addresses>@<algorithm name>`. First the agent connects to the management server and sends its current management server list, which is compared by the management server and in case of failure a new/update list is sent for the agent to persist. >From the agent's perspective, the first address in the propagated list will be considered the preferred host. A new background task can be activated by configuring the `indirect.agent.lb.check.interval` which is a cluster level global setting from CloudStack and admins can also override this by configuring the 'host.lb.check.interval' in the `agent.properties` file. Every time agent gets a ms-host list and the algorithm, the host specific background check interval is also sent and it dynamically reconfigures the background task without need to restart agents. Note: The 'static' and 'roundrobin' algorithms, strictly checks for the order as expected by them, however, the 'shuffle' algorithm just checks for content and not the order of the comma separate ms host addresses. Signed-off-by: Rohit Yadav <rohit.ya...@shapeblue.com> > Extend Multiple Management Servers Support for agents to allow sorting > algorithms > --------------------------------------------------------------------------------- > > Key: CLOUDSTACK-10132 > URL: https://issues.apache.org/jira/browse/CLOUDSTACK-10132 > Project: CloudStack > Issue Type: Improvement > Security Level: Public(Anyone can view this level - this is the > default.) > Affects Versions: 4.11.0.0 > Reporter: Nicolas Vazquez > Assignee: Rohit Yadav > Priority: Major > Fix For: 4.12.0.0, 4.11.1.0 > > > Multiple Management Servers Support for agents -- This message was sent by Atlassian JIRA (v7.6.3#76005)