Sun Cluster Data Service for Apache Guide for Solaris OS

Installing and Configuring Sun Cluster HA for Apache

This chapter describes the steps to install and configure Sun Cluster HA for Apache on your Sun Cluster servers.

This chapter contains the following sections.

You can configure Sun Cluster HA for Apache as a failover or a scalable data service. See Chapter 1, Planning for Sun Cluster Data Services, in Sun Cluster Data Services Planning and Administration Guide for Solaris OS and the Sun Cluster Concepts Guide for Solaris OS document for an overview of failover and scalable data services.

Planning the Installation and Configuration

Before you install Sun Cluster HA for Apache, update the following information in the Apache configuration file httpd.conf.


Note –

The location of the httpd.conf file varies according to installation. System administrators typically install the httpd.conf file on the cluster file system. The default installation places the httpd.conf file in the /usr/local/apache/conf directory. When installing Apache packages bundled with Solaris, the file is located in the /etc/apache directory.



Note –

If you run Sun Cluster HA for Apache and another HTTP server, configure the HTTP servers to listen on different ports. Otherwise, a port conflict can occur between the two servers.


To register and configure Sun Cluster HA for Apache, you must consider or provide information on the following points.

Overview of the Installation and Configuration Process for Sun Cluster HA for Apache

The table below lists the sections that describe the installation and configuration tasks.

Table 1 Task Map: Installing and Configuring Sun Cluster HA for Apache

Task 

Instructions 

Install the Apache software 

Installing and Configuring Apache

Install the Sun Cluster HA for Apache packages 

How to Install the Sun Cluster HA for Apache Packages

Configure and start Sun Cluster HA for Apache  

How to Register and Configure Sun Cluster HA for Apache by Using Sun Cluster Command Line Interface (CLI)

Tune the Sun Cluster HA for Apache fault monitor 

Tuning the Sun Cluster HA for Apache Fault Monitor

Installing and Configuring Apache

The Apache webserver can be installed and set up as either a non secure or a secure webserver. This section provides procedures for both types of installations. To install a non secure version of the webserver, see one of the following procedures.

To install a secure version of the webserver, see one of the following procedures.

Sun Cluster HA for Apache works with the Apache software configured as either a web server or a proxy server.

See Apache documentation at http://www.apache.org for standard installation instructions. Contact your Sun sales representative for a complete list of Apache versions that are supported with the Sun Cluster software.


Note –

The Sun Cluster HA for Apache can be configured to run in a whole root or a sparse root non-global zone, if required.


Installing a Non-Secure Apache Webserver

This section provides procedures for installing a non-secure Apache webserver. For procedures for installing a secure Apache webserver, see Installing a Secure Apache Webserver.

ProcedureHow to Install and Configure the Apache Software From the Solaris CD-ROM

This procedure installs a non secure version of the Apache webserver. For procedures for installing a secure Apache webserver, see Installing a Secure Apache Webserver.

The Apache binaries are included in three packages—SUNWapchr, SUNWapchu, and SUNWapchd—that form the SUNWCapache package metacluster. You must install the SUNWapchr package before you install the SUNWapchu package.

Place the Web server binaries on the local file system on each of your cluster nodes or on a cluster file system.


Note –

If you are using the clsetup utility to configure Sun Cluster HA for Apache, skip Step 2 in this procedure. The clsetup utility automates Step 2.


  1. Run the pkginfo(1) command to determine if the Apache packages SUNWapchr, SUNWapchu, and SUNWapchd have been installed.

    If these packages have not been installed, install them as follows.

    • Starting with Solaris 9, run the following command.


      # pkgadd -d Solaris-product-directory SUNWapchr SUNWapchu SUNWapchd
      
    • Starting with Solaris 10, run the following command.


      # pkgadd -G -d Solaris-product-directory SUNWapchr SUNWapchu SUNWapchd
      

    The output from the command is as follows.


    ...
    Installing Apache Web Server (root) as SUNWapchr
    ...
    [ verifying class initd ]
    /etc/rc0.d/K16apache linked-pathname
    /etc/rc1.d/K16apache linked-pathname
    /etc/rc2.d/K16apache linked-pathname
    /etc/rc3.d/S50apache linked-pathname
    /etc/rcS.d/K16apache linked-pathname
    ...
  2. Disable the START and STOP run control scripts that were just installed as part of the SUNWapchr package.

    This step is necessary because Sun Cluster HA for Apache starts and stops the Apache application after you have configured the data service. Perform the following steps.

    1. List the Apache run control scripts.

    2. Rename the Apache run control scripts.

    3. Verify that all the Apache-related scripts have been renamed.

      The following example changes the first letter in the name of the run control script from uppercase to lowercase. However, you can rename the scripts to be consistent with your normal administration practices.


      # ls -1 /etc/rc?.d/*apache
      /etc/rc0.d/K16apache
      /etc/rc1.d/K16apache
      /etc/rc2.d/K16apache
      /etc/rc3.d/S50apache
      /etc/rcS.d/K16apache
       
      # mv /etc/rc0.d/K16apache  /etc/rc0.d/k16apache
      # mv /etc/rc1.d/K16apache  /etc/rc1.d/k16apache
      # mv /etc/rc2.d/K16apache  /etc/rc2.d/k16apache
      # mv /etc/rc3.d/S50apache  /etc/rc3.d/s50apache
      # mv /etc/rcS.d/K16apache  /etc/rcS.d/k16apache
       
      # ls -1 /etc/rc?.d/*apache
      /etc/rc0.d/k16apache
      /etc/rc1.d/k16apache
      /etc/rc2.d/k16apache
      /etc/rc3.d/s50apache
      /etc/rcS.d/k16apache

