H Logical Library Support

This appendix discusses logical library support.

About Logical Libraries

A portion of the ACSLS physical library configuration can be presented to SCSI clients as a logical library that can behave as a target device on the SAN. A logical library, in reality, is a defined parcel of a physical library with specific user-assigned resources including tape drives and volumes. Logical libraries are exposed to client application software through a SCSI (fibre-attached) interface.

A fibre channel HBA port typically operates in initiator mode, and can issue SCSI requests to a remote target device such as a disk drive, tape drive, or media changer device. In order to use logical libraries, you must configure one or more fibre ports to operate in target mode instead.

You can select one or more FC ports for target mode operation, or set target mode ports back to initiator mode, when running the install.sh or the getHba.sh utilities. A reboot is required for any change to take effect.

A logical library can be created using any eligible physical library as the backing ACS. The backing ACS identifies the physical library from which the logical library is created. The backing ACS:

  • Must be configured to the ACSLS library server, but it need not be online in order to create a logical library.

  • Can be an entire physical ACS, or it can be a physical partition of an ACS if the library itself supports physical partitioning.

To create, manage, or delete logical libraries, you can use either the ACSLS Graphical User Interface (GUI) or the lib_cmd Command Line Interface (CLI).

Benefits

Logical libraries enable you to do the following:

  • Partition physical libraries into logical libraries.

    Logical libraries can be managed and used by client applications as if they were separate libraries.

    ACSLS provides a flexible partitioning mechanism that is not tied to specific physical storage locations. A logical library is defined in terms of volumes and drives, and ACSLS presents these to the client using logical locations. The logical library is not limited by any physical divisions within an ACS, such as panel or rail boundaries.

    Logical libraries also protect clients from potentially disruptive changes. When ACSLS chooses a new physical home cell for a volume, keeping it close to a compatible drive, or when an existing logical library is expanded, the client application is not impacted.

  • Report the entire 8-character barcode as the volser.

    When creating your logical library, you can specify the volume label format for clients: 6-character, 8-character-prefix, 8-character-suffix, or all. The 8-character barcodes include media domain, and type after or before the volser.

    Note:

    Volume labels longer than 6 characters are not accessible to ACSAPI clients.
  • Manage client access to drives and volumes.

    Drives and volumes that are assigned to a logical library are accessible only to the client that is using the library, and are not visible to other FC or ACSAPI clients. However, the ACSLS GUI and cmd_proc are able to see them since these interfaces operate in system administrator capacity.

  • Provide multiple initiator support.

    A logical library can be made accessible to multiple clients (specifically, to multiple initiator ports). The purpose is to support redundancy on the client side, not to allow simultaneous operation of a logical library by multiple clients. Only one client system should operate a logical library at a given time.

    Allowing multiple initiators means that a single client system can access their assigned logical library over multiple FC HBAs or ports. If the client environment supports a fail-over capability, the logical library is immediately accessible to the new active client system.

    Any Unit Attention or Check Condition raised for a logical library is presented on each connection that has been configured.

Limitations

Logical libraries:

  • Are only accessible to clients using the ACSLS SCSI Media Changer Client Interface. They are not available to clients that use the legacy ACSAPI.

  • Cannot span more than one physical ACS (or physical partition).

  • Cannot reserve specific storage cells in the physical ACS. Combining logical and physical partitioning would be a way to accomplish a similar result.

  • Target mode FC ports may no longer be included in the output from certain Solaris commands, such as fcinfo.

Creating a Logical Library

Before you use the ACSLS GUI or lib_cmd to create a logical library, a physical library must have been created using the acsss_config or config acs utility. An audit should also be performed before you create the logical library.

When creating a logical library, you:

  • Specify a physical ACS

  • Specify the attributes of the logical library

  • Assign one or more physical drives

  • Assign one or more physical volumes

  • Specify client access to the logical library

Specifying a Physical ACS

When you specify the backing ACS for a logical library, you automatically limit the drives and volumes that can be assigned to the logical library in subsequent steps. Only those drives and volumes that are in that ACS, and are not already assigned to another logical library, are available.

A logical ACS number is assigned by ACSLS when the logical library is created. The ACS number range for a logical library is n001-n999 where
n = (1 + the backing physical ACS ID).

For example:

  • a logical library backed by physical ACS 0 might be 1001

  • a logical library backed by ACS 4 might be 5001

Specifying the Attributes of the Logical Library

The following attributes can be specified for a logical library:

  • Unique name for the logical library

  • Capacity

    This is the maximum number of volumes that can be accessible in the logical library at any time (the number of storage elements that they would be able to inventory). The minimum is 0, and the maximum is 64,536. There is no default.

    The capacity can be used both to restrict the size of a logical library (setting a limit that is less than the actual physical capacity) or to over-allocate physical capacity (setting a limit higher than what is actually available).

    • Number of import/export cells

      The minimum is 2, and the maximum is 400. The default value is 2.

    • Number of drive slots

      This is the maximum number of drives that can be assigned. The minimum is 0, and the maximum 500. There is no default.

    • Label format

      Today, support for longer volume labels in physical libraries relies on library firmware and configuration.

      However, logical libraries can report the entire barcode (the 6 volser characters with the media domain and type suffixed). This provides an 8-character volser: xxxxxxL4. The logical library is configurable so the media domain and type can either be appended to the volser or they can prefix the volser (such as, L4xxxxxx).

      The label formats supported, are: 6-character, 8-character-suffix (the default), and 8-character-prefix.

