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

## Modifying Online the Resource for a Highly Available Local File System

You might need a highly available local file system to remain available while you are modifying the resource that represents the file system. For example, you might need the file system to remain available because storage is being provisioned dynamically. In this situation, modify the resource that represents the highly available local file system while the resource is online.

In the Oracle Solaris Cluster environment, a highly available local file system is represented by an `HAStoragePlus` resource. Oracle Solaris Cluster enables you to modify an online `HAStoragePlus` resource as follows:

- Adding file systems to the `HAStoragePlus` resource

- Removing file systems from the `HAStoragePlus` resource

Oracle Solaris Cluster software does not enable you to rename a file system while the file system is online.

Note - When you remove the file systems configured in the `HAStoragePlus` resources for a zone cluster, you also need to remove the file system configuration from the zone cluster. For information about removing a file system from a zone cluster, see How to Remove a File System From a Zone Cluster in Oracle Solaris Cluster System Administration Guide.

## How to Add File Systems Other Than Solaris ZFS to an Online `HAStoragePlus` Resource

When you add a local or cluster file system to an `HAStoragePlus` resource, the `HAStoragePlus` resource automatically mounts the file system.

1. On one node of the cluster, assume the `root` role that provides `solaris.cluster.modify` RBAC authorization.
2. In the `/etc/vfstab` file on each node of the cluster, add an entry for the mount point of each file system that you are adding.

   For each entry, set the mount at boot field and the mount options field as follows:

   - For local file systems

     - Set the mount at boot field to `no`.

     - Remove the `global` flag.

   - For cluster file systems

     - If the file system is a cluster file system, set the mount options field to contain the `global` option.

3. Retrieve the list of mount points for the file systems that the `HAStoragePlus` resource already manages.

       # scha_resource_get -O extension -R hasp-resource -G hasp-rg FileSystemMountPoints

   `-R` hasp-resource

     Specifies the `HAStoragePlus` resource to which you are adding file systems

   `-G` hasp-rg

     Specifies the resource group that contains the `HAStoragePlus` resource

4. Modify the `FileSystemMountPoints` extension property of the `HAStoragePlus` resource to contain the following mount points:

   - The mount points of the file systems that the `HAStoragePlus` resource already manages

   - The mount points of the file systems that you are adding to the `HAStoragePlus` resource

       # clresource set -p FileSystemMountPoints="mount-point-list" hasp-resource

   `-p FileSystemMountPoints="`mount-point-list`"`

     Specifies a comma-separated list of mount points of the file systems that the `HAStoragePlus` resource already manages and the mount points of the file systems that you are adding. The format of each entry in the list is LocalZonePath:GlobalZonePath. In this format, the global path is optional. If the global path is not specified, the global path is the same as the local path.

   hasp-resource

     Specifies the `HAStoragePlus` resource to which you are adding file systems.

5. Confirm that you have a match between the mount point list of the `HAStoragePlus` resource and the list that you specified in Step 4.

       # scha_resource_get -O extension -R hasp-resource -G hasp-rg \
        FileSystemMountPoints

   `-R` hasp-resource

     Specifies the `HAStoragePlus` resource to which you are adding file systems.

   `-G` hasp-rg

     Specifies the resource group that contains the `HAStoragePlus` resource.

6. Confirm that the `HAStoragePlus` resource is online and not faulted.

   If the `HAStoragePlus` resource is online and faulted, validation of the resource succeeded, but an attempt by `HAStoragePlus` to mount a file system failed.

       # clresource status hasp-resource

Example 2-43 Adding a File System to an Online `HAStoragePlus` Resource

This example shows how to add a file system to an online `HAStoragePlus` resource.

- The `HAStoragePlus` resource is named `rshasp` and is contained in the resource group `rghasp`.

- The `HAStoragePlus` resource named `rshasp` already manages the file system whose mount point is `/global/global-fs/fs`.

- The mount point of the file system that is to be added is `/global/local-fs/fs`.

The example assumes that the `/etc/vfstab` file on each cluster node already contains an entry for the file system that is to be added.

    # scha_resource_get -O extension -R rshasp -G rghasp FileSystemMountPoints
    STRINGARRAY
    /global/global-fs/fs
    # clresource set  \
    -p FileSystemMountPoints="/global/global-fs/fs,/global/local-fs/fs"
    # scha_resource_get -O extension -R rshasp -G rghasp FileSystemMountPoints rshasp
    STRINGARRAY
    /global/global-fs/fs
    /global/local-fs/fs
    # clresource status rshasp

    === Cluster Resources ===

    Resource Name          Node Name      Status        Message
    --------------        ----------      -------       --------
       rshasp               node46       Offline         Offline
                            node47       Online          Online