ProcedureHow to Install and Configure the Apache Software from the Apache Web Site

This procedure installs a non secure version of the Apache webserver. For procedures for installing a secure Apache webserver, see Installing a Secure Apache Webserver.

Place the web server binaries on the local file system on each of your cluster nodes or on a cluster file system.

  1. On a cluster member, become superuser or assume a role that provides solaris.cluster.admin RBAC authorization.

  2. Install the Apache software using the installation procedures found in the Apache installation documentation.

    Install the Apache software using the Apache installation documentation you received with your Apache software or see the installation instructions at http://www.apache.org.

  3. Update the httpd.conf configuration file.

    • Set the ServerName directive. (In Version 2.0 of Apache, the ServerName directive specifies the hostname and the port.)

    • Set the BindAddress directive (optional). (The BindAddress directive only exists in versions prior to Apache 2.0. For Apache 2.0, see the following bullet for the Listen directive.)

    • Set the Listen directive. The Listen directive must use the address of the logical host or shared address. (The Listen directive only exists in Apache 2.0 and beyond. For Apache versions prior to Apache 2.0, see the previous bullet for the BindAddress directive.)

    • Set the ServerType, ServerRoot, DocumentRoot, ScriptAlias, and LockFile directives.


      Note –

      The ServerType directive does not exist in Apache 2.0.


    • Set the Port directive to the same number as the Port_list standard resource property. See Step 4 for more information.

    • Make changes to run as a proxy server if you choose to run the Apache software as a proxy server. See the Apache documentation for more information. If you will run the Apache software as a proxy server, the CacheRoot setting must point to a location on the cluster file system.


    Note –

    If you are using the clsetup utility to configure Sun Cluster HA for Apache, you do not need to update the BindAddress, ServerRoot, and Port directives. These directives are automatically updated when you run the clsetup utility.


  4. Verify that the port number or numbers in the httpd.conf file match those of the Port_list standard resource property.

    You can edit the httpd.conf configuration file to change its port number or numbers to match the standard Sun Cluster resource property default (port 80). Alternatively, while you configure Sun Cluster HA for Apache, you can set the Port_list standard property to match the setting in the httpd.conf file.

  5. Update the paths in the Apache start/stop script file (Bin_dir/apachectl).

    You must change the paths from the Apache defaults to match your Apache directory structure. For example, change the line in the BIN_dir/apachectl script beginning with HTTPD=/usr/local/apache/bin/httpd to the following.


    HTTPD='/usr/local/apache/bin/httpd -f /global/foo/apache/conf/httpd.conf'
    
  6. Perform the following tasks to verify your configuration changes.

    1. Run apachectl configtest to check the Apache httpd.conf file for correct syntax.


      Note –

      If you are using the clsetup utility to configure Sun Cluster HA for Apache, skip this step. This step is automatically executed when you run the clsetup utility.


    2. Ensure that any logical hostnames or shared addresses that Apache uses are configured and online.

    3. Issue apachectl start to start up your Apache server by hand.

      If Apache does not start up correctly, correct the problem.

    4. After Apache has started, stop it before moving to the next procedure.

Installing a Secure Apache Webserver

This section provides procedures for installing a secure Apache webserver. For procedures for installing a non-secure Apache webserver, see Installing a Non-Secure Apache Webserver.

ProcedureHow to Install and Configure the Apache Software Using mod_ssl

