Linux-HA Logo

The ClusterResourceManager PolicyEngine

The primary goal of the PolicyEngine is to encapsulate the potential complex computation of the TransitionGraph[1] from the CurrentClusterState[2].

The PolicyEngine does not do any network IO, it only runs this algorithm.

Main success scenario

  1. The ClusterResourceManager[3] starts the PolicyEngine on demand, or when becomes DesignatedCoordinator[4].

  2. The PolicyEngine starts up and signs in with the ClusterResourceManager[3]. This stage verifies the version numbers et cetera.

  3. The PolicyEngine waits for orders from the ClusterResourceManager[3].

  4. An order is received:
    1. Either a ClusterInformationBase[5] dump requesting a computation of a transition graph.

    2. Or a request to shutdown.
  5. The requested operation is performed.
    1. PolicyEngineComputation[6]

  6. The answer is sent back to the ClusterResourceManager[3].

    1. In case of the shutdown request, this message signs us out from the ClusterResourceManager[3].

    2. Otherwise, we sent back the TransitionGraph[1].

  7. If applicable, we go back to waiting for orders, unless this was the last iteration.
  8. We shutdown cleanly with exit code 100.

Extensions

Open issues

AndrewBeekhof[7]: It would be nice if we could give you a ClusterInformationBase[5] dump (possibly minus StateInformation[8]) and the PolicyEngine gave a yes or no answer as to whether it was solvable/valid. We could then decide if an AdministrationUpdate[9] was ok to apply to the ClusterInformationBase[5].


References

[1]http://www.linux-ha.org/TransitionGraph
[2]http://www.linux-ha.org/CurrentClusterState
[3]http://www.linux-ha.org/ClusterResourceManager
[4]http://www.linux-ha.org/DesignatedCoordinator
[5]http://www.linux-ha.org/ClusterInformationBase
[6]http://www.linux-ha.org/PolicyEngineComputation
[7]http://www.linux-ha.org/AndrewBeekhof
[8]http://www.linux-ha.org/StateInformation
[9]http://www.linux-ha.org/AdministrationUpdate


This information provided courtesy of the Linux-HA project at http://linux-ha.org/