K Library Performance

This chapter discusses how to maximize your library performance during pass-thru activity between Library Storage Modules (LSMs). ACSLS works to minimize pass-thru activity in several ways. You can enhance performance by using these ACSLS facilities to minimize pass-thru activity. They are:

  • Sending enough concurrent mount and dismount requests

  • Connecting to Multiple SL8500s

  • Minimizing pass-thru activity between LSMs

  • Floating cartridges during a dismount

  • Entering cartridges into a library

  • Ejecting cartridges from a library

  • Maintaining empty storage cells in a library

  • Minimizing pass-thru activity with ACSAPI requests and ACSLS commands

  • Using these ACSAPI requests and ACSLS commands

Sending Enough Concurrent Mount and Dismount Requests

Some client applications are designed for simple SCSI Media Changer libraries, which only process a single request at a time. However, ACSLS and SL8500 and SL3000 libraries, are designed to process many requests at the same time. Each library can have at least 40-50 concurrent requests in its queue, and the ACSLS queue is essentially unlimited.

A client can send ACSLS hundreds of concurrent mount and dismount requests. To maximize library performance, the client(s) should send ACSLS enough requests to keep all of the robots, and so forth in the library, busy.

If a client can only send ACSLS a limited number of concurrent requests, you can attach multiple clients to ACSLS. For example, if a particular client application only sends ACSLS a single mount or dismount request at a time, by connecting 12-16 client applications per SL8500 to ACSLS, you can send ACSLS enough concurrent mount and dismount requests to keep all of the robots in an SL8500 busy.

Here are the details to understand how many concurrent requests may be needed to keep of the library's robots busy:

  • The library does not return the mount response to ACSLS until the drive is loaded and ready. In this way, ACSLS knows whether the mount was successful.

  • In a smaller SL8500, with about 3000 storage cells, it takes the robot about 10-15 seconds to move a cartridge to a drive.

  • However, it takes an LTO drive about 19 seconds to load the cartridge and come ready.

  • To keep even one robot on a rail busy, you need at least three overlapping mount requests on that rail.

    This lets the robot(s) process other mounts while the first drive receiving a cartridge is loading and coming ready. With two robots per rail, you may want to have at least four concurrent mounts or dismounts per rail.

  • An SL8500 has four rails, so you need 12-16 concurrent mount and dismount requests per SL8500 to keep all of the robots in an SL8500 busy.

    All of these concurrent requests could come from a single ACSAPI client, or they could come from 12-16 different clients, each of which only issues a single request at a time, and waits for the response before issuing the next request.

Connecting to Multiple SL8500s

If your ACSLS server is managing a string of SL8500s connected through pass-thru ports, connect to each SL8500 in the string. This lets ACSLS optimize library performance by routing requests to the library that answers the status or initiates the cartridge movement.

Refer to "Multi TCP/IP Support" for details on connecting to multiple SL8500s in a string.

Minimizing Pass-thru Activity Between LSMs

To improve tape library performance, it is important to minimize pass-thru activity from one library to another. When cartridges and drives are in connected libraries, it is always desirable if tape mounts occur when both the drive and the cartridge are in the same LSM (rail within a library). Mounts that require fewer pass-thrus result in better performance.

Figure K-1 shows the pass-thrus that can be required when a cartridge and drive are in different LSMs.

Figure K-1 Minimizing Pass-thru Activity Between LSMs

Description of Figure K-1 follows
Description of ''Figure K-1 Minimizing Pass-thru Activity Between LSMs ''

For more information, refer to "Minimizing Elevator and PTP Activity","Configuring Tape Drives to Support Your Workloads", and"Managing Cartridge Locations".

Floating Cartridges During a Dismount

When cartridges are dismounted, ACSLS tries to avoid pass-thru activity among LSMs by assigning a new home cell whenever the cartridges' old home cell is in a different LSM than the drive. This is ACSLSs' default behavior. To disable this feature, use the ”Extended Store” feature for an LSM. Cartridges being dismounted are ”floated” to a new home cell to avoid movement between LSMs.