This procedure installs a secure version of the Apache webserver. For procedures for installing a non-secure Apache webserver, see Installing a Non-Secure Apache Webserver.

  1. On a cluster member, become superuser or assume a role that provides solaris.cluster.admin RBAC authorization.

  2. Install the Apache software, including mod_ssl.

    To install mod_ssl, see the Apache installation documentation or the installation instructions at http://www.modssl.org.

  3. Update the httpd.conf configuration file.

    • Set the ServerName directive.

    • Set the BindAddress directive (optional).

    • Set the ServerType, ServerRoot, DocumentRoot, ScriptAlias, and LockFile directives.

    • Set the Port directive to the same number as the Port_list standard resource property. See Step 4 for more information.

    • Make changes to run as a proxy server if you choose to run the Apache software as a proxy server. See the Apache documentation for more information. If you plan to run the Apache software as a proxy server, the CacheRoot setting must point to a location on the cluster file system.

  4. Verify that the port number or numbers in the httpd.conf file match those of the Port_list standard resource property.

    You can edit the httpd.conf configuration file to change its port number or numbers to match the standard Sun Cluster resource property default (port 80). Alternatively, while you configure Sun Cluster HA for Apache, you can set the Port_list standard property to match the setting in the httpd.conf file.

  5. Install all certificates and keys.

  6. In Bin_dir directory, create a file called keypass. Make sure that no one other than the owner has any permissions for this file.


    # cd Bin_dir
    # touch keypass
    # chmod 700 keypass
    
  7. If you are using an encrypted private key or keys, perform the following Step a and Step b.

    1. In the httpd.conf file, look for SSLPassPhraseDialog directive and modify it as follows.


      # SSLPassPhraseDialog exec:/Bin_dir/keypass
      

      See the mod_ssl documentation for details about the SSLPassPhraseDialog directive.

    2. Edit the keypass file so that it prints the pass phrase for the encrypted key corresponding to a host and a port.

      This file will be called with server:port algorithm as arguments. Make sure that the file can print the pass phrase for each of your encrypted keys when called with the correct parameters.

      Later, when you attempt to start the web server manually, it must not prompt you for a pass phrase. For example, for a secure web server listening on ports 8080 and 8888, with private keys for both encrypted using RSA, the keypass file could be the following.


      # !/bin/ksh
      host=`echo $1 | cut -d: -f1`
      port=`echo $1 | cut -d: -f2`
      algorithm=$2
      
      if [ "$host" = "phys-schost-1.example.com" -a "$algorithm" = "RSA" ]; then
         case "$port" in
         8080) echo passphrase-for-8080;;
         8888) echo passphrase-for-8888;;
         esac
      fi

      Note –

      The keypass file must not be readable, writable, or executable by anyone other than the owner.


  8. In the httpd.conf file, set the SSLLogLevel to warn to avoid logging a message every time the web server is probed by Sun Cluster HA for Apache.


    SSLLogLevel warn
  9. Update the paths in the Apache start/stop script file (Bin_dir/apachect1).

    You must change the paths from the Apache defaults to match your Apache directory structure.

  10. Perform the following tasks to verify your configuration changes.

    1. Run apachectl configtest to check the Apache httpd.conf file for correct syntax.

    2. Ensure that any logical hostnames or shared addresses that Apache uses are configured and online.

    3. Issue apachectl start to start up your Apache server by hand.

      Make sure that the web server does not ask you for a passphrase.

      If Apache does not start up correctly, correct the problem.

    4. After Apache has started, stop it before moving to the next procedure.

ProcedureHow to Install and Configure the Apache Software Using apache-ssl

This procedure installs a secure version of the Apache webserver. For procedures for installing a non-secure Apache webserver, see Installing a Non-Secure Apache Webserver.

  1. On a cluster member, become superuser or assume a role that provides solaris.cluster.admin RBAC authorization.

  2. Install the Apache software, including apache-ssl, using the installation procedures found in the Apache installation documentation.

    To install apache-ssl, see the Apache installation documentation or the installation instructions at http://www.apache-ssl.org.

  3. Update the httpd.conf configuration file.

    • Set the ServerName directive.

    • Set the BindAddress directive (optional).

    • Set the ServerType, ServerRoot, DocumentRoot, ScriptAlias, and LockFile directives.

    • Set the Port directive to the same number as the Port_list standard resource property. See Step 4 for more information.

    • Make changes to run as a proxy server if you choose to run the Apache software as a proxy server. See the Apache documentation for more information. If you will run the Apache software as a proxy server, the CacheRoot setting must point to a location on the cluster file system.

  4. Verify that the port number or numbers in the httpd.conf file match those of the Port_list standard resource property.

    You can edit the httpd.conf configuration file to change its port number or numbers to match the standard Sun Cluster resource property default (port 80). Alternatively, while you configure Sun Cluster HA for Apache, you can set the Port_list standard property to match the setting in the httpd.conf file.

  5. Install all certificates and keys.

  6. Make sure that all your private keys are stored unencrypted.

    Later, when you attempt to start the web server manually, it must not prompt you for a pass phrase.

  7. Update the paths in the Apache start/stop script file (Bin_dir/httpsdct1).

    You must change the paths from the Apache defaults to match your Apache directory structure.

  8. Perform the following tasks to verify your configuration changes.

    1. Run httpsdctl configtest to check the Apache httpd.conf file for correct syntax.

    2. Ensure that any logical hostnames or shared addresses that Apache uses are configured and online.

    3. Issue httpsdctl start to start up your Apache server by hand.

      If Apache does not start up correctly, correct the problem.

    4. After Apache has started, stop it before moving to the next procedure.

Next Steps

If you did not install the Sun Cluster HA for Apache during your initial Sun Cluster installation, go to Installing the Sun Cluster HA for Apache Packages. Otherwise, go to Registering and Configuring Sun Cluster HA for Apache.

Installing the Sun Cluster HA for Apache Packages

If you did not install the Sun Cluster HA for Apache packages during your initial Sun Cluster installation, perform this procedure to install the packages. To install the packages, use the Sun Java Enterprise System Common Installer.

ProcedureHow to Install the Sun Cluster HA for Apache Packages

Perform this procedure on each cluster node where you are installing the Sun Cluster HA for Apache packages.

You can run the Sun Java Enterprise System Common Installer with a command-line interface (CLI) or with a graphical user interface (GUI). The content and sequence of instructions in the CLI and the GUI are similar.


