Create RAID volume (automatic drive select)

The create volume command creates a volume group across the drives in the storage array and a new volume in the volume group. The storage array controllers choose the drives to be included in the volume.

Supported Arrays

This command applies to any individual storage array, including the E2700, E5600, E2800, E5700, EF600 and EF300 arrays, as long as all SMcli packages are installed.

Roles

To execute this command on an E2800, E5700, EF600, or EF300 storage array, you must have the Storage Admin role.

Context

Note: If you have drives with different capacities, you cannot automatically create volumes by specifying the driveCount parameter. If you want to create volumes with drives of different capacities, see Create RAID volume (manual drive select).

Syntax

create volume driveCount=numberOfDrives 
[volumeGroupUserLabel="volumeGroupUserLabel"]
raidLevel=(0 | 1 | 3 | 5 | 6) 
userLabel="userLabel"
driveMediaType=(HDD | SSD | unknown | allMedia) 
[driveType=(SAS | NVMe4K)] 
[capacity=volumeCapacity] 
[owner=(a|b)] 
[cacheReadPrefetch=(TRUE | FALSE)] 
[segmentSize=segmentSizeValue] 
[usageHint=(fileSystem | dataBase | multiMedia)] 
[trayLossProtect=(TRUE | FALSE)] 
[drawerLossProtect=(TRUE | FALSE)] 
[dssPreAllocate=(TRUE | FALSE)] 
[securityType=(none | capable | enabled)]
[secureDrives=(fips | fde )] 
[dataAssurance=(none | enabled)]
[resourceProvisioningCapable=(TRUE | FALSE)]
create volume driveCount=numberOfDrives 
[volumeGroupUserLabel="volumeGroupName"] 
raidLevel=(0 | 1 | 5 | 6) 
userLabel="volumeName"
driveMediaType=(HDD | SSD | unknown | allMedia) 
[driveType=SAS] 
[capacity=volumeCapacity] 
[owner=(a|b)] 
[cacheReadPrefetch=(TRUE | FALSE)] 
[segmentSize=segmentSizeValue] 
[usageHint=(fileSystem | dataBase | multiMedia)] 
[trayLossProtect=(TRUE | FALSE)] 
[drawerLossProtect=(TRUE | FALSE)] 
[dssPreAllocate=(TRUE | FALSE)] 
[securityType=(none | capable | enabled)] 
[secureDrives=(fips | fde )]
[dataAssurance=(none | enabled)]
[resourceProvisioningCapable=(TRUE | FALSE)]

Parameters

Parameter Description
driveCount The number of unassigned drives that you want to use in the volume group.
volumeGroupUserLabel The name that you want to give the new volume group. Enclose the new volume group name in double quotation marks (" ").
Note: If you do not specify a user label for the volume group, the controller firmware assigns it a number.
raidLevel The RAID level of the volume group that contains the volume. Valid values are 0, 1, 3, 5, or 6.
userLabel The name that you want to give to the new volume. Enclose the new volume name in double quotation marks (" ").
Note: This parameter is required.
driveMediaType

The type of drive media that you want to use for the volume group. These drive media are valid:

  • HDD – Use this option when you have hard drives in the drive tray.
  • SSD – Use this option when you have solid state drives in the drive tray.
  • unknown – Use this option if you are not sure what types of drive media are in the drive tray.
  • allMedia – Use this option when you want to use all types of drive media that are in the drive tray.
driveType

The type of drive that you want to use in the volume. You cannot mix drive types.

You must use this parameter when you have more than one type of drive in your storage array.

These drive types are valid:

  • SAS
  • NVMe4K

If you do not specify a drive type, the command defaults to any type.

capacity The size of the volume that you are adding to the storage array. Size is defined in units of bytes, KB, MB, GB, or TB.
owner The controller that owns the volume. Valid controller identifiers are a or b , where a is the controller in slot A, and b is the controller in slot B. If you do not specify an owner, the controller firmware determines the owner.
cacheReadPrefetch The setting to turn on or turn off cache read prefetch. To turn off cache read prefetch, set this parameter to FALSE. To turn on cache read prefetch, set this parameter to TRUE.
segmentSize The amount of data (in KB) that the controller writes on a single drive in a volume before writing data on the next drive. Valid values are 8, 16, 32, 64, 128, 256, or 512.
usageHint The setting for both cacheReadPrefetch parameter and the segmentSize parameter to be default values. The default values are based on the typical I/O usage pattern of the application that is using the volume. Valid values are fileSystem, dataBase, or multiMedia.
trayLossProtect The setting to enforce tray loss protection when you create the volume group. To enforce tray loss protection, set this parameter to TRUE. The default value is FALSE.

drawerLossProtect

The setting to enforce drawer loss protection when you create the mirror repository volume group. To enforce drawer loss protection, set this parameter to TRUE. The default value is FALSE.
dssPreAllocate The setting to make sure that reserve capacity is allocated for future segment size increases. The default value is TRUE.
securityType

