expandarray
Use the expandarray command to add new drive capacity to an existing distributed array MDisk.
Syntax
Parameters
- (Required) The resulting drive count after expansion is completed. This value must be an
integer in the range of 5 and 128. For distributed RAID 1 arrays, this value must
be an integer in the range of 3 and 16.
- Up to 48 NVMe drives in a distributed RAID 6 array.
- For (any) distributed RAID 6 arrays it is not allowed to add more than 42 members drives in one expandarray invocation.
- For (any) distributed RAID 1 arrays it is not allowed to add more than 12 member drives in one expandarray invocation.
- (Optional) The drive class (as specified by lsdriveclass) to be used for selecting new member drives. If you do not specify a drive class, the default drive class is the one quoted in lsarray for the distributed array.
- (Optional) The resulting rebuild area count after expansion is completed. The additional rebuild area value must be included in totaldrivecount. This value must be an integer in the range of 1 and 4. For distributed RAID 1 arrays, this value must be 1. Values 2, 3, and 4 are not supported. If you do not specify a value, the rebuild area count for the array remains unchanged, even if the total drive count exceeds a threshold where the default array creation behavior would result in creating an extra rebuild area.
- (Optional) The identity of the array MDisk. Required if mdisk_name is not specified.
- (Optional) The name of the array MDisk. Required if mdisk_id is not specified.
Description
This command starts the array expansion task.
Important: The -totaldrivecount value includes any extra drives
that are added as rebuild areas.
This list describes some items to be aware of when you expand an array:
- Multiple expansions are not configured and queued. The maximum number of active expansions in the system is four and there can be only one in a pool at one time.
- The command uses the totaldrivecount/totalrebuildareas to ensure that if a mistake occurs and the current size of the array is entered then the command has no effect.
- If no drive class is specified, then the drive class of the array you are expanding is used. If a drive class is specified, then it is validated to ensure it is equivalent or superior to the drive class of the array you are expanding.
- The array must have no used rebuild areas or background tasks in progress or the command fails.
- The progress of the expansion can be monitored by using the lsarrayexpansionprogress command.
- An expansion cannot be canceled.
- Volume copies with sequential (seq) policy that are allocated from the expanding MDisk change to striped as part of the expansion migration.
- Expansion can have an impact on host performance and latency when performed on an array that has over 50% load.
An expansion is suspended if any of the following conditions exist:
- The expanding MDisk goes offline.
- There is a read error during migration activity.
- It is necessary (but not possible) to record a virtual medium error.
- An out of space condition occurs on an MDisk that is used as an expansion migration target.
Invocation examples
svctask expandarray -totaldrivecount 8 mdisk3 // Expand mdisk3 to 8 drives from the array's driveclass
svctask expandarray -totaldrivecount 6 -totalrebuildareas 2 32 // Expand mdisk 32 to 6 drives, 2 of which being rebuild areas
svctask expandarray -driveclass 0 -totaldrivecount 16 48 // Expand mdisk 48 to 16 drives from drive class 0
The resulting output:
None