## How to Remove File Systems Other Than Solaris ZFS From an Online `HAStoragePlus` Resource

When you remove a file system from an `HAStoragePlus` resource, the `HAStoragePlus` resource treats a local file system differently from a cluster file system.

- The `HAStoragePlus` resource automatically unmounts a local file system.

- The `HAStoragePlus` resource does not unmount the cluster file system.

| Caution - Before removing a file system from an online `HAStoragePlus` resource, ensure that no applications are using the file system. When you remove a file system from an online `HAStoragePlus` resource, the file system might be forcibly unmounted. If a file system that an application is using is forcibly unmounted, the application might fail or hang.

1. On one node of the cluster, assume the `root` role that provides `solaris.cluster.modify` RBAC authorization.
2. Retrieve the list of mount points for the file systems that the `HAStoragePlus` resource already manages.

       # scha_resource_get -O extension -R hasp-resource -G hasp-rg FileSystemMountPoints

   `-R` hasp-resource

     Specifies the `HAStoragePlus` resource from which you are removing file systems.

   `-G` hasp-rg

     Specifies the resource group that contains the `HAStoragePlus` resource.

3. Modify the `FileSystemMountPoints` extension property of the `HAStoragePlus` resource to contain only the mount points of the file systems that are to remain in the `HAStoragePlus` resource.

       # clresource set -p FileSystemMountPoints="mount-point-list" hasp-resource

   `-p FileSystemMountPoints="`mount-point-list`"`

     Specifies a comma-separated list of mount points of the file systems that are to remain in the `HAStoragePlus` resource. This list must not include the mount points of the file systems that you are removing.

   hasp-resource

     Specifies the `HAStoragePlus` resource from which you are removing file systems.

4. Confirm that you have a match between the mount point list of the `HAStoragePlus` resource and the list that you specified in Step 3.

       # scha_resource_get -O extension -R hasp-resource -G hasp-rg \
       FileSystemMountPoints

   `-R` hasp-resource

     Specifies the `HAStoragePlus` resource from which you are removing file systems.

   `-G` hasp-rg

     Specifies the resource group that contains the `HAStoragePlus` resource.

5. Confirm that the `HAStoragePlus` resource is online and not faulted.

   If the `HAStoragePlus` resource is online and faulted, validation of the resource succeeded, but an attempt by `HAStoragePlus` to unmount a file system failed.

       # clresource status hasp-resource

6. (Optional) From the `/etc/vfstab` file on each node of the cluster, remove the entry for the mount point of each file system that you are removing.

Example 2-44 Removing a File System From an Online `HAStoragePlus` Resource

This example shows how to remove a file system from an online `HAStoragePlus` resource.

- The `HAStoragePlus` resource is named `rshasp` and is contained in the resource group `rghasp`.

- The `HAStoragePlus` resource named `rshasp` already manages the file systems whose mount points are as follows:

  - `/global/global-fs/fs`

  - `/global/local-fs/fs`

- The mount point of the file system that is to be removed is `/global/local-fs/fs`.

    # scha_resource_get -O extension -R rshasp -G rghasp FileSystemMountPoints
    STRINGARRAY
    /global/global-fs/fs
    /global/local-fs/fs
    # clresource set -p FileSystemMountPoints="/global/global-fs/fs"
    # scha_resource_get -O extension -R rshasp -G rghasp FileSystemMountPoints rshasp
    STRINGARRAY
    /global/global-fs/fs
     # clresource status rshasp

    === Cluster Resources ===

    Resource Name          Node Name      Status        Message
    --------------        ----------      -------       --------
       rshasp               node46       Offline         Offline
                            node47       Online          Online

## How to Add a Solaris ZFS Storage Pool to an Online `HAStoragePlus` Resource

When you add a Solaris ZFS storage pool to an online `HAStoragePlus` resource, the `HAStoragePlus` resource does the following:

- Imports the ZFS storage pool.

- Mounts all file systems in the ZFS storage pool.

| Caution - If you are planning to manually import a pool that is already managed by the cluster, ensure that the pool is not imported on multiple nodes. Importing a pool on multiple nodes can lead to problems.

If you want to make configuration changes to a ZFS pool that is managed by cluster with an HAStoragePlus resource, see Changing a ZFS Pool Configuration That is Managed by an HAStoragePlus Resource.

1. On any node in the cluster, assume the `root` role that provides `solaris.cluster.modify` RBAC authorization.
2. Determine the ZFS storage pools that the `HAStoragePlus` resource already manages.

       # clresource show -g hasp-resource-group -p Zpools hasp-resource

   `-g` hasp-resource-group

     Specifies the resource group that contains the `HAStoragePlus` resource.

   hasp-resource

     Specifies the `HAStoragePlus` resource to which you are adding the ZFS storage pool.