Assigning One or More Physical Drives

Any physical drive that is installed and configured in the backing ACS can be added to a logical library. There are no restrictions on drive type for a logical library.

Physical drives that are allocated to logical libraries:

  • become inaccessible to ACSAPI clients.

    The physical libraries, along with any drives and volumes that are not allocated to logical libraries, remain accessible to ACSAPI clients.

  • are allocated exclusively.

    They cannot be shared across logical libraries.

You cannot assign more physical drives to a logical library than the number of drive slots that were specified when creating the logical library. However, it is possible to assign fewer drives since a logical library can have empty drive slots.

Note:

Locked drives cannot be assigned to a logical library. (A locked drive is already being used by some ACSAPI client.)

You can increase or decrease the number of drive slots at any time. If you want to lower the number of slots to a value below the number of currently-assigned physical drives, you first have to un-assign some drives.

Assigning One or More Physical Volumes

When creating a logical library, you specify its capacity: the maximum number of volumes that can be accessible at any given time. Make volumes accessible by assigning them to a logical library.

Assignment is exclusive - a cartridge can only be assigned to one library. Most cartridges that are present in the backing ACS, and that have not already been assigned to any logical library, are eligible for assignment.

You can not assign volumes that are:

  • cleaning cartridges (ACSLS and the library handle cleaning).

  • locked (A lock indicates use by an ACSAPI client).

  • owned (An owner indicates use by an ACSAPI client).

Once the number of accessible volumes in a logical library has reached the maximum capacity, no more cartridges can be added. Either increase the library capacity, or free some used space.

Space is released in a logical library when an assigned volume becomes inaccessible. This can happen when an assigned volume is:

  • marked for eject by FC client.

  • ejected from the library.

  • marked absent by ACSLS.

Volumes that are assigned, but inaccessible, are automatically reactivated if they become accessible again (for example, an ejected volume can be re-entered into the backing ACS) and if the logical library has space available.

Finally, you can free space in a logical library by un-assigning volumes. A cartridge can be unassigned from a logical library if the cartridge is not in use (such as, it cannot be mounted in a logical drive, it cannot be selected for an eject operation, and so forth).

Notes:

  • Un-assigning a volume from a logical library does not imply any type of deletion or eject operation. Ejecting a volume does not imply an un-assign operation.

  • Remember that physical storage cells are neither pre-allocated, nor assigned to a logical library. A logical library contains specific volumes rather than specific cells. Cells only ”belong” to a logical library when they contain an assigned volume.

  • The total number of accessible volumes among logical libraries that share a backing ACS can never be more than the physical capacity of the backing ACS.

The number of volumes assigned to a logical library can be displayed from lib_cmd or from the Logical Library Detail Information page in the GUI. Assigned volumes are shown as two separate counts:

  • Accessible Volumes - This represents volumes that are assigned, are in the library, and are generally available for client use.

  • Inaccessible Volumes - This number represents volumes that are assigned, but are not available for client use due to any of the following reasons: 1) the volumes have been marked as absent or ejected; 2) the volumes have been marked for eject by the FC client; 3) the volumes have been re-entered but the logical library was full; 4) the volumes have been re-entered into the wrong physical library.

You can increase or decrease the number of storage slots at any time. If you want to lower the number of slots to a value below the number of currently-assigned physical volumes, you first have to un-assign some volumes.

Specifying Client Connections

The ACSLS SCSI Media Changer Interface makes logical libraries available for client use over a Fibre Channel (FC) connection. To allow FC clients to access the logical libraries, you will need at least one FC port that is configured to operate in target mode.

If you configured a target port while running install.sh during the ACSLS installation process, continue to create the logical library. If you have not yet configured a target port, use getHba.sh to configure the target port. Then, shutdown ACSLS and reboot the ACSLS server. For more information, see "How to Configure an FC Port in Target Mode"

Once you have configured a target port, the GUI makes it easy to manage client connections when you are creating or updating a logical library. The GUI screens provide a list of the target ports that are available on the ACSLS system, and also provide a list of any clients that have inquired about those ports over a FC connection. ACSLS automatically detects those inquiries and remembers the WWN of each client.

To assign a logical library to a client, check the appropriate boxes in the GUI.

Once you have configured a target port, it is easy to manage client connections either from lib_cmd or the GUI when you are creating or updating a logical library. Both the GUI and the interactive-mode lib_cmd provide a list of the target ports that are available on the ACSLS system. They also provide a list of any clients that have inquired about those ports over a FC connection. ACSLS automatically detects those inquiries and remembers the WWN of each client.

