Cluster Properties

Cluster properties are attributes that describe a cluster object such as a resource, resource type, group, or node. Most cluster properties are stored in the cluster database to provide easy access.

There are two types of properties: common and private. When a property is common, it exists for every instance of the type of cluster object for which it is defined. A common resource property exists for every resource, a common resource type property exists for every resource type, a common group property exists for every group, and a common node property exists for every node. For example, the RestartAction property is a common resource property because it applies to all resources regardless of their type. The FailoverThreshold property is a common group property because it is used to describe all groups.

Private properties are attributes that are narrower in scope than common properties. When a property is private, it exists only for particular instances of the type of object for which it is defined. Private properties are most prevalent for resources. There are many kinds of resources and each kind can have its own set of private properties. For example, the set of private properties for Physical Disk resources includes the Signature property and the set of private properties for File Share resources includes the ShareName property. Like common properties, private properties can be stored in the cluster database. Unlike common properties, they can also be dynamic or computed values, generated on demand.

Resources belonging to most of the resource types defined by Cluster Server have at least one private property. The sole exception is the Time Service resource; it has zero private properties. As a developer of a new resource type, you can choose whether or not to associate private properties with your type. If you use the Resource Type AppWizard to begin development, you can define private properties in the Parameters screen.

For more information about specifying private property information in the AppWizard, see Using the Resource Type AppWizard.

For more information about the private properties defined for the Cluster Server resource types, see Private Resource Properties.

Cluster Server defines a few Cluster API functions for working with specific common properties. To work either with multiple properties simultaneously or with properties that lack a corresponding Cluster API function, Cluster Server provides the control code functions. The control code functions are also part of the Cluster API; they are general functions that perform a variety of operations on an object. The property-related operations include:

A control code is passed to each of the control code functions to identify the operation to perform. Control codes are constants that begin with the CLUSCTL prefix and end with a description of the operation. Between the prefix and description is the type of object. For example, the CLUSCTL_RESOURCE_SET_PRIVATE_PROPERTIES control code sets the private properties of a resource and the CLUSCTL_GROUP_GET_RO_COMMON_PROPERTIES control code gets the common read-only properties for a group.

There is a different control code function for each type of cluster object. The following table briefly describes each of the control code functions:

Control code function Description
ClusterGroupControl Performs property and other operations on a group.
ClusterNetworkControl Performs property and other operations on a network.
ClusterNetInterfaceControl Performs property and other operations on a network interface.
ClusterNodeControl Performs property and other operations on a node.
ClusterResourceControl Performs property and other operations on a resource.
ClusterResourceTypeControl Performs property and other operations on a resource type.

For more information about control codes and control code operations, see the following topics:

Cluster Control Codes for a general overview.

Using the Control Code Functions for a description of how the Cluster API control code functions operate.