3. Add the new ZFS storage pool to the existing list of ZFS storage pools that the `HAStoragePlus` resource already manages.

       # clresource set -p Zpools="zpools-list" hasp-resource

   `-p` Zpools="zpools-list"

     Specifies a comma-separated list of existing ZFS storage pool names that the `HAStoragePlus` resource already manages and the new ZFS storage pool name that you want to add.

   hasp-resource

     Specifies the `HAStoragePlus` resource to which you are adding the ZFS storage pool.

4. Compare the new list of ZFS storage pools that the `HAStoragePlus` resource manages with the list that you generated in Step 2.

       # clresource show -g hasp-resource-group -p Zpools hasp-resource

   `-g` hasp-resource-group

     Specifies the resource group that contains the `HAStoragePlus` resource.

   hasp-resource

     Specifies the `HAStoragePlus` resource to which you added the ZFS storage pool.

5. Confirm that the `HAStoragePlus` resource is online and not faulted.

   If the `HAStoragePlus` resource is online but faulted, validation of the resource succeeded. However, an attempt by the `HAStoragePlus` resource to import and mount the ZFS file system failed. In this case, you need to repeat the preceding set of steps.

       # clresourcegroup status hasp-resource

## How to Remove a Solaris ZFS Storage Pool From an Online `HAStoragePlus` Resource

When you remove a Solaris ZFS storage pool from an online `HAStoragePlus` resource, the `HAStoragePlus` resource does the following:

- Unmounts the file systems in the ZFS storage pool.

- Exports the ZFS storage pool from the node.

1. On any node in the cluster, assume the `root` role that provides `solaris.cluster.modify` RBAC authorization.
2. Determine the ZFS storage pools that the `HAStoragePlus` resource already manages.

       # clresource show -g hasp-resource-group -p Zpools hasp-resource

   `-g` hasp-resource-group

     Specifies the resource group that contains the `HAStoragePlus` resource.

   hasp-resource

     Specifies the `HAStoragePlus` resource from which you are removing the ZFS storage pool.

3. Remove the ZFS storage pool from the list of ZFS storage pools that the `HAStoragePlus` resource currently manages.

       # clresource set -p Zpools="zpools-list" hasp-resource

   `-p` Zpools="zpools-list"

     Specifies a comma-separated list of ZFS storage pool names that the `HAStoragePlus` resource currently manages, minus the ZFS storage pool name that you want to remove.

   hasp-resource

     Specifies the `HAStoragePlus` resource from which you are removing the ZFS storage pool.

4. Compare the new list of ZFS storage pools that the `HAStoragePlus` resource now manages with the list that you generated in Step 2.

       # clresource show -g hasp-resource-group -p Zpools hasp-resource

   `-g` hasp-resource-group

     Specifies the resource group that contains the `HAStoragePlus` resource.

   hasp-resource

     Specifies the `HAStoragePlus` resource from which you removed the ZFS storage pool.

5. Confirm that the `HAStoragePlus` resource is online and not faulted.

   If the `HAStoragePlus` resource is online but faulted, validation of the resource succeeded. However, an attempt by the `HAStoragePlus` resource to unmount and export the ZFS file system failed. In this case, you need to repeat the preceding set of steps.

       # clresource status -t SUNW.HAStoragePlus +

### Changing a ZFS Pool Configuration That is Managed by an HAStoragePlus Resource

To change the ZFS pool configuration that is managed by HAStoragePlus resource, you must ensure that the pool is never imported on multiple nodes. Performing imports on multiple nodes can have severe consequences and could cause ZFS pool corruption.

The following procedures help you avoid multiple imports when performing pool configuration changes.

- How to Change a ZFS Pool Configuration That is Managed by an HAStoragePlus Resource in an Offline State

- How to Change a ZFS Pool Configuration That is Managed by an Online HAStoragePlus Resource

## How to Change a ZFS Pool Configuration That is Managed by an HAStoragePlus Resource in an Offline State

1. Ensure that the ZFS pool that requires configuration changes is not imported on any node.

       # zpool list zfs-pool-name

   Run this command on all cluster nodes that have a physical connection to the ZFS pool.

2. Import the pool on the alternate root without using the `force` option on a cluster node that has a physical connection to the ZFS pool.

       # zpool import -R zfs-pool-name

   If the import succeeds, proceed to Step 3. If the import fails, the cluster node that previously accessed the pool might have shut down without exporting the pool. Follow the substeps below to ensure that the cluster node is not using the ZFS pool and then import the pool forcefully:

   1. Check if the import failed due to an error message similar to the one below. If it did, proceed to Step b and Step c:

      Cannot import 'zfs-pool-name': pool may be in use from other system, it was last accessed by hostname (hostid: hostid) on accessed-date.

   2. Verify that the pool is not in use on the machine that last accessed it.

          hostname# zpool list zfs-pool-name

   3. If the ZFS pool is not in use on that node, import the pool forcefully.

          # zpool import -f zfs-pool-name

