On Tue, 2019-11-26 at 08:40 +0100, Ulrich Windl wrote: > Hi! > > I'm thinking about some mechanism that involves remote probing of > some resource. As a result of such probing an attribute value would > be set (like 0|1, maybe even multiple values). > Is it possible to start a resource after the attribute is set to 1 > (and stop it when the attribute changes to 0)? > Is it possible to wait for start until the attribute is 1?
Yes, rules support checking node attribute values for location constraints. Whatever higher-level tool you use likely has simplified syntax, but the XML is (under "Location Rules Based on Other Node Properties"): https://clusterlabs.org/pacemaker/doc/en-US/Pacemaker/2.0/html-single/Pacemaker_Explained/index.html#_using_rules_to_determine_resource_location Basically you use attrd_updater or crm_attribute to set the node attribute, and configure a location constraint containing a rule, which has a score and contains a rule expression specifying the desired condition. In this case you'd probably want a -INFINITY score where the attribute is not 1. > Is it possible to suspend monitoring (or to ignore the results of it) > if the attribute is 0? (That would be to avoid "false" monitoring > errors) Maaaaybe, but that sounds iffy. With the above rule, the cluster would stop the resource, so it wouldn't matter. But if you didn't want to stop the resource, just suspend monitoring, rules might work inside an operation definition. It works for the resource options themselves: https://clusterlabs.org/pacemaker/doc/en-US/Pacemaker/2.0/html-single/Pacemaker_Explained/index.html#_using_rules_to_control_resource_options and I suspect the same approach would work inside an op. Usually operation options (like on-fail and timeout) are specified directly in the op tag, but it is allowed to specify them in an meta_attributes block, where you could try a rule. In this case you would use the rule to set enabled=true/false for the op. I suspect timing concerns may come into play with either approach. There will be some time between when the condition occurs and your remote monitor detects it and sets the node attribute. In that time a monitor could run on the resource. > When on multiple nodes is it possible to colocate a resource where > the attribute is 1? The location rule mentioned above would apply to all nodes that meet the condition. > Obviously such things have to be done using rules, but I haven't > found any examples going in such direction. > > Regards, > Ulrich -- Ken Gaillot <kgail...@redhat.com> _______________________________________________ Manage your subscription: https://lists.clusterlabs.org/mailman/listinfo/users ClusterLabs home: https://www.clusterlabs.org/