Cluster resources are associated with a group, a collection of cluster resources that define the unit of failover. Any cluster operation performed on a group is performed on all resources contained within the group. That is, when one resource in the group fails, and it is necessary to move the resource to an alternate node, all of the resources in the group are moved to the alternate node. A group is always owned by one node at any point in time. Likewise, a resource is always owned by a single group. These relationships ensure that all of a group's members reside on the same node.
To fully exploit the processing power of a cluster, administrators should establish at least as many groups as there are nodes in the cluster. The group concept allows resources to be combined into larger logical units. Although groups are typically formed from related or dependent resources, groups can also be established with resources that are unrelated and nondependent to balance the load or for administrative convenience. A dependent resource is one that relies on another resource to operate. Dependent resources are taken offline before the resources upon which they depend are taken offline and brought online after these resources are brought online.
Typically a group is made up of an application and all of its related peripherals, such as an application and its associated peripherals and data. When a group includes a Network Name resource and an IP Address resource, the group can be referred to as a virtual server. The term virtual server relates to the way that network clients view their access to the services associated with the resources in the group. These clients appear to be connecting to a physical server when in reality they are connecting to a group of related resources running on any of the nodes in the cluster, a virtual server.
Every group maintains several common properties in the cluster database that describe the group and dictate how and when the failover and failback processes should occur. In addition, every group maintains a list of the nodes that can act and should act as its host. The list of preferred nodes for a group is computed from the lists maintained by the resources that are members of the group. This list is made up of two pieces of information:
To interact with a group, an application specifies one of the group control codes as a parameter to the Cluster API function ClusterGroupControl. The control codes describe group operations such as getting and setting common properties or retrieving characteristics. For more information about operations that are available through ClusterGroupControl, see Control Codes for Groups.