Clusters and Discovery

carl_hensley
Kilo Contributor

When several midservers are grouped in a cluster, when you want to use these in a discovery schedule you put the name of one of the midservers in the cluster into the "MID Server:" name in the discovery schedule.

Say I create a cluster (type load balance), called "Load" with midserver1 & midserver2.
Then when I include midserver1 in my discovery schedule "schedule-a", it will load balance the discovery against midserver1 & midserver2.

Say I then alter the above cluster to type failover, and rename it to be called "Fail" with midserver1 & midserver2.
Then when I include midserver1 in my discovery schedule "schedule-b" it will use midserver2 as a failover incase midserver1 fails.

What I do not understand is what if I created two clusters, each using midserver1 & midserver2, but each a different type (i.e load balance & failover). If I have want to use schedule-a (as above) to load balance, and schedule-b for failover, how can the discover schedule know which cluster to pick up given you only define to the discovery schedule the name of one of the midservers in the cluster. I would have thought that we would be able to define a cliuster we require in the discovery schedule??

This also can be confusing if there are different clusters defined with different midservers where one midserver exists in more than one cluster, if that midserver is listed in the schedule which cluseter will it use??

2 REPLIES 2

aleck_lin
ServiceNow Employee
ServiceNow Employee

Carl,

Thanks for your feedback. I appreciate the points you've made.

Currently if two MID servers are in a load-balance cluster, they automatically act as fail-over for each other as well, so in your scenario where MID server 1 and 2 are in both a load-balance and a fail-over cluster, it would be redundant. As for your question of wanting to run a schedule-a to load-balance and schedule-b to fail-over, can you explain a bit more what the rationale is behind that? A use case would be helpful. We figured that the cluster concept should be associated with the MID servers themselves. In other words, if MID server B is a fail-over backup for MID server A, why wouldn't you always want B to fail-over for A? What would the use case be for dictating the type of clustering per schedule?

Thanks!


glenn_pinto
ServiceNow Employee
ServiceNow Employee

If a MID is part of two clusters, both clusters will be used.


Below are the notes from the Script Include for the "MIDServerCluster"


/*


* Here's how this class attempts to accomplish...


*


* A. If the MID server agent is up


*         a. Gather all MID servers (including the original agent) in the load balance clusters that the original agent is part of.


*                            


* B. If the MID server agent is down


*         a. If the cluster is load balance, gather the other agents.


*         b. If the cluster is failover, then gather the next failover agent.


*


* C. Randomly returns the MID server in the final list of MID servers.


*/