Note –

Even if you plan to configure this data service to run in non-global zones, install the packages for this data service in the global zone. The packages are propagated to any existing non-global zones and to any non-global zones that are created after you install the packages.


Before You Begin

Ensure that you have the Sun JavaTM Availability Suite DVD-ROM.

If you intend to run the Sun Java Enterprise System Common Installer with a GUI, ensure that your DISPLAY environment variable is set.

  1. On the cluster node where you are installing the data service packages, become superuser.

  2. Load the Sun Java Availability Suite DVD-ROM into the DVD-ROM drive.

    If the Volume Management daemon vold(1M) is running and configured to manage DVD-ROM devices, the daemon automatically mounts the DVD-ROM on the /cdrom directory.

  3. Change to the Sun Java Enterprise System Common Installer directory of the DVD-ROM.

    • If you are installing the data service packages on the SPARC® platform, type the following command:


      # cd /cdrom/cdrom0/Solaris_sparc
      
    • If you are installing the data service packages on the x86 platform, type the following command:


      # cd /cdrom/cdrom0/Solaris_x86
      
  4. Start the Sun Java Enterprise System Common Installer.


    # ./installer
    
  5. When you are prompted, accept the license agreement.

    If any Sun Java Enterprise System components are installed, you are prompted to select whether to upgrade the components or install new software.

  6. From the list of Sun Cluster agents under Availability Services, select the data service for Apache.

  7. If you require support for languages other than English, select the option to install multilingual packages.

    English language support is always installed.

  8. When prompted whether to configure the data service now or later, choose Configure Later.

    Choose Configure Later to perform the configuration after the installation.

  9. Follow the instructions on the screen to install the data service packages on the node.

    The Sun Java Enterprise System Common Installer displays the status of the installation. When the installation is complete, the wizard displays an installation summary and the installation logs.

  10. (GUI only) If you do not want to register the product and receive product updates, deselect the Product Registration option.

    The Product Registration option is not available with the CLI. If you are running the Sun Java Enterprise System Common Installer with the CLI, omit this step

  11. Exit the Sun Java Enterprise System Common Installer.

  12. Unload the Sun Java Availability Suite DVD-ROM from the DVD-ROM drive.

    1. To ensure that the DVD-ROM is not being used, change to a directory that does not reside on the DVD-ROM.

    2. Eject the DVD-ROM.


      # eject cdrom
      
Next Steps

See Registering and Configuring Sun Cluster HA for Apache to register Sun Cluster HA for Apache and to configure the cluster for the data service.

Registering and Configuring Sun Cluster HA for Apache

This section describes how to register and configure Sun Cluster HA for Apache.

You can configure Apache as a failover service or as a scalable service, as follows.

The scalable resource group depends on the failover resource group. Additional steps are required to configure Apache as a scalable service. The leading text “For scalable services only” in the following procedure identifies these steps. If you are not configuring Apache as a scalable service, skip the steps marked “For scalable services only.”

Setting Sun Cluster HA for Apache Extension Properties

The sections that follow contain instructions for registering and configuring Sun Cluster HA for Apache resources. For information about the extension properties, see Appendix A, Sun Cluster HA for Apache Extension Properties. The Tunable entry indicates when you can update a property.

See Appendix B, Standard Properties, in Sun Cluster Data Services Planning and Administration Guide for Solaris OS for details on all of the Sun Cluster properties.

To set an extension property of a resource, include the following option in the clresource(1CL) command that creates or modifies the resource:


-p property=value 
-p property

Identifies the extension property that you are setting.

value

Specifies the value to which you are setting the extension property.

You can also use the procedures in Chapter 2, Administering Data Service Resources, in Sun Cluster Data Services Planning and Administration Guide for Solaris OS to configure resources after the resources are created.

Monitoring Arbitrary URIs

Set the Monitor_Uri_List extension property if you want the web server fault monitor to probe an arbitrary list of applications (URIs) served by the web server. This extension property provides extended probing functionality and is useful if you are layering services in addition to your web server. The Monitor_Uri_List extension property is not supported with a secure Sun Cluster HA for Apache instance. If you do not set the Monitor_Uri_List extension property, the fault monitor will perform the basic probing. See Tuning the Sun Cluster HA for Apache Fault Monitor for details. The following examples show how to set the Monitor_Uri_List extension property when you add the Sun Cluster HA for Apache instance to your configuration.

Example— Setting Monitor_Uri_List for Scalable Sun Cluster HA for Apache Instance


(Add an insecure Apache instance with default load balancing.)

# clresource create -g resource-group-1 \
-t SUNW.apache -p Bin_dir=/opt/apache/bin -p Network_resources_used=schost-1, ... \
-p Monitor_Uri_list=http://schost-1:8000/servlet/monitor \
-p Scalable=True \
-p Port_list=8000/tcp apache-insecure-1

Example— Setting Monitor_Uri_List for Failover Sun Cluster HA for Apache Instance


(Add an insecure Apache application resource instance.)

