Skip Navigation Links
Exit Print View
| Oracle Solaris Cluster Data Services Planning and Administration Guide Oracle Solaris Cluster 4.1

Search Scope:

- This Document
- Entire Library

## Enabling Oracle Solaris SMF Services to Run With Oracle Solaris Cluster

The Service Management Facility (SMF) enables you to automatically start and restart SMF services, during a node boot or service failure. SMF facilitates some degree of high availability to the SMF services on a single host. This feature is similar to the Oracle Solaris Cluster Resource Group Manager (RGM), which facilitates high availability and scalability for cluster applications. SMF services and RGM features are complementary to each other.

Oracle Solaris Cluster includes three SMF proxy resource types that can be used to enable SMF services to run with Oracle Solaris Cluster in a failover, multi-master, or scalable configuration. The following are the proxy resource types:

- `SUNW.Proxy_SMF_failover`

- `SUNW.Proxy_SMF_multimaster`

- `SUNW.Proxy_SMF_scalable`

The SMF proxy resource types enables you to encapsulate a set of interrelated SMF services into a single resource, SMF proxy resource to be managed by Oracle Solaris Cluster. In this feature, SMF manages the availability of SMF services on a single node. Oracle Solaris Cluster provides cluster-wide high availability and scalability of the SMF services.

You can use the SMF proxy resource types to integrate your own SMF controlled services into Oracle Solaris Cluster so that these services have cluster-wide service availability without you rewriting callback methods or service manifest. After you integrate the SMF service into the SMF proxy resource, the SMF service is no longer managed by the default restarter. The restarter that is delegated by Oracle Solaris Cluster manages the SMF service.

SMF proxy resources are identical to other resources, with no restriction on their usage. For example, an SMF proxy resource can be grouped with other resources into a resource group. SMF proxy resources can be created and managed the same way as other resources. An SMF proxy resource differs from other resources in one way. When you create a resource of any of the SMF proxy resource types, you need to specify the extension property `Proxied_service_instances`. You must include information about the SMF services to be proxied by the SMF resource. The extension property's value is the path to a file that contains all the proxied SMF services. Each line in the file is dedicated to one SMF service and specifies `svc fmri`, `path of the corresponding service manifest file`.

For example, if the resource has to manage two services, `restarter_svc_test_1:default` and `restarter_svc_test_2:default`, the file should include the following two lines:

    <svc:/system/cluster/restarter_svc_test_1:default>,</var/svc/manifest/system/clus
    ter/restarter_svc_test_1.xml>

    <svc:/system/cluster/restarter_svc_test_2:default>,</var/svc/manifest/system/clus
    ter/restarter_svc_test_2.xml>

The services that are encapsulated under an SMF proxy resource can reside in the global cluster. All the services under the same proxy resource must be in the same zone.

| Caution - Do not use SMF svcadm for disabling or enabling SMF services that are encapsulated in a proxy resource. Do not change the properties of the SMF services (in the SMF repository) that are encapsulated in a proxy resource.

- Encapsulating an SMF Service Into a Failover Proxy Resource Configuration

- Encapsulating an SMF Service Into a Multi-Master Proxy Resource Configuration

- Encapsulating an SMF Service Into a Scalable Proxy Resource Configuration

## Encapsulating an SMF Service Into a Failover Proxy Resource Configuration

For information about failover configuration, see Creating a Resource Group

Note - Perform this procedure from any cluster node.

1. On a cluster member, assume the `root` role that provides `solaris.cluster.modify` RBAC authorization.
2. Register the proxy SMF failover resource type.

       # clresourcetype register -f \
       /opt/SUNWscsmf/etc/SUNW.Proxy_SMF_failover SUNW.Proxy_SMF_failover

3. Verify that the proxy resource type has been registered.

       # clresourcetype show

4. Create the SMF failover resource group.

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

   `-n` nodelist

     Specifies a comma-separated, ordered list of nodes that can master this resource group.

     This list is optional. If you omit this list, the resource group is configured on all cluster nodes.

   resource-group

     Specifies your choice of the name of the resource group to add. This name must begin with an ASCII character.

5. Verify that the SMF resource group has been created.

       # clresourcegroup status resource-group

