Contained WithinFind More DocumentationFeatured Support Resources | Download this book in PDF (1414 KB)
Chapter 10 Generic Data ServicesThis chapter provides information on the generic data service (GDS) and shows you how to create a service that uses the GDS using either the SunPlex Agent Builder or the standard Sun Cluster administration commands.
Overview of GDSThe GDS is a mechanism for making simple network-aware applications highly available or scalable by plugging them into the Sun Cluster Resource Group Management framework. This mechanism does not require the coding of an agent which is the typical approach for making an application highly available or scalable. The GDS is a single, precompiled data service. You cannot modify the precompiled data service and its components, the callback method (rt_callbacks(1HA)) implementations and the resource type registration file (rt_reg(4)). Precompiled Resource TypeThe generic data service resource type SUNW.gds is included in the SUNWscgds package. The scinstall(1M) utility installs this package during cluster installation. The SUNWscgds package includes the following files:
Why Use GDSThe GDS has the following advantages over using either the SunPlex Agent Builder generated source code model (see scdscreate(1HA)) or the standard Sun Cluster administration commands:
Ways to Create a Service That Uses GDSThere are two ways to create a service that uses the GDS:
GDS and the SunPlex Agent BuilderUse the SunPlex Agent Builder and select GDS as the type of generated source code. The user input is used to generate a set of driving scripts that configure resources for the given application. GDS and the Standard Sun Cluster Administration CommandsThis method uses the precompiled data service code in SUNWscgds but requires that the system administrator use the standard Sun Cluster administration commands (scrgadm(1M) and scswitch(1M)) to create and configure the resource. Selecting the Method to Use to Create a GDS-Based ServiceAs shown in the procedures How to Use Sun Cluster Administration Commands to Create a Highly Available Service Using GDS and Standard Sun Cluster Administration Commands to Create a Scalable Service Using GDS, a significant amount of typing is required to issue the appropriate scrgadm and scswitch commands. Using the GDS with SunPlex Agent Builder simplifies the process because it generates the driving scripts that issue the scrgadm and scswitch commands for you. When Is GDS Not AppropriateWhile using the GDS has many advantages, there are instances when it is not appropriate to use the GDS. The GDS is not appropriate:
Required Properties for GDSThe following properties must be provided:
Start_command Extension PropertyThe start command, which you specify in the Start_command extension property, launches the application. It must be a UNIX command complete with its arguments that can be passed directly to a shell to start the application. Port_list PropertyThe Port_list property identifies the list of ports that the application listens on. The Port_list property must be specified on the start script created by the SunPlex Agent Builder or on the scrgadm command if you are using the standard Sun Cluster administration commands. Optional Properties for GDSOptional GDS properties include:
Network_resources_used PropertyThe default value for this property is null. This property must be specified if the application needs to bind to one or more specific addresses. If this property is omitted or is specified as Null, the application is assumed to listen on all addresses. Before creating the GDS resource, a LogicalHostname or SharedAddress resource must already have been configured. See the Sun Cluster 3.1 Data Service Planning and Administration Guide for information about how to configure a LogicalHostname or SharedAddress resource. To specify a value, specify one or more resource names; each resource name can contain one or more LogicalHostname or one or more SharedAddress. See r_properties(5) for details. Stop_command PropertyThe stop command must stop the application and only return after the application has been completely stopped. It must be a complete UNIX command that can be passed directly to a shell to stop the application. If the Stop_command is provided, the GDS stop method launches the stop command with 80% of the stop timeout. Regardless of the outcome of launching the stop command, the GDS stop method sends SIGKILL with 15% of the stop timeout. The remaining 5% of the time is reserved for housekeeping overhead. If the stop command is omitted, the GDS tries to stop the application using the signal specified in Stop_signal. Probe_command PropertyThe probe command periodically checks the health of the given application. It must be a UNIX command complete with its arguments that can be passed directly to a shell to probe the application. The probe command returns with an exit status of 0 if the application is OK. The exit status of the probe command is used to determine the severity of the failure of the application. This exit status, called probe status, must be an integer between 0 (for success) and 100 (for complete failure). The probe status can also be a special value of 201 which results in immediate failover of the application unless Failover_enabled is set to false. The probe status is used within the GDS probing algorithm (see scds_fm_action(3HA) to make the decision about restarting the application locally versus failing it over to another node; if the exit status is 201, the application is immediately failed over. If the probe command is omitted, the GDS provides its own simple probe that connects to the application on the set of IP addresses derived from the Network_resources_used property or the output of scds_get_netaddr_list(3HA). If the connect succeeds, it disconnects immediately. If both connect and disconnect succeed, the application is deemed to be running healthily. Note – The probe provided with the GDS is only intended to be a simple substitute for the fully functioning application-specific probe. Start_timeout PropertyThis property specifies the start timeout for the start command (see Start_command Extension Property for additional information). The default for Start_timeout is 300 seconds. Stop_timeout PropertyThis property specifies the stop timeout for the stop command (see Stop_command Property for the additional information. The default for Stop_timeout is 300 seconds. Probe_timeout PropertyThis property specifies the timeout value for the probe command (see Probe_command Property for additional information. The default for Probe_timeout is 30 seconds. Child_mon_level PropertyThis property provides control over which processes get monitored through PMF. It denotes the level up to which the forked children processes are monitored. This is similar to the -C argument to the pmfadm(1M) command. Omitting this property, or setting it to the default value of -1, has the same effect as omitting the -C option on the pmfadm command; that is, all children (and their descendents) will be monitored. Note – This option can only be specified using the standard Sun Cluster administration commands. This option cannot be specified if you are using the SunPlex Agent Builder. Failover_enabled PropertyThis boolean extension property controls the failover behavior of the resource. If this extension property is set to true, the application fails over when the number of restarts exceeds the retry_count within the retry_interval number of seconds. If this extension property is set to false, the application does not restart or fail over to another node when the number of restarts exceed the retry_count within the retry_interval number of seconds. This extension property can be used to prevent the application resource from initiating a failover of the resource group. The default is true. Stop_signal PropertyThe GDS uses the value of this integer extension property to determine the signal used for stopping the application through PMF. See signal(3HEAD) for a list of the integer values that can be specified. The default is 15 (SIGTERM). Using the SunPlex Agent Builder to Create a Service Using GDSYou can use the SunPlex Agent Builder to create the service that uses the GDS. The SunPlex Agent Builder is described in more detail in Chapter 9, SunPlex Agent Builder. Create a Service Using GDS in the SunPlex Agent BuilderCreating a Service Using GDS in the Agent Builder
Configuring the Driving ScriptsAfter creating the driving scripts, you need to use the SunPlex Agent Builder to configure the new service.
Output From SunPlex Agent BuilderThe SunPlex Agent Builder generates three driving scripts and a configuration file based on input you provide during package creation. The configuration file specify the names of the resource group and resource type. The driving scripts are:
These driving scripts have the same interface and behavior as the utility scripts generated by the SunPlex Agent Builder for non-GDS-based agents. The scripts are packaged in a Solaris-installable package that can be reused across multiple clusters. You can customize the configuration file to provide your own names for resource groups or other parameters that are normally given as inputs to the scrgadm command. If you do not customize the scripts, the SunPlex Agent Builder provides reasonable defaults for the scrgadm parameters. Using the Standard Sun Cluster Administration Commands to Create a Service Using GDSIn this section we describe how these parameters can actually be input to the GDS. The GDS is used and administered using the existing Sun Cluster administration commands such as scrgadm and scswitch. Then there is no need to enter the lower level administration commands shown in this section if the driving scripts provide adequate functionality. However, you can do so if you need to have finer control over the GDS-based resource. These are the commands actually executed by the driving scripts. How to Use Sun Cluster Administration Commands to Create a Highly Available Service Using GDS
Standard Sun Cluster Administration Commands to Create a Scalable Service Using GDS
Command-Line Interface to the SunPlex Agent BuilderThe SunPlex Agent Builder has a command-line interface that has equivalent functionality to the GUI interface. This interface consists of the commands scdscreate(1HA) and scdsconfig(1HA). The following section performs the same function as the GUI-based procedure Creating a Service That Uses GDS With the Command-Line Version of Agent Builder but uses the non-GUI interface. Creating a Service That Uses GDS With the Command-Line Version of Agent Builder
|
||||||||||||||||||||||||||||