Maintaining Empty Storage Cells in an LSM

ACSLS cannot ”float” cartridges to an LSM on a dismount if all of the storage cells are full. Similarly, when cartridges are entered into a full LSM, the cartridges must be passed-thru to an LSM with empty cells.

To optimize performance, identify cartridges that do not need to be kept in the library for StreamLine access, and eject those cartridges from the library. You may also want to move cartridges from full LSMs to other LSMs with enough empty cells so that all LSMs have empty storage cells. See, "Moving Least-Recently Accessed Cartridges from Active LSMs".

Note:

Managing the cartridges in a library should be done when the library is not busy with mount requests.

Mount and Dismount Timeouts

The timeouts for mounts and dismounts need to be coordinated between ACSLS and client applications. The clients' timeouts need to be long enough that mounts and dismounts that require pass-thru between SL8500 rails and libraries can finish. They also need to be long enough so multiple concurrent requests can finish, especially if the requests may wait for a pass-thru port.

ACSLS also automatically queues requests during a temporary library or tape drive outage and retries them when the library or drive is available. This prevents requests from failing during a Redundant Electronics switch, when a library or drive is re-booted, or when the library's access door is opened.

The default time to queue mounts and dismounts (MOUNT_RETRY_TIME_LIMIT) is 20 minutes. Customers can set this to any time between 5 and 80 minutes. ACSLS also checks every MOUNT_RETRY_DELAY to see if the library is available to process the queued request. Both of these are dynamic variables, which means that they can be changed while ACSLS is running, and the change takes effect immediately.

Adjust the ACSAPI clients' timeouts to allow requests in a large library complex to complete. Also coordinate the MOUNT_RETRY_TIME_LIMIT with the ACSAPI clients' mount and dismount timeouts.

Entering Cartridges into a Library

When cartridges are entered into a library, each cartridge is assigned a home cell in the closest LSM to the CAP. If the LSM with the CAP has empty cells, home cells are assigned in this LSM. If the LSM with the CAP is full, home cells are assigned in the closest LSM with empty cells.

To optimize performance, enter cartridges into an LSM with tape drives that are compatible with the cartridge(s). For example, enter 9940 cartridges into an LSM with T9940B tape drives, not into an LSM with only T9840B tape drives. Otherwise, the 9940 cartridges must be passed-thru to an LSM with T9940B tape drives.

Ejecting Cartridges from a Library

When cartridges are ejected from a library, the cartridges must be moved to the specified CAP(s).

To optimize performance, eject cartridges to a CAP in the LSM where the cartridges are located. If the cartridges are located in several LSMs, choose a CAP that is close to most of the cartridges.

Minimizing Pass-Thru Activity Using ACSAPI Requests and ACSLS Commands

These ACSAPI requests and ACSLS cmd_proc commands can help you avoid unnecessary pass-thru activity between LSMs.

The following applies to both ACSAPI requests from a client to ACSLS, and to ACSLS commands entered using cmd_proc. The term ”request” is used for both ACSAPI requests and cmd_proc commands.

Mounting a Specific Cartridge

This applies to either mounting a data cartridge or a specific scratch (empty) cartridge that you selected. Use the following commands:

  • query mount

  • mount

query mount

  • For a specified cartridge (vol_id), return a list of drives that are compatible with the cartridge's media type, ordered by proximity to the cartridge. (The compatible drives in the closest LSM are listed first, and so forth.)

  • With ACSLS 7.3 and later releases, drives that are the same pass-thru distance from the cartridge are in least-recently-used order.

    Example: The compatible drive within the cartridge's LSM with the longest time since a cartridge was dismounted, is first; the drive with the next longest time, is second, and so on.

Command: query mount vol_id

mount