The setting to specify the security level when creating the volume groups and all associated volumes. These settings are valid:

  • none – The volume group and volumes are not secure.
  • capable – The volume group and volumes are capable of having security set, but security has not been enabled.
  • enabled – The volume group and volumes have security enabled.
resourceProvisioningCapable

The setting to specify if resource provisioning capabilities are enabled. To disable resource provisioning, set this parameter to FALSE. The default value is TRUE.

Notes

You can use any combination of alphanumeric characters, hyphens, and underscores for the names. Names can have a maximum of 30 characters.

The driveCount parameter lets you choose the number of drives that you want to use in the volume group. You do not need to specify the drives by tray ID and slot ID. The controllers choose the specific drives to use for the volume group.

The owner parameter defines which controller owns the volume.

If you do not specify a capacity using the capacity parameter, all of the drive capacity that is available in the volume group is used. If you do not specify capacity units, bytes is used as the default value.

Segment size

The size of a segment determines how many data blocks that the controller writes on a single drive in a volume before writing data on the next drive. Each data block stores 512 bytes of data. A data block is the smallest unit of storage. The size of a segment determines how many data blocks that it contains. For example, an 8-KB segment holds 16 data blocks. A 64-KB segment holds 128 data blocks.

When you enter a value for the segment size, the value is checked against the supported values that are provided by the controller at run time. If the value that you entered is not valid, the controller returns a list of valid values. Using a single drive for a single request leaves other drives available to simultaneously service other requests. If the volume is in an environment where a single user is transferring large units of data (such as multimedia), performance is maximized when a single data transfer request is serviced with a single data stripe. (A data stripe is the segment size that is multiplied by the number of drives in the volume group that are used for data transfers.) In this case, multiple drives are used for the same request, but each drive is accessed only once.

For optimal performance in a multiuser database or file system storage environment, set your segment size to minimize the number of drives that are required to satisfy a data transfer request.

Usage Hint

Note: You do not need to enter a value for the cacheReadPrefetch parameter or the segmentSize parameter. If you do not enter a value, the controller firmware uses the usageHint parameter with fileSystem as the default value. Entering a value for the usageHint parameter and a value for the cacheReadPrefetch parameter or a value for the segmentSize parameter does not cause an error. The value that you enter for the cacheReadPrefetch parameter or the segmentSize parameter takes priority over the value for the usageHint parameter. The segment size and cache read prefetch settings for various usage hints are shown in the following table:
Usage hint Segment size setting Dynamic cache read prefetch setting
File system 128 KB Enabled
Database 128 KB Enabled
Multimedia 256 KB Enabled

Cache read prefetch

Cache read prefetch lets the controller copy additional data blocks into cache while the controller reads and copies data blocks that are requested by the host from the drive into cache. This action increases the chance that a future request for data can be fulfilled from cache. Cache read prefetch is important for multimedia applications that use sequential data transfers. Valid values for the cacheReadPrefetch parameter are TRUE or FALSE. The default is TRUE.

Security type

Use the securityType parameter to specify the security settings for the storage array.

Before you can set the securityType parameter to enabled, you must create a storage array security key. Use the create storageArray securityKey command to create a storage array security key. These commands are related to the security key:

Secure drives

Secure-capable drives can be either Full Disk Encryption (FDE) drives or Federal Information Processing Standard (FIPS) drives. Use the secureDrives parameter to specify the type of secure drives to use. The values you can use are fips and fde.

Tray loss protection and drawer loss protection

To enable tray/drawer loss protection, refer to the following tables for additional criteria:

Level Criteria for Tray Loss Protection Minimum number of trays required
Disk Pool The disk pool contains no more than two drives in a single tray. 6
RAID 6 The volume group contains no more than two drives in a single tray. 3
RAID 3 or RAID 5 Each drive in the volume group is located in a separate tray. 3
RAID 1 Each drive in a RAID 1 pair must be located in a separate tray. 2
RAID 0 Cannot achieve Tray Loss Protection. Not applicable
Level Criteria for drawer loss protection Minimum number of drawers required
Disk Pool The pool includes drives from all five drawers and there are an equal number of drives in each drawer. A 60-drive tray can achieve Drawer Loss Protection when the disk pool contains 15, 20, 25, 30, 35, 40, 45, 50, 55, or 60 drives. 5
RAID 6 The volume group contains no more than two drives in a single drawer. 3
RAID 3 or RAID 5 Each drive in the volume group is located in a separate drawer. 3
RAID 1 Each drive in a mirrored pair must be located in a separate drawer. 2
RAID 0 Cannot achieve Drawer Loss Protection. Not applicable

Example command

create volume driveCount=2 volumeGroupUserLabel="FIPS_VG" raidLevel=1 userLabel="FIPS_V" 
driveMediaType=HDD securityType=capable secureDrives=fips

Minimum firmware level

7.10 adds RAID Level 6 capability and the dssPreAllocate parameter.

7.50 adds the securityType parameter.

7.60 adds the drawerLossProtect parameter.

7.75 adds the dataAssurance parameter.

8.25 adds the secureDrives parameter.

8.63 adds the resourceProvisioningCapable parameter.