Expanding an MDisk in a distributed array

You can use the management GUI or the expandarray command to increase the number of drives in an array by including new drives into the array.

Distributed RAID expansion

You can expand distributed RAID arrays to increase the available capacity of the array or add usable capacity. As part of the expansion, the system automatically migrates data for optimal performance for the new expanded configuration. Expansion of distributed RAID arrays supports incremental growth of available capacity for arrays and is compatible with other functions, such as IBM® Easy Tier® and data migrations.

You can dynamically add one or more drives and increase the capacity of an existing distributed RAID array that is already in use. The expansion process is dynamic and nondisruptive, which means that you can continue to access the data on the distributed RAID array. New drives are integrated and data is re-striped to maintain the placement of strips across the existing and new components. Stripe width does not change during an expansion. This means that when an array is expanded, it would allocate parity in the same ratio. Therefore, not as much of the new drives would be additional capacity compared to an equivalent array with the same number of drives with a higher stripe width, as the ratio of data strips to parity strips would be lower. Expansion does not allow you to change the stripe width or geometry. For more information about stripe width and strips, see Distributed RAID array properties.

Note: Array expansion can affect host performance and latency. Do not expand an array when the array has over 50% load. If you do not reduce host I/O load, the amount of time that is needed to complete the expansion increases greatly.
Note: When you expand a thin-provisioned NVMe array, the physical capacity is not immediately available, and the availability of new physical capacity does not track with logical expansion progress.

Using the management GUI

To expand a distributed RAID array, complete these steps:
  1. In the management GUI, select Pools > MDisks by Pools.
  2. Expand the pool and right-click an MDisk within a distributed RAID array and select Expand.
  3. Select the drive class that is compatible with the drives in the original MDisk and enter the number of drives to expand the array.
  4. Expand Advanced Settings to view the number of additional drives that is recommended for the new configuration.
  5. Click Expand. After starting the expand operation, you can monitor the progress of the expansion by selecting Monitoring > Background Tasks.
    Note: The Progress Remaining value represents the expected time of completion for the data migrations that are required during the expansion of the array. The Progress Remaining value can be empty during processing when data migrations are not required or have not started. In these cases, use the percentage value in the Progress column or the value displayed in the Additional Capacity Remaining field to estimate completion of the expansion.

Using the command-line interface

To expand a distributed array, complete these steps:
  1. To expand a distributed array, enter the following command:
    svctask expandarray -totaldrivecount <total_drive_count> -driveclass <drive_class_id> -totalrebuildareas <mdisk_id_or_name>
           
    The <total_drive_count> value is the resulting total number of drives after expansion is completed, including any drives that are added as rebuild areas. Include <drive_class_id> to identify the compatible drive class for the array and the name or identifier of the MDisk that you are expanding
  2. To monitor progress of the array expansion, enter the following command:
    svcinfo lsarrayexpansionprogress <mdisk_id_or_name>
    Where <mdisk_id_or_name> is either the name or identifier of the MDisk. In the results that display, the value in the estimated_completion_time parameter represents the expected time of completion for the data migrations that are required during the expansion of the array. The estimated_completion_time parameter can be empty during processing when data migrations are not required or have not started. In these cases, use the percentage value in the progress parameter or the value displayed in the additional_capacity_remaining parameter to estimate completion of the expansion.