# clresource create -g resource-group-1 \
-t SUNW.apache -p Bin_dir=/opt/apache/bin -p Network_resources_used=schost-1 \
-p Monitor_Uri_list=http://schost-1:80/servlet/monitor \
-p Port_list=80/tcp apache-insecure-1

Tools for Registering and Configuring Sun Cluster HA for Apache

Sun Cluster provides the following tools for registering and configuring Sun Cluster HA for Apache:

The clsetup utility and Sun Cluster Manager each provide a wizard for configuring Sun Cluster HA for Apache. The wizards reduce the possibility for configuration errors that might result from command syntax errors or omissions. These wizards also ensure that all required resources are created and that all required dependencies between resources are set.

ProcedureHow to Register and Configure the Sun Cluster HA for Apache by Using clsetup

Perform this procedure during your initial setup of Sun Cluster HA for Apache. Perform this procedure from one node only.


Note –

The clsetup utility can be used to configure Apache versions 1.x and Apache 2.0.


Before You Begin

Before you start the Sun Cluster HA for Apache wizard, ensure that the following prerequisites are met:

  1. Become superuser on any cluster node.

  2. Start the clsetup utility.


    # clsetup
    

    The clsetup main menu is displayed.

  3. Type the number that corresponds to the option for data services and press Return.

    The Data Services menu is displayed.

  4. Type the number that corresponds to the option for configuring Sun Cluster HA for Apache and press Return.

    The clsetup utility displays information about Sun Cluster HA for Apache.

  5. Press Return to continue.

    The clsetup utility displays a list of configuration modes for Sun Cluster HA for Apache.

  6. Type the number that corresponds to the configuration mode for Sun Cluster HA for Apache and press Return.

    The clsetup utility displays a list of available nodes.

  7. Select the nodes where you require Sun Cluster HA for Apache to run.

    • To accept the default selection of all listed nodes in an arbitrary order, type a and press Return.

    • To select a subset of the listed nodes, type a comma-separated or space-separated list of the numbers that correspond to the nodes. Then press Return.

      Ensure that the nodes are listed in the order in which the nodes are to appear in the resource group's node list. The first node in the list is the primary node of this resource group.

    • To select all nodes in a particular order, type a comma-separated or space-separated ordered list of the numbers that correspond to the nodes. Then press Return.

      Ensure that the nodes are listed in the order in which the nodes are to appear in the resource group's node list. The first node in the list is the primary node of this resource group.

  8. To confirm your selection of nodes, type d and press Return.

    The clsetup utility displays a screen where you can specify the location of the Sun Cluster HA for Apache configuration file.

  9. Type the numbers that correspond to the location of the configuration file and press Return.


    Note –

    The configuration file that you select here is used as a template. A new configuration file will be created using this template configuration file.


    The clsetup utility displays a screen where you can specify the Sun Cluster HA for Apache document root directory.

  10. Type the numbers that correspond to the location of the document root directory and press Return.

    The clsetup utility displays a screen where you can specify the Sun Cluster HA for Apache mount point.

  11. To confirm your selection of the mount point, type d and press Return.

    The clsetup utility displays a screen where you can specify the Sun Cluster HA for Apache network resource.

  12. To confirm your selection of the network resource, type d and press Return.

    The clsetup utility displays information about the Sun Cluster HA for Apache configuration that the utility will create.

  13. To confirm your selection of the configuration, type d and press Return.

    The clsetup utility displays information about the Sun Cluster objects that the utility will create.


    Note –

    The document root specified by you will be copied to the one that is mentioned in the screen. The configuration file specified by you will be edited and the edited file will be stored in the location mentioned in the screen.


  14. To confirm your selection of the Sun Cluster objects, type d and press Return.

    The clsetup utility displays information about the Sun Cluster configuration that the utility will create.

  15. To create the configuration, type c and Press Return.

    The clsetup utility displays a progress message to indicate that the utility is running commands to create the configuration. When configuration is complete, the clsetup utility displays the commands that the utility ran to create the configuration.


    Note –

    The clsetup utility will rollback the changes if it fails to complete the Apache configuration process.


  16. Press Return to continue.

    The clsetup utility returns you to the list of options for configuring Sun Cluster HA for Apache.

  17. (Optional) Type q and press Return repeatedly until you quit the clsetup utility.

    If you prefer, you can leave the clsetup utility running while you perform other required tasks before using the utility again. If you choose to quit clsetup, the utility recognizes your Sun Cluster HA for Apache resource group when you restart the utility.

  18. Determine if the Sun Cluster HA for Apache resource group and its resources are online.

    Use the clresourcegroup(1CL) utility for this purpose. By default, the clsetup utility assigns the name apache-server-rg to the Sun Cluster HA for Apache resource group.


    # clresourcegroup status apache-server-rg
    
  19. If the Sun Cluster HA for Apache resource group and its resources are not online, bring them online.


    # clresourcegroup online apache-server-rg
    

ProcedureHow to Register and Configure Sun Cluster HA for Apache by Using Sun Cluster Command Line Interface (CLI)

Complete the registration and configuration on any cluster member.