To assign a logical library to a client, use create mapping in lib_cmd or check the appropriate boxes on the Manage Connections page in the GUI.

A friendly 'alias' name can be used in lieu of the WWN to identify each client system. To assign an alias, use edit initiator in lib_cmd, or select the 'Edit Initiator Alias' operation on the Manage Connections page of the GUI

Fast Load

The ACSLS Fast Load setting controls how completion of the move command is reported when the destination element is a tape drive.

With Fast Load enabled, a success status is returned once the operation has been validated and accepted by ACSLS, but before cartridge movement begins. If some error should occur during movement, ACSLS does not report that information. The client is responsible for identifying when the volume has been loaded and is usable, and for timing out the request in the case of any error.

With Fast Load disabled (the default setting), success status is not returned until the physical library has reported that the movement is complete. However, if an error should occur during movement, ACSLS reports that information to the client.

Physical libraries may provide their own Fast Load option which can affect the time required before ACSLS would return a success status (but only when ACSLS Fast Load is disabled). When ACSLS Fast Load is enabled, the library setting would have no effect on client notification.

Deleting a Logical Library

A logical library can be removed from the ACSLS configuration when it is no longer needed. Removing a logical library also removes all logical drives, volume assignments, and client mappings. The number assigned to this logical library can now be used when a new logical library is created. ACSLS does allow gaps in logical library numbering, but will reuse available numbers.

Note:

Remove any logical libraries that are associated with a physical ACS before removing the ACS from your library configuration. This ensures proper removal of associated fibre channel connections.

Before you remove a logical library, note the following points:

  • The logical library should be offline.

  • All logical drives should be offline.

This ensures that no client operations are in progress when deleting the library. If a logical drive or volume is found to be in use, the logical library is not deleted.

Troubleshooting

This section describes some possible problem scenarios, and offers ideas on how to diagnose and resolve the problems.

What if a client cannot see the logical library that I've assigned?

  1. Make sure that ACSLS is running, by running acsss status.

    This utility shows if ACSLS is in general enabled.

    For FC problems, look at the smce service. This service provides the SCSI Media Changer interface to logical libraries.

  2. If ACSLS is running, check to make sure your client connections have been defined correctly.

    • You may have assigned a target-initiator pair that is not really connected over FC

    • You may have assigned the logical library to the wrong client (the wrong target-initiator pair)

    • The getHba.sh utility can be useful in identifying which initiators (clients) are detected and which ones are connected to specific target ports.

What if a client is connected correctly, but still doesn't see the logical library?

You may need to force the client to re-discover target devices. The actual mechanism depends on the operating system of the client system. The client OS must be able to see the device before any client application is able to use it.

For example, on a Solaris client, the cfgadm and devfsadm commands can be used to update the device file system and configuration.

What if a client has trouble configuring to a logical library?

A client backup application may not recognize the ACSLS logical libraries as a supported library type. Logical libraries return a unique inquiry string which may require an update from the software vendor. An application-specific mapping file may also be required in order to configure the library and its tape drives correctly.

Sometimes, client software expects that a tape library always appears as LUN 0 on a SCSI target. Normally, the first logical library on a target port for a client would, in fact, be presented as LUN 0. However, if multiple libraries are assigned to a client on a given target port, they cannot count on always seeing a library as LUN 0. This is a client issue.

How to Configure an FC Port in Target Mode

During installation, you are asked to select an HBA to be used as a target port. This operation applies only if you intend to present one or more logical libraries to SCSI (FC) client applications.

After installation, use the getHba.sh utility to configure a Fibre Channel port in target mode. The getHBA.sh utility can be run any time a new HBA has been added to the system, or any time the HBA ports are re-arranged. This utility identifies an appropriate HBA port to change from initiator to target mode in order to reveal a client access point to ACSLS logical libraries.

If you intend to configure one or more logical libraries for SCSI direct, attach clients, then select the HBA that should be converted from initiator mode to target mode. Ideally, the HBA that you select is connected to the fabric, and has visibility to the remote HBA intended as the SCSI client initiator.

Once the target-mode change has been set for the given HBA, a reboot is necessary in order to complete the HBA conversion.

To configure a Fibre Channel port in target mode, complete the following procedure:

  1. Login as root

  2. Go to the $ACS_HOME/install directory, or include it in your path.

  3. Run getHba.sh

Example:

# ./getHba.sh
Please select the HBE port you intend for Target-mode operation:
Select from the following list:
1)HBA Port WWN 210000lb3213ble2   Not connected.
2)HBA Port WWN 210100lb3233ble2   Not connected.
3)None of these.
2
HBA Port WWN 210100lb3233ble2/pci@1,0/pci1023,7450@1/pci1077,141@3,1
Is this correct? (y or n):y
Are there additional ports you wish to reconfigure? (y or n):n
A reboot will be necessary for these changes to take effect.