Thomas Meagher
2015-03-16 16:16:35 UTC
Hello, I am having some issues ordering a resource that depends on a clone. Specifically, I have a two node cluster with two virtual IPs. Each vip has a slight preference for its own "home" node via a location constraint, the idea being to both provide availability and the ability to round robin between the two vips for load. Problem I am seeing is when a node comes back after being down (let's say node2 goes down). Both vips do fail over to node1 (still up), but when node2 comes back everything is moved back immediately. This results in vip2 being unavailable until the webserver actually comes back up on node2.
* node2 goes down.
* vip2 moves to node1
* node2 comes back up
* everything starts/moves IMMEDIATELY to node2 (same transition)
* cloned tomcat webserver starting up
* vip2 is stopped on node1
* webserver becomes started on node2
* vip2 finally becomes available again on node2
The vip resources have a colocation and order constraint on the cloned webserver, so I am confused why they are immediately moved when the node comes back online, instead of waiting to move them until the webserver resource finishes starting on node2. Does ordering on a cloned resource only take into account that the resource is started "somewhere"? Is there a different way to enforce what I am trying to achieve here? I want to make sure the cloned resource is started on the target node before dependant resources are started/moved there.
* node2 goes down.
* vip2 moves to node1
* node2 comes back up
* everything starts/moves IMMEDIATELY to node2 (same transition)
* cloned tomcat webserver starting up
* vip2 is stopped on node1
* webserver becomes started on node2
* vip2 finally becomes available again on node2
The vip resources have a colocation and order constraint on the cloned webserver, so I am confused why they are immediately moved when the node comes back online, instead of waiting to move them until the webserver resource finishes starting on node2. Does ordering on a cloned resource only take into account that the resource is started "somewhere"? Is there a different way to enforce what I am trying to achieve here? I want to make sure the cloned resource is started on the target node before dependant resources are started/moved there.