Disabling a depended-on resource in Sun Cluster 3.2

A Client Solutions engineer recently sent a query regarding the use of resource dependencies in Sun Cluster 3.2.  His resource group contains a LogicalHostname resource, and an application resource of a custom type based upon GDS [Generic Data Service].  The GDS resource has declared a resource dependency upon the LogicalHostname resource.

He observed that in previous versions of Sun Cluster, you would not be allowed to disable the Logical Hostname without first disabling the application resource.  Now, Sun Cluster 3.2 allows this, with only the following warning message:

        (C782285) WARNING: Resource fep1 being disabled while its dependent resources {fep1-inc-res} remain online.

His questions were:

    1. I assume that this is normal behaviour in SC 3.2?

    2. If my assumption is correct: where is any description of this change in Sun Cluster 3.2? I can't find this in documentation, but I have to explain it to my customer.

    3. Where I can find an explanation of warning C782285?

    4. Can I reinstate old-style behaviour for a particular RG or resource?

This was my response:

You are correct.  In previous versions of Sun Cluster, you were not allowed to disable a resource if an enabled resource depends on it.  In SC 3.2, this restriction was relaxed.  Many customers had told us that the previously enforced restriction was too strong.  They wanted to be able to add, remove, or change LogicalHostname resources without having to disable the application resources that depended on them.  This change was part of a set of enhancements added to Sun Cluster 3.2 which provided support for new Oracle RAC manageability features, collectively known as "Sun Cluster Advanced Edition for Oracle RAC".  For details, see: http://www.sun.com/software/cluster/3reasons.xml

So in SC 3.2, we issue only a warning (as you observed) but still permit the depended-on resource to be disabled.  The warning C782285 is meant to be self-explanatory.  I don't think that this change was explicitly called out in the documentation.  The Resource_dependencies properties are described in the r_properties(5) man page, the latest version of which is here: http://docs.sun.com/app/docs/doc/819-2972/6n57ngiue?a=view

You can use a new type of resource dependency, the offline-restart dependency, to force the GDS resource to go offline if the LogicalHostname is disabled.  For example, suppose your GDS resource is named gds_rs and your logical hostname resource is lh_rs.  You would set the Resource_dependencies_offline_restart property of the dependent (GDS) resource, instead of the Resource_dependencies property.

        clrs set -p Resource_dependencies=""  gds-rs
        clrs set -p Resource_dependencies_offline_restart=lh-rs gds-rs

The first clrs command removes the existing resource dependency; the second clrs command adds the offline-restart dependency.

Now suppose that the resource group is ONLINE and the LogicalHostname resource (fep1) is disabled.  This will cause the GDS resource to go offline -- the RGM executes the Stop method on the GDS resource.  If and when the LH resource is enabled, the GDS resource would go back online, i.e., its Start method would execute.

There is no way I can think of to reinstate the old-style behavior of preventing the dependee resource from being disabled.  You might consider setting the RG_system property on the LogicalHostname's resource group to TRUE.  This provides a sort of "advisory lock" which would prevent various administrative actions on the resource group, including disabling or editing of any of its resources.  The lock can be removed simply by setting RG_system=FALSE, so it is not an absolute protection, but only avoids accidental changes.

Martin Rattner
Sun Cluster Engineering


That example looks something confusing for me:
If you stick to "For example, suppose your GDS resource is named gds_rs and your logical hostname resource is lh_rs", you should not use "fep1-inc-res" and "fep1".
Clearing the Resource_dependencies would be much easier to read if you use quotes.

clrs set -p Resource_dependencies="" gds_rs
clrs set -p Resource_dependencies_offline_restart=lh_rs gds_rs

Posted by Julian on September 20, 2007 at 06:19 AM PDT #


Thanks. I'm not sure how those resource names "fep1" and "fep1-inc-res" got into the post -- I must have been asleep at the wheel when I posted it.

Regarding the use of quotes, note that the following two operands are equivalent:


since the shell removes the quotes anyhow. However, I grant you that the example would be a bit clearer with the quotes.

I'll get the article updated asap.

Posted by Martin on September 20, 2007 at 09:24 AM PDT #

Post a Comment:
  • HTML Syntax: NOT allowed

Oracle Solaris Cluster Engineering Blog


« November 2015