Before You Begin
  1. On a cluster member, become superuser or assume a role that provides solaris.cluster.admin RBAC authorization.

  2. Register the SUNW.apache resource type for the data service.


    # clresourcetype register SUNW.apache
    
  3. Create a failover resource group to hold the network and application resources.

    This resource group is required for both failover and scalable services. For failover services, the resource group contains both network and failover application resources. For scalable services, the resource group contains network resources only. A dependency is created between this group and the resource group that contains the application resources.

    Optionally, you can select the set of nodes on which the data service can run with the -n option.


    # clresourcegroup create [-n node-zone-list] resource-group
    
    resource-group

    Specifies the name of the failover resource group to add. This name can be your choice but must be unique for the resource groups within the cluster.

    [-n node-zone-list]

    Specifies a comma-separated, ordered list of zones that can master this resource group. The format of each entry in the list is node. In this format, node specifies the node name and zone specifies the name of a non-global Solaris zone. To specify the global zone, or to specify a node without non-global zones, specify only node.

    This list is optional. If you omit this list, the global zone of each cluster node can master the resource group.

  4. Add a network resource, such as logical hostname or shared address, to the failover resource group that you created in Step 3.


    # clressharedaddress create -g resource-group \
    -h hostname,... [-N netiflist] resource
    
    -h hostname,…

    Specifies a comma-separated list of network resources to add.

    resource-group

    Specifies the name of the failover resource group that you created in Step 3.

    resource

    Specifies a resource name. If you do not supply your choice for a resource name, the name of the network resource defaults to the first name that is specified after the -h option.

    -N netiflist

    Specifies an optional, comma-separated list that identifies the IP Networking Multipathing groups that are on each node or zone. The format of each entry in the list is netif@node. The replaceable items in this format are as follows:

    netif

    Specifies an IPMP group name, such as sc_ipmp0, or a public network interface card (NIC). If you specify a public NIC, Sun Cluster attempts to create the required IPMP groups.

    node

    Specifies the name or ID of a node and, optionally, the name of a non-global Solaris zone. To specify the global zone, or to specify a node without non-global zones, specify only node.


    Note –

    If you require a fully qualified hostname, you must specify the fully qualified name with the -h option and you cannot use the fully qualified form in the resource name.



    Note –

    Sun Cluster does not currently support using the adapter name for netif.


  5. For scalable services only – Create a scalable resource group to run on all of the desired cluster nodes.

    If you run Sun Cluster HA for Apache as a failover data service, proceed to Step 7.

    Create a resource group to hold a data service application resource. You must specify the maximum and desired number of primary nodes.


    Note –

    If only a subset of nodes can be primaries for this resource group, you must use the -n option to specify the names of these potential primaries when you create the resource group.


    You must also specify any dependency between this resource group and the failover resource group that you created in Step 3. This dependency ensures that when failover occurs, if the two resource groups are being brought online on the same node, the Resource Group Manager (RGM) starts up the network resource before any data services that depend on the network resource.


    # clresourcegroup create [-n node-zone-list] \
    -p Maximum_primaries=m -p Desired_primaries=n \
    -p RG_dependencies=resource-group resource-group
    
    resource-group

    Specifies the name of the scalable service resource group to add.

    -p Maximum_primaries=m

    Specifies the maximum number of active primary nodes allowed for this resource group. If you do not assign a value to this property, the default is 1.

    -p Desired_primaries=n

    Specifies the desired number of active primary nodes allowed for this resource group. If you do not assign a value to this property, the default is 1.

    -p RG_dependencies= resource-group

    Identifies the resource group that contains the shared address resource on which the resource group being created depends, that is, the name of the failover resource group that you created in Step 3.

    -n node-zone-list

    Specifies a comma-separated, ordered list of zones that can master this resource group. The format of each entry in the list is node. In this format, node specifies the node name and zone specifies the name of a non-global Solaris zone. To specify the global zone, or to specify a node without non-global zones, specify only node.

    This list is optional. If you omit this list, the global zone of each cluster node can master the resource group.

  6. For scalable services only – Create an application resource in the scalable resource group.

    If you run Sun Cluster HA for Apache as a failover data service, proceed to Step 7.


    # clresource create -g resource-group \
    -t resource-type -p Bin_dir=bin-directory,... \
    -p Network_resources_used=network-resource,… \
    -p Port_list=port-number/protocol[, …] \
    -p Scalable=True resource
    
    resource

    Specifies your choice for the name of the resource to add.

    -g resource-group

    Specifies the name of the scalable resource group into which the resources are to be placed.

    -t resource-type

    Specifies the type of the resource to add.

    -p Network_resources_used= network-resource, …

    Specifies a comma-separated list of network resource names that identify the shared addresses that the data service uses.

    -p Port_list=port-number/protocol, …

    Specifies a comma-separated list of port numbers and protocol to be used, for example, 80/tcp,81/tcp.

    -p Scalable=

    Specifies a required parameter for scalable services. This parameter must be set to True.

    -p Bin_dir=bin-directory

    Specifies the location where the Apache binaries—in particular, apachect1—are installed. Sun Cluster HA for Apache requires this extension property.

    The resource is created in the enabled state.


    Note –

    Optionally, you can set additional extension properties that belong to the Apache data service to override their default values. See Appendix A, Sun Cluster HA for Apache Extension Properties for a list of extension properties.


  7. For failover services only – Create an application resource in the failover resource group.

    Perform this step only if you run Sun Cluster HA for Apache as a failover data service. If you run Sun Cluster HA for Apache as a scalable data service, you should have performed Step 5 and Step 6 and should now proceed to Step 9.


    # clresource create -g resource-group \
    -t resource-type -p Bin_dir=bin-directory \
    -p Network_resources_used=network-resource,… \
    -p Port_list=port-number/protocol[, …] resource
    
    resource

    Specifies your choice for the name of the resource to add.

    -g resource-group

    Specifies the name of the resource group into which the resources are to be placed, created in Step 3.

    -t resource-type

    Specifies the type of the resource to add.

    -p Network_resources_used= network-resource, …

    Specifies a comma-separated list of network resources that identify the shared addresses that the data service uses.

    -p Port_list=port-number/protocol, …

    Specifies a comma-separated list of port numbers and protocol to be used, for example, 80/tcp,81/tcp.

    -p Scalable=

    This property is required for scalable services only. Here the value is set to False or can be omitted.

    -p Bin_dir=bin-directory

    Specifies the location where the Apache binaries—in particular, apachect1—are installed. Sun Cluster HA for Apache requires this extension property.

    The resource is created in the enabled state.

  8. Bring the failover resource group online.


    # clresourcegroup online resource-group
    
    resource-group

    Specifies the name of the failover resource group.

  9. For scalable services only – Bring the scalable resource group online.


    # clresourcegroup online resource-group
    
    resource-group

    Specifies the name of the scalable resource group.


