16.6 Preventing Pools from Activating on Multiple Servers

16.6.1 Understanding MSAP

MSAP is enabled by default for all pools on the server. When enabled, it helps prevent some accidental activations of a pool on more than one server at a time. It does not catch all multiple activations. MSAP is not meant as a replacement of clustering software that controls shared pools.

MSAP protects pools on systems that do not have clustering installed but are attached to a shared disk by accident. For example, a pool might not be marked with the Shareable for Clustering attribute, but it exists on shared disks seen by multiple servers.

Pool MSAP also protects against dangerous conflicts that can occur if you disable the Shareable for Clustering flag in order to force an activation of a shared pool, or if you use override=shared when activating a pool. If MSAP detects a conflict, it deactivates the pool before massive corruption occurs.

If you unload OES Cluster Services NLM software, or if you are not running it, pool MSAP provides an extra level of protection. The clustering software watches pools that are marked with the Shareable for Clustering attribute; MSAP detects conflicting connection from multiple servers and prevents corruption of pools even on devices that are marked as Not Shareable for Clustering.

In some cases, the MSAP software causes pools to take up to 30 seconds to activate. This delay might occur on the next pool activation after the Server ID or the Cluster ID changes for a given server pool. The Server ID changes if the registry is corrupted. The Cluster ID changes if the Cluster eDirectory object ID is lost.

If MSAP is enabled, all active NSS pools are read every 14 seconds. If your storage media are not shared between multiple servers such as in a SAN, you can clear the zpool_feature_msap bit. You should not clear this bit if your pools are on physically shared storage media.

If a pool can be accessed by older servers not running the Support Pack with the MSAP software, then multiple pool activations can still occur.

IMPORTANT:MSAP does not protect against partition conflicts for pools. It does not prevent multiple servers from creating a pool in the same partition.

16.6.2 Enabling or Disabling MSAP for All NSS Pools

By default, MSAP is enabled for all pools on the server when the server is booted.

To manually enable or disable MSAP for all pools on the server, issue the following MSAP console commands at the NSS Console (nsscon) as the root user.

nss /msapserver

Enables MSAP for all the pools on the server. By default, MSAP is enabled for every pool on the server.

nss /nomsapserver

Disables MSAP for all the pools on the server. This command remains in effect only until the server is next rebooted.

IMPORTANT:We recommend that you never disable MSAP.

16.6.3 Enabling or Disabling MSAP for a Given NSS Pool with NSSMU

Use the procedures in this section to enable or disable MSAP for a given pool.

The /PoolMSAP option enables MSAP for a given pool on the server. Use the command when the pool is activated. MSAP is enabled the next time the pool is activated.

The /NoPoolMSAP option disables MSAP for a given pool. Use the command when the pool is activated. MSAP is disabled the next time the pool is activated.

IMPORTANT:We recommend that you never disable MSAP.

  1. Open a terminal console, then log in as the root user.

  2. If the pool is not active, activate it now.

    1. Start NSSMU by entering the following at the terminal console prompt:

      nssmu
    2. Go to the Pools page.

    3. Select the pool, then activate it by pressing F7.

    4. Exit NSSMU.

  3. Enable or disable MSAP for a given pool.

    1. Start the NSS Console by entering the following at the terminal console prompt:

      nsscon
    2. At the nsscon prompt, do one of the following:

      • Enable MSAP: Enter

        nss /poolmsap=poolname
      • Disable MSAP: Enter

        nss /nopoolmsap=poolname
    3. Close the NSS Console by entering

      exit
  4. Deactivate the pool, then activate it again.

    1. Start NSSMU by entering the following at the terminal console prompt:

      nssmu
    2. Go to the Pools page.

    3. Select the pool, then deactivate it by pressing F7.

    4. Select the pool, then activate it by pressing F7 again.

    5. Exit NSSMU.

      MSAP is now enabled or disabled, depending on your action in Step 3.

  5. Verify that MSAP is enabled or disabled for the given pool.

    1. Start the NSS Console by entering the following at the terminal console prompt:

      nsscon
    2. At the nsscon prompt, enter

      nss /pools
    3. Review the messages to determine if the pool was successfully enabled or disabled as follows:

      • MSAP Enabled: The Multi-Use Detect message is displayed for the pool.

      • MSAP Disabled: The Multi-Use Detect message is not displayed for the pool.

    4. Close the NSS Console by entering

      exit

16.6.4 Rebuilding the MSAP Block for a Given NSS Pool with NSSMU

If the MSAP block for a pool becomes corrupt, it prevents a pool from going into the Maintenance state. Use the /MSAPRebuild option to rebuild a pool’s corrupt MSAP block. Before issuing the command to rebuild, you must deactivate the pool. Rebuilding an MSAP block does not give the rebuilder ownership of the pool.

  1. Open a terminal console, then log in as the root user.

  2. Deactivate the pool.

    1. Start NSSMU by entering the following at the terminal console prompt:

      nssmu
    2. Go to the Pools page.

    3. Select the pool, then deactivate it by pressing F7.

    4. Exit NSSMU.

  3. Rebuild the MSAP block for the pool.

    1. Start the NSS Console by entering the following at the terminal console prompt:

      nsscon
    2. At the nsscon prompt, enter

      nss /msaprebuild=poolname
    3. Close the NSS Console by entering

      exit
  4. Activate the pool.

    1. Start NSSMU by entering the following at the terminal console prompt:

      nssmu
    2. Go to the Pools page.

    3. Select the pool, then activate it by pressing F7.

    4. Exit NSSMU.

      The pool should now be able to be placed in Maintenance mode.

16.6.5 Determining If MSAP Is Enabled or Disabled on NSS Pools with NSSMU

The nss /pools command displays the message Multi-Use Detect for NSS pools that have MSAP enabled.

  1. At the NSS Console (nsscon) prompt, enter

    nss /pools
  2. For each pool, review the messages to determine whether MSAP is enabled or disabled as follows:

    • MSAP Enabled: The Multi-Use Detect message is displayed for the pool.

    • MSAP Disabled: The Multi-Use Detect message is not displayed for the pool.

16.6.6 Managing MSAP with XML or APIs

The _admin\manage_nss\pool\poolname\zlss\msap.xml file contains MSAP statistics for the pool. One file exists for each pool.

The MSAP attribute is displayed in the Enabled Attributes (<enabledAttributes>) tag of the poolinfo.xml management file.

For manage.cmd, the pool operation getPoolInfo returns the MSAP tag (<msap>) in the Supported Attributes tag (<supportedAttributes>) and the Enabled Attributes tag (<enabledAttributes>).

For APIs, the pool feature zpool_feature_msap can be viewed and controlled using the zGetInfo and zModifyInfo commands.

16.6.7 Additional Information

For more information about the MSAP commands used in this section, see Section A.22, Multiple Server Activation Prevention (MSAP) Commands.