3. Perform the ZFS pool configuration changes.
4. Export the ZFS pool and check that the pool is not in use.

       # zpool export zfs-pool-name
       # zpool list zfs-pool-name

## How to Change a ZFS Pool Configuration That is Managed by an Online HAStoragePlus Resource

1. Find the cluster node where the ZFS pool is imported.

   It will be the node where the HAStoragePlus resource is online.

       # clresource show hasp-rs-managing-pool

       === Cluster Resources ===
       Resource Name           Node Name        Status       Message
       --------------          ----------      -------       --------
       hasp-rs-managing-pool   phys-node-1      Offline      Offline
                               phys-node-2      Online       Online

       phys-node-2# zpool list zfs-pool-name

2. Perform the ZFS pool configuration changes.

## How to Recover From a Fault After Modifying the `FileSystemMountPoints` Property of an `HAStoragePlus` Resource

If a fault occurs during a modification of the `FileSystemMountPoints` extension property, the status of the `HAStoragePlus` resource is online and faulted. After the fault is corrected, the status of the `HAStoragePlus` resource is online.

1. Determine the fault that caused the attempted modification to fail.

       # clresource status hasp-resource

   The status message of the faulty `HAStoragePlus` resource indicates the fault. Possible faults are as follows:

   - The device on which the file system should reside does not exist.

   - An attempt by the `fsck` command to repair a file system failed.

   - The mount point of a file system that you attempted to add does not exist.

   - A file system that you attempted to add cannot be mounted.

   - A file system that you attempted to remove cannot be unmounted.

2. Correct the fault that caused the attempted modification to fail.
3. Repeat the step to modify the `FileSystemMountPoints` extension property of the `HAStoragePlus` resource.

       # clresource set -p FileSystemMountPoints="mount-point-list" hasp-resource

   `-p FileSystemMountPoints="`mount-point-list`"`

     Specifies a comma-separated list of mount points that you specified in the unsuccessful attempt to modify the highly available local file system

   hasp-resource

     Specifies the `HAStoragePlus` resource that you are modifying

4. Confirm that the `HAStoragePlus` resource is online and not faulted.

       # clresource status

Example 2-45 Status of a Faulty `HAStoragePlus` Resource

This example shows the status of a faulty `HAStoragePlus` resource. This resource is faulty because an attempt by the `fsck` command to repair a file system failed.

    # clresource status

      === Cluster Resources ===

      Resource Name     Node Name     Status       Status Message
      --------------    ----------    -------      -------------
      rshasp            node46        Offline      Offline
                        node47        Online       Online Faulted - Failed to fsck: /mnt.

## How to Recover From a Fault After Modifying the `Zpools` Property of an `HAStoragePlus` Resource

If a fault occurs during a modification of the `Zpools` extension property, the status of the `HAStoragePlus` resource is online and faulted. After the fault is corrected, the status of the `HAStoragePlus` resource is online.

1. Determine the fault that caused the attempted modification to fail.

       # clresource status hasp-resource

   The status message of the faulty `HAStoragePlus` resource indicates the fault. Possible faults are as follows:

   - The ZFS pool zpool failed to import.

   - The ZFS pool zpool failed to export.

   Note - If you import a corrupt ZFS pool, the best option is to choose `Continue` to display an error message. Other choices are `Wait` (which hangs until success occurs or the node panics) or `Panic` (which panics the node).

2. Correct the fault that caused the attempted modification to fail.
3. Repeat the step to modify the `Zpools` extension property of the `HAStoragePlus` resource.

       # clresource set -p Zpools="zpools-list" hasp-resource

   `-p Zpools="`zpools-list`"`

     Specifies a comma-separated list of ZFS storage pool names that the `HAStoragePlus` currently manages, minus the ZFS storage pool name that you want to remove.

   hasp-resource

     Specifies the `HAStoragePlus` resource that you are modifying

4. Confirm that the `HAStoragePlus` resource is online and not faulted.

       # clresource status

Example 2-46 Status of a Faulty `HAStoragePlus` Resource

This example shows the status of a faulty `HAStoragePlus` resource. This resource is faulty because the ZFS pool zpool failed to import.

    # clresource status hasp-resource

      === Cluster Resources ===

      Resource Name     Node Name     Status            Status Message
      --------------    ----------    -------           -------------
      hasp-resource     node46        Online            Faulted - Failed to import:hazpool
                        node47        Offline           Offline

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