The Sun Cluster system enables applications to be run and administered as highly available and scalable resources. The Resource Group Manager (RGM) provides the mechanism for high availability and scalability. The following elements form the programming interface to this facility:
A set of callback methods that you write that enable the RGM to control an application in the cluster.
The Resource Management API (RMAPI), a set of low-level API commands and functions that you can use to write the callback methods. These APIs are implemented in the libscha.so library.
Process Monitor Facility (PMF) for monitoring and restarting processes in the cluster.
The Data Service Development Library (DSDL), a set of library functions that encapsulates the low-level API and process-management functionality at a higher level. The DSDL adds some additional functionality to ease the writing of callback methods. These functions are implemented in the libdsdev.so library.
The following figure shows the interrelationship of these elements.
SunPlex Agent Builder, which is described in Chapter 9, SunPlex Agent Builder, is a tool in the Sun Cluster package that automates the process of creating a data service. Agent Builder generates data service code in either C (by using DSDL functions to write the callback methods) or in the Korn (ksh) shell command language (by using low-level API commands to write the callback methods).
The RGM runs as a daemon on each cluster node and automatically starts and stops resources on selected nodes according to preconfigured policies. The RGM makes a resource highly available in the event of a node failure or reboot by stopping the resource on the affected node and starting it on another node. The RGM also automatically starts and stops resource-specific monitors. These monitors detect resource failures and relocate failing resources onto other nodes or monitor other aspects of resource performance.
The RGM supports both failover resources, which can be online on only one node at a time, and scalable resources, which can be online on multiple nodes simultaneously.