Using Serviceguard Extension for RAC, 8th Edition, March 2009
NOTE: Use care in defining service run commands. Each run command is executed by the
control script in the following way:
• The cmrunserv command executes each run command and then monitors the process id
of the process created by the run command.
• When the command started by cmrunserv exits, Serviceguard determines that a failure
has occurred and takes appropriate action, which may include transferring the package to
an adoptive node.
• If a run command is a shell script that runs some other command and then exits, Serviceguard
will consider this normal exit as a failure.
To avoid problems in the execution of control scripts, ensure that each run command is the name
of an actual service and that its process remains alive until the actual service stops.
If you need to define a set of run and halt operations in addition to the defaults, create functions
for them in the sections under the heading CUSTOMER DEFINED FUNCTIONS.
Optimizing for Large Numbers of Storage Units
A set of four variables is provided to allow performance improvement when employing a large
number of filesystems or storage groups. For more detail, see the comments in the control script
template. They are:
• CONCURRENT_VGCHANGE_OPERATIONS—defines a number of parallel LVM volume group
activations during package startup as well and deactivations during package shutdown.
• CONCURRENT_FSCK_OPERATIONS—defines a number of parallel fsck operations that will
be carried out at package startup.
• CONCURRENT_MOUNT_AND_UMOUNT_OPERATIONS—defines a number of parallel mount
operations during package startup and unmount operations during package shutdown.
Customizing the Control Script for RAC Instances
Use the package control script to perform the following:
• Activation and deactivation of RAC volume groups.
• Startup and shutdown of the RAC instance.
• Monitoring of the RAC instance.
Set RAC environment variables in the package control script to define the correct execution
environment for RAC.
Enter the names of the LVM volume groups you wish to activate in shared mode in the VG[]
array. Use a different array element for each RAC volume group. (Remember that RAC volume
groups must also be coded in the cluster configuration file using OPS_VOLUME_GROUP
parameters.) Be sure to specify shared activation with the vgchange command by setting the
VGCHANGE parameter as follows:
VGCHANGE="vgchange -a s”
If your disks are mirrored with LVM mirroring on separate physical paths and you want to
override quorum, use the following setting:
VGCHANGE="vgchange -a s -q n”
Enter the names of the CVM disk groups you wish to activate in shared mode in the CVM_DG[]
array. Use a different array element for each RAC disk group. (Remember that CVM disk groups
must also be coded in the package ASCII configuration file using STORAGE_GROUP parameters.)
Be sure to an appropriate type of shared activation with the CVM activation command. For
example:
CVM_ACTIVATION_CMD="vxdg -g \$DiskGroup set activation=sharedwrite"
110 Serviceguard Configuration for Oracle 9i RAC