Hi! I am running a cluster with 3 nodes. These nodes provide dns service. The purpose of the cluster is to have our two dns service ip addresses online at all times. I use IPaddr2 and that part works.
Now I try to extend our setup to check the dns service itself. So far, if a dns server on any node stops or hangs the cluster won't notice. Thus, I wrote a custom ocf script to check whether the dns service on a node is operational (i.e. if the dns server is listening on the ip address and whether it responds to a dns request). All cluster nodes are slave dns servers, therefore the dns server process is running at all times to get zone transfers from the dns master. Obviously, the dns service resource must be colocated with the IP address resource. However, as the dns server is running at all times, the dns service resource must be started or stopped after the ip address. This leads me to something like this: primitive ns1-ip ocf:heartbeat:IPaddr2 ... primitive ns1-dns ocf:custom:dns op monitor interval="30s" colocation dns-ip1 inf: ns1-dns ns1-ip order ns1-ip-dns inf: ns1-ip ns1-dns symmetrical=false Problem 1: it seems as if the order constraint does not wait for an operation on the first resource to finish before it starts the operation on the second. When I migrate an IP address to another node the stop operation on ns1-dns will fail because the ip address is still active on the network interface. I have worked around this by checking for the IP address on the interface in the stop part of my dns script and sleeping 5 seconds if it is still there before checking again and continuing. Shouldn't the stop on ns1-ip first finish before the node initiates the stop on ns1-dns? Problem 2: if the dns service fails, e.g. hangs, the monitor operation fails. Thus, the cluster wants to migrate the ip address and service to another node. However, it first initiates a stop on ns1-dns and then on ns1-ip. What I need is ns1-ip to stop before ns1-dns. But this seems impossible to configure. The order constraint only says what operation is executed on ns1-dns depending on the status of ns1-ip. It says what happens after something. It cannot say what happens before something. Is that correct? Or am I missing a configuration option? Thanks, Gerald _______________________________________________ Pacemaker mailing list: Pacemaker@oss.clusterlabs.org http://oss.clusterlabs.org/mailman/listinfo/pacemaker Project Home: http://www.clusterlabs.org Getting started: http://www.clusterlabs.org/doc/Cluster_from_Scratch.pdf Bugs: http://developerbugs.linux-foundation.org/enter_bug.cgi?product=Pacemaker