Example 1 Registering Scalable Sun Cluster HA for Apache

For scalable services, you create the following resource groups.

The following example shows how to register a scalable Apache service on a two-node cluster.


Cluster Information
Node names: phys-schost-1, phys-schost-2
Shared address: schost-1
Resource groups: resource-group-1 (for shared addresses), 
	resource-group-2 (for scalable Apache application 
    resources)
Resources: schost-1 (shared address), apache-1 (Apache application 
    resource)
 
(Add a failover resource group to contain shared addresses.)
# clresourcegroup create resource-group-1
 
(Add the shared address resource to the failover resource group.)
# clressharedaddress create -g resource-group-1 -h schost-1 
 
(Register the Apache resource type.)
# clresourcetype register SUNW.apache
 
(Add a scalable resource group.)
# clresourcegroup create -p Maximum_primaries=2 \
-p Desired_primaries=2 -p RG_dependencies=resource-group-1 resource-group-2
 
(Add Apache application resources to the scalable resource group.)
# clresource create -g resource-group-2 \
-t SUNW.apache -p Bin_dir=/opt/apache/bin -p Network_resources_used=schost-1 \
-p Scalable=True \
-p Port_list=80/tcp apache-1
 
(Bring the failover resource group online.)
# clresourcegroup online resource-group-1
 
(Bring the scalable resource group online on both nodes.)
# clresourcegroup online resource-group-2


Example 2 Registering Failover Sun Cluster HA for Apache

The following example shows how to register a failover Apache service on a two-node cluster.


Cluster Information
Node names: phys-schost-1, phys-schost-2
Logical hostname: schost-1
Resource group: resource-group-1 (for all of the resources)
Resources: schost-1 (logical hostname),
	apache-1 (Apache application resource)
 
(Add a failover resource group to contain all of the resources.)
# clresourcegroup create resource-group-1
 
(Add the logical hostname resource to the failover resource group.)
# clreslogicalhostname create -g resource-group-1 -h schost-1 
 
(Register the Apache resource type.)
# clresourcetype register SUNW.apache
 
(Add Apache application resources to the failover resource group.)
# clresource create -g resource-group-1 \
-t SUNW.apache -p Bin_dir=/opt/apache/bin -p Network_resources_used=schost-1 \
-p Port_list=80/tcp apache-1
 
(Bring the failover resource group online.)
# clresourcegroup online resource-group-1

How to Configure SUNW.HAStoragePlus Resource Type

The SUNW.HAStoragePlus resource type was introduced in Sun Cluster 3.0 5/02. This new resource type performs the same functions as SUNW.HAStorage, and synchronizes actions between HA storage and the data service.

SUNW.HAStoragePlus also has an additional feature to make a local file system highly available.

See the SUNW.HAStoragePlus(5) man page and Relationship Between Resource Groups and Device Groups in Sun Cluster Data Services Planning and Administration Guide for Solaris OS for background information. See Synchronizing the Startups Between Resource Groups and Device Groups in Sun Cluster Data Services Planning and Administration Guide for Solaris OS for the procedure. (If you are using a Sun Cluster 3.0 version prior to 5/02, you must set up SUNW.HAStorage instead of SUNW.HAStoragePlus. See Synchronizing the Startups Between Resource Groups and Device Groups in Sun Cluster Data Services Planning and Administration Guide for Solaris OS for the procedure.)

How to Verify Data Service Installation and Configuration

After you configure Sun Cluster HA for Apache, verify that you can open a web page with the network resources (logical hostnames or shared addresses) and port number from a web browser. Perform a switchover with the clresourcegroup(1CL) command to verify that the service continues to run on a secondary node and can be switched back to the original primary.

