Command Reference

Overview

The Script Editor and the Command Line Interface each support the use of the following seven commands. These commands, used in conjunction with specific parameters, let you perform various storage subsystem management tasks. Click on the command in the Command column to jump to the command syntax and examples.

Command

Lets you ...

createlogicalDrive

create logical drives on a set of drives (unconfigured capacity), turning those drives into a new array, or create logical drives on an existing array (free capacity).

Primary Parameters: driveCount [number of drives], drive or drives [drive list], array [array number]

Secondary Parameters: capacity, owner, RAIDlevel, usageHint, userLabel, segmentSize, mapping

Note: the mapping parameter is not used when creating new arrays.

delete

delete an array or logical drive.

Primary Parameter: logical drive[userLabel] or array [array number]

download

download new firmware or NVSRAM to the storage subsystem.

Primary Parameter: storageSubsystem firmwareFile or storageSubsystem NVSRAMFile

on error

dictate the script behavior when execution fails. The default behavior is for the script to continue executing subsequent commands after a command has failed.

Primary Parameter: stop or continue

set

change the properties of a storage subsystem component, controller, array, logical drive, or drive. You can set multiple properties for a specific storage subsystem element using one set command.

Primary Parameters: storageSubsystem, controller [controller-spec], array [array number], logical drive [userLabel], drive or drives [drive list],

Secondary Parameters:

  • storageSubsystem: batteryInstallDate, cacheBlockSize, cacheFlushStart, cacheFlushStop, mediaScanRate, userLabel, resetConfiguration, timeOfDay, clearEventLog, password
  • controller [controller-spec]: mode, availability, GlobalNVSRAMByte, HostNVSRAMByte or NVSRAMByte
  • array [array number]: owner
  • logical drive [userLabel]: readCacheEnabled, writeCacheEnabled, mirrorEnabled, cacheWithoutBatteryEnabled, cacheFlushModifier, readAheadMultiplier, mediaScanEnabled, redundancyCheckEnable, modificationPriority
  • drive or drives [driveList]: hotspare

show

display the properties of the different logical and physical components comprising the storage subsystem. You can also use the show command to embed text strings (comments) in your command line that will display in the output area during command execution.

Primary Parameters: storageSubsystem, controller [controller-spec], string,

Secondary Parameters:

  • storageSubsystem: batteryAge, healthStatus, profile, hostTypeTable
  • controller [controller-spec]:mode, GlobalNVSRAMByte [nvsram-offset], HostNVSRAMByte [nvsram-offset]
  • string: none

use

specify the password to use for destructive commands. Currently there is only one option for the use command.

Primary Parameter: password

Notes:

  • This command does NOT set the password. In the set command, there is a password parameter for the storage subsystem.
  • This command is only required once in a script, not in front of each destructive command.
Grammar

Common Syntax

Create Logical Drive Command

Create Logical Drive Syntax

If you want to...

Base Command

Primary and Secondary Parameters

create a logical drive using any unassigned drives (unconfigured capacity)

createlogicalDrive

Primary Parameters

driveCount [number of drives]
where: [number of drives] = number of unassigned drives you want to use.

Secondary Parameters1

  • capacity = integer or decimal value + capacity units where capacity units = Bytes, KB, MB, GB, or TB. If you don't specify a capacity, all drive capacity available in the array is used. If you don't specify a capacity unit, Bytes is used by default.
  • owner = a or b where a = controller in slot A and b = controller in slot B. If you don't specify an owner, the owner is determined by the controller firmware.
  • RAIDLevel2 = 0, 1, 3, or 5 (RAID 1 is also commonly referred to as RAID 10 or 0+1).
  • usageHint = fileSystem, dataBase, or multiMedia. If you don't specify a usageHint, fileSystem is used by default.
  • userLabel3 = "any double-quoted string up to 30 characters". The string cannot contain a newline.
  • segmentSize = any positive integer value. This value is checked against the supported values provided by the controller at run time. If the value entered is not valid, the controller will return a list of appropriate values.
  • mapping = default or None. This value causes the logical drive to be created using the specified mapping setting. If you don't specify a value, None is used by default.

create a logical drive using specific unassigned drives (unconfigured capacity)

createlogicalDrive

Primary Parameters

drive or drives [drive list]
where: [drive list] = enclosureID, slotID of each unassigned drive, separated by spaces.

Secondary Parameters1

  • capacity = integer or decimal value + capacity units where capacity units = Bytes, KB, MB, GB, or TB. If you don't specify a capacity, all of the capacity available on the drives in the array are used. If you don't specify a capacity unit, Bytes is used by default.
  • owner = a or b, where a = controller in slot A and b = controller in slot B. If you don't specify an owner, the owner is determined by the controller firmware.
  • RAIDLevel2 = 0, 1, 3, or 5 (RAID 1 also is commonly referred to as RAID 10 or 0+1).
  • usageHint = fileSystem, dataBase, or multiMedia. If you don't specify a usageHint, fileSystem is used by default.
  • userLabel3 = "any double-quoted string up to 30 characters". The string cannot contain a newline.
  • segmentSize = any positive integer value. This value is checked against the supported values provided by the controller at run time. If the value entered is not valid, the controller will return a list of appropriate values.
  • mapping = default or none. This value causes the logical drive to be created using the specified mapping setting. If you don't specify a mapping setting, none will be used by default.

create a logical drive on an existing array (free capacity)

createlogicalDrive

Primary Parameters

array [array number]
where: [array number] = the sequence number of the array.

Secondary Parameters1

  • capacity = integer or decimal value + capacity units where capacity units = Bytes, KB, MB, GB, or TB. If you don't specify a capacity, all available capacity on the drives in the array is used. If you don't specify a capacity unit, Bytes is used by default.
  • owner = a or b where a = controller in slot A and b = controller in slot B. If you don't specify an owner, the owner is determined by the controller firmware.
  • usageHint = fileSystem, dataBase, or multiMedia. If you don't specify a usageHint, fileSystem is used by default.
  • userLabel3 = "any double-quoted string up to 30 characters". The string cannot contain a newline.
  • segmentSize = any positive integer value. This value is checked against the supported values provided by the controller at run time. If the value entered is not valid, the controller will return a list of appropriate values.

1You can specify all other logical drive parameters using the set Command.
2userLabel is a required parameter for all Create Logical Drive commands.

Create Logical Drive Examples

Task

Command Statement and Execution Results

Create a logical drive using any unassigned drives.

Command Statement

createlogicalDrivedriveCount[4] RAIDLevel=1 capacity=10GB owner=a usageHint=multiMedia userLabel="Chevelle" mapping = none;

Execution Results

  • A RAID 1, 10 GB logical drive is created with the name "Chevelle" using 4 available, unassigned drives.
  • The logical drive is owned by the controller in slot A with a specified usage of multimedia.
  • None is used by default for the mapping usage.

Create a logical drive using specific unassigned drives.

Command Statement

createlogicalDrivedrives [1,1 1,2 1,3 1,4 1,5] RAIDLevel=5 userLabel="Nova";

Execution Results

  • A RAID 5 logical drive is created with the name "Nova" using the 5 specified drives with the enclosureID, slotID designation.
  • The logical drive's capacity uses the entire capacity included on the 5 specified drives minus the factor included for redundancy.
  • Because the owner was not specified, it is determined by the controller firmware.
  • FileSystem is used by default for the specified logical drive usage.

Create a logical drive on array number 3.

Command Statement

createlogicalDrivearray[3] capacity=2000MB userLabel="Chevy II";

Execution Results

  • An additional 2000 MB logical drive is created on array 3 with the name "Chevy II".
  • The logical drive is owned by the controller owning the other logical drives on array 3.
  • The RAID level of the logical drive is the RAID level of the other logical drives on array 3.
  • FileSystem is used by default for the specified logical drive usage.

Note: You can specify different controllers for logical drives in the same array

Delete Command

Delete Syntax

If you want to...

Base Command

Primary Parameters

delete a logical drive

delete

logicalDrive[userLabel]
where: [userLabel] = "any double-quoted string up to 30 characters".

delete an array

delete

array [array number]
where: [array number] = the sequence number of the array.

Delete Examples

Task

Command Statement and Execution Results

Delete the logical drive named Chevelle.

Command Statement

deletelogicalDrive["Chevelle"];

Execution Results

  • The logical drive named Chevelle is deleted.
  • Any data on this logical drive is lost.

Delete array number 3 and its associated logical drives.

Command Statement

delete array[3];

Execution Results

  • Array 3 and its associated logical drives are deleted.
  • Any data on this array is lost.

Download Command

Download Syntax

If you want to...

Base Command

Primary Parameters

download a firmware file

download

storageSubsystem firmwareFile = filename
where: filename = is a valid firmware file.

download an NVSRAM file

download

storageSubsystem NVSRAMFile = filename
where: filename = is a valid NVSRAM file.

Caution: When downloading firmware or NVSRAM packages to the storage subsystem, stop all I/O if you are not using a multi-path driver. If you do not do so, application errors will occur because logical drive ownership will not change to the other controller when the controller reboots.

Download Examples

Task

Command Statement and Execution Results

Download a firmware file.

Command Statement

download storageSubsystem firmwareFile=04000001.dlp;

Execution Results

  • The firmware file, 04000001.dlp, is downloaded to the controllers in the storage subsystem.

Download an NVSRAM file.

Command Statement

download storageSubsystem NVSRAMFile=06000001.dlp;

Execution Results

  • The NVSRAM file, 06000001.dlp, is downloaded to the controllers in the storage subsystem.

On Error Command

On Error Syntax

If you want to...

Base Command

Primary Parameters

stop execution of the script if any commands following the On Error Stop command fail.

on error

stop

continue execution of the script even if any commands following the On Error Continue command fail.

on error

continue1

1The default behavior is for the script to continue executing subsequent commands after a command has failed. This command is for execution errors, not syntax errors. Also, there may be certain error conditions that override the "on error continue" parameter.

On Error Examples

Task

Command Statement and Execution Results

Stop execution of the script when an error is encountered.

Command Statement

on error stop;

Execution Results

  • Any commands following the on error stop statement that fail to execute cause the script execution to stop.

Continue execution of the script when an error is encountered.

Command Statement

on error continue;

Execution Results

  • Any commands following the on error continue statement that fail to execute do not cause the script execution to stop.

Set Command

Set Syntax

If you want to...

Base Command

Primary Parameters

set properties of the storage subsystem

set

Primary Parameters

storageSubsystem

Secondary Parameters

  • set storageSubsystem batteryInstallDate = true (battery is reset to the current date) (for controller-specific battery in 4774 or 4766 controllers only) or
  • set controller [controller spec] batteryInstallDate = true where controller spec is a or b, depending on the controller canister where the battery is replaced (for 2772 controller only)

    Caution: Use the appropriate command syntax based on your controller type. Otherwise, you will get an error message.

  • cacheBlockSize = any positive integer value (normally 4 or 16). This value is in KB and is checked against the supported values provided by the controller at run time. If the value entered is not valid, the controller will return a list of appropriate values.
  • cacheFlushStart = 0 to 100 (this indicates the point in the cache memory area, in percentage, that cache flushing should start).
  • cacheFlushStop = 0 to 100 (this indicates the point in the cache memory area, in percentage, that cache flushing should stop).
  • mediaScanRate = number indicating the duration (in days) over which to run the media scan. Current range is 1 to 30 days. If you want to disable the media scan, use the term disabled instead of a 1 to 30 value. Note that you must also enable the media scan parameter and optionally, the redundancy check parameter on each individual logical drive on which you want to run the media scan.
  • userLabel = "any double-quoted string up to 30 characters"
  • resetConfiguration = true (configuration on the storage subsystem is reset back to a default configuration. Attention: Use with extreme caution!).
  • timeOfDay = true (synchronizes the clocks on the controllers in the storage subsystem with the client host).
  • clearEventLog = true (all events stored in the event log are deleted. Attention: Use with extreme caution!).
  • password = "any double-quoted string up to 30 characters". Note that the password characters are not hidden (masked).

set properties of a controller

set

Primary Parameters

controller [controller-spec]
where: [controller-spec] = a or b (a = controller in slot A, and b = controller in slot B).

Secondary Parameters1

  • mode = active or passive
  • availability = online or offline
  • batteryInstallDate = true where controller spec is a or b, depending on the controller canister where the battery is replaced. (For 2772 controller only. To set the battery age to 0 when you replace the battery canister in 4766 or 4774 controller enclosures, use set storageSubsystem batteryInstallDate = true.)

Caution: Using the GlobalNVSRAMByte, HostNVSRAMByte or NVSRAMByte parameters incorrectly could cause your storage subsystem to malfunction. The following procedure is provided as an example and should be used only under the guidance of a customer support representative.

  • GlobalNVSRAMByte[nvsram-offset] = value; where: [nvsram-offset] = 0 to 0x3F and value = 0 to 255.
  • HostNVSRAMByte[host-type, nvsram-offset] = value; where: [host-type] = 0 to 15, [nvsram-offset] = 0 to 0x3F and value = 0 to 255.
  • NVSRAMByte [nvsram-offset] = mask,value

To set specific bits within an NVSRAMByte, use the parameter as follows:

  • The mask and value are used to set specific bits in an NVSRAMByte and leave others unchanged. For each bit turned on (set to 1) in the "mask", the corresponding bit in the NVSRAMByte is set to match the value of that bit in "value". For each bit turned off (set to 0) in the mask, the original NVSRAM bit will be unchanged, regardless of the value for that bit.
  • Use a range of 0 to 0x3F for [nvsram-offset]. Choose a number for "mask" and "value" within a hexadecimal range of 0x00 to 0xFF.
  • The binary equivalent of a hexadecimal parameter setting is used to set individual bits within the byte. For example, a hexadecimal setting of 0x80 corresponds to the binary number of 1000 0000.
  • Using 0x80 for the mask setting will allow bit 7 in the byte to be modified (because the number in the bit 7 position is 1.) All other bits in the byte will be masked (the mask values are set to 0).
  • To set the value for bit 7, choose a hexadecimal setting for "value" whose binary equivalent contains the desired value in the bit 7 position. (Any values in other bit positions are ignored, because the bits are masked.)

Notes:

  • In this example, the bits are numbered from right to left starting with bit 0.
  • If you want the NVSRAM in both controllers in a storage subsystem to match, you must run this command for each controller.
  • The NVSRAMByte operation is provided to be backward compatible with older scripts. The operations GlobalNVSRAMByte and HostNVSRAMByte are now the preferred method to set user-configurable NVSRAM options.

set properties of an array

set

Primary Parameters

array [array number]
where: [array number] = the sequence number of the array.

Secondary Parameters

  • owner = a or b where a = controller in slot A and b = controller in slot B.

set properties of a logical drive

set

Primary Parameters

logicalDrive[userLabel]
where: [userLabel] = "any double-quoted string up to 30 characters"

Secondary Parameters

  • owner = a or b where a = controller in slot A and b = controller in slot B.
  • readCacheEnabled = true (enabled) or false (disabled)
  • writeCacheEnabled = true (enabled) or false (disabled)
  • mirrorEnabled = true (enabled) or false (disabled)
  • cacheWithoutBatteryEnabled = true (enabled) or false (disabled)
  • cacheFlushModifier = immediate, 0.25 to 1.5 (increments of 0.25), 2, 5, 10, 20, 60, 120, 300, 1200, 3600, or infinite. The value is in seconds.

    Caution: Setting cache flush modifier values above 10 seconds is not recommended except for controlled test situations! Even in a controlled test situation, the value should be set back to 10 seconds or below after the test has completed.

  • readAheadMultiplier = any positive number
  • mediaScanEnabled = true (enabled) or false (disabled)
  • redundancyCheckEnabled = true (enabled) or false (disabled)
  • modificationPriority = lowest, low, medium, high, or highest

create a hot spare drive from an unassigned drive

set

Primary Parameters

drive or drives [drive list]
where: [drive list] = enclosureID, slotID of each drive.

Secondary Parameters

  • hotspare = true (assign) or false (deassign)

Set Examples

Task

Command Statement and Execution Results

Provide a name for the storage subsystem and set the cache to flush when it reaches 85 percent full, and stop flushing the cache when it reaches 15 percent full.

Command Statement

set storageSubsystem userLabel="Engineering" cacheFlushStart=85 cacheFlushStop=15;

Execution Results

  • The storage subsystem is renamed to "Engineering".
  • The cache flush start value is set to 85 percent.
  • The cache flush stop value is set to 15 percent. 

Set the controller in slot A to active mode.

Command Statement

set controller[a] mode=active;

Execution Results

  • The controller in slot A is set to the active mode.

Set host-specific NVSRAM configurations

Command Statement

set controller[a] HostNVSRAMByte[0x2, 0x13]=0x1;

Execution Results

  • Host-specific NVSRAMByte 0x13 is set to1 for host type 2 causing any commands received from the specific host while the controller is quiesced to be reported as Not Ready.
  • Note: To determine which host will be affected by changing the NVSRAM settings use the show command to view the storage subsystem profile ("show storageSubsystem profile"). The Storage Partition table and NVSRAM Host Type Internal Definitions table will appear. Use the Host-Type Definitions table to relate the host-type index to a host-type label. Then, use the Storage Partition table to see which host types will be affected by the new NVSRAM settings.
  • To determine the NVSRAM configuration offset definitions, refer to the Controller Interface Specification

Set global NVSRAM configurations

Command Statement

set controller[a] GlobalNVSRAMByte [0x30]=0x80,0x80;

Execution Results

  • NVSRAM Bit 7 of offset 0x30 is set to 1, enabling the Audible Alarm feature.

Caution: Attempting to change a host-specific offset using this offset will return an error.

Change the owner of array 3, and its associated logical drives, to the controller in slot B.

Command Statement

set array[3] owner=b;

Execution Results

  • Array 3, and it associated components, are owned by the controller in slot B.

Enable the write cache and cache mirroring properties on the logical drive named Nova.

Command Statement

setlogicalDrive["Nova"] writeCacheEnabled=true mirrorEnabled=true;

Execution Results

  • The write cache and cache mirroring parameters are enabled on the logical drive named Nova.

Create two hot spares using the unassigned drives at enclosureID = 1, slotID = 2, and enclosureID = 1, slotID = 3.

Command Statement

set drives [1,2 1,3] hotspare=true;

Execution Results

  • The unassigned drive at enclosure 1, slot 2 is assigned as a hot spare drive.
  • The unassigned drive at enclosure 1, slot 3 is assigned as a hot spare drive.

Show Command

Show Syntax

If you want to...

Base Command

Primary and Secondary Parameters

show properties of storage subsystem

show

Primary Parameters

storageSubsystem

Secondary Parameters

  • batteryAge - displays the age of the battery in days and also the number of days until replacement.
  • healthStatus - displays the overall health of the storage subsystem in the output area.
  • profile - displays all of the various properties of the logical and physical components that comprise the storage subsystem in the output area.
  • hostTypeTable - displays the table of all host types known to the controller. Each row in the table displays a host-type value (used in the set HostNVSRAMByte operations), and the platform that value represents.

show properties of controller

show

Primary Parameters

controller [controller-spec]
where: [controller-spec] = a or b (a = controller in slot A, and b = controller in Slot B).

Secondary Parameters

  • mode - displays the mode of the controller (active or passive) in the output area.
  • GlobalNVSRAMByte[nvsram-offset] - displays the current value in the output area for the nvsram-offset specified.
  • HostNVSRAMByte[host-type, nvsram-offset] - displays the current value in the output area for the host-type and nvsram-offset specified.
  • HostNVSRAMByte[host-type, nvsram-offset] - displays the current value in the output area for the host-type and nvsram-offset specified.

show a comment and display it to the output area

show

Primary Parameters

string
where: string = "any double-quoted string".

Secondary Parameters

  • None

Show Examples

Task

Command Statement and Execution Results

Display the health and profile of the storage subsystem.

Command Statement

show storageSubsystem healthStatus profile;

Execution Results

  • The health of the storage subsystem and the various properties of the logical and physical components of the storage subsystem is displayed in the output area. 

Show the current mode of the controller in Slot B.

Command Statement

show controller[b] mode;

Execution Results

  •  The current mode (active or passive) of the controller in slot B is displayed in the output area.

Include several comments in the script.

Command Statement

show "Starting logical drive creation..."

Execution Results

  • The comment as specified is displayed in the output area.

Show all host-type labels and host-type indexes known to the controller to determine which host-type indexes to use when writing NVSRAM configuration scripts.

Command Statement

show storageSubsystem hostTypeTable

Execution Results

  • All host type labels and the host type index are displayed in the output area.

Show which hosts will be affected by a host-specific change to the NVSRAM configuration, assuming that a host-type index has already been picked.

Command Statement

show controller[a or b]GlobalNVSRAMByte[0x32]=0x80 show storageSubsystem profile

Execution Results

  • The module profile will include the Storage Partitions topology tree and the host-type table, from which you can translate the host-type index into a label. You can then look for any host ports in the topology tree that have the desired label. The affected hosts are all the hosts associated with the affected host ports.

Use Command

Use Syntax

If you want to...

Base Command

Primary Parameters

specify the password to use for destructive commands

use

password
where: password = "password set on storage subsystem"

Notes:

  • This command does NOT set the password. In the set command, there is a password parameter for the storage subsystem.
  • This command is only required once in a script, not in front of each destructive command.

Use Example

Task

Command Statement and Execution Results

specify the password to use for destructive commands

Command Statement

use password "coda4";
deletelogicalDrive["Chevelle"];

Execution Results

The delete logical drive command, which is destructive, executes because the use password statement with the appropriate password was previously specified in the script.