6. Add an SMF failover application resource to the resource group.

       # clresource create -g resource-group -t SUNW.Proxy_SMF_failover \
       -p Port_list=portnumber/protocol \
       -x Proxied_service_instances=/tmp/dns_svcs.txt

   `-g` resource-group

     Specifies the name of the SMF failover resource group that you previously created.

   `-p` `Port_list`=portnumber/protocol

     Specifies the port number the instance will use to listen for activity. The protocol can be either `tcp` or `udp`.

   `-p` `Proxied_service_instances`

     Specifies the path to the file you created that specifies the mapping of SMF services and their corresponding manifests for the SMF services to be proxied. In the example above, `/tmp/dns_svcs.txt` is the path to the text file.

   The resource is created in the enabled state.

7. Verify that the SMF failover application resource has been added and validated.

       # clresource show resource

8. Bring the failover resource group online.

       # clresourcegroup online -M resource-group

   Note - If you use the `clresource status` command to view the state of the SMF proxy resource type, the status is displayed as `online but not monitored`. This is not an error message. The SMF proxy resource is enabled and running and this status message is displayed because there is no monitoring support provided for the resources of SMF proxy resource type.

Example 2-55 Registering an SMF Proxy Failover Resource Type

The following example registers the `SUNW.Proxy_SMF_failover` resource type.

    # clresourcetype register SUNW.Proxy_SMF_failover
    # clresourcetype show SUNW.Proxy_SMF_failover

    Resource Type:              SUNW.Proxy_SMF_failover
    RT_description:             Resource type for proxying failover SMF services
    RT_version:                 2.0
    API_version:                7
    RT_basedir:                 /opt/SUNWscsmf/bin
    Single_instance:            False
    Proxy:                      False
    Init_nodes:                 All potential masters
    Installed_nodes:            <All>
    Failover:                   True
    Pkglist:                    <NULL>
    RT_system:                  False
    Global_zone:                False

Example 2-56 Adding an SMF Proxy Failover Application Resource to a Resource Group

This example shows the addition of a proxy resource type, `SUN.Proxy_SMF_failover` to a resource group `resource-group-1`.

    # clresource create -g resource-group-1 -t SUNW.Proxy_SMF_failover \
    -x proxied_service_instances=/var/tmp/svslist.txt resource-1
    # clresource show resource-1

    === Resources ===

      Resource:                                  resource-1
      Type:                                      SUNW.Proxy_SMF_failover
      Type_version:                              2.0
      Group:                                     resource-group-1
      R_description:
      Resource_project_name:                     default
      Enabled{phys-schost-1}:                    True
      Monitored{phys-schost-1}:                  True

## Encapsulating an SMF Service Into a Multi-Master Proxy Resource Configuration

1. On a cluster member, assume the `root` role that provides `solaris.cluster.modify` RBAC authorization.
2. Register the SMF proxy multi-master resource type.

       # clresourcetype register -f \
       /opt/SUNWscsmf/etc/SUNW.Proxy_SMF_multimaster SUNW.Proxy_SMF_multimaster

3. Create the SMF multi-master resource group.

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

   `-S`

     Specifies that the resource group is to be multi-mastered. If the `-p` `Maximum_primaries` and `-p` `Desired_primaries` options are omitted, both properties are set to the number of nodes in the resource group's node list.

   `-p` `Maximum_primaries``=`m

     Specifies the maximum number of active primaries for this resource group.

   `-p` `Desired_primaries``=`n

     Specifies the number of active primaries on which the resource group should attempt to start.

   `-n` nodelist

     Specifies a comma-separated, ordered list of nodes in which this resource group is to be available.

     This list is optional. If you omit this list, the resource group is configured on all cluster nodes.

   resource-group

     Specifies your choice of the name of the scalable resource group to add. This name must begin with an ASCII character.

4. Verify that the SMF proxy multi-master resource group has been created.

       # clresourcegroup show resource-group

5. Add an SMF proxy multi-master resource to the resource group.

       # clresource create -g resource-group -t SUNW.Proxy_SMF_multimaster \
       -p Port_list=portnumber/protocol \
       -x Proxied_service_instances=/tmp/dns_svcs.txt

   `-g` resource-group

     Specifies the name of the SMF multi-master resource group that you previously created.

   `-p` `Port_list`=portnumber/protocol

     Specifies the port number the instance will use to listen for activity. The protocol can be either `tcp` or `udp`.

   `-p` `Proxied_service_instances`

     Specifies the path to the file you created that specifies the mapping of SMF services and their corresponding manifests for the SMF services to be proxied. In the example above, `/tmp/dns_svcs.txt` is the path to the text file.

   The resource is created in the enabled state.