Tuning the Sun Cluster HA for Apache Fault Monitor

The Sun Cluster HA for Apache fault monitor is contained in a resource whose resource type is SUNW.apache.

System properties and extension properties of the resource control the behavior of the fault monitor. The default values of these properties determine the preset behavior of the fault monitor. The preset behavior should be suitable for most Sun Cluster installations. Therefore, you should tune the Sun Cluster HA for Apache fault monitor only if you need to modify this preset behavior.

Tuning the Sun Cluster HA for Apache fault monitor involves the following tasks:

Information about the Sun Cluster HA for Apache fault monitor that you need to perform these tasks is provided in the subsections that follow.

Tune the Sun Cluster HA for Apache fault monitor when you register and configure Sun Cluster HA for Apache. For more information, see Registering and Configuring Sun Cluster HA for Apache.

For detailed information, see “Tuning Fault Monitors for Sun Cluster Data Services” in Sun Cluster Data Services Planning and Administration Guide for Solaris OS.

Operations by the Sun Cluster HA for Apache Fault Monitor

The Sun Cluster HA for Apache probe sends a request to the server to query the health of the Apache server.

Operations by the Fault Monitor Before a Probe

Before querying the Apache server, the probe checks to confirm that network resources are configured for this Apache resource. If no network resources are configured, an error message (No network resources found for resource) is logged, and the probe exits with failure.

Operations for a Nonsecure Web Server

For a nonsecure web server, the probe connects to the Apache server and performs an HTTP 1.0 HEAD check by sending the HTTP request and receiving a response. In turn, the probe connects to the Apache server on each IP address/port combination.

The result of this query can be either a failure or a success. If the probe successfully receives a reply from the Apache server, the probe returns to its infinite loop and continues the next cycle of probing and sleeping.

The query can fail for various reasons, such as heavy network traffic, heavy system load, and misconfiguration. Misconfiguration can occur if you did not configure the Apache server to listen on all of the IP address/port combinations that are being probed. The Apache server should service every port for every IP address that is specified for this resource.

The following probe failures are considered as complete failures.

When the monitor accumulates two partial failures within the resource property interval Retry_interval, it counts them as one complete failure.

The following probe failures are considered as partial failures:

Operations for a Monitored URI List

If you have configured URIs in the Monitor_Uri_List extension property, then the probe connects to the Sun Cluster HA for Apache server and performs an HTTP 1.1 GET check by sending a HTTP request and receiving a response to each of the URIs in Monitor_Uri_List. If the HTTP server return code is 500 (Internal Server Error) or if the connect fails, the probe will take action.


Note –

The Monitor_Uri_List extension property supports HTTP requests only. It does not support HTTPS requests.


The result of the HTTP requests is either failure or success. If all of the requests successfully receive a reply from the Sun Cluster HA for Apache server, the probe returns and continues the next cycle of probing and sleeping.

Heavy network traffic, heavy system load, and misconfiguration can cause the HTTP GET probe to fail. Misconfiguration of the Monitor_Uri_List property can cause a failure if a URI in the Monitor_Uri_List includes an incorrect port or hostname. For example, if the web server instance is listening on logical host schost-1 and the URI was specified as http://schost-2/servlet/monitor, the probe will try to contact schost-2 to request /servlet/monitor.

Operations for a Secure Web Server

For a secure web server, the probe connects to each IP address and port combination. If this connection attempt succeeds, the probe disconnects and returns with a success status. No further checks are performed.

Actions in Response to Faults

Based on the history of failures, a failure can cause either a local restart or a failover of the data service. For detailed information, see “Tuning Fault Monitors for Sun Cluster Data Services” in Sun Cluster Data Services Planning and Administration Guide for Solaris OS.

Upgrading the SUNW.apache Resource Type

Upgrade the SUNW.apache resource type if the following conditions apply:

For general instructions that explain how to upgrade a resource type, see Upgrading a Resource Type in Sun Cluster Data Services Planning and Administration Guide for Solaris OS. The information that you require to complete the upgrade of the SUNW.apache resource type is provided in the subsections that follow.

Information for Registering the New Resource Type Version

The relationship between a resource type version and the release of Sun Cluster data services is shown in the following table. The release of Sun Cluster data services indicates the release in which the version of the resource type was introduced.

Resource Type Version 

Sun Cluster Data Services Release 

1.0 

3.1 

3.1 5/03 

3.1 10/03 

4.1 

3.2 

To determine the version of the resource type that is registered, use the clresourcetype showcommand.

The resource type registration (RTR) file for this resource type is /opt/SUNWscapc/etc/SUNW.apache.

Information for Migrating Existing Instances of the Resource Type

The information that you require to edit each instance of the SUNW.apache resource type is as follows:

The following example shows a command for modifying an instance of the SUNW.apache resource type.


Example 3 Migrating Instances of the SUNW.apache Resource Type


# clresource set -p Monitor_Uri_List=http://schost-1/test.html \
  -p Type_version=4 apache-rs

This command modifies the SUNW.apache resource named apache-rs as follows: