Load Balancing Operations between Libraries

Table of Contents

Overview

The software system includes many features that help you to balance the operations between available storage resources in the CommCell. For example:

  • You may find that a specific MediaAgent over loaded or slow and hence you may want to configure the MediaAgent in such a way that a only a specific number of jobs use the MediaAgent at any given time, while re-directing the overflow jobs to other MediaAgents in the CommCell.
  • You may want more jobs to use a specific MediaAgent with a library that has faster and/or more number of drives, then MediaAgents with libraries that have slower and/ or fewer drives.
  • You may want to utilize all storage resources in the CommCell, so that all data protection operations are completed in the specific operation window.

This document describes how to configure the MediaAgent software to distribute the load between multiple resources.

Load Balancing Using the Leaky Bucket Mechanism

Using the leaky bucket mechanism each resource will be utilized until the threshold established for the resource is reached. When the thresholds are reached, the system automatically uses the next available resource.

Consider the following examples:

Example 1:

This example illustrates how load balancing can be accomplished between 2 MediaAgents that share a library.

In this example, 2 MediaAgents (MediaAgent 1 and MediaAgent 2) are configured to share a library with 4 drives. Such a configuration would result in the following data paths:

  • MediaAgent 1 -> Library 1 -> Drive Pool 1 -> 4 drives
  • MediaAgent 2 -> Library 1 -> Drive Pool 2 -> 4 drives

To perform load-balancing between the 2 MediaAgents, you can allocate 2 drives for each of the MediaAgents. This can be done by as follows:

  • Allocating 2 drives to each of the drive pools.
  • Setting the criteria for using the alternate data path when resources are busy.

This ensures that jobs automatically switch-over to the next available resource, when the thresholds are reached.

In the above example, (assuming that several jobs are running concurrently at a given time) the first two jobs will use the resources in data path 1, while the third and fourth jobs use the resources in data path 2. Subsequent jobs in the queue will be routed to a data path with an available resource, as soon as a resource is freed.

Example 2:

This example illustrates how load balancing can be accomplished between a tape library and a disk library.

In this example, MediaAgent 1 has a disk library configured, while MediaAgent 2 has a tape library. Such a configuration would result in the following data paths:

  • MediaAgent 1 -> Disk Library 1 - >Mount Path
  • MediaAgent 2 -> Tape Library 1 -> Drive Pool 1 -> 4 drives

To perform load-balancing between these 2 MediaAgents, in such a way that at any given time 2 jobs write to the disk library, while also using all the drives in the library. This can be done by as follows:

  • Setting the maximum number of writers to 2 in the disk library.
  • Allocating the maximum number of drives (4 in this example) in the drive pools associated with the tape library.
  • Setting the criteria for using the alternate data path when resources are busy.

In the above example, (assuming that several jobs are running concurrently at a given time) the first two jobs will use the resources in data path 1, while the next four jobs use the resources in data path 2. Subsequent jobs in the queue will be routed to a data path with an available resource, as soon as a resource is freed.

Note that at any given time, the maximum number of jobs will be within the established threshold. (i.e., 2 for the disk library and 4, which is the maximum or the total number of drives in the tape library.)

Load Balancing Using Spill and Fill

The spill and fill method equally distributes the jobs among available resources.

The following example illustrates the spill and fill mechanism between tape and disk libraries:

In this example, 2 MediaAgents have been configured with tape libraries, while 2 more MediaAgents have 2 disk libraries configured. Such a configuration would result in the following data paths:

  • MediaAgent 1 -> Tape Library 1 -> Drive Pool 1 -> 3 drives
  • MediaAgent 2 -> Tape Library 2 -> Drive Pool 1 -> 3 drives
  • MediaAgent 3 -> Disk Library 1 - >Mount Path 1
  • MediaAgent 4 -> Disk Library 2 - >Mount Path 1

To perform load-balancing between these 4 MediaAgents, in such a way that at any given time 2 jobs write to the disk library, while using all the drives in the tape libraries. This can be done by as follows:

  • Setting the maximum number of writers to 2 in the disk libraries.
  • Allocating the maximum number of drives (3 in this example) in the drive pools associated with the tape library.
  • Setting the criteria for using the alternate data path as spill and fill .

This ensures that the jobs are distributed equally among all the MediaAgents.

See Also: Load balance (Spill and fill) between Data Paths.

Load Balancing between Disk Libraries

You can perform a simple load-balancing between 2 mount paths in a disk library, without using alternate data paths. This can be done using the Mount Path Allocation Policy in disk libraries and mount paths.

The following example illustrates this mechanism.

In this example, MediaAgent A has a disk library containing 2 mount paths. To perform load-balancing between these 2 mount paths, in such a way that at any given time 5 jobs write to the disk library, you can:

  • Define the Mount Path Allocation Policy at the disk library to 10.
  • Define the Mount Path Allocation Policy at each of the mount path to 5.

In the above example, (assuming that several jobs are running concurrently at a given time) the first five jobs will use mount path 1, and the next five jobs will use mount path 2. Subsequent jobs in the queue will be routed to either one of the mount paths, as soon as a mount path is freed.

Once the maximum allocated writers are used, the system will constantly check for an available resource, and as soon as one is freed the next job in the queue will be automatically routed to use that resource.