6. Verify that the SMF proxy multi-master application resource has been added and validated.

       # clresource show resource

7. Bring the multi-master resource group online.

       # clresourcegroup online -M resource-group

   Note - If you use the `clresource status` command to view the state of the SMF proxy resource type, the status is displayed as `online but not monitored`. This is not an error message. The SMF proxy resource is enabled and running and this status message is displayed because there is no monitoring support provided for the resources of SMF proxy resource type.

Example 2-57 Registering an SMF Proxy Multi-Master Resource Type

The following example registers the `SUNW.Proxy_SMF_multimaster` resource type.

    # clresourcetype register SUNW.Proxy_SMF_multimaster
    # clresourcetype show SUNW.Proxy_SMF_multimaster

    Resource Type:            SUNW.Proxy_SMF_multimaster
    RT_description:           Resource type for proxying multimastered SMF services
    RT_version:               2.0
    API_version:              7
    RT_basedir:               /opt/SUNWscsmf/bin
    Single_instance:          False
    Proxy:                    False
    Init_nodes:               All potential masters
    Installed_nodes:          <All>
    Failover:                 True
    Pkglist:                  <NULL>
    RT_system:                False
    Global_zone:              False

Example 2-58 Creating and Adding an SMF Proxy Multi-Master Application Resource to a Resource Group

This example shows the creation and addition of a multi-master proxy resource type `SUN.Proxy_SMF_multimaster` to a resource group `resource-group-1`.

    # clresourcegroup create -S \
    -p Maximum_primaries=2 \
    -p Desired_primaries=2 \
    -n phys-schost-1, phys-schost-2 resource-group-1
    # clresourcegroup show resource-group-1

    === Resource Groups and Resources ===

    Resource Group:                        resource-group-1
    RG_description:                        <NULL>
    RG_mode:                               multimastered
    RG_state:                              Unmanaged
    RG_project_name:                       default
    RG_affinities:                         <NULL>
    Auto_start_on_new_cluster:             True
    Failback:                              False
    Nodelist:                              phys-schost-1 phys-schost-2
    Maximum_primaries:                      2
    Desired_primaries:                      2
    Implicit_network_dependencies:         True
    Global_resources_used:                 <All>
    Pingpong_interval:                      3600
    Pathprefix:                            <NULL>
    RG_System:                             False
    Suspend_automatic_recovery:            False

    # clresource create -g resource-group-1 -t SUNW.Proxy_SMF_multimaster \
    -x proxied_service_instances=/var/tmp/svslist.txt resource-1
    # clresource show resource-1

    === Resources ===

      Resource:                              resource-1
      Type:                                  SUNW.Proxy_SMF_multimaster
      Type_version:                          2.0
      Group:                                 resource-group-1
      R_description:
      Resource_project_name:                 default
      Enabled{phys-schost-1}:                True
      Monitored{phys-schost-1}:              True

## Encapsulating an SMF Service Into a Scalable Proxy Resource Configuration

For information about scalable configuration, see How to Create a Scalable Resource Group.

Note - Perform this procedure from any cluster node.

1. On a cluster member, assume the `root` role that provides `solaris.cluster.modify` RBAC authorization.
2. Register the SMF proxy scalable resource type.

       # clresourcetype register -f \
       /opt/SUNWscsmf/etc/SUNW.Proxy_SMF_scalable SUNW.Proxy_SMF_scalable

3. Create the SMF failover resource group that holds the shared address that the scalable resource group is to use. See How to Create a Failover Resource Group to create the failover resource group.
4. Add the shared address resource to the failover resource group.

   See How to Add a Shared Address Resource to a Resource Group Using the Command-Line Interface.

5. Create the SMF proxy scalable resource group.

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

   `-S`

     Specifies that the resource group is to be multi-mastered. If the `-p` `Maximum_primaries` and `-p` `Desired_primaries` options are omitted, both properties are set to the number of nodes in the resource group's node list.

   `-p` `Maximum_primaries``=`m

     Specifies the maximum number of active primaries for this resource group.

   `-p` `Desired_primaries``=`n

     Specifies the number of active primaries on which the resource group should attempt to start.

   `-n` nodelist

     Specifies a comma-separated, ordered list of nodes in which this resource group is to be available.

     This list is optional. If you omit this list, the resource group is created on all nodes in the cluster.

   resource-group

     Specifies your choice of the name of the scalable resource group to add. This name must begin with an ASCII character.