Mount your specific cartridge, selecting an available (not in-use) drive from as close to the top of the list as possible.

Mounting a Scratch Cartridge Selected by ACSLS

The following section discusses mounting a scratch cartridge selected by ACSLS.

query mount scratch (also known as query mount *)

For a specified scratch pool, a list of all drives compatible with the media type(s) of the cartridges in a specified scratch pool is returned. A specific media type can be specified to restrict the drives to only those compatible with the specified media type.

The list of drives returned is ordered so that the drives closest to the densest scratch pools are listed first.

Command:

  • ACSAPI

  • cmd_proc

  • query mount scratch

    query mount * pool_id [media media_type]

Either a specific media type or ALL_MEDIA_TYPE (media * in a cmd_proc command) can be specified. ANY_MEDIA_TYPE is not supported.

Note:

When ALL_MEDIA_TYPE is specified, cartridges with media compatible with the drive are selected to determine the densest scratch pool.

mount scratch (also known as query mount *)

For a specified drive, select a scratch (empty) cartridge and mount it. Optionally, select the cartridge from a specified scratch pool and/or with a specified media type. ACSLS selects a compatible scratch cartridge in the closest LSM to the drive. In order to rotate use among all cartridges, the compatible cartridge with the least recent access date is selected within the selected LSM.

Command:

  • ACSAPI

    cmd_proc

    mount scratch

    mount * drive_id [pool_id] [media media_type]

  • For an ACSAPI request, drive_id, pool_id and media_type must be specified. (Either a specific media type, ALL_MEDIA_TYPE, or ANY_MEDIA_TYPE can be specified for media_type.)

  • With a cmd_proc mount * command, if pool_id is not specified, it defaults to the common pool (pool 0).

    A specific media type can be identified. If media * is specified, ANY_MEDIA_TYPE is chosen. If media is not specified, ALL_MEDIA_TYPE is chosen.

The special media_type values of ANY_MEDIA_TYPE and ALL_MEDIA_TYPE are processed, as follows:

  • When ALL_MEDIA_TYPE is specified, a cartridge with a media type compatible with the drive is selected. (This is based on the media_compatibility file.)

  • When ANY_MEDIA_TYPE is specified, the scratch_preferences file identifies the preferred list of media to mount on a drive.

Using these ACSAPI Requests & ACSLS Commands

This section describes how to use the ACSAPI requests and commands for improving tape library performance.

In the following discussion, the term ”request” is used for both ACSAPI requests and cmd_proc commands.

When mounting a specific cartridge (where the vol_id is known):

  • Precede the mount request with a query mount request.

  • Pick the first ”available” drive, and specify this drive in the mount request.

When mounting a scratch cartridge on a specific drive, there are two options:

  • To select the closest scratch cartridge to a specific drive:

    Use a mount scratch request specifying a drive and, optionally, a scratch pool.

    For ACSAPI requests, specify one of the following:

    • ALL_MEDIA_TYPE (compatible media is selected)

    • ANY_MEDIA_TYPE (uses the scratch preference list).

    For cmd_proc commands, select one of the following:

    • Do not specify a media type (compatible media is selected)

    • Specify media * (uses the scratch preference list).

  • To select a specific drive from a list of drives, and then select the closest scratch cartridge:

    Pick the drive, then pick the scratch tape: This ensures the drive is close to the scratch cartridge.

    • Enter a query mount scratch request to identify the closest available drive to the most scratch media in the desired scratch pool.

    • Enter a mount scratch request to mount a scratch cartridge on the selected drive. Optionally, specify the scratch pool.

    For ACSAPI requests, either specify:

    • ALL_MEDIA_TYPE (and compatible media will be selected), or

    • ANY_MEDIA_TYPE (to use the scratch preference list).

    For cmd_proc commands, either:

    • Do not specify a media type (and compatible media will be selected), or

    • Specify media * (to use the scratch preference list).