Red Hat Bugzilla – Bug 1298581
Need a way to provide a reason for why a resource won't start (or was stopped)
Last modified: 2017-10-10 13:47:41 EDT
Description of problem:
People are running 'pcs resource enable' and the resource doesn't start because of constraints, but they don't know which constraints are preventing it from starting (or if constraints are the reason it isn't starting).
We'd like a command we can run that specifies a resource and then tells us it is either running, or gives us a reason why it isn't running. pcs can then use that output and pass it back to the user.
Version-Release number of selected component (if applicable):
Upstream commit https://github.com/ClusterLabs/pacemaker/commit/11ac60a modified "crm_resource --cleanup" to print reasons why the resource would stay stopped. For example:
* The configuration specifies that 'myrsc' should remain stopped
* Resource myrsc is configured to not be managed by the cluster
I'm thinking we can add a new option that would do just the check and print. The current implementation does not know what particular constraints or other configuration prevent startup, but it's a good starting point.
This will not be ready in the 7.3 timeframe.
This will not be ready in the 7.4 tiemframe.
Upstream pacemaker now supports a "crm_resource --why" command as of commit 6f0a149c, thanks to a submission by contributor Aravind Kumar.
The descriptions that --cleanup and --why give are currently limited to a few conditions, but this provides a basis for future enhancements.
QA: Test procedure:
1. Configure a pacemaker cluster with various resources.
2. Cause some of the resources to be stopped by various means (pcs resource disable, -INFINITY constraints on all nodes, colocation or ordering constraint with another resource stopped by one of those means, etc.).
3. Run crm_resource with the new --why option. Before the fix, the option doesn't exist; after the fix, it shows why each resource is stopped. Usage:
-> shows status of all resources (running or not running, and why)
crm_resource --why -r <resource-id>
-> shows status of particular resource
crm_resource --why -r <resource-id> -N <node-name>
-> shows status of particular resource on particular node