6. Verify that the scalable resource group has been created.

       # clresourcegroup show resource-group

7. Add an SMF proxy scalable resource to the scalable resource group you created in Step 5.

       # clresource create-g resource-group -t SUNW.Proxy_SMF_scalable \
       -p Resource_dependencies=network-resource[,network-resource...] \
       -p Scalable=True \
       -p Port_list=portnumber/protocol \
       -x Proxied_service_instances=/tmp/dns_svcs.txt

   `-p` `Resource_dependencies`=network-resource[,network-resource...]

     Specifies the name of the scalable network resource you created in Step 3 on which this resource depends.

   `-g` resource-group

     Specifies the name of the SMF proxy scalable resource group that you previously created.

   `-p` `Scalable``=True`

     Specifies that this resource uses the network load balancing features of Oracle Solaris Cluster software. For more information, see How to Add a Scalable Application Resource to a Resource Group.

   The resource is created in the enabled state.

8. Verify that the SMF proxy scalable application resource has been added and validated.

       # clresource show resource

9. Bring the SMF proxy scalable resource group online.

       # clresourcegroup online -M resource-group

   Note - If you use the `clresource status` command to view the state of the SMF proxy resource type, the status is displayed as `online but not monitored`. This is not an error message. The SMF proxy resource is enabled and running and this status message is displayed because there is no monitoring support provided for the resources of SMF proxy resource type.

Example 2-59 Registering an SMF Proxy Scalable Resource Type

The following example registers the `SUNW.Proxy_SMF_scalable` resource type.

    # clresourcetype register SUNW.Proxy_SMF_scalable
    # clresourcetype show SUNW.Proxy_SMF_scalable

    Resource Type:           SUNW.Proxy_SMF_scalable
    RT_description:          Resource type for proxying scalable SMF services
    RT_version:              2.0
    API_version:             7
    RT_basedir:              /opt/SUNWscsmf/bin
    Single_instance:         False
    Proxy:                   False
    Init_nodes:              All potential masters
    Installed_nodes:         <All>
    Failover:                True
    Pkglist:                 <NULL>
    RT_system:               False
    Global _zone:            False

Example 2-60 Creating and Adding an SMF Proxy Scalable Application Resource to a Resource Group

This example shows the creation and addition of a scalable proxy resource type `SUN.Proxy_SMF_scalalble` to a resource group `resource-group-1`.

    # clresourcegroup create -S \
    -p Maximum_primaries=2 \
    -p Desired_primaries=2 \
    -p RG_dependencies=resource-group-2 \
    -n phys-schost-1, phys-schost-2 resource-group-1
    # clresourcegroup show resource-group-1

    === Resource Groups and Resources ===

    Resource Group:                      resource-group-1
    RG_description:                     <NULL>
    RG_mode:                             Scalable
    RG_state:                            Unmanaged
    RG_project_name:                     default
    RG_affinities:                       <NULL>
    Auto_start_on_new_cluster:           True
    Failback:                            False
    Nodelist:                            phys-schost-1 phys-schost-2
    Maximum_primaries:                   2
    Desired_primaries:                   2
    RG_dependencies:                     resource-group2
    Implicit_network_dependencies:       True
    Global_resources_used:               <All>
    Pingpong_interval:                   3600
    Pathprefix:                          <NULL>
    RG_System:                            False
    Suspend_automatic_recovery:           False

    # clresource create -g resource-group-1 -t SUNW.Proxy_SMF_scalable \
    -p resource_dependencies=net-res -p port_list=1080/tcp \
    -x proxied_service_instances=/var/tmp/svslist.txt resource-1
    # clresource show resource-1

    === Resources ===

      Resource:                            resource-1
      Type:                                SUNW.Proxy_SMF_scalable
      Type_version:                        2.0
      Group:                               resource-group-1
      R_description:
      Resource_project_name:               default
      Enabled{phys-schost-1}:              True
      Monitored{phys-schost-1}:            True

You can choose the `resource_dependencies` and port number to use.

Copyright © 2000, 2012, Oracle and/or its affiliates. All rights reserved. Legal Notices |