Dell PowerVault MD3000 User Manual

Dell™ PowerVault™ Modular Disk
Storage Manager CLI Guide
www.dell.com | support.dell.com
Notes and Notices
NOTE: A NOTE indicates important information that helps you make better use of
your computer.
NOTICE: A NOTICE indicates either potential damage to hardware or loss of data
____________________
Information in this document is subject to change without notice. © 2008 Dell Inc. All rights reserved.
Reproduction of these materials in any manner whatsoever without the written permission of Dell Inc. is strictly forbidden.
Trademarks used in this text: Dell, the DELL logo, and PowerVault are trademarks of Dell Inc.; Microsoft, Internet Explorer , and Windows are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries.
Other trademarks and trade names may be used in this document to refer to either the entities claiming the marks and names or their products. Dell Inc. disclaims any proprietary interest in trademarks and trade names other than its own.
September 2008

Contents

1 About the Command Line Interface . . . . 13
How to Use the Command Line Interface . . . . . . . . 14
Usage Notes
CLI Commands
. . . . . . . . . . . . . . . . . . . . 15
. . . . . . . . . . . . . . . . . . . 16
Command Line Parameters
. . . . . . . . . . . . 18
Formatting Considerations
Detailed Error Reporting
Exit Status
Usage Examples
. . . . . . . . . . . . . . . . . . . . . . . . 25
. . . . . . . . . . . . . . . . . . . . . 27
. . . . . . . . . . . . . . . 24
. . . . . . . . . . . . . . . . 24
2 About the Script Commands . . . . . . . . . . 29
Script Command Structure . . . . . . . . . . . . . . . 30
Script Command Synopsis
Recurring Syntax Elements
Usage Guidelines
Adding Comments to a Script File
. . . . . . . . . . . . . . . 32
. . . . . . . . . . . . . . . 34
. . . . . . . . . . . . . . . . . . . . 40
. . . . . . . . . . . 41
Contents 3
3 Configuring a Storage Array . . . . . . . . . . 43
Configuring a Storage Array . . . . . . . . . . . . . . . 44
Determining What is on Your Storage Array
Saving a Configuration to a File
. . . . . . . . . . 47
Using the Create Virtual Disk Command
Using the Auto Configure Command
. . . . 44
. . . . . . 48
. . . . . . . . 53
Modifying Your Configuration
Setting the Storage Array Password
Setting Up SMTP and SNMP Alerts
Setting the RAID Controller Module Clocks
Setting the Storage Array Host Type
Setting Modification Priority
Assigning Global Hot Spares
. . . . . . . . . . . . . . 55
. . . . . . . . 56
. . . . . . . . 56
. . . . 57
. . . . . . . . 57
. . . . . . . . . . . . 58
. . . . . . . . . . . . 59
4 Using the Snapshot Feature . . . . . . . . . . 61
Using Host Servers to Create an Initial Snapshot Virtual Disk
Creating a Snapshot Virtual Disk
. . . . . . . . . . . . . . . . . . . . . . . 63
. . . . . . . . . . . . 63
Enabling the Snapshot Virtual Disk Feature
. . . . 64
Creating a Snapshot Virtual Disk with User-Assigned Physical Disks
. . . . . . . . . . . 64
Preparing Host Servers to Create an Initial Snapshot Virtual Disk
Creating the Initial Snapshot Virtual Disk
. . . . . . . . . . . . . . . . 65
. . . . . 66
Creating a Snapshot Virtual Disk with Software-Assigned Physical Disks
. . . . . . . . . 67
Creating a Snapshot Virtual Disk by Specifying a Number of Physical Disks
User-Defined Parameters
. . . . . . . . . . . . 69
. . . . . . . . . . . . . 70
Names of Snapshot Virtual Disks and Repository Virtual Disks
. . . . . . . . . . . . . . . . . . . . 72
4 Contents
Changing Snapshot Virtual Disk Settings . . . . . . . 73
Stopping and Deleting a Snapshot Virtual Disk
Re-creating the Snapshot Virtual Disk
. . . . 74
. . . . . . 75
Preparing Host Servers to Re-create a Snapshot Virtual Disk
Re-creating a Snapshot Virtual Disk
. . . . . . . . . . . . . . . . . . . . . 75
. . . . . . . . 76
5 Using the Virtual Disk Copy Feature . . . . 77
Creating a Virtual Disk Copy . . . . . . . . . . . . . . 78
Enabling the Virtual Disk Copy Feature
Determining Virtual Disk Copy Candidates
Creating a Virtual Disk Copy
. . . . . . . . . . . . 79
Preparing Host Servers to Create a Virtual Disk Copy
Copying the Virtual Disk
. . . . . . . . . . . . . . . . . . . . . . 80
. . . . . . . . . . . . . . 81
Viewing Virtual Disk Copy Properties
Changing Virtual Disk Copy Settings
Recopying a Virtual Disk
. . . . . . . . . . . . . . . . 84
Preparing Host Servers to Recopy a Virtual Disk
Recopying the Virtual Disk
. . . . . . . . . . . . . . . . . . . . . 85
. . . . . . . . . . . . . 86
. . . . . . 79
. . . . 79
. . . . . . . . . 82
. . . . . . . . . . 83
Stopping a Virtual Disk Copy . . . . . . . . . . . . . . 87
Removing Copy Pairs
Interaction with Other Features
Storage Partitioning
Snapshot Virtual Disks
. . . . . . . . . . . . . . . . . . 87
. . . . . . . . . . . . . 88
. . . . . . . . . . . . . . . . 88
. . . . . . . . . . . . . . . 89
Contents 5
6 Maintaining a Storage Array . . . . . . . . . . 91
Routine Maintenance . . . . . . . . . . . . . . . . . . 91
Running a Media Scan
Running a Consistency Check
Resetting a RAID Controller Module
Enabling RAID Controller Module Data Transfer
. . . . . . . . . . . . . . . . . . . . . . . 94
Resetting Battery Age
Removing Persistent Reservations
Synchronizing RAID Controller Module
. . . . . . . . . . . . . . . . . . . . . . . . 95
Clocks
Locating Physical Disks
. . . . . . . . . . . . . . . 91
. . . . . . . . . . . 93
. . . . . . . . 94
. . . . . . . . . . . . . . . 94
. . . . . . . . . 94
. . . . . . . . . . . . . . 95
Performance Tuning
Monitoring Performance
Changing RAID Levels
Changing Segment Size
Defragmenting a Disk Group
Troubleshooting and Diagnostics
Collecting Physical Disk Data
. . . . . . . . . . . . . . . . . . . 95
. . . . . . . . . . . . . . 96
. . . . . . . . . . . . . . . 97
. . . . . . . . . . . . . . 97
. . . . . . . . . . . . 98
. . . . . . . . . . . . 98
. . . . . . . . . . . 98
Diagnosing a RAID Controller Module
Recovery Operations
. . . . . . . . . . . . . . . . . . 100
Setting RAID Controller Module Operational
. . . . . . . . . . . . . . . . . . . . . . . . 100
Mode
Changing RAID Controller Module Ownership
Initializing a Physical Disk
. . . . . . . . . . . . . . . . . . . . . 101
. . . . . . . . . . . . . 101
Reconstructing a Physical Disk
Initializing a Virtual Disk
Redistributing Virtual Disks
. . . . . . . . . . . . . . 102
. . . . . . . . . . . . . 103
. . . . . . . 99
. . . . . . . . . . 102
6 Contents
7 Script Commands . . . . . . . . . . . . . . . . . 105
Command Formatting Rules . . . . . . . . . . . . . . . 106
Commands Listed by Function
Disk Group Commands
Enclosure Commands
Host Topology Commands
iSCSI Commands
Physical Disk Commands
. . . . . . . . . . . . . 108
. . . . . . . . . . . . . . . 108
. . . . . . . . . . . . . . . 109
. . . . . . . . . . . . . 109
. . . . . . . . . . . . . . . . . . 109
. . . . . . . . . . . . . . 110
RAID Controller Module Commands
Session Command
Show String Command
Snapshot Commands
Storage Array Commands
Virtual Disk Commands
Virtual Disk Copy Commands
Commands Listed Alphabetically
. . . . . . . . . . . . . . . . . 111
. . . . . . . . . . . . . . . 111
. . . . . . . . . . . . . . . . 111
. . . . . . . . . . . . . 111
. . . . . . . . . . . . . . 113
. . . . . . . . . . . 113
. . . . . . . . . . . . 114
Accept Storage Array Pending Topology
Activate Storage Array Firmware
Autoconfigure Storage Array
. . . . . . . . . . . 115
Autoconfigure Storage Array Hot Spares
Check Disk Consistency
. . . . . . . . . . . . . . 117
Clear Physical Disk Channel Statistics
Clear Storage Array Configuration
Clear Storage Array Event Log
. . . . . . . . . . . 119
Clear Storage Array Firmware Pending Area
Clear Virtual Disk Reservations
Create Disk Group
. . . . . . . . . . . . . . . . . 120
Additional Information
Create Host
Create Host Group
Create Host Port
. . . . . . . . . . . . . . . . . . . . . 122
. . . . . . . . . . . . . . . . . 123
. . . . . . . . . . . . . . . . . . 124
. . . . . . . . . . 120
. . . . . . . . . . . . . . . 121
. . . . . . . . 111
. . . . . 114
. . . . . . . . . 114
. . . . . 116
. . . . . . . 118
. . . . . . . . . 118
. . . 119
Contents 7
Create iSCSI Initiator . . . . . . . . . . . . . . . . 125
Create RAID Virtual Disk (Automatic Physical Disk Select)
. . . . . . . . . . . . . . . . . . . . . 126
Create RAID Virtual Disk (Free Capacity Base Select)
. . . . . . . . . . . . . . . . . . . . 128
Create RAID Virtual Disk (Manual Physical Disk Select)
Create Snapshot Virtual Disk
Create Virtual Disk Copy
Delete Disk Group
Delete Host
Delete Host Group
Delete Host Port
Delete iSCSI Initiator
Delete Virtual Disk
Diagnose RAID Controller Module
Disable Storage Array Feature
. . . . . . . . . . . . . . . . . . . . . 130
. . . . . . . . . . . . 133
. . . . . . . . . . . . . . 137
. . . . . . . . . . . . . . . . . 139
. . . . . . . . . . . . . . . . . . . . . 140
. . . . . . . . . . . . . . . . . 140
. . . . . . . . . . . . . . . . . . 141
. . . . . . . . . . . . . . . . 141
. . . . . . . . . . . . . . . . . 142
. . . . . . . . . 143
. . . . . . . . . . . 146
Download Enclosure Management Module Firmware
Download Physical Disk Firmware
Download Storage Array Firmware/NVSRAM
Download Storage Array NVSRAM
. . . . . . . . . . . . . . . . . . . . . . 146
. . . . . . . . . 147
. . . 148
. . . . . . . . 149
Download Storage Array Physical Disk Firmware
Enable RAID Controller Module
Enable Storage Array Feature Key
Recopy Virtual Disk Copy
Recover RAID Virtual Disk
Additional Information
Re-create Snapshot
Remove Virtual Disk Copy
Remove Virtual Disk LUN Mapping
Repair Virtual Disk Consistency
Reset RAID Controller Module
. . . . . . . . . . . . . . . . . . . . . . 150
. . . . . . . . . . 151
. . . . . . . . . 151
. . . . . . . . . . . . . . 152
. . . . . . . . . . . . . 153
. . . . . . . . . . . . . . . 155
. . . . . . . . . . . . . . . . 156
. . . . . . . . . . . . . 158
. . . . . . . . . 159
. . . . . . . . . . 160
. . . . . . . . . . . 160
8 Contents
Reset Storage Array Battery Install Date . . . . . 161
Reset Storage Array iSCSI Baseline
Reset Storage Array SAS PHY Baseline
Reset Storage Array Virtual Disk Distribution
Revive Disk Group
Revive Physical Disk
Save Enclosure Log Data
. . . . . . . . . . . . . . . . . 163
. . . . . . . . . . . . . . . . 163
. . . . . . . . . . . . . 164
. . . . . . . . 162
. . . . . . 162
. . . 162
Save Physical Disk Channel Fault Isolation Diagnostic Status
Syntax
. . . . . . . . . . . . . . . . . . . . . . . 164
Save Physical Disk Log
Save RAID Controller Module NVSRAM
Save Storage Array Configuration
Save Storage Array Events
Save Storage Array iSCSI Statistics
Save Storage Array Performance Statistics
Save Storage Array SAS PHY Counts
Save Storage Array State Capture
Save Storage Array Support Data
Set Controller
Additional Information
Set Disk Group
Set Enclosure Attribute
Set Enclosure Identification
Set Foreign Physical Disk to Native
Set Host
. . . . . . . . . . . . . . . . . . . . . . 176
Set Host Group
Set Host Port
Set iSCSI Initiator
Set iSCSI Target Properties
Set Physical Disk Channel Status
Set Physical Disk Hot Spare
Set Physical Disk State
. . . . . . . . . . . . . . . . . 164
. . . . . . . . . . . . . . . 165
. . . . . . 165
. . . . . . . . . 166
. . . . . . . . . . . . 167
. . . . . . . . 168
. . . . 169
. . . . . . . 169
. . . . . . . . . 170
. . . . . . . . . 170
. . . . . . . . . . . . . . . . . . . . 170
. . . . . . . . . . . . . . . 172
. . . . . . . . . . . . . . . . . . . 173
. . . . . . . . . . . . . . 174
. . . . . . . . . . . . 175
. . . . . . . . 176
. . . . . . . . . . . . . . . . . . . 178
. . . . . . . . . . . . . . . . . . . . 179
. . . . . . . . . . . . . . . . . 179
. . . . . . . . . . . . 180
. . . . . . . . . 182
. . . . . . . . . . . . 182
. . . . . . . . . . . . . . . 183
Contents 9
Set RAID Controller Module . . . . . . . . . . . . 183
. . . . . . . . . . . . . . . . . . . . . . . 183
Syntax
Syntax Element Statement Data
Additional Information
Set Session
. . . . . . . . . . . . . . . . . . . . . 188
. . . . . . . . . . . . . . . 187
Set Snapshot Virtual Disk
Set Storage Array
. . . . . . . . . . . . . . . . . 191
Set Storage Array Enclosure Positions
Set Storage Array ICMP Response
Set Storage Array iSNS Server IPv4 Address
Set Storage Array iSNS Server IPv6 Address
Set Storage Array iSNS Server Listening Port
Set Storage Array iSNS Server Refresh
Set Storage Array Learn Cycle
Set Storage Array Time
. . . . . . . . . . . . . . . 197
Set Unnamed Discovery Session
Set Virtual Disk
Set Virtual Disk Copy
. . . . . . . . . . . . . . . . . . . 198
. . . . . . . . . . . . . . . . 203
Show Current iSCSI Sessions
Show Disk Group
Show Host Ports
Show Physical Disk
. . . . . . . . . . . . . . . . . . 204
. . . . . . . . . . . . . . . . . . 205
. . . . . . . . . . . . . . . . . 205
Show Physical Disk Channel Statistics
Show Physical Disk Download Progress
Show RAID Controller Module
Show RAID Controller Module NVSRAM
Show Storage Array
. . . . . . . . . . . . . . . . 210
Show Storage Array Autoconfigure
Show Storage Array Host Topology
Show Storage Array LUN Mappings
Show Storage Array Negotiation Defaults
Show Storage Array Pending Topology
Show Storage Array Unreadable Sectors
. . . . . . . . . . 185
. . . . . . . . . . . . . 189
. . . . . . 192
. . . . . . . . 193
. . . 194
. . . 195
. . . 195
. . . . . . 196
. . . . . . . . . . . 197
. . . . . . . . . 198
. . . . . . . . . . . 203
. . . . . . 207
. . . . . . 208
. . . . . . . . . . . 208
. . . . . 209
. . . . . . . . 212
. . . . . . . . 214
. . . . . . . . 214
. . . . . 214
. . . . . . 215
. . . . . 215
10 Contents
Show String . . . . . . . . . . . . . . . . . . . . 216
Show Unconfigured iSCSI Initiators
Show Virtual Disk
. . . . . . . . . . . . . . . . . 217
Show Virtual Disk Action Progress
Show Virtual Disk Copy
. . . . . . . . . . . . . . 219
Show Virtual Disk Copy Source Candidates
Show Virtual Disk Copy Target Candidates
Show Disk Group Import Dependencies
Show Virtual Disk Performance Statistics
Show Virtual Disk Reservations
Start Disk Group Blink
. . . . . . . . . . . . . . . 223
Start Disk Group Defragment
Start Enclosure Blink
Start iSCSI DHCP Refresh
. . . . . . . . . . . . . . . . 223
. . . . . . . . . . . . . 224
. . . . . . . . 216
. . . . . . . . 218
. . . . 220
. . . . 220
. . . . . . 220
. . . . . 221
. . . . . . . . . . 222
. . . . . . . . . . . 223
Start Physical Disk Channel Fault Isolation Diagnostics
Syntax
Start Physical Disk Blink
Start Physical Disk Initialize
Start Physical Disk Reconstruction
Start Storage Array Blink
Start Disk Group Import/Export
Start Virtual Disk Initialization
Stop Disk Group Blink
Stop Enclosure Blink
Stop iSCSI Session
Syntax
Stop Physical Disk Blink
. . . . . . . . . . . . . . . . . . . . . 224
. . . . . . . . . . . . . . . . . . . . . . . 224
. . . . . . . . . . . . . . 226
. . . . . . . . . . . . 226
. . . . . . . . 227
. . . . . . . . . . . . . 227
. . . . . . . . . . 227
. . . . . . . . . . . 228
. . . . . . . . . . . . . . . 229
. . . . . . . . . . . . . . . . 229
. . . . . . . . . . . . . . . . . 229
. . . . . . . . . . . . . . . . . . . . . . . 229
. . . . . . . . . . . . . . 229
Stop Physical Disk Channel Fault Isolation Diagnostics
Stop Snapshot
Stop Storage Array Blink
. . . . . . . . . . . . . . . . . . . . . 230
. . . . . . . . . . . . . . . . . . . 230
. . . . . . . . . . . . . . 231
Contents 11
Stop Storage Array Physical Disk Firmware Download
Stop Virtual Disk Copy
. . . . . . . . . . . . . . . . . . . . . . 231
. . . . . . . . . . . . . . . 231
A Sample Script Files . . . . . . . . . . . . . . . . 233
Configuration Script Example 1 . . . . . . . . . . . . . 233
Configuration Script Example 2
. . . . . . . . . . . . . 236
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
12 Contents

About the Command Line Interface

This guide is intended for system administrators, developers, and engineers who need to use the command line interface (CLI) tool and its associated commands and script files. Selected CLI commands perform functions that you can also access from the Modular Disk (MD) Storage Manager, which is the graphical user interface (GUI) to the storage array. See the User’s Guide, which
describes the
multiple storage arrays. For additional information, see the hardware and software manuals that shipped with your system.
NOTE: Always check for updates on support.dell.com and read the updates first
because they often supersede information in other documents.
NOTE: CLI commands do not have interactive warnings for destructive commands.
The command line interface (CLI) is a software tool that enables storage array installers, developers, and engineers to configure and monitor storage arrays. Using the command line interface, you can issue commands from an operating system prompt, such as the Microsoft prompt (C:\) or a Linux operating system terminal.
Each command performs a specific action for managing a storage array or returning information about the status of a storage array. You can enter individual commands, or run script files when you need to perform operations more than once (such as installing the same configuration on several storage arrays). A script file can be loaded and run from the command line interface. You can also run commands in an interactive mode. Interactive mode enables you to connect to a specific storage array and rapidly enter a command, determine the effect on the storage array, and then enter a new command.
The command line interface gives you direct access to a script engine utility in the Dell™ PowerVault™ Modular Disk Storage Manager software (MD Storage Manager). The script engine reads the commands, or runs a script file, from the command line and performs the operations instructed by the commands.
Storage Manager software that is used to create and manage
®
Windows® command
About the Command Line Interface 13
You can use the command line interface to perform the following functions:
Directly access the script engine and run commands in interactive mode or using a script file.
Create script command batch files to be run on multiple storage arrays when you need to install the same configuration on different storage arrays.
Run script commands on a storage array directly connected to a host, a storage array connected to a host by an Ethernet, or a combination of both.
Display configuration information about the storage arrays.
Add storage arrays to and remove storage arrays from the management domain.
Perform automatic discovery of all storage arrays attached to the local subnet.
Add or delete Simple Network Management Protocol (SNMP) trap destinations and email alert notifications.
Specify the mail server and sender email address or Simple Mail Transport Protocol (SMTP) server for alert notifications.
Direct the output to a standard command line display or to a named file.

How to Use the Command Line Interface

Using the CLI commands, you can access the script engine, specify which storage array receives the script commands, and set operation environment parameters.
A CLI command consists of the following elements:
•The term
Storage array identifier
Parameters
Script commands
14 About the Command Line Interface
SMcli
The following syntax is the general form of a CLI command:
SMcli
SMcli Invokes the command line interface
storageArray Host name or IP address of the storage array
parameters CLI parameters that define the environment and purpose for the
script-commands One or more script commands or the name of a script file
storageArray parameters script-commands;
command
containing script commands
The script commands are the storage array configuration commands. "About the Script Commands" on page 29 presents an overview of the script commands. "Script Commands" on page 105 provides definitions, syntax, and parameters for the script commands.

Usage Notes

If you enter SMcli and a storage array name but do not specify CLI parameters, script commands, or a script file, the command line interface runs in interactive mode. Interactive mode enables you to run individual commands without prefixing the commands with SMcli. You can enter a single command, view the results, and enter the next command without typing the complete SMcli string. Interactive mode is useful for determining configuration errors and quickly testing configuration changes.
If you enter SMcli without any parameters or with an incorrect parameter, the script engine returns usage information.
NOTE: The SMcli command is installed under the client directory of the selected
path during a management station install of the MD Storage Manager software.
NOTE: The SMcli command should be a component of the system environment
command path.
About the Command Line Interface 15

CLI Commands

This section lists the CLI commands you can use to perform the following functions:
Identify storage arrays.
Set passwords.
Add storage arrays.
Specify communication parameters.
Enter individual script configuration commands.
Specify a file containing script configuration commands.
The following are general forms of the CLI commands, showing the parameters and terminals used in each command. Table 1-1 lists definitions for the parameters shown in the CLI commands.
Table 1-1. Command Name Conventions
Parameter Definition
a|b
italicized-words terminals
[...] (square brackets) zero or one occurrence {...} (curly brackets) zero or more occurrences <...> (angle brackets) occurrence exceeds maximum limit of 30 characters (a|b|c)
bold terminals
pipe symbol indicating alternative ("a" or "b")
choose only one of the alternatives
SMcli
address
[-n [-o
SMcli [ [-n [-o
host-name-or-IP-address [host-name-or-IP-
] [-c
storage-array-name outputfile
"command; {command2
| -w
][-p
password
host-name-or-IP-address
host-name-or-IP-address
storage-array-name outputfile
] [-p
| -w
password
16 About the Command Line Interface
WWID
][-e][-S]
] [-f
WWID
] [-e] [-S]
};"] ]
scriptfile
]
]
SMcli (-n [-c "
command
outputfile
[-o
storage-array-name
; {
command2
][-p
};"]
password
][-e][-S]
| -w
WWID
)
SMcli (-n [-f
scriptfile outputfile
[-o SMcli (-n
outputfile
[-o SMcli -a email:
[
host-name-or-IP-address1
[
host-name-or-IP-address2
[-n
storage-array-name host_sa
-r ( [-I
information-to-include
SMcli -x email: [
host-name-or-IP-address1 host-name-or-IP-address2
[ [-n
storage-array-name
-r (
host_sa
SMcli (-a | -x) trap:
host-name-or-IP-address
host-name-or-IP-address2
[ [-n
storage-array-name host_sa
-r ( SMcli -d [-w][-i][-s][-v][-S]
storage-array-name
] ] [-p
password
storage-array-name
][-p
password
][-e][-S]
email-address
]]
| -w
|
direct_sa
)]
][-q
email-address
]]
| -w
|
direct_sa
)] [-S]
community,
[
host-name-or-IP-address1
]]
| -w
|
direct_sa
)] [-S]
| -w
] [-e] [-S] | -w
WWID
WWID
WWID
| -h
frequency
WWID
| -h
WWID
| -h
)
)
host-name
][-S]
host-name
host-name
|
|
|
SMcli -m [-g
SMcli -A [
host-name-or-IP-address
[ SMcli -X (-n
-h
host-name
SMcli -?
host-name-or-IP-address
contactInfoFile
][-S]
host-name-or-IP-address
storage-array-name
)
-F
email-address
]] [-S]
| -w
About the Command Line Interface 17
WWID
|

Command Line Parameters

Table 1-2. Command Line Parameters
Parameter Definition
host-name-or-IP-address Specify either the host name or the Internet Protocol (IP)
address of an in-band managed storage array (IPv4 or iPv6) or an out-of-band managed storage array (IPv4 only).
• If you manage a storage array by using a host connected directly to the storage array (in-band storage
-n
management), you must use the than one storage array is connected to the host.
• If you manage a storage array through an Ethernet connection (out-of-band storage management), you must specify the redundant array of independent disks (RAID) controller modules.
• If you have previously configured a storage array in the graphical user interface (GUI) of the MD Storage Manager, you can specify the storage array by its user-supplied name by using the
-A Use to add a storage array to the configuration files. If you do not follow the -A parameter with a host-name-or-IP-address, automatic discovery scans the local subnet for storage arrays.
-a Use to add an SNMP trap destination or an email address alert destination.
• When adding an SNMP trap destination, the SNMP community is automatically defined as the community name for the trap and the Domain Name Server (DNS) host name of the system to which the trap should be sent.
• When adding an email address for an alert destination,
email-address
the the alert message.
host-name-or-IP-address
host
is the email address to which to send
parameter if more
of the
-n parameter.
is the IP address or
18 About the Command Line Interface
Table 1-2. Command Line Parameters (continued)
Parameter Definition
-c Use to indicate that you are entering one or more script commands to run on the specified storage array. Terminate each command by using a semicolon (;).
You cannot place more than one -c parameter on the same command line. You can include more than one script command after the -c parameter.
-d Use to display the contents of the script configuration file.
-e Use to disable syntax checking when executing the current CLI command.
-F (uppercase) Use to specify the email address from which all alerts will be sent.
-f (lowercase) Use to specify a file name containing script commands intended to run on the specified storage array.
This parameter is similar to the -c parameter in that both are intended for running script commands. The -c parameter allows you to execute individual script commands. The -f parameter allows you to execute script commands contained in a file.
NOTE: By default, any errors encountered when running the
script commands in a file are ignored, and the file continues to run. To override this behavior, use the set session errorAction=stop command in the script file.
About the Command Line Interface 19
Table 1-2. Command Line Parameters (continued)
Parameter Definition
-g Use to specify an ASCII file that contains email sender contact information to include in all email alert notifications. The CLI assumes the ASCII file is text only, without delimiters or any expected format. A typical file contains the following information:
•Name
• Title
• Company
• Phone
•Pager
NOTE: You can use any file name that your operating system
supports. You must not use userdata.txt. Some operating systems reserve userdata.txt for system information.
-h Use with the -a and -x parameters to specify the host name that is running the SNMP agent to which the storage array is connected.
-I Use to specify the type of information to be included in the email alert notifications. The following are valid information arguments:
eventOnly
email.
profile
• in the email.
supportBundle
information is included in the email.
— Only event information is included in the
— Event and array profile information is included
— Event and support bundle
NOTE: You can enter only one information argument each
time you execute the command. If you want all of the information, you must run the command three times.
-i Use with the -d parameter to display the IP address of the known storage arrays.
-m Use to specify the host name or IP address of the email server from which to send email alert notifications.
20 About the Command Line Interface
Table 1-2. Command Line Parameters (continued)
Parameter Definition
-n Use to specify the name of the storage array on which to run the script commands. This name is optional when you use host-name-or-IP-address; however, if you are using the in-band method for managing the storage array, you must use the -n parameter if more than one storage array is connected to the host at the specified address.
The storage array name is required when host-name-or-IP-address is not used; however, the name of the storage array configured for use in the MD Storage Manager GUI (that is, listed in the configuration file) must not be a duplicate name of any other configured storage array.
-o Use with the -c or -f parameter to specify a file name for all output text that is a result of running the script commands.
-p Use to specify the password for the storage array on which to run commands. A password is not necessary under the following conditions:
• A password has not been set on the storage array.
• The password is specified in a script file that is running.
• The storage array password is specified by using the parameter and the command.
set session password=
password
-c
About the Command Line Interface 21
Table 1-2. Command Line Parameters (continued)
Parameter Definition
-q Use to specify how frequently to include additional profile or support bundle information in the email alert notifications. An email alert notification that contains at least the basic event information is always generated for every critical event. If you set the -I parameter to eventOnly, the only valid argument for -q is everyEvent. If you set the -I parameter to either profile or supportBundle, this information is included with the emails with the frequency specified by the -q parameter.
Valid frequency arguments are:
everyEvent
alert notification.
2
— Information is returned no more than once every
two hours.
4
— Information is returned no more than once every
• four hours.
8
— Information is returned no more than once every
eight hours.
12
— Information is returned no more than once every
12 hours.
24
— Information is returned no more than once every
• 24 hours.
-r Use with the -a or -x parameter to specify the name of a management station. The name of a management station can be either direct_sa (out-of-band storage array) or host_sa (in-band storage arrays [host-agent]). The -r parameter enables you to set or change the alert notifications for all storage arrays under each management station.
— Information is returned with every email
22 About the Command Line Interface
Table 1-2. Command Line Parameters (continued)
Parameter Definition
-S (uppercase) Use to suppress the informational messages describing command progress that appear when running script commands. (Suppressing informational messages is also called silent mode.) This parameter suppresses the following messages:
• Performance syntax check
• Syntax check complete
• Executing script
• Script execution complete
• SMcli completed successfully
-s (lowercase) Use with the -d parameter to display the alert settings in the configuration file.
-v Use with the -d parameter to display the current global status of the known devices in the storage array configuration file. (The configuration file lists all of the devices in a storage array configuration and the relationship between the devices. Use the configuration file to reconstruct a storage array.)
-X (uppercase) Use to delete a storage array from the configuration file. (The configuration file lists all of the devices in a storage array configuration and the relationship between the devices. Use the configuration file to reconstruct a storage array.)
-x (lowercase) Use to remove an SNMP trap destination or an email address alert destination. The community is the SNMP community name for the trap, and the host is the IP address or DNS host name of the system to which you want the trap sent.
-? Use this parameter to display usage information about the CLI commands.
About the Command Line Interface 23

Formatting Considerations

Quotation marks (" ") used as part of a name or label require special consideration when you run the CLI and script commands on a Microsoft Windows marks in names while running CLI and script commands on Windows.
When quotation marks (" ") are part of an argument, you must insert a backslash (\) before each quotation mark character unless you are in interactive mode. For example:
where Engineering is the storage array name.
You cannot use quotation marks (" ") as part of a character string (also called string literal) within a script command. For example, you cannot enter the following string to set the storage array name to "Finance"Array:
On a Linux operating system, the delimiters around names or labels are single quotation marks (‘ ’). The Linux versions of the previous examples are:
®
operating system. The following explains the use of quotation
-c "set storageArray userLabel=\"Engineering\";"
-c "set storageArray userLabel= \"\"Finance\"Array\";"
-c ‘set storageArray userLabel="Engineering";’
®

Detailed Error Reporting

Error data collected from an error encountered by the CLI is written to a file. Detailed error reporting under the CLI works as follows:
If the CLI must abnormally end execution or abort script command execution, error data is collected and saved before the CLI aborts.
The CLI automatically saves the error data by writing the data to a file with a standard name.
The CLI does not have any provisions to avoid overwriting an existing version of the file containing error data.
For error processing, errors appear as two types:
Parameter or syntax errors you might enter
Exceptions that occur as a result of an operational error
24 About the Command Line Interface
When the CLI encounters either type of error, it writes information describing the error directly to the command line and sets a return code. Depending on the return code, the CLI might also write additional information about which parameter caused the error. The CLI also writes information about what command syntax was expected to help you identify any syntax errors you might have entered.
When an exception occurs while executing a command, the CLI automatically saves the error information to a file named excprpt.txt. The CLI attempts to place excprpt.txt in the directory specified by the system property devmgr.datadir, which by default is the "client/data" directory under the main installation directory in Windows and the /var/opt/SM directory in Linux. If for any reason the CLI cannot place the file in the devmgr.datadir- specified directory, the CLI saves the excprpt.txt file in the same directory from which the CLI is running. You cannot change the file name or location. The excprpt.txt file is overwritten every time an exception occurs. To save the information in the excprpt.txt file, you must to copy the information to a new file or directory.

Exit Status

After you run a CLI command or a CLI and script command, status is displayed that indicates the success of the operation defined by the command. The status values are shown in Table 1-3.
Table 1-3. Exit Status
Status Value Meaning
0 The command terminated without an error.
1 The command terminated with an error. Error information is also
displayed.
2 The script file does not exist.
3 An error occurred while opening an output file.
4 A storage array is not at the specified address.
5 Addresses specify different storage arrays.
6 A storage array name does not exist for the host agent connected.
7 The storage array name was not at the specified address.
About the Command Line Interface 25
Table 1-3. Exit Status (continued)
Status Value Meaning
8 The storage array name was not in the configuration file.
10 A management class does not exist for the storage array.
11 A storage array was not found in the configuration file.
12 An internal error occurred.
13 Invalid script syntax was found.
14 The RAID controller module was unable to communicate with the
storage array.
15 A duplicate argument was entered.
16 An execution error occurred.
17 A host was not at the specified address.
18 The World Wide Identifier (WWID) was not in the configuration
file.
19 The WWID was not at the address.
20 An unknown IP address was specified.
21 The event monitor configuration file was corrupted.
22 The storage array was unable to communicate with the event
monitor.
23 The RAID controller module was unable to write alert settings.
24 The wrong management station was specified.
25 The command was not available.
26 The device was not in the configuration file.
27 An error occurred while updating the configuration file.
28 An unknown host error occurred.
29 The sender contact information file was not found.
30 The sender contact information file could not be read.
31 The userdata.txt file exists.
32 An invalid -I value in the email alert notification was specified.
33 An invalid -f value in the email alert notification was specified.
26 About the Command Line Interface

Usage Examples

The following examples show how to enter CLI commands on a command line. The examples show the syntax, form, and, in some examples, script commands. Examples are shown for both Windows and Linux operating systems. The usage for the -c parameter varies depending on your operating system. On Windows operating systems, put quotation marks (" ") around the script command following the -c parameter. On Linux operating systems, put single quotation marks (‘ ’) around the script command following the -c parameter.
NOTE: See "Script Commands" on page 105 for descriptions of the script
commands used in the following examples.
This example shows how to change the name of a storage array. The original name of the storage array is Payroll_Array. The new name is Finance_Array.
Windows:
SMcli -n "Payroll_Array" -c "set storageArray userLabel=\"Finance_Array\";"
Linux:
SMcli -n ‘Payroll_Array’ -c ‘set storageArray userLabel="Finance_Array";’
This example shows how to delete an existing virtual disk and create a new virtual disk on a storage array. The existing virtual disk name is Stocks_<_Bonds. The new virtual disk name is Finance. The RAID controller module host names are finance1 and finance2. The storage array is protected and requires the password TestArray.
Windows:
SMcli finance1 finance2 -c "set session password= \"TestArray\"; delete virtualDisk [\"Stocks_<_ Bonds\"]; create virtualDisk physicalDiskCount[3] raidLevel=5 capacity=10 GB userLabel=\"Finance\"; show storageArray healthStatus;"
Linux:
SMcli finance1 finance2 -c ‘set session password= "TestArray"; delete virtualDisk ["Stocks_<_Bonds"]; create virtualDisk
About the Command Line Interface 27
physicalDiskCount[3] raidLevel=5 capacity=10 GB userLabel="Finance"; show storageArray healthStatus;’
This example shows how to run commands in a script file named scriptfile.scr on a storage array named Example. The -e parameter runs the file without checking syntax. Executing an SMcli command without checking syntax enables the file to run more quickly; however, the SMcli command may not execute correctly if the syntax is incorrect.
SMcli -n Example -f scriptfile.scr -e
This example shows how to run commands in a script file named scriptfile.scr on a storage array named Example. In this example, the storage array is protected by the password My_Array. Output, as a result of commands in the script file, goes to file output.txt.
Windows:
SMcli -n Example -f scriptfile.scr -p "My_Array" ­o output.txt
Linux:
SMcli -n Example -f scriptfile.scr -p ‘My_Array’ ­o output.txt
This example shows how to display all storage arrays that are currently discovered in the current configuration. The command in this example returns the host name of each storage array.
SMcli -d
If you want to know the IP address of each storage array in the configuration, add the -i parameter to the command.
SMcli -d -i
28 About the Command Line Interface

About the Script Commands

You can use the script commands to configure and manage a storage array. The script commands are distinct from the command line interface (CLI) commands; however, you enter the script commands using the command line interface. You can enter individual script commands, or run a file of script commands. When entering an individual script command, include it as part of a CLI command. When running a file of script commands, include the file name as part of a CLI command. The script commands are processed by a script engine that performs the following functions:
Verifies command syntax
Interprets the commands
Converts the commands to the appropriate protocol-compliant commands, which is, in turn, run by the RAID controller module
Passes the commands to the storage array
At the storage array, the redundant array of independent disks (RAID) controller modules in the storage array runs the script commands.
The script engine and script commands support the storage array configuration and management operations listed in Table 2-1.
Table 2-1. Configuration and Management Operations
Operation Activities
Virtual disk, disk group configuration
Physical disk configuration Configuring the hot spare
RAID controller module configuration
Creating, deleting, and setting priority; labeling; setting physical disk composition when creating virtual disks; setting segment size; and setting media scan control
Defining virtual disk ownership, changing mode settings, defining network settings, and setting host port IDs
About the Script Commands 29
Table 2-1. Configuration and Management Operations (continued)
Operation Activities
General storage array configuration
NVSRAM configuration Downloading and modifying the user configuration
Product identification Retrieving the enclosure profile display data
Battery management Setting the battery installation date
Firmware management Downloading RAID controller module, enclosure
Resetting a configuration to defaults, labeling, checking the health status, setting the time of day, clearing the Major Event Log, and setting the media scan rate
region at the bit and byte level, displaying nonvolatile static random access memory (NVSRAM) values
management module (EMM), and physical disk firmware

Script Command Structure

All script commands have the following structure:
command operand-data {statement-data}
where command identifies the action to be performed, operand-data represents the storage array component to configure or manage (such as a RAID controller module, physical disk, or disk group), and what you want to do to the component (such as, specifying the RAID level or availability of a disk group).
The general form of the syntax for
(
object-type | allobject-types
(
object-type [identifier
[
identifier
]} |
operand-data
| [
] {
object-type
object-types [identifier-list
statement-data is
is as follows:
qualifier
]
]))
An operand-data object can be identified four ways:
The object types and object qualifiers
all
•The
parameter
30 About the Script Commands
Brackets
A list of identifiers
NOTE: You can use any combination of alphanumeric characters, hyphens, and
underscores for the names. Command names can have a maximum of 30 characters. If you exceed the maximum character limit, replace square brackets ([ ]) with angle brackets (< >) to overcome this limitation.
Use an object type when the command is not referencing a specific object. The all parameter means all objects of the specified type in the storage array (for example, allVirtualDisks).
To perform a command on a specific object, use brackets to identify the object (for example, virtualDisk[engineering]). Specify a subset of objects with a list of identifiers in brackets (for example, virtualDisks[sales engineering marketing]). In a list of identifiers, use a blank space as the delimiter. A qualifier is necessary if you want to include additional information to describe the objects.
Table 2-2 lists the object type and identifiers associated with the object types.
Table 2-2. Object Types and Identifiers
Object Type Identifier
controller 0 or 1
physicalDisk Enclosure ID and the slot ID
physicalDiskChannel Physical disk channel identifier
host User label
hostChannel Host channel identifier
hostGroup User label
hostPort User label
snapshot Virtual disk user label
storageArray Not applicable
enclosure Enclosure ID
virtualDisk Virtual disk user label or the World Wide Identifier
(WWID) for the virtual disk (set command only)
About the Script Commands 31
Table 2-2. Object Types and Identifiers (continued)
Object Type Identifier
virtualDiskCopy Target virtual disk and, optionally, the source
virtual disk user labels
diskGroup Virtual disk group number
Statement data is in the form of attribute=value (such as raidLevel=5), an attribute name (such as batteryInstallDate), or an operation name (such as consistencyCheck).

Script Command Synopsis

Because you can use the script commands to define and manage the different aspects of a storage array (such as host topology, physical disk configuration, RAID controller module configuration, virtual disk definitions, and disk group definitions), the actual number of commands is extensive. The commands, however, fall into general categories that are reused when you apply the commands to the different aspects of a storage array.
Table 2-3 lists the general form of the script commands and provides a definition of each command.
Table 2-3. General Form of the Script Commands
Command Syntax Description
activate object {statement-data}
autoConfigure storageArray{statement-data}
check object {statement-data} Starts a synchronous operation to report on errors in
clear object {statement-data} Discards the contents of some attribute of an object.
create object {statement-data} Creates an object of the specified type.
Sets up the environment so that an operation can take place or performs the operation if the environment is already correctly set up.
Automatically creates a configuration based on parameters specified in the command.
the object.
This is a destructive operation that cannot be reversed.
32 About the Script Commands
Table 2-3. General Form of the Script Commands (continued)
Command Syntax Description
deactivate object {statement-data}
delete object Deletes a previously created object.
diagnose object {statement-data}
disable object {statement-data}
download object {statement-data}
enable object {statement-data}
recopy object {statement-data}
recover object {statement-data}
recreate object {statement-data}
remove object {statement-data}
repair object {statement-data} Repairs errors found by the check command.
reset object {statement-data} Returns the hardware or object to an initial state.
resume object Starts a suspended operation. The operation begins
revive object Forces the object from the Failed to the Optimal
save object {statement-data} Writes information about the object to a file.
set object
{statement-data} Changes object attributes. All changes are completed
Removes the environment for an operation.
Runs a test and displays the results.
Prevents a feature from operating.
Transfers data to the storage array or hardware associated with the storage array.
Allows a feature to operate.
Restarts a virtual disk copy operation by using an existing virtual disk copy pair. You can change attributes before the operation is restarted.
Re-creates an object from saved configuration data and the statement attributes (similar to the create command.)
Restarts a snapshot operation using an existing snapshot virtual disk. You can change attributes before the operation is restarted.
Removes a relationship from between objects.
where it left off when suspended.
state. Use only as part of an error recovery procedure.
when the command returns.
About the Script Commands 33
Table 2-3. General Form of the Script Commands (continued)
Command Syntax Description
show object {statement-data} Displays information about the object.
start object {statement-data} Starts an asynchronous operation. You can stop some
operations after they have started. You can query the progress of some operations.
stop object {statement-data} Stops an asynchronous operation.
suspend object {statement-data}
Suspends an operation. You can then restart the suspended operation, and it continues from the point at which it was suspended.

Recurring Syntax Elements

Recurring syntax elements are a general category of variables and parameters you can use in one or more script commands. The recurring syntax is used in the general definitions of the script commands that are listed in "Script Commands" on page 105. Table 2-4 lists the recurring syntax and the syntax values that you can use with the syntax.
Table 2-4. Recurring Syntax Elements
Recurring Syntax Syntax Value
raid-level (0 | 1 | 5| 6)
snapshot-repository-raid-level (1 | 5 | 6)
capacity-spec integer-literal [KB | MB | GB | TB |
Bytes]
segment-size-spec integer-literal
boolean (
user-label string-literal
user-label-list user-label {user-label}
create-raid-vol-attr-value-list create-raid-virtual disk-attribute-value-
TRUE | FALSE)
pair {create-raid-virtual disk-attribute-value- pair}
34 About the Script Commands
Table 2-4. Recurring Syntax Elements (continued)
Recurring Syntax Syntax Value
create-raid-virtual disk-attribute-value-pair capacity=capacity-spec |
owner=(0 | 1) | segmentSize=integer-literal
RAID controller module-enclosureId (0–99)
slot-id (0–31)
port-id (0–127)
physical disk-spec enclosureID, slotID
physical disk-spec-list physical disk-spec {physical disk-spec}
enclosure-id-list enclosureID {enclosureID}
hex-literal 0x hexadecimal-literal
virtual disk-group-number integer-literal
filename string-literal
error-action (stop | continue)
physical disk-channel-identifier (1 | 2)
physical disk-channel-identifier-list physical disk-channel-identifier
{physical disk-channel-identifier}
host-channel-identifier (01 | 02 | 11 | 12)
physical disk-type (Serial Attached SCSI [SAS] | Serial
Advanced Technology Attachment [SATA])
feature-identifier (snapshot | virtualDiskCopy)
repository-spec instance-based-repository-spec |
count-based-repository-spec
ethernet-port-options IPV4Address=ipv4-address|
IPV4ConfigurationMethod=[(static | dhcp)] |
IPV4GatewayIP=ipv4-address|
IPV4SubnetMask=ipv4-address|
About the Script Commands 35
Table 2-4. Recurring Syntax Elements (continued)
Recurring Syntax Syntax Value
iscsi-host-port-options IPV4Address=ipv4-address |
IPV6LocalAddress=ipv6-address | IPV6RoutableAddress=ipv6-address | IPV6RouterAddress=ipv6-address | enableIPV4= boolean | enableIPV6=boolean | enableIPV4Vlan=boolean | enableIPV6Vlan=boolean | enableIPV6Priority=boolean | enableIPV6Priority=boolean | IPV4ConfigurationMethod=(static |
dhcp) | IPV6ConfigurationMethod=(static | auto) |
IPV4GatewayIP= ipv4-address | IPV6HopLimit=integer | IPV6NdDetectDuplicateAddress=
integer |
IPV6NdReachableTime=integer | IPV6NdRetransmitTime=integer | IPV6NdTimeOut=integer | IPV4Priority=integer | IPV6Priority=integer | IPV4SubnetMask=ipv4-address | IPV4VlanID=integer | IPV6VlanID=integer | maxFramePayload=integer | tcpListeningPort=tcp-port-id|
NOTE: You must set the enableIPV4
parameter or the enableIPV6 parameter to TRUE to ensure that the specific IPV4 or IPV6 setting is applied.
NOTE: The IPV6 address space is
128 bits. It is represented by eight 16-bit hexadecimal blocks separated by colons. You may drop leading zeros, and use a double colon to represent consecutive blocks of zeroes.
36 About the Script Commands
Table 2-4. Recurring Syntax Elements (continued)
Recurring Syntax Syntax Value
instance-based-repository-spec repositoryRAIDLevel=repository-raid-
level repositoryPhysicalDisks=(physical disk­spec-list)
[enclosureLossProtect=boolean] repositoryDiskGroup=virtual-disk­group-number [freeCapacityArea=integer-literal]
Specify repositoryRAIDLevel with repositoryPhysicalDisks. Do not specify RAID level or physical disks with a disk group. Do not set enclosureLossProtect when specifying a disk group.
NOTE: For enclosure loss protection to
work, each physical disk in a disk group must be on a separate enclosure. If you set enclosureLossProtect=TRUE and have selected more than one physical disk from any one enclosure, the storage array returns an error. If you set enclosureLossProtect=FALSE, the storage array performs operations, but the disk group you create might not have enclosure loss protection.
NOTE: To determine if a free capacity
area exists, issue the show diskGroup command.
count-based-repository-spec repositoryRAIDLevel=repository-raid-
level repositoryPhysicalDiskCount=integer­literal
[physicalDiskType=physical disk-type] [enclosureLossProtect=boolean]
WWID string-literal.
For hostPort identifiers this is a 16-digit hex number without any colon delimiters.
About the Script Commands 37
Table 2-4. Recurring Syntax Elements (continued)
Recurring Syntax Syntax Value
nvsram-offset hexadecimal-literal
host-type string-literal | integer-literal
nvsram-byte-setting nvsram-value
(0x hexadecimal | integer-literal)
nvsram-bit-setting nvsram-mask, nvsram-value
(0x hexadecimal, 0x hexadecimal | integer-literal)
ipv4-address (0–255).(0–255).(0–255).(0–255)
ipv6-address (0-FFFF):(0-FFFF):(0-FFFF):
(0-FFFF):(0-FFFF):(0-FFFF): (0-FFFF):(0-FFF)
autoconfigure-vols-attr-value-list autoconfigure-vols-attr-value-pair
{autoconfigure-vols-attr-value-pair}
autoconfigure-vols-attr-value-pair physicalDiskType=physical disk-type|
raidLevel=raid-level | diskGroupWidth=integer-literal | diskGroupCount=integer-literal | virtualDisksPerGroupCount=integer- literal| hotSpareCount=integer-literal | segmentSize=segment-size-spec
NOTE: The physicalDiskType parameter is
not required if only one type of physical disk is in the storage array. If you use the physicalDiskType parameter, you must also use the hotSpareCount and diskGroupWidth parameters. If you do not use the physicalDiskType parameter, the configuration defaults to SAS physical disks.
NOTE: The virtualDisksPerGroupCount
parameter is the number of equal­capacity virtual disks per disk group.
38 About the Script Commands
Table 2-4. Recurring Syntax Elements (continued)
Recurring Syntax Syntax Value
create-virtual-disk-copy-attr-value-list create-virtual-disk-copy-attr-value-pair
{create-virtual-disk-copy-attr-value-pair}
create-virtual-disk-copy-attr-value-pair copyPriority=highest | high | medium |
low | lowest | targetReadOnlyEnabled=boolean
recover-raid-virtual-disk-attr-value-list recover-raid-virtual-disk-attr-value-pair
{recover-raid-virtual-disk-attr-value-pair}
recover-raid-virtual-disk-attr-value-pair owner=(0 | 1)
Table 2-5. Range of Values for Recurring Syntax Elements
Recurring Syntax Syntax Values
IPV4Priority 0 to 7
IPV4VlanID 1 to 4094
IPV6Priority 0 to 7
IPV6VlanID 1 to 4094
IPV6HopLimit 0 to 255 (default value is 64)
IPV6NdDetectDuplicateAddress 0 to 256
IPV6NdReachableTime 0 to 65535 (default value is
30000 milliseconds)
IPV6RetransmitTime 0 to 65535 (default value is
1000 milliseconds)
IPV6NDTimeOut 0 to 65535 (default value is
3000 milliseconds)
About the Script Commands 39
Table 2-5. Range of Values for Recurring Syntax Elements (continued)
Recurring Syntax Syntax Values
maxFramePayload 1500
NOTE: The maxFramePayload parameter
is shared between IPv4 and IPv6. The payload portion of a standard Ethernet frame is set at 1500 bytes, and a jumbo Ethernet frame is set at 9000 bytes. When using jumbo frames, make sure that all of the devices contained in the network path can handle the larger frame size.
tcpListeningPort (tcp-port-id) 3260, or 49,152 to 65,536
The default value is 3260.

Usage Guidelines

The following list provides guidelines for writing script commands on the command line:
You must end all commands with a semicolon (;).
You can enter more than one command on a line, but you must separate each command with a semicolon (;).
You must separate each base command and its associated primary and secondary parameters with a space.
The script engine is case sensitive.
You can add comments to your scripts to make it easier for you and future users to understand the purpose of the script commands. (For information on how to add comments, see "Adding Comments to a Script File" on page 41.)
NOTE: While the CLI and script commands are not case sensitive, user labels
(such as for virtual disk, hosts, or host ports) are case sensitive. If you try to map to an object identified by a user label, you must enter the user label exactly as it is defined, or the CLI and script commands will fail.
NOTE: You can use any combination of alphanumeric characters, hyphens, and
underscores for the names. Command names can have a maximum of 30 characters. If you exceed the maximum character limit, replace square brackets ([ ]) with angle brackets (< >) to overcome this limitation.
40 About the Script Commands
NOTE: The capacity parameter returns an error if you specify a value greater than
or equal to 10 without a space separating the numeric value and its unit of measure. (For example,
10GB will return an error, but 10 GB will not return an error).

Adding Comments to a Script File

You can add comments to a script file in three ways.
1
The script engine interprets as a comment any text typed after two forward slashes ( does not find an end-of-line character in the script after processing a comment, an error message is displayed, and the script operation is terminated. This error commonly occurs when a comment is placed at the end of a script and you did not press the Enter key.
// Deletes the existing configuration. clear storageArray Configuration;
2
The script engine interprets any text typed between comment. If the script engine does not find both a beginning and ending comment notation, an error message is displayed, and the script operation is terminated.
/* Deletes the existing configuration */ clear storageArray Configuration;
3
Use the to display while the script file is running. Enclose the text you want to display in quotation marks (" ").
show "Deletes the existing configuration"; clear storageArray Configuration;
/ /
) until an end-of-line character is reached. If the script engine
/ *
and
* /
as a
show
statement to embed comments in a script file that you want
About the Script Commands 41
42 About the Script Commands

Configuring a Storage Array

This chapter explains how to run script commands from the command line to create a virtual disk from a group of physical disks and how to configure a redundant array of independent disks (RAID) storage array. This chapter assumes that you understand basic RAID concepts and terminology. Before configuring the storage array, become familiar with the concepts of physical disks, disk groups, virtual disks, host groups, hosts, and RAID controller modules. Additional information about configuring a storage array and related definitions is in the online help, the Installation Guide, the MD Storage Manager User’s Guide, and the Owner’s Manual.
Configuring a RAID storage array requires caution and planning to ensure that you define the correct RAID level and configuration for your storage array. The main purpose in configuring a storage array is to create virtual disks addressable by the hosts from a collection of physical disks. The commands described in this chapter enable you to set up and run a RAID storage array. Additional commands are also available to provide more control and flexibility. Many of these commands, however, require a deeper understanding of the firmware as well as various structures that need to be mapped. Use all of the command line interface (CLI) commands and script commands with caution.
The following sections in this chapter show some, but not all, of the CLI and script commands. The purpose of showing these commands is to explain how you can use the commands to configure a storage array. The presentation in this chapter does not explain all possible usage and syntax for the commands. (For complete definitions of the commands, including syntax, parameters, and usage notes, see "Script Commands" on page 105.)
This chapter contains examples of CLI and script command usage. The command syntax used in the examples is for a host running a Microsoft Windows prompt and DOS path for the commands are shown. Depending on your operating system, the prompt and path construct will vary.
For most commands, the syntax is the same for all Windows and Linux operating systems, as well as for a script file. Windows operating systems, however, have an additional requirement when entering names in a
®
operating system. As part of the examples, the complete C:\
®
Configuring a Storage Array 43
command. On Windows, you must enclose the name between two backslashes (\) in addition to other delimiters. For example, the following name is used in a command that runs under Windows:
[\"Engineering\"]
For a Linux system when used in a script file, the name appears as:
["Engineering"]

Configuring a Storage Array

When you configure a storage array, you can maximize data availability by ensuring that data is quickly accessible while maintaining the highest level of data protection possible. The speed at which a host can access data is affected by the disk group RAID level and the segment size settings. Data protection is determined by the RAID level, hardware redundancy (such as global hot spares), and software redundancy (such as the Snapshot feature).
In general, you configure a storage array by defining the following entities:
A disk group and associated RAID level
The virtual disks
Which hosts have access to the virtual disks
This section explains how to use the script commands to create a configuration from an array of physical disks.

Determining What is on Your Storage Array

Even when you create a configuration on a previously unconfigured storage array, you still need to determine the hardware and software features that must be included with the storage array. When you configure a storage array with an existing configuration, you must ensure that your new configuration does not inadvertently alter the existing configuration, unless you are reconfiguring the entire storage array. For example, to create a new disk group on unassigned physical disks, you must determine which physical disks are available. The commands described in this section enable you to determine the components and features in your storage array.
44 Configuring a Storage Array
The show storageArray command returns the following general information about the components and properties of the storage array:
A detailed profile of the components and features in the storage array
The battery age
The default host type (which is the current host type)
Other available host types
The hot spare locations
The identifiers for enabled features
The logical and physical component profiles
The time to which both RAID controller modules are set
The RAID controller module that currently owns each virtual disk in the storage array
To return the most information about the storage array, run the show storageArray command with the profile parameter. The following is an
example of the complete CLI and script command running on Windows:
client>smcli 123.45.67.89 -c "show storageArray profile;"
This example identifies the storage array by the dummy IP address
123.45.67.89. You can also identify the storage array by name.
The show storageArray profile command returns detailed information about the storage array. The information is presented in several screens on a display. You might need to increase the size of your display buffer to see all of the information. Because this information is so detailed, you might want to save the output to a file. To save the output to a file, enter the command as shown in the following example:
client>smcli 123.45.67.89 -c "show storageArray profile;" -o c:\
folder\storageArrayprofile.txt
In this example, the name folder is the folder in which you choose to place the profile file, and storageArrayprofile.txt is the name of the file. You can choose any folder and any file name.
Configuring a Storage Array 45
NOTICE: When you write information to a file, the script engine does not check to
determine if the file name already exists. If you choose the name of a file that already exists, the script engine writes over the information in the file without warning.
When you save the information to a file, you can use the information as a record of your configuration and as an aid during recovery.
To return a brief list of the storage array features and components, use the summary parameter. The command is similar to the following example:
client>smcli 123.45.67.89 -c "show storageArray summary;"
The summary information is also returned as the first section of information when you use the profile parameter.
The following show commands return information about the specific components of a storage array. The information returned by each of these commands is the same as the information returned by the show storageArray profile command, but is constrained to the specific component. (The following commands are not complete commands. For information about a command, see the referenced section next to the command.)
show controller ("RAID Controller Module Commands" on page 111)
show physicalDisks ("Show Physical Disk" on page 205)
show physicalDiskchannels stats ("Show Physical Disk Channel Statistics" on page 207)
show storageArray hostTopology ("Show Storage Array Host Topology" on page 214)
show storageArray lunmappings ("Show Storage Array LUN Mappings" on page 214)
show allVirtualDisks ("Show Virtual Disk" on page 217)
show diskGroup ("Show Disk Group" on page 204)
show virtualDisk reservations ("Show Virtual Disk Reservations" on page 222)
46 Configuring a Storage Array
The following commands also return information about a storage array:
show storageArray autoConfigure ("Show Storage Array Autoconfigure" on page 212)
show controller NVSRAM ("Show RAID Controller Module NVSRAM" on page 209)
show storageArray unreadableSectors ("Show Storage Array Unreadable Sectors" on page 215)
show virtualDiskCopy sourceCandidates ("Show Virtual Disk Copy Source Candidates" on page 220)
show virtualDiskCopy targetCandidates ("Show Virtual Disk Copy Target Candidates" on page 220)
show virtualDisk performanceStat ("Show Disk Group Import Dependencies" on page 220)
For descriptions of the show commands, including examples of the information returned by each command, see "Script Commands" on page 105. Other commands can help you learn about your storage array. To see a list of the commands, see "Commands Listed by Function" on page 108. These commands are organized by the storage array activities that the commands support. (Examples include virtual disk commands, host commands, enclosure commands, and others).

Saving a Configuration to a File

NOTICE: When you write information to a file, the script engine does not check to
determine if the file name already exists. If you choose the name of a file that already exists, the script engine writes over the information in the file without warning.
After you have created a new configuration or if you want to copy an existing configuration for use on other storage arrays, you can save the configuration to a file. To save the configuration, use the save storageArray configuration command. Saving the configuration creates a script file that you can run on the command line. The following syntax is the general form of the command:
save storageArray configuration file="
filename
" [(allconfig | globalSettings=(TRUE | FALSE)) | virtualDiskConfigAndSettings=(TRUE | FALSE) | hostTopology=(TRUE | FALSE) | lunMappings=(TRUE | FALSE)]
Configuring a Storage Array 47
You can choose to save the entire configuration or specific configuration features. The command for setting this parameter value looks like the following example:
client>smcli 123.45.67.89 -c "save storageArray configuration file= \"c:\
folder\\storageArrayconfig1.scr
In this example, the name folder is the folder in which you choose to place the configuration file, and storageArrayconfig1.scr is the name of the file. Choose any folder and any file name. MD Storage Manager uses the file extension .scr when it creates the configuration file.
\";"

Using the Create Virtual Disk Command

The create virtualDisk command enables you to create new virtual disks in the storage array in three ways:
Create a new virtual disk while simultaneously creating a new disk group to which you assign the physical disks.
Create a new virtual disk while simultaneously creating a new disk group to which the MD Storage Manager software assigns the physical disks.
Create a new virtual disk in an existing disk group.
You must have unassigned physical disks in the disk group. You do not need to assign the entire capacity of the disk group to a virtual disk.
Creating Virtual Disks with User-Assigned Physical Disks
When you create a new virtual disk and assign the physical disks to use, the MD Storage Manager software creates a new disk group. The RAID controller module firmware assigns a disk group number to the new disk group. The following syntax is the general form of the command:
create virtualDisk physicalDisks= (
enclosureID0,slotID0...enclosureIDn,slotIDn
raidLevel=0 | 1 | 5 | 6)userLabel= "
virtualDiskName"
owner=(0 | 1) segmentSize= [enclosureLossProtect=(TRUE | FALSE)]
48 Configuring a Storage Array
[capacity=
segmentSizeValue
virtualDiskCapacity
)
]
NOTE: The capacity, owner, segmentSize, and enclosureLossProtect parameters
are optional. You can use one or all of the optional parameters as needed to help define your configuration. You do not, however, need to use any optional parameters.
The userLabel parameter is the name to give to the virtual disk. The virtual disk name can be any combination of alphanumeric characters, hyphens, and underscores. The maximum length of the virtual disk name is 30 characters. Spaces are not allowed. You must put quotation marks (" ") around the virtual disk name.
The physicalDisks parameter is a list of the physical disks that you want to use for the disk group. Enter the enclosure ID and slot ID of each physical disk that you want to use. Put parentheses around the list. Separate the enclosure ID and slot ID of a physical disk by a comma. Separate each enclosure ID and slot ID pair by a space. For example:
(0,0 0,1 0,2 0,3 0,4)
The capacity parameter defines the size of the virtual disk. You do not have to assign the entire capacity of the physical disks to the virtual disk. You can later assign any unused space to another virtual disk.
The owner parameter defines the RAID controller module to which you want to assign the virtual disk. If you do not specify a RAID controller module, the RAID controller module firmware determines the owner of the virtual disk.
The segmentSize parameter is the same as described for the autoConfigure storageArray command. See "Using the Auto Configure Command" on page 53.
The enclosureLossProtect parameter turns on or turns off enclosure loss protection for the disk group. (For a description of how enclosure loss protection works, see "Enclosure Loss Protection" on page 52.)
Example of Creating Virtual Disks with User-Assigned Physical Disks
client>smcli 123.45.67.89 -c "create virtualDisk physicalDisks=(0,0 0,1 0,2) raidLevel=5 userLabel= \"Engineering_1\" capacity=20 GB owner=0;"
NOTE: The capacity parameter returns an error if you specify a value greater than
or equal to 10 without a space separating the numeric value and its unit of measure. (For example,
10GB will return an error, but 10 GB will not return an error).
Configuring a Storage Array 49
The command in this example automatically creates a new disk group and a virtual disk with the name Engineering_1. The disk group will have a RAID level of 5 (RAID 5). The command uses three physical disks to construct the disk group. The virtual disk created has a capacity of 20 GB. If each physical disk has a capacity of 73 GB, the total capacity of the disk group is 219 GB. Because only 20 GB are assigned to the virtual disk, 199 GB remain available for other virtual disks that you can later add to this disk group. The segment size for each virtual disk is 64 KB. Hot spares have not been created for this new disk group. You must create hot spares after running this command.
Creating Virtual Disks with Software-Assigned Physical Disks
You can let the MD Storage Manager software assign the physical disks when you create the virtual disk. To have the software assign the physical disks, you need only specify the number of physical disks to use. The MD Storage Manager software then chooses the physical disks on which the virtual disk is created. The RAID controller module firmware assigns a disk group number to the new disk group. The following syntax is the general form for the command:
create virtualDisk physicalDiskCount=
numberOfPhysicalDisks
userLabel="
virtualDiskName
(SAS | SATA)] [capacity= owner=(0 | 1) | segmentSize=
raidLevel=(0 | 1 | 5 | 6)
" [physicalDiskType=
virtualDiskCapacity
segmentSizeValue
| ]
[enclosureLossProtect=(TRUE | FALSE)])
NOTE: The physicalDiskType, capacity, owner, segmentSize, and
enclosureLossProtect parameters are optional. You can use one or all of the
optional parameters as needed to help define your configuration. You do not, however, need to use any optional parameters.
This command is similar to the previous create virtualDisk command, which allows the user to assign the physical disks. This version of the command requires only the number and the type of physical disks to use in the disk group. You do not need to enter a list of physical disks. All other parameters are the same. Enclosure loss protection is performed differently when MD Storage Manager assigns the physical disks as opposed to when a user assigns the physical disks. (For an explanation of the difference, see "Enclosure Loss Protection" on page 52.)
50 Configuring a Storage Array
Example of Creating Virtual Disks with Software-Assigned Physical Disks
client>smcli 123.45.67.89 -c "create virtualDisk physicalDiskCount=3 raidLevel=5 userLabel= \"Engineering_1"\ capacity=20 GB owner=0 segmentSize=64;"
The command in this example creates the same virtual disk as the previous create virtualDisk command, however, in this case the user does not know which physical disks are assigned to this disk group.
Creating Virtual Disks in an Existing Disk Group
To add a new virtual disk to an existing disk group, use the following command:
create virtualDisk DiskGroup= userLabel="
freeCapacityIndexNumber virtualDiskCapacity segmentSizeValue
NOTE: The freeCapacityArea, capacity, owner, and segmentSize parameters are
optional. You can use one or all optional parameters as needed to help define your configuration, though you do not need to use any of them.
virtualDiskName
| capacity=
| owner=(0 | 1) | segmentSize=
]
diskGroupNumber
" [freeCapacityArea=
The diskGroup parameter is the number of the disk group in which you want to create a new virtual disk. If you do not know the disk group numbers on the storage array, you can use the show allVirtualDisks summary command. This command displays a list of the virtual disks and the disk groups to which the virtual disks belong.
The userLabel parameter is the name you want to give to the virtual disk. The virtual disk name can be any combination of alphanumeric characters, hyphens, and underscores. The maximum length of the virtual disk name is 30 characters. You must enclose the virtual disk name with quotation marks (" ").
The freeCapacityArea parameter defines the free capacity area to use for the virtual disk. If a disk group has several free capacity areas, you can use this parameter to identify which free capacity area to use for virtual disk creation. You do not have to assign the entire capacity of the physical disks to the virtual disk. Assign any unused space to another virtual disk at another time.
Configuring a Storage Array 51
The userLabel, capacity, owner, and segmentSize parameters are the same as in the previous versions of the create virtualDisk command.
Enclosure Loss Protection
The enclosureLossProtect parameter is a boolean switch that turns enclosure loss protection on or off. To work properly, each physical disk in a virtual disk group must be in a separate enclosure. Enclosure loss protection is set under the following conditions:
You assign the physical disks.
The RAID controller module assigns the physical disks.
The following table shows possible results for the enclosureLossProtect parameter. The results depend on whether you assign the physical disks or the RAID controller module assigns the physical disks.
Method enclosureLossProtect=
TRUE
You assign the physical disks.
The RAID controller module firmware assigns the physical disks.
If you select more than one physical disk from any one enclosure, the storage array returns an error.
The storage array posts an error if the RAID controller module firmware cannot provide physical disks to ensure that the new disk group has enclosure loss protection.
enclosureLossProtect=FALSE
The storage array performs the operation, but the created disk group does not have enclosure loss protection.
The storage array performs the operation even if it means that the disk group might not have enclosure loss protection.
The enclosureLossProtect parameter is not valid when creating virtual disks on existing disk groups.
52 Configuring a Storage Array

Using the Auto Configure Command

The autoConfigure storageArray command creates the disk groups on a storage array, the virtual disks in the disk groups, and the hot spares for the storage array. When you use the autoConfigure storageArray command, define the following parameters:
Type of physical disks (Serial Attached SCSI [SAS] or Serial Advanced Technology Attachment [SATA])
•RAID level
Number of physical disks in a disk group
Number of disk groups
Number of virtual disks in each disk group
Number of hot spares
Size of each segment on the physical disks
After defining these parameters, the MD Storage Manager automatically creates the disk groups, virtual disks, and hot spares. The RAID controller modules assign disk group and virtual disk numbers as they are created. After MD Storage Manager creates the initial configuration, you can use the set virtualDisk command to define virtual disk labels.
Before running the autoConfigure storageArray command, run the show
storageArray autoConfigure command. The show storageArray autoConfigure command returns a list of parameter values that MD Storage
Manager will use to create a storage array. Change any of the parameter values by entering new values for the parameters when you run the autoConfigure
storageArray command. If you are satisfied with the parameter values that the show storageArray autoConfiguration command returns, run the autoConfigure storageArray
The following syntax is the general form of autoConfigure storageArray command:
autoConfigure storageArray [physicalDiskType= (SAS | SATA) raidLevel=(0 | 1 | 5 | 6) | diskGroupWidth= diskGroupCount= virtualDisksPerGroupCount=
numberOfVirtualDisksPerGroup numberOfHotspares
command without new parameter values.
numberOfPhysicalDisks numberOfDiskGroups
|
|
| hotSpareCount=
| segmentSize=
segmentSizeValue
]
Configuring a Storage Array 53
NOTE: All parameters are optional. You can use one or all of the parameters as
needed to define your configuration.
When you use the autoConfigure storageArray command without specifying the number of disk groups, the firmware determines how many virtual disks and disk groups to create. The firmware creates one disk group and one virtual disk up to the maximum number that the storage array can support. When you specify the number of disk groups, the firmware creates only that number of disk groups. When you create more than one disk group, all of the disk groups have the same number of physical disks and the same number of virtual disks.
The diskGroupWidth para
meter defines the number of unassigned
physical disks wanted for each new disk group.
•The
diskGroupCount
parameter defines the number of new disk groups
wanted in the storage array.
The virtualDisksPerGroupCount para
meter defines the number of virtual
disks wanted in each disk group.
The hotSpareCount para
meter defines the number of hot spares wanted
in each disk group.
The segmentSize para
meter defines the amount of data in kilobytes that the RAID controller module writes on a single physical disk in a virtual disk before writing data on the next physical disk. The smallest units of storage are data blocks. Each data block stores 512 bytes of data. The size of a segment determines how many data blocks that it contains. An 8-KB segment holds 16 data blocks. A 64-KB segment holds 128 data blocks.
Valid values for the segment size are 8, 16, 32, 64, 128, 256, and 512.
When you enter a value for the segment size, the value is checked against the supported values provided by the RAID controller module at run time. If the value you enter is not valid, the RAID controller module returns a list of valid values.
If the virtual disk is for a single user with large I/O requests (such as multimedia), performance is maximized when a single I/O request can be serviced with a single data stripe. A data stripe is the segment size multiplied by the number of physical disks in the disk group that are used for data storage. In this environment, multiple physical disks are used for the same request, but each physical disk is accessed only once.
54 Configuring a Storage Array
For optimal performance in a multi-user database or file system storage environment, set the segment size to minimize the number of physical disks needed to satisfy an I/O request. Using a single physical disk for a single request leaves other physical disks available to simultaneously service other requests.
After you have finished creating the disk groups and virtual disks by using the autoConfigure storageArray command, you can further define the properties of the virtual disks in a configuration using the set virtualDisk command. (See "Modifying Your Configuration" on page 55.)
Example of the Auto Configuration Command
client>smcli 123.45.67.89 -c "autoConfigure storageArray physicalDiskType=SAS raidLevel=5 diskGroupWidth=8 diskGroupCount=3 virtualDisksPerGroupCount=4 hotSpareCount=2 segmentSize=8;"
The command in this example creates a storage array configuration that uses SAS physical disks set to RAID level 5. Three disk groups are created. Each disk group consists of eight physical disks configured into four virtual disks. The storage array has two hot spares, and segment size for each virtual disk is 8 KB.

Modifying Your Configuration

After creating your initial configuration, modify the properties of the configuration to ensure that it meets your requirements for data storage. Use the following commands to modify the properties of your configuration:
autoConfigure storageArray
create virtualDisk
Use the set commands to modify a storage array configuration. This section explains how to modify the following properties:
Storage array password
Simple Mail Transport Protocol (SMTP) and Simple Network Management Protocol (SNMP) alerts
RAID controller module clocks
Configuring a Storage Array 55
Storage array host type
Global hot spares
NOTE: Before modifying your configuration, save a copy of your current
configuration to a file (see "Saving a Configuration to a File" on page 47). If you have problems with your modifications, you can use the information in the file to restore your previous configuration.

Setting the Storage Array Password

The set storageArray command enables you to define a password for a storage array. The following syntax is the general form of the command:
set storageArray password="
The password parameter defines a password for the storage array. Passwords provide added security to a storage array to reduce the possibility of implementing destructive commands.
NOTE: CLI commands do not have interactive warnings for destructive commands.
NOTICE: Implementing destructive commands can cause serious damage,
including data loss.
Unless you define a password for the storage array, anyone can run all of the script commands. A password protects the storage array from any command that the RAID controller modules consider destructive. A destructive command is any command that can change the state of the storage array, such as virtual disk creation, reset, delete, rename, or change. If you have more than one storage array in a storage configuration, each array has a separate password. Passwords can have a maximum length of 30 characters. You must put quotation marks (" ") around the password. The following example shows how to use the set storageArray command to define a password:
client>smcli 123.45.67.89 -c "set storageArray password=\"1a2b3c4d5e"\;"
password
"

Setting Up SMTP and SNMP Alerts

The storage array can be set up to send automatic email alert messages to specified email addresses when specific events occur. View the current alert configuration settings using the following command:
SMcli -d -i -s -w -v -S
56 Configuring a Storage Array
By default, all alert configuration settings are None.
The following example shows how to set the mail server IP and the sender address configurations for SMTP alerts:
SMcli -m
123.45.67.89
-F
MyStorageArrayEvent@MyCompany.com
or
SMcli -m
MyCompany.com
-F
MyStorageArrayEvent@MyCompany.com
An example of a command to set the email alert destination and specify that only event information is to be sent is:
SMcli -a email:
123.45.67.89
The following example shows how to set the SNMP trap alert configuration. In this example, the trap destination is 123.45.67.891. The storage array is
123.45.67.892, and the community name is public.
SMcli -a trap:public, 123.45.67.891 123.45.67.892
MyCompanySupport@MyCompany.com
-I eventOnly

Setting the RAID Controller Module Clocks

To synchronize the clocks on the RAID controller modules with the host, use the set storageArray time command. Running this command helps ensure that event timestamps written by RAID controller modules to the Major Event Log (MEL) match event timestamps written to the host log files. The RAID controller modules remain available during synchronization. An example of the command is:
client>smcli 123.45.67.89 -c "set storageArray time;"

Setting the Storage Array Host Type

The set storageArray command enables you to define the default host type. The following syntax is the general form of the command:
set storageArray defaultHostType=(
hostTypeIdentifier
)
Configuring a Storage Array 57
hostTypeName
|
The defaultHostType parameter defines how the RAID controller modules communicate with the operating system on undefined hosts connected to the storage array. This parameter defines the host type only for storage array data I/O activities; it does not define the host type for the management station. The operating system can be Windows or Linux. For example, if you set the defaultHostType to Linux, the RAID controller module communicates with any undefined host if the undefined host is running Linux. Typically, you need to change the host type only when you are setting up the storage array. The only time you might need to use this parameter is if you need to change how the storage array behaves relative to the hosts.
Before you can define the default host type, you need to determine what host types are connected to the storage array. To return information about host types connected to the storage array, you can use the show storageArray command with the defaultHostType parameter or hostTypeTable parameter. This command returns a list of the host types with which the RAID controller modules can communicate; it does not return a list of the hosts. The following examples show how to use the defaultHostType parameter and the hostTypeTable parameter:
client>smcli 123.45.67.89 -c "show storageArray defaultHostType;"
client>smcli 123.45.67.89 -c "show storageArray hostTypeTable;"
The following example shows how to define a specific default host type:
client>smcli 123.45.67.89 -c "set storageArray defaultHostType=11;"
The value 11 is the host type index value from the host type table.

Setting Modification Priority

Modification priority defines how much processing time is allocated for virtual disk modification operations. Time allocated for virtual disk modification operations affects system performance. Increases in virtual disk modification priority can reduce read/write performance. Operations affected by modification priority include:
Copyback
Reconstruction
58 Configuring a Storage Array
Initialization
Changing segment size
Defragmentation of a disk group
Adding free capacity to a disk group
Changing the RAID level of a disk group
The lowest priority rate favors system performance, but the modification operation takes longer. The highest priority rate favors the modification operation, but the system performance might be degraded.
The set virtualDisk command enables you to define the modification priority for a virtual disk. The following syntax is the general form of the command:
set (allVirtualDisks | virtualDisk [virtualDiskName] | virtualDisks [
... virtualDiskNamen
accessVirtualDisk) modificationPriority=(highest | high | medium | low | lowest)
The following example shows how to use this command to set the modification priority for virtual disks named Engineering 1 and Engineering 2:
client>smcli 123.45.67.89 -c "set virtualDisks [\"Engineering_1\" \"Engineering_2\"] modificationPriority=lowest;"
] | virtualDisk <
virtualDiskName1
wwid
> |
The modification rate is set to lowest so that system performance is not significantly reduced by modification operations.

Assigning Global Hot Spares

Hot spare physical disks can replace any failed physical disk in the storage array. The hot spare must be the same type of physical disk as the physical disk that failed and must have capacity greater than or equal to any physical disk that can fail. If a hot spare is smaller than a failed physical disk, the hot spare cannot be used to rebuild the data from the failed physical disk. Hot spares are available only for RAID levels 1 or 5.
Configuring a Storage Array 59
You can assign or unassign global hot spares by using the set physicalDisk command. To use this command, you must perform these steps:
1
Identify the location of the physical disks by enclosure ID and slot ID.
2
Set
the hotSpare para
disable an existing hot spare.
The following syntax is the general form of the command:
set (physicalDisk [ physicalDisks [
enclosureIDn,slotIDn
The following example shows how to use this command to set hot spare physical disks:
client>smcli 123.45.67.89 -c "set physicalDisks [0,2 0,3] hotSpare=TRUE;"
Enter the enclosure ID and slot ID of each physical disk that you want to use. You must put brackets ([ ]) around the list. Separate the enclosure ID and slot ID of a physical disk by a comma. Separate each enclosure ID and slot ID pair by a space.
meter to
TRUE
to enable the hot spare or
enclosureID,slotID
] |
enclosureID0,slotID0 ...
] hotSpare=(TRUE | FALSE)
FALSE
to
60 Configuring a Storage Array

Using the Snapshot Feature

This chapter describes how the Snapshot feature works, lists the snapshot script commands, and explains how to use the commands to create snapshot virtual disks. Additional information about the Snapshot feature and related definitions is available in the online help, the Installation Guide, the MD Storage Manager User’s Guide, and the Owner’s Manual.
The Snapshot feature creates a snapshot virtual disk that you can use as a backup of your data. A snapshot virtual disk is a logical point-in-time image of a standard virtual disk. Because it is not a physical copy, a snapshot virtual disk is created more quickly than a physical copy and requires less physical disk space. Typically, you create a snapshot virtual disk so that an application, such as a backup application, can access the snapshot virtual disk. The application reads the data while the source virtual disk remains online and user accessible. You can also create several snapshot virtual disks of a source virtual disk and write data to the snapshot virtual disks to perform testing and analysis.
NOTE: If you ordered Premium Features for the Snapshot Virtual Disks, you
received a Premium Features Activation card shipped in the same box as your Dell PowerVault file and to enable the feature. For more information, see "Premium Feature Snapshot Virtual Disks" in the User’s Guide.
Snapshot virtual disks allow you to perform the following tasks:
Create a complete image of the data on a source virtual disk at a particular point in time.
Use only a small amount of disk space.
Provide quick, frequent, nondisruptive backups; or test new versions of a database system without affecting actual data.
Provide for snapshot virtual disks to be read, written, and copied.
Use the same availability characteristics of the source virtual disk (such as redundant array of independent disks (RAID) protection and redundant path failover).
MD storage array. Follow the directions on the card to obtain a key
Using the Snapshot Feature 61
Map the snapshot virtual disk and make it accessible to any host on a storage area network. You can make snapshot data available to secondary hosts for read and write access by mapping the snapshot to the hosts.
Create up to four snapshots per virtual disk.
NOTE: The maximum number of snapshot virtual disks is one-half of the total
number of virtual disks supported by the RAID controller module.
Increase the capacity of a snapshot virtual disk.
Table 4-1 lists the components that comprise a snapshot virtual disk and briefly describes what they do.
Component Description
Source virtual disk Standard virtual disk from which the snapshot is
created
Snapshot virtual disk Point-in-time image of a standard virtual disk
Snapshot repository virtual disk Virtual disk that contains snapshot metadata and
copy-on-write data for a particular snapshot virtual disk
Table 4-1 lists the snapshot virtual disk commands and brief descriptions of what the commands do.
Table 4-1. Snapshot Virtual Disk Commands
Command Description
create snapshotVirtualDisk Creates a snapshot virtual disk.
re-create snapshot Starts a fresh copy-on-write operation by using an
existing snapshot virtual disk.
set (snapshotVirtualDisk) Defines the properties for a snapshot virtual disk and
enables you to rename a snapshot virtual disk.
stop snapshot Stops a copy-on-write operation.
62 Using the Snapshot Feature

Using Host Servers to Create an Initial Snapshot Virtual Disk

NOTICE: Before using the Snapshot Virtual Disks Premium Feature in a Microsoft®
Windows the cluster node that owns the source virtual disk. This ensures that the cluster nodes correctly recognize the snapshot virtual disk.
If you map the snapshot virtual disk to the node that does not own the source virtual disk before the snapshot enabling process is completed, the operating system may fail to correctly identify the snapshot virtual disk. This can result in data loss on the source virtual disk or an inaccessible snapshot.
For details on mapping the snapshot virtual disk to the secondary node, refer to the Dell PowerEdge™ Cluster SE600W Systems Installation and Troubleshooting Guide on support.dell.com
NOTE: You can create concurrent snapshots of a source virtual disk on both the
source disk group and on another disk group.
Before creating a Snapshot Virtual Disk, note the following:
The following types of virtual disks are not valid source virtual disks: snapshot repository virtual disks, snapshot virtual disks, target virtual disks that are participating in a virtual disk copy.
You cannot create a snapshot of a virtual disk that contains unreadable sectors.
You must satisfy the requirements of your host operating system for creating snapshot virtual disks. Failure to meet the requirements of your host operating system results in an inaccurate point-in-time image of the source virtual disk or the target virtual disk in a virtual disk copy.
®
clustered configuration, you must first map the snapshot virtual disk to

Creating a Snapshot Virtual Disk

The create snapshotVirtualDisk command provides three methods for defining the physical disks for your snapshot repository virtual disk:
Define each physical disk for the snapshot repository virtual disk by enclosure ID and slot ID.
Define a disk group in which the snapshot repository virtual disk resides. Optionally define the capacity of the repository virtual disk.
Using the Snapshot Feature 63
Define the number of physical disks, but not specific physical disks, for the repository virtual disk.
When using the create snapshotVirtualDisk command to create a snapshot virtual disk, the standard virtual disk name for the source virtual disk is the minimum information required. When you provide only the standard virtual disk name, the storage management software provides default values for the other required property parameters for a snapshot virtual disk.
NOTE: In some cases, depending on the host operating system and any virtual disk
manager software in use, the software prevents you from mapping the same host to both a source virtual disk and its associated snapshot virtual disk.
An error message appears in the command line when the utility cannot distinguish between the following:
Source virtual disk and snapshot virtual disk (for example, if the snapshot virtual disk has been removed)
Standard virtual disk and virtual disk copy (for example, if the virtual disk copy has been removed)
If you are running a Linux operating system, run the hot_add utility to register the snapshot virtual disk with the host operating system.
NOTE: The hot_add utility is not available for Windows.

Enabling the Snapshot Virtual Disk Feature

The first step in creating a snapshot virtual disk is to make sure the feature is enabled on the storage array. You need a feature key to enable the feature. The command for enabling the feature key file is:
enable storageArray feature file="
filename
"
where the file parameter is the complete file path and file name of a valid feature key file. Enclose the file path and file name in quotation marks (" "). Valid file names for feature key files usually end with .key extension.

Creating a Snapshot Virtual Disk with User-Assigned Physical Disks

Creating a snapshot virtual disk by assigning the physical disks allows you to choose from the available physical disks when defining your storage array configuration. When you choose the physical disks for your snapshot virtual disk, you automatically create a new disk group. You can specify which physical disks to use and the RAID level for the new disk group.
64 Using the Snapshot Feature

Preparing Host Servers to Create an Initial Snapshot Virtual Disk

NOTICE: Before you create a new point-in-time image of a source virtual disk, stop
any data access (I/O) activity or suspend data transfer to the source virtual disk to ensure that you capture an accurate point-in-time image of the source virtual disk. Close all applications, including Windows Internet Explorer activity has stopped.
NOTE: Removing the drive letter of the associated virtual disk(s) in Windows or
unmounting the virtual drive in Linux will help to guarantee a stable copy of the drive for the Snapshot.
Before creating a snapshot virtual disk, the server has to be in the proper state. To ensure that the host server is properly prepared to create a snapshot virtual disk, you can either use an application to carry out this task, or you can perform the following steps:
1
Stop all I/O activity to the source.
2
Using your Windows system, flush the cache to the source. At the host prompt, type
SMrepassist -f <
filename-identifier
®
, to make sure all I/O
>
and press <Enter>. See "SMrepassist Utility" in
the User’s Guide
for more
information.
3
Remove the drive letter(s) of the source in Windows or unmount the virtual drive(s) in Linux to help guarantee a stable copy of the drive for the Snapshot. If this is not done, the snapshot operation will report that it has completed successfully, but the snapshot data will not be updated properly.
NOTE: Verify that the virtual disk has a status of Optimal or Disabled by
clicking the Summary tab and then clicking the Disk Groups & Virtual Disks link.
4
Follow any additional instructions for your operating system. Failure to follow these additional instructions can create unusable snapshot virtual disks.
NOTE: If your operating system requires additional instructions, you can find those
instructions in your operating system documentation.
If you want to use a snapshot regularly, such as for backups, use the Disable Snapshot and Re-create Snapshot options to reuse the snapshot. Disabling and re-creating snapshots preserves the existing virtual disk-to-host mappings to the snapshot virtual disk.
Using the Snapshot Feature 65
After your server has been prepared, see "Creating the Initial Snapshot Virtual Disk" on page 66.

Creating the Initial Snapshot Virtual Disk

After first preparing the host server(s) as specified in the preceding procedure, use the following examples to make a virtual disk snapshot.
The following syntax is the general form of the command to create a snapshot virtual disk:
create snapshotVirtualDisk sourceVirtualDisk= "
sourceVirtualDiskName"
1 | 5) (repositoryPhysicalDisks= (
enclosureID0,slotID0 ... enclosureIDn,slotIDn
userLabel=" warningThresholdPercent= repositoryPercentOfSource= repositoryUserLabel=" repositoryFullPolicy=(failSourceWrites | failSnapShot)] [enclosureLossProtect=(TRUE | FALSE)]
NOTE: Use one or all of the optional parameters as needed to help define your
configuration. You do not, however, need to use any optional parameters.
Refer to steps 1 through 4 in the preceding section, "Preparing Host Servers to Create an Initial Snapshot Virtual Disk" on page 65. The following example shows a command in which users assign the physical disks:
client>smcli 123.45.67.89 -c "create snapshotVirtualDisk sourceVirtualDisk= \"Mars_Spirit_4\" repositoryRAIDLevel=5 repositoryPhysicalDisks=(1,1 1,2 1,3 1,4 1,5);"
snapshotVirtualDiskName
[repositoryRAIDLevel=(0 |
"
percentValue
percentValue
repositoryName"
)
The command in this example creates a new snapshot of the source virtual disk Mars_Spirit_4. The snapshot repository virtual disk consists of five physical disks that form a new disk group. The new disk group has a RAID level of 5. This command also takes a snapshot of the source virtual disk, starting the copy-on-write operation.
66 Using the Snapshot Feature
Refer to steps 1 through 4 in the preceding section, "Preparing Host Servers to Create an Initial Snapshot Virtual Disk" on page 65. The following example is the script file version of the command:
create snapshotVirtualDisk sourceVirtualDisk= "Mars_Spirit_4" repositoryRAIDLevel=5 repositoryPhysicalDisks=(1,1 1,2 1,3 1,4 1,5);
A minimal version of this command might look like the following example:
client>smcli 123.45.67.89 -c "create snapshotVirtualDisk sourceVirtualDisk= \"Mars_Spirit_4\";"
The command in this example creates a new snapshot for the source virtual disk Mars_Spirit_4. The repository virtual disk is created in the same disk group as the source virtual disk, which means that the repository virtual disk has the same RAID level as the source virtual disk. This command starts the copy-on-write operation.
Refer to steps 1 through 4 in the preceding section, "Preparing Host Servers to Create an Initial Snapshot Virtual Disk" on page 65. The following example is the script file version of the command:
create snapshotVirtualDisk sourceVirtualDisk= "Mars_Spirit_4";

Creating a Snapshot Virtual Disk with Software-Assigned Physical Disks

This version of the create snapshotVirtualDisk command lets you choose an existing disk group in which to place the snapshot repository virtual disk. The storage management software determines which physical disks to use. You can also define how much space to assign to the repository virtual disk. Because you are using an existing disk group, the RAID level for the snapshot virtual disk defaults to the RAID level of the disk group in which you place it. You cannot define the RAID level for the snapshot virtual disk. The general syntax for this command is:
create snapshotVirtualDisk sourceVirtualDisk= "
sourceVirtualDiskName"
diskGroupNumber
freeCapacityArea=
freeCapacityIndexNumber
[repositoryDiskGroup=
userLabel=
Using the Snapshot Feature 67
"
snapshotVirtualDiskName"
warningThresholdPercent= repositoryPercentOfSource= repositoryUserLabel="
percentValue
percentValue
repositoryName"
repositoryFullPolicy=(failSourceWrites | failSnapShot)] [enclosureLossProtect=(TRUE | FALSE)]
NOTE: Use one or all of the optional parameters as needed to define your
configuration. It is not necessary to use any optional parameters.
The following example is a command in which software assigns the physical disks:
client>smcli 123.45.67.89 -c "create snapshotVirtualDisk sourceVirtualDisk= \"Mars_Spirit_4\" repositoryDiskGroup=2 freeCapacityArea=2;"
The command in this example creates a new snapshot repository virtual disk in disk group 2. The source virtual disk is Mars_Spirit_4. The size of the snapshot repository is 4 GB. This command also takes a snapshot of the source virtual disk, which starts the copy-on-write operation.
Define the capacity of a snapshot repository virtual disk as any percentage of the size of the source virtual disk. A value of 20 percent is a good compromise between size and speed. In the previous example, the size of the snapshot repository is set to 4 GB. The underlying assumption is that the source virtual disk size is 20 GB (0.2 x 20 GB = 4 GB).
The following example is the script file version of the command:
create snapshotVirtualDisk sourceVirtualDisk= "Mars_Spirit_4" repositoryDiskGroup=2 freeCapacityArea=2;
68 Using the Snapshot Feature

Creating a Snapshot Virtual Disk by Specifying a Number of Physical Disks

With this version of the create snapshotVirtualDisk command, you must specify the number of physical disks and the RAID level for the snapshot repository virtual disk. This version of the create snapshotVirtualDisk command creates a new disk group. You must have physical disks in the storage array that are not assigned to a disk group for this command to work:
create snapshotVirtualDisk sourceVirtualDisk=
"sourceVirtualDiskName"
1 | 5 | 6) repositoryPhysicalDiskCount=
numberOfPhysicalDisks
SATA) userLabel= warningThresholdPercent= repositoryPercentOfSource= repositoryUserLabel= repositoryFullPolicy=(failSourceWrites | failSnapShot)] [enclosureLossProtect=(TRUE | FALSE)]
NOTE: Use one or all optional parameters as needed to define your configuration.
It is not necessary to use any optional parameters.
The following example is a command in which users specify the number of physical disks:
client>smcli 123.45.67.89 -c "create snapshotVirtualDisk sourceVirtualDisk= \"Mars_Spirit_4\" repositoryRAIDLevel=5 repositoryPhysicalDiskCount=3;"
"snapshotVirtualDiskName"
[repositoryRAIDLevel=(0 |
physicalDiskType=(SAS |
percentValue
percentValue
"repositoryName"
The command in this example creates a new snapshot repository virtual disk that consists of three physical disks. The three physical disks comprise a new disk group with a RAID level of 5. This command also takes a snapshot of the source virtual disk, which starts the copy-on-write operation.
The following example is the script file version of the command:
create snapshotVirtualDisk sourceVirtualDisk= "Mars_Spirit_4" repositoryRAIDLevel=5 repositoryPhysicalDiskCount=3;
Using the Snapshot Feature 69

User-Defined Parameters

Parameters for the create snapshotVirtualDisk command enable you to define the snapshot virtual disk to suit the requirements of your storage array. Table 4-2 lists the parameters and descriptions of what the parameters do.
Table 4-2. Snapshot Virtual Disk Parameters
Parameter Description
physicalDiskType Specifies the type of physical disk to use for the
snapshot repository virtual disk. The choice is either Serial Attached SCSI (SAS) or Serial Advanced Technology Attachment (SATA). This parameter works only with the count-based repository method of defining a snapshot virtual disk.
repositoryDiskGroup Specifies the disk group in which to build the snapshot
virtual disk. Default builds the snapshot repository virtual disk in the same disk group as the source virtual disk.
freeCapacityArea Specifies the amount of storage space to use for the
snapshot repository virtual disk. Free storage space is defined in units of bytes, kilobytes, megabytes, or gigabytes.
userLabel Specifies the name to give to the snapshot virtual disk.
If you do not choose a name for the snapshot virtual disk, the RAID controller modules create a default name using the source virtual disk name. For example, if the source virtual disk name is Mars_Spirit_4 and it does not have a snapshot virtual disk, the default snapshot virtual disk name is Mars_Spirit_4-1. If the source virtual disk already has n – 1 number of snapshot virtual disks, the default name is Mars_Spirit_4-n.
70 Using the Snapshot Feature
Table 4-2. Snapshot Virtual Disk Parameters (continued)
Parameter Description
repositoryUserLabel Specifies the name to give to the snapshot repository
virtual disk. If you do not choose a name for the snapshot repository virtual disk, the RAID controller modules create a default name using the source virtual disk name. For example, if the source virtual disk name is Mars_Spirit_4 and it does not have an associated snapshot repository virtual disk, the default snapshot repository virtual disk name is Mars_Spirit_4-R1. If the source virtual disk already has n – 1 number of snapshot repository virtual disks, the default name is Mars_Spirit_4-Rn.
warningThresholdPercent Specifies how full to allow the snapshot repository
virtual disk to get before sending a warning that the snapshot repository virtual disk is close to capacity. The warning value is a percentage of the total capacity of the snapshot repository virtual disk. The default value is 50, which represents 50 percent of total capacity. (Change this value using the set snapshotVirtualDisk command.)
repositoryPercentOfSource Specifies the size of the snapshot repository virtual disk
as a percentage of the source virtual disk size. The default value is 20, which represents 20 percent of the source virtual disk size.
repositoryFullPolicy Specifies how snapshot processing continues if the
snapshot repository virtual disk is full. You can choose to fail writes to the source virtual disk (failSourceWrites) or fail writes to the snapshot virtual disk (failSnapShot). The default value is failSnapShot.
The following example of the create snapshotVirtualDisk command includes user-defined parameters:
client>smcli 123.45.67.89 -c "create snapshotVirtualDisk sourceVirtualDisk= \"Mars_Spirit_4\" repositoryRAIDLevel=5 repositoryPhysicalDiskCount=5 physicalDiskType= SAS userLabel=\"Mars_Spirit_4_snap1\"
Using the Snapshot Feature 71
repositoryUserLabel=\"Mars_Spirit_4_rep1\" warningThresholdPercent=75 repositoryPercentOfSource=40 repositoryFullPolicy=failSnapShot;"
The following example is the script file version of the command:
create snapshotVirtualDisk sourceVirtualDisk= "Mars_Spirit_4" repositoryRAIDLevel=5 repositoryPhysicalDiskCount=5 physicalDiskType= SAS userLabel="Mars_Spirit_4_snap1" repositoryUserLabel="Mars_Spirit_4_rep1" warningThresholdPercent=75 repositoryPercentOfSource=40 repositoryFullPolicy=failSnapShot;
NOTE: In the previous examples, the names for the snapshot virtual disk and
repository virtual disk are defined by the user. If you do not choose to create names for the snapshot virtual disks or the repository virtual disks, the RAID controller modules provide default names. (See "Names of Snapshot Virtual Disks and Repository Virtual Disks" on page 72 for an explanation of naming conventions.)

Names of Snapshot Virtual Disks and Repository Virtual Disks

The names of snapshot virtual disks and repository virtual disks can be any combination of alphanumeric characters, hyphens, and underscores. The maximum length of the virtual disk names is 30 characters. You must enclose the name in quotation marks. The character string cannot contain a new line. Make sure that you use unique names or the RAID controller module firmware returns an error.
One technique for naming the snapshot virtual disk and the repository virtual disk is to add a hyphenated suffix to the original name of the source virtual disk. The suffix distinguishes between the snapshot virtual disk and the repository virtual disk. For example, if you have a source virtual disk with a name Engineering Data, the snapshot virtual disk can have a name
Engineering Data-S1. The repository virtual disk can have a name of Engineering Data-R1.
If you do not choose a unique name for the either the snapshot virtual disk or repository virtual disk, the RAID controller modules create a default name by using the name of the source virtual disk. For example, if the name of the source virtual disk is aaa and it does not have a snapshot virtual disk, then the
72 Using the Snapshot Feature
default name is aaa-1. If the source virtual disk already has n – 1 number of snapshot virtual disks, then the default name is aaa-n. Similarly, if the name of the source virtual disk is aaa and it does not have a repository virtual disk, then the default repository virtual disk name is aaa-R1. If the source virtual disk already has n–1 number of repository virtual disks, then the default name is aaa-Rn.
In the examples from the previous section, the user-defined name of the snapshot virtual disk was Mars_Spirit_4_snap1. The user-defined name of the repository virtual disk was Mars_Spirit_4_rep1. The default name provided by the RAID controller module for the snapshot virtual disk would be Mars_Spirit_4-1. The default name provided by the RAID controller module for the repository virtual disk would be Mars_Spirit_4-R1.

Changing Snapshot Virtual Disk Settings

The set (snapshot) virtualDisk command enables you to change the property settings for a snapshot virtual disk. Using this command, you can change the following parameters:
Name of the snapshot virtual disk
Warning threshold percent
Repository full policy
The following example shows the command to change the name of a snapshot virtual disk:
client>smcli 123.45.67.89 -c "set virtualDisk [\"Mars_Spirit_4-1\"] userLabel=\"Mars_Odyssey_3­2\";"
The following example is the script file version of the command:
set virtualDisk ["Mars_Spirit_4-1"] userLabel= "Mars_Odyssey_3-2";
Using the Snapshot Feature 73
When you change the warning threshold percent and repository full policy, you can apply the changes to one or several snapshot virtual disks. The following example uses the set (snapshot) virtualDisk command to change these properties on more than one snapshot virtual disk:
client>smcli 123.45.67.89 -c "set virtualDisks [\"Mars_Spirit_4-1\" \"Mars_Spirit_4-2\" \"Mars_Spirit_4-3\"] warningThresholdPercent=50 repositoryFullPolicy=failSourceWrites;"
The following example is the script file version of the command:
set virtualDisks ["Mars_Spirit_4-1" "Mars_Spirit_4-2" "Mars_Spirit_4-3"] warningThresholdPercent=50 repositoryFullPolicy= failSourceWrites;

Stopping and Deleting a Snapshot Virtual Disk

When you create a snapshot virtual disk, copy-on-write immediately starts running. As long as a snapshot virtual disk is enabled, storage array performance is affected by the copy-on-write operations to the associated snapshot repository virtual disk. If you no longer want copy-on-write operations to run, you can use the stop snapshot virtualDisk command to stop the copy-on-write operations. When you stop a snapshot virtual disk, the snapshot virtual disk and the repository virtual disk are still defined for the source virtual disk; only copy-on-write has stopped. The following example stops a snapshot virtual disk:
client>smcli 123.45.67.89 -c "stop snapshot virtualDisks [\"Mars_Spirit_4-2\" \"Mars_Spirit_4­3\"];"
The following example is the script file version of the command:
stop snapshot virtualDisks ["Mars_Spirit_4-2" "Mars_Spirit_4-3"];
When you stop the copy-on-write operations for a specific snapshot virtual disk, only that snapshot virtual disk is disabled. All other snapshot virtual disks remain in operation.
74 Using the Snapshot Feature

Re-creating the Snapshot Virtual Disk

To restart a copy-on-write operation, use the recreate snapshot virtualDisk command. This command starts a fresh copy-on-write operation using an existing snapshot virtual disk. When you restart a snapshot virtual disk, the snapshot virtual disk must have either an Optimal or a Disabled state. The following conditions then occur:
All copy-on-write data previously on the snapshot repository virtual disk is deleted.
Snapshot virtual disk and snapshot repository virtual disk parameters remain the same as the previously disabled snapshot virtual disk and snapshot repository virtual disk. You can also change the
warningThresholdP ercent
, and repositoryFullPolicy parameters when you restart
userLabel
,
the snapshot virtual disk.
The original names for the snapshot repository virtual disk are retained.

Preparing Host Servers to Re-create a Snapshot Virtual Disk

NOTICE: Before you create a new point-in-time image of a source virtual disk, stop
any data access (I/O) activity or suspend data transfer to the source virtual disk and snapshot virtual disk to ensure that you capture an accurate point-in-time image of the source virtual disk. Close all applications, including Windows Internet Explorer, to make sure all I/O activity has stopped.
NOTE: Removing the drive letter of the associated virtual disk in Windows or
unmounting the virtual drive in Linux will help to guarantee a stable copy of the drive for the Snapshot.
Before re-creating a snapshot virtual disk, both the server and the associated virtual disk you are re-creating have to be in the proper state. To ensure that the host server is properly prepared to re-create a snapshot virtual disk, you can either use an application to carry out this task, or you can perform the following steps:
1
Stop all I/O activity to the source and snapshot virtual disk (if mounted).
2
Using your Windows system, flush the cache to both the source and the snapshot virtual disk (if mounted). At the host prompt, type
SMrepassist -f <
filename-identifier
>
and press <Enter>. See "SMrepassist Utility" in information.
Using the Snapshot Feature 75
the User’s Guide
for more
3
Remove the drive letter(s) of the source and (if mounted) snapshot virtual disk in Windows or unmount the virtual drive(s) in Linux to help guarantee a stable copy of the drive for the Snapshot. If this is not done, the snapshot operation will report that it has completed successfully, but the snapshot data will not be updated properly.
4
Follow any additional instructions for your operating system. Failure to follow these additional instructions can create unusable snapshot virtual disks.
NOTE: If your operating system requires additional instructions, you can find
those instructions in your operating system documentation.
After your server has been prepared, see "Re-creating the Snapshot Virtual Disk" on page 75 to re-create the snapshot virtual disk.

Re-creating a Snapshot Virtual Disk

After first preparing the host server(s) as specified in the preceding procedure, use the following examples to re-create a virtual disk snapshot.
Refer to steps 1 through 4 in the preceding section, "Preparing Host Servers to Re-create a Snapshot Virtual Disk" on page 75. The following example shows the command to restart a snapshot virtual disk:
client>smcli 123.45.67.89 -c "recreate snapshot virtualDisks [\"Mars_Spirit_4-2\" \"Mars_Spirit_4­3\"];"
Refer to steps 1 through 4 in the preceding section, "Preparing Host Servers to Re-create a Snapshot Virtual Disk" on page 75. The following example is the script file version of the command:
recreate snapshot virtualDisks ["Mars_Spirit_4-2" "Mars_Spirit_4-3"];
If you do not intend to use a snapshot virtual disk again, you can delete the snapshot virtual disk using the delete virtualDisk command. When you delete a snapshot virtual disk, the associated snapshot repository virtual disk is also deleted.
76 Using the Snapshot Feature

Using the Virtual Disk Copy Feature

This chapter describes how the Virtual Disk Copy feature works, lists the script commands for Virtual Disk Copy, and explains how to use the commands to create and run Virtual Disk Copy. Additional information about Virtual Disk Copy and related definitions is available in the online help, the
Installation Guide, the MD Storage Manager User’s Guide, and the Owner’s Manual.
NOTE: If you ordered Premium Features for Virtual Disk Copy, you received a
Premium Features Activation card shipped in the same box as your Dell PowerVault file and to enable the feature. For more information, see "Premium Feature Virtual Disk Copy" in the User’s Guide.
The Virtual Disk Copy feature enables you to copy data from one virtual disk (the source) to another virtual disk (the target) in a single storage array. You can use this feature to perform the following functions:
Back up data.
Copy data from disk groups that use smaller capacity physical disks to disk groups using larger capacity physical disks.
Restore snapshot virtual disk data to the associated source virtual disk.
NOTE: The preferred method is to perform a Virtual Disk Copy from a Snapshot
Virtual Disk. This allows the original virtual disk used in the Snapshot operation to remain in full use while the Snapshot of this virtual disk is used as the source for the virtual disk copy operation.
MD storage array. Follow the directions on the card to obtain a key
NOTE: The Virtual Disk Copy for any Virtual Disk cannot be mounted on the same
host as the source Virtual Disk. The Microsoft not allow assigning a drive letter to the Virtual Disk Copy.
Using the Virtual Disk Copy Feature 77
®
Windows® operating system does
Table 5-1 lists the Virtual Disk Copy commands and briefly describes what the commands do.
Table 5-1. Virtual Disk Copy Commands
Command Description
create virtualDiskCopy Creates a virtual disk copy and starts the virtual disk
copy operation.
disable storageArray feature=virtualDiskCopy
enable storageArray feature Activates the Virtual Disk Copy feature.
recopy virtualDiskCopy Re-initiates a virtual disk copy operation by using an
remove virtualDiskCopy Removes a virtual disk copy pair.
set virtualDiskCopy Defines the properties for a virtual disk copy pair.
show virtualDiskCopy Returns information about virtual disk copy operations.
show virtualDiskCopy sourceCandidates
show virtualDiskCopy targetCandidates
stop virtualDiskCopy Stops a virtual disk copy operation.
Turns off the current virtual disk copy operation.
existing virtual disk copy pair.
You can retrieve information about a specific virtual disk copy pair, or all virtual disk copy pairs in the storage array.
Returns information about the candidate virtual disks that you can use as the source for a virtual disk copy operation.
Returns information about the candidate virtual disks that you can use as the target for a virtual disk copy operation.

Creating a Virtual Disk Copy

Before creating a virtual disk copy, ensure that a suitable target virtual disk exists on the storage array, or create a new target virtual disk specifically for the virtual disk copy. The target virtual disk must have a capacity equal to or greater than the source virtual disk.
You can have a maximum of eight virtual disk copies in progress at one time. Any virtual disk copy greater than eight has a status of Pending until one of the virtual disk copies with a status of In Progress completes.
78 Using the Virtual Disk Copy Feature
The following steps show the general process for creating a virtual disk copy:
1
Enable the Virtual Disk Copy feature.
2
Determine candidates for a virtual disk copy.
3
Create the target virtual disk and source virtual disk for a virtual disk copy.

Enabling the Virtual Disk Copy Feature

The first step in creating a virtual disk copy is to make sure the feature is enabled on the storage array. You need a feature key to enable the feature. To enable the feature key file, use the command:
enable storageArray feature file="
filename
"
where the file parameter is the complete file path and file name of a valid feature key file. Enclose the file path and file name in quotation marks (" "). Valid file names for feature key files usually end with a .key extension.

Determining Virtual Disk Copy Candidates

All virtual disks might not be available for use in virtual disk copy operations. To determine which candidate virtual disks on the storage array can be used as a source virtual disk, use the command. To determine which candidate virtual disks on the storage array can be used as a target virtual disk, use the show virtualDiskCopy targetCandidates command. These commands return a list of the expansion enclosure, slot, and capacity information for source virtual disk and target virtual disk candidates. You can use the show virtualDiskCopy sourceCandidates and the show virtualDiskCopy targetCandidates commands only after you have enabled the virtual disk copy feature.
show virtualDiskCopy sourceCandidates

Creating a Virtual Disk Copy

NOTICE: A virtual disk copy overwrites data on the target virtual disk. Ensure that
you no longer need the data or have backed up the data on the target virtual disk before starting a virtual disk copy.
When you create a virtual disk copy, you must define which virtual disks to use for the source virtual disk and target virtual disks. Define the source virtual disk and target virtual disk by the name of each virtual disk. You can
Using the Virtual Disk Copy Feature 79
also define the copy priority and choose whether you want the target virtual disk to be write enabled or read only after the data is copied from the source virtual disk.

Preparing Host Servers to Create a Virtual Disk Copy

NOTICE: Before you create a new copy of a source virtual disk, stop any data
access (I/O) activity or suspend data transfer to the source virtual disk (and, if applicable, the target disk) to ensure that you capture an accurate point-in-time image of the source virtual disk. Close all applications, including Windows Internet Explorer, to make sure all I/O activity has stopped.
NOTE: Removing the drive letter of the associated virtual disk(s) in Windows or
unmounting the virtual drive in Linux will help to guarantee a stable copy of the drive for the virtual disk copy.
Before creating a virtual disk copy, both the server and the associated virtual disk you are copying have to be in the proper state. To ensure that the host server is properly prepared to create a virtual disk copy, you can either use an application to carry out this task, or you can perform the following steps:
1
Stop all I/O activity to the source and target virtual disk.
2
Using your Windows system, flush the cache to both the source and the target virtual disk (if mounted). At the host prompt, type
SMrepassist -f <
filename-identifier
>
and press <Enter>. See "SMrepassist Utility" in
the User’s Guide
information.
3
Remove the drive letter(s) of the source and (if mounted) virtual disk in Windows or unmount the virtual drive(s) in Linux to help guarantee a stable copy of the drive for the virtual disk. If this is not done, the copy operation will report that it has completed successfully, but the copied data will not be updated properly.
4
Follow any additional instructions for your operating system. Failure to follow these additional instructions can create unusable virtual disk copies.
NOTE: If your operating system requires additional instructions, you can find
those instructions in your operating system documentation.
After your server has been prepared, see "Copying the Virtual Disk" on page 81 to copy the virtual disk.
80 Using the Virtual Disk Copy Feature
for more

Copying the Virtual Disk

After first preparing the host server(s) as specified in the preceding procedure, use the following examples to make a virtual disk copy.
The following syntax is the general form of the command:
create virtualDiskCopy source="
targetName
"
" [copyPriority=(highest | high | medium | low | lowest) targetReadOnlyEnabled=(TRUE | FALSE)]
NOTE: Use one or both of the optional parameters as needed to help define your
configuration. It is not necessary to use any optional parameters.
Once the virtual disk copy has started, the source virtual disk will be read only to all I/O activity. Any write attempts to the source virtual disk will fail until the operation completes.
Once the virtual disk copy operation is completed register the target virtual disk with the OS to be used by performing the following steps:
Enable write permission on the target virtual disk by either removing the Virtual Disk Copy Pair or explicitly setting write permission.
In Windows, assign a drive letter to the virtual disk.
In Linux, mount the virtual disk.
Refer to steps 1 through 4 in the preceding section, "Preparing Host Servers to Create a Virtual Disk Copy" on page 80. The create virtualDiskCopy command might look like the following example:
client>smcli 123.45.67.89 -c "create virtualDiskcopy source=\"Jaba_Hut\" target= \"Obi_1\" copyPriority=medium targetreadonlyenabled=true"
sourceName
" target=
The command in this example copies the data from the source virtual disk named Jaba_Hut to the target virtual disk named Obi_1. Setting the copy priority to medium provides a compromise between the following storage array operations:
The speed with which the data is copied from the source virtual disk to the target virtual disk
The amount of processing resource required for data transfers to other virtual disks in the storage array
Using the Virtual Disk Copy Feature 81
Setting the targetReadOnlyEnabled parameter to TRUE means that write requests cannot be made to the target virtual disk. This setting also ensures that the data on the target virtual disk remains unaltered.
Refer to steps 1 through 4 in the preceding section, "Preparing Host Servers to Create a Virtual Disk Copy" on page 80. The following example is the script file version of the command:
create virtualDiskcopy source="Jaba_Hut" target= "Obi_1" copyPriority=medium targetreadonlyenabled= true;
After the virtual disk copy operation is completed, the target virtual disk automatically becomes read-only to the hosts. Any write requests to the target virtual disk are rejected, unless you disable the read-only attribute. Use the set virtualDiskCopy command to disable the read-only attribute.

Viewing Virtual Disk Copy Properties

Using the show virtualDiskCopy command, you can view information about one or more selected source virtual disks or target virtual disks. This command returns the following information:
The virtual disk role (target or source)
The copy status
The start timestamp
The completion timestamp
The virtual disk copy priority
The read-only attribute setting for the target virtual disk
The source virtual disk World Wide Identifier (WWID) or the target virtual disk WWID
A virtual disk can be a source virtual disk for one virtual disk copy and a target virtual disk for another virtual disk copy. If a virtual disk participates in more than one virtual disk copy, the details are repeated for each associated copy pair.
The following syntax is the general form of the command:
show virtualDiskCopy (allVirtualDisks | source [sourceName] | target [targetName])
82 Using the Virtual Disk Copy Feature
The following example shows a command that returns information about a virtual disk used for a virtual disk copy:
client>smcli 123.45.67.89 -c "show virtualDiskCopy source [\"Jaba_Hut\"];"
The command in the preceding example requests information about the source virtual disk Jaba_Hut. If you want information about all virtual disks, use the allVirtualDisks parameter. You can also request information about a specific target virtual disk.
The following example is the script file version of the command:
show virtualDiskCopy source ["Jaba_Hut"];

Changing Virtual Disk Copy Settings

The set virtualDiskCopy command enables you to change the property settings for a virtual disk copy pair. Using this command, you can change the following items:
Copy priority
Read/write permission for the target virtual disk
Copy priority has five relative settings, which range from highest to lowest. The highest priority supports the virtual disk copy, but I/O activity might be affected. The lowest priority supports I/O activity, but the virtual disk copy takes longer. You can change the copy priority at three different times in the operation:
Before the virtual disk copy begins
While the virtual disk copy has a status of In Progress
After the virtual disk copy has completed re-creating a virtual disk copy using the
When you create a virtual disk copy pair and after the original virtual disk copy has completed, the target virtual disk is automatically defined as read­only to the hosts. The read-only status of the target virtual disk ensures that the copied data on the target virtual disk is not corrupted by additional writes
recopy virtualDiskCopy
command
Using the Virtual Disk Copy Feature 83
to the target virtual disk after the virtual disk copy is created. Maintain the read-only status when the following conditions apply:
You are using the target virtual disk for backup purposes
You are copying data from one disk group to a larger disk group for greater accessibility
You are planning to use the data on the target virtual disk to copy back to the source virtual disk in case of a disabled or failed snapshot virtual disk
At other times you might want to write additional data to the target virtual disk. You can use the set virtualDiskCopy command to reset the read/write permission for the target virtual disk.
NOTE: If you enabled host writes to the target virtual disk, read and write requests
are rejected while the virtual disk copy has a status of In Progress, Pending, or Failed.
The following syntax is the general form of the command:
set virtualDiskCopy target [ [
sourceName
]] copyPriority=(highest | high |
targetName
] [source
medium | low | lowest) targetReadOnlyEnabled=(TRUE | FALSE)
NOTE: Use one or both of the parameters as needed to help define your
configuration. It is not necessary to use either parameter.
The following example shows how to change parameters using the set virtualDiskCopy command:
client>smcli 123.45.67.89 -c "set virtualDiskcopy target [\"Obi_1\"] copyPriority=highest targetreadonlyenabled=false;"
The following example is the script file version of the command:
set virtualDiskcopy target ["Obi_1"] copyPriority= highest targetreadonlyenabled=false;

Recopying a Virtual Disk

NOTICE: The recopy virtualDiskCopy command overwrites existing data on the
target virtual disk and makes the target virtual disk read-only to hosts. The recopy virtualDiskCopy command fails all snapshot virtual disks associated with the target virtual disk, if any exist.
84 Using the Virtual Disk Copy Feature
Using the recopy virtualDiskCopy command, you can create a new virtual disk copy for a previously defined copy pair that has a status of Stopped, Failed, or Completed. Use the recopy virtualDiskCopy command to create backups of the target virtual disk, then copy the backup to tape for off-site storage. When using the recopy virtualDiskCopy command to make a backup, you cannot write to source while the recopy is running. The recopy might take a long time.
When you run the recopy virtualDiskCopy command, the data on the source virtual disk is copied in its entirety to the target virtual disk.
Reset the copy priority for the recopy operation by using the recopy virtualDiskCopy command. The higher priorities allocate storage array resources to the virtual disk copy at the expense of storage array performance.

Preparing Host Servers to Recopy a Virtual Disk

NOTICE: Before you create a new copy of a source virtual disk, stop any data
access (I/O) activity or suspend data transfer to the source virtual disk (and, if applicable, the target disk) to ensure that you capture an accurate point-in-time image of the source virtual disk. Close all applications, including Windows Internet Explorer, to make sure all I/O activity has stopped.
NOTE: Removing the drive letter of the associated virtual disk(s) in Windows or
unmounting the virtual drive in Linux will help to guarantee a stable copy of the drive for the virtual disk copy.
Before creating a new virtual disk copy for an existing copy pair, both the server and the associated virtual disk you are recopying have to be in the proper state. To ensure that the host server is properly prepared to create a virtual disk recopy, you can either use an application to carry out this task, or you can perform the following steps:
1
Stop all I/O activity to the source and target virtual disk.
2
Using your Windows system, flush the cache to both the source and the target virtual disk (if mounted). At the host prompt, type
SMrepassist -f <
filename-identifier
>
and press <Enter>. See "SMrepassist Utility" in information.
Using the Virtual Disk Copy Feature 85
the User’s Guide
for more
3
Remove the drive letter(s) of the source and (if mounted) virtual disk in Windows or unmount the virtual drive(s) in Linux to help guarantee a stable copy of the drive for the virtual disk. If this is not done, the copy operation will report that it has completed successfully, but the copied data will not be updated properly.
4
Follow any additional instructions for your operating system. Failure to follow these additional instructions can create unusable virtual disk copies.
NOTE: If your operating system requires additional instructions, you can find
those instructions in your operating system documentation.
After your server has been prepared, see "Recopying the Virtual Disk" on page 86 to recopy the virtual disk.

Recopying the Virtual Disk

After first preparing the host server(s) as specified in the preceding procedure, use the following examples to make a virtual disk copy.
The following syntax is the general form of the command:
recopy virtualDiskCopy target [ [
sourceName
] copyPriority=(highest | high | medium
targetName
| low | lowest) targetReadOnlyEnabled=(TRUE | FALSE)]
NOTE: Use one or all of the optional parameters as needed to help define your
configuration. It is not necessary to use any optional parameters.
Refer to steps 1 through 4 in the preceding section, "Preparing Host Servers to Recopy a Virtual Disk" on page 85. The following example shows a command that changes the copy priority:
client>smcli 123.45.67.89 -c "recopy virtualDiskCopy target [\"Obi_1\"] copyPriority= highest;"
] [source
The command in this example copies data from the source virtual disk associated with the target virtual disk Obi_1 to the target virtual disk again. The copy priority is set to the highest value to complete the virtual disk copy as quickly as possible. The underlying consideration for using this command is that you have already created the virtual disk copy pair. When you create a virtual disk copy pair, you automatically created one virtual disk copy. Using
86 Using the Virtual Disk Copy Feature
this command, you are copying the data from the source virtual disk to the target virtual disk. You are making this copy because the data on the source virtual disk changed since the previous copy was made.
Refer to steps 1 through 4 in the preceding section, "Preparing Host Servers to Recopy a Virtual Disk" on page 85. The following example is the script file version of the command:
recopy virtualDiskCopy target ["Obi_1"] copyPriority=highest;

Stopping a Virtual Disk Copy

The stop virtualDiskCopy command enables you to stop a virtual disk copy that has a status of In Progress, Pending, or Failed. After you stop a virtual disk copy, you can use the recopy virtualDiskCopy command to create a new virtual disk copy using the original virtual disk copy pair. All mapped hosts will have write access to the source virtual disk.
The following syntax is the general form of the command:
stop virtualDiskCopy target [ [
sourceName
The following example shows a command to stop a virtual disk copy operation:
client>smcli 123.45.67.89 -c "stop virtualDiskCopy target [\"Obi_1\"];"
]]
targetName
] [source
The following example is the script file version of the command:
stop virtualDiskCopy target ["Obi_1"];

Removing Copy Pairs

The remove virtualDiskCopy command enables you to remove a virtual disk copy pair from the storage array configuration. All virtual disk copy information for the source virtual disk and target virtual disk is removed from the storage array configuration. The data on the source virtual disk or target virtual disk is not deleted. Removing a virtual disk copy from the storage array configuration also removes the read-only attribute for the target virtual disk.
Using the Virtual Disk Copy Feature 87
NOTICE: If the virtual disk copy has a status of In Progress, you must stop the
virtual disk copy before you can remove the virtual disk copy pair from the storage array configuration.
The following syntax is the general form of the command:
remove virtualDiskCopy target [ [
sourceName
The following example shows a command to remove a virtual disk copy pair:
client>smcli 123.45.67.89 -c "remove virtualDiskCopy target [\"Obi_1\"];"
The following example is the script file version of the command:
remove virtualDiskCopy target ["Obi_1"];
]]
targetName
] [source

Interaction with Other Features

You can run the Virtual Disk Copy feature while running the following features:
Storage Partitioning
Snapshot Virtual Disks
When running the Virtual Disk Copy feature with other features, you must take the requirements of other features into consideration to ensure you set up a stable storage array configuration.
You can also run the Virtual Disk Copy feature while running Dynamic Virtual Disk Expansion.

Storage Partitioning

Storage partitioning enables hosts to share access to virtual disks in a storage array. You create a storage partition when you define the following storage array assignments:
•A host
A host group
Virtual disk-to-logical unit number (LUN) mapping
The virtual disk-to-LUN mapping enables you to define which host group or host has access to a particular virtual disk in the storage array.
88 Using the Virtual Disk Copy Feature
After you create a virtual disk copy, the target virtual disk automatically becomes read-only to hosts to ensure that the data is preserved. Hosts that have been mapped to a target virtual disk do not have write access to the virtual disk, and any attempt to write to the read-only target virtual disk results in a host I/O error.
If you want hosts to have write access to the data on the target virtual disk, use the set virtualDiskCopy command to disable the read-only attribute for the target virtual disk.

Snapshot Virtual Disks

A snapshot virtual disk is a point-in-time image of a virtual disk. It is typically created so that an application, such as a backup, can access the snapshot virtual disk and read the data while the source virtual disk remains online and accessible to hosts.
NOTICE: Before using the source virtual disk of a snapshot virtual disk as your
target, you must disable all snapshot virtual disks associated with the source virtual disk. By disabling the snapshot virtual disks, you avoid altering the snapshot data if the source virtual disk is changed.
Creating a snapshot virtual disk automatically creates a snapshot repository virtual disk. The snapshot repository virtual disk stores information about the data that has changed since the snapshot virtual disk was created. Snapshot repository virtual disks cannot be selected as a source virtual disk or target virtual disk in a virtual disk copy.
The virtual disk for which the point-in-time image is created is the source virtual disk and must be a standard virtual disk in the storage array.
You can select snapshot virtual disks as the source virtual disk for a virtual disk copy. Selecting a snapshot virtual disk is a good use of this feature, because it enables complete backups without significant impact to the storage array I/O. However, some I/O processing resources are lost to the copy operation.
The Snapshot Virtual Disk feature can be used with the Virtual Disk Copy feature to back up data on the same storage array and to restore the data on the snapshot virtual disk back to its original source virtual disk.
Using the Virtual Disk Copy Feature 89
90 Using the Virtual Disk Copy Feature

Maintaining a Storage Array

Maintenance covers a broad spectrum of activities. Its goal is to keep a storage array operational and available to all hosts. This chapter provides descriptions of command line interface (CLI) and script commands that you can use to perform storage array maintenance. The commands are organized into four sections:
Routine maintenance
Performance tuning
Troubleshooting and diagnostics
Recovery operations
The organization is not a rigid approach, and you can use the commands as appropriate for your storage array. The commands listed in this chapter do not cover the entire array of commands you can use for maintenance. Other commands, particularly the set commands, can provide diagnostic or maintenance capabilities.

Routine Maintenance

Routine maintenance involves those tasks you might perform periodically to ensure that the storage array is running as well as possible or to detect conditions before they become problems.

Running a Media Scan

Media scan provides a method of detecting physical disk media errors before they are found during a normal read from or write to the physical disks. Any errors detected are reported to the Major Event Log (MEL). Media scan provides an early indication of a potential drive failure and reduces the possibility of encountering a media error during host operations. A media
Maintaining a Storage Array 91
scan is performed as a background operation and scans all data and consistency information in defined user virtual disks. A media scan runs on all virtual disks in the storage array with the following conditions:
An Optimal status
No modification operations in progress
Media scan enabled
Errors detected during a scan of a user virtual disk are reported to the MEL and handled as:
Unrecovered media error — The physical disk could not read the
requested data on its first attempt or on any subsequent retries. For virtual disks with redundancy protection, the data could not be reconstructed from the redundant copy. The error is not corrected but it is reported to the MEL.
Reconstructed media error — The physical disk could not read the
requested data on its first attempt or on any subsequent retries. The data is reconstructed from the redundant copy, rewritten to the drive, verified, and the error is reported to the MEL.
Recovered media error — The physical disk could not read the
requested data on its first attempt. The result of this action is that the data is rewritten to the physical disk and verified. The error is reported to the MEL.
Consistency mismatches — Consistency errors are found, and a media
error is forced on the block stripe so that it is found when the physical disk is scanned again. If consistency is repaired, this forced media error is removed. The result of this action is that the first ten consistency mismatches found on a virtual disk are reported to the MEL.
Unfixable error — The data could not be read and consistency
information could not be used to regenerate it. For example, consistency information cannot be used to reconstruct data on a degraded virtual disk. The result of this action is that the error is reported to the MEL.
92 Maintaining a Storage Array
The script command set provides two commands to define media scan properties:
set virtualDisks
set storageArray
The
set virtualDisk c
The following syntax is the general form of the command:
set (allVirtualDisks | virtualDisk [
virtualDiskName
... virtualDiskNamen
mediaScanEnabled=(TRUE | FALSE)
The
set storageArray
run on a storage array. The following syntax is the general form of the command:
set storageArray mediaScanRate=(disabled | 1-30)
ommand enables a media scan for the virtual disk.
] | virtualDisks [
] | virtualDisk <
command defines how frequently a media scan is
virtualDiskName1
wwid
>)

Running a Consistency Check

Consistency checks are performed when media scans are run, if consistency check is enabled on the virtual disk. (See "Running a Media Scan" on page 91 for an explanation about setting up and running media scans.) During a consistency check, all data blocks in a virtual disk are scanned, and deteriorated data is corrected. The method of correction depends on the redundant array of independent disks (RAID) levels:
RAID 5 and RAID 6 virtual disks — Consistency is checked and repaired.
RAID 1 virtual disks — The data is compared between the mirrored physical disks, and data inconsistencies are repaired.
RAID 0 virtual disks — No redundancy exists.
Before attempting a consistency check, you must enable the process with the set virtualDisk command, which uses the following general form:
set (allVirtualDisks | virtualDisk [
virtualDiskName
... virtualDiskNamen
consistencyCheckEnabled=(TRUE | FALSE)
] | virtualDisks [
] | virtualDisk <
virtualDiskName1
wwid
>)
Maintaining a Storage Array 93

Resetting a RAID Controller Module

NOTICE: When you reset a RAID controller module, the RAID controller module is
not available for I/O operations until the reset is complete. If a host is using virtual disks owned by the RAID controller module being reset, the I/O directed to the RAID controller module is rejected. Before resetting the RAID controller module, ensure that a multipath driver is installed on all hosts using these virtual disks. If a multipath driver is not installed, the virtual disks will not be available.
Resetting a RAID controller module is the same as rebooting the RAID controller module processors. To reset a RAID controller module, run the following command:
reset controller [(0 | 1)]

Enabling RAID Controller Module Data Transfer

At times, a RAID controller module might become quiescent while running diagnostics. If this occurs, the RAID controller module might become unresponsive. To revive a RAID controller module, run the following command:
enable controller [(0 | 1)] dataTransfer

Resetting Battery Age

NOTE: A smart battery module does not require the battery age to be reset.
After replacing the batteries in the storage array, you must reset the age of the battery, either for an entire storage array or one battery in a specific RAID controller module. To reset the age to zero days, run the following command:
reset storageArray batteryInstallDate [controller= (0 | 1)]

Removing Persistent Reservations

Persistent reservations preserve virtual disk registrations and prevent hosts, other than the host defined for the virtual disk, from accessing the virtual disk. You must remove persistent reservations before you perform the following changes to your configuration:
Change or delete logical unit number (LUN) mappings on a virtual disk holding a reservation.
Delete virtual disk groups or virtual disks that have any reservations.
94 Maintaining a Storage Array
To determine which virtual disks have reservations, run the following command:
show (allVirtualDisks | virtualDisk [
virtualDiskName
... virtualDiskNamen
To clear persistent virtual disk reservations, run the following command:
clear (allVirtualDisks | virtualDisk[
virtualDiskName1
[ reservations
] | virtualDisks [
]) reservations
virtualDiskName
" ... "
virtualDiskNamen
virtualDiskName1
] | virtualDisks
])

Synchronizing RAID Controller Module Clocks

To synchronize the clocks on both RAID controller modules in a storage array with the host clock, run the following command:
set storageArray time

Locating Physical Disks

At times, you might need to locate a specific physical disk. In very large storage array configurations, this can sometimes be awkward. If you need to locate a specific physical disk, turn on the indicator LED on the front of the physical disk. To turn on the indicator LED on a physical disk, run the following command:
start physicalDisk [
enclosureID,slotID
] blink
To turn off the indicator LED after locating the physical disk, run the following command:
stop physicalDisk blink

Performance Tuning

Over time, as a storage array exchanges data between the hosts and physical disks, its performance can degrade. Monitor the performance of a storage array and make adjustments to the storage array operational settings to improve performance.
Maintaining a Storage Array 95

Monitoring Performance

Monitor the performance of a storage array by using the save storageArray performanceStats command. This command saves performance information
to a file that you can review to determine how well the storage array is running. Table 6-1 lists the performance information saved to the file.
Table 6-1. Storage Array Performance Information
Type of Information Description
Devices Devices are:
• RAID Controller Modules — The RAID controller module in slot 0 or 1 and a list of the virtual disks owned by the RAID controller module
• Virtual Disk — A list of the virtual disk names
• Storage Array Totals — A list of the totals for both RAID controller modules in an active-active RAID controller module pair, regardless if one, both, or neither are selected for monitoring
Total I/Os Number of total I/Os performed since the storage array was
started
Read Percentage Percentage of total I/Os that are read operations (calculate
the write percentage by subtracting the read percentage from 100 percent)
Cache Hit Percentage Percentage of reads that are fulfilled by data from the cache
rather than requiring an actual read from a physical disk
Current KB/second Current transfer rate in kilobytes per second (current means
the number of kilobytes per second since the last time the polling interval elapsed, causing an update to occur)
Maximum KB/second Highest data transfer value achieved in the current
kilobyte-per-second statistic block
Current IO/second Current number of I/Os per second (current means the
number of I/Os per second since the last time the polling interval elapsed, causing an update to occur)
Maximum IO/second Highest number of I/Os achieved in the current
I/O-per-second statistic block
96 Maintaining a Storage Array
The general form of the command is:
save storageArray performanceStats file="filename"
where file is the name of the file in which you want to save the performance statistics. You can use any file name your operating system can support. The default file type is .csv. The performance information is saved as a comma-delimited file.
Before using the save storageArray performanceStats command, run the set
session performanceMonitorInterval and set session performanceMonitorIterations commands to specify how often statistics are
collected.

Changing RAID Levels

When creating a disk group, define the RAID level for the virtual disks in that group. You can later change the RAID level to improve performance or provide more secure protection for your data. To change the RAID level, run the following command:
set diskGroup [ (0|1|5|6)
where diskGroupNumber is the number of the disk group for which to change the RAID level.
diskGroupNumber
] raidLevel=

Changing Segment Size

When creating a new virtual disk, define the segment size for that virtual disk. You can later change the segment size to optimize performance. In a multi-user database or file system storage environment, set your segment size to minimize the number of physical disks needed to satisfy an I/O request. Use larger values for the segment size. Using a single physical disk for a single request leaves other disks available to simultaneously service other requests. If the virtual disk is in a single-user large I/O environment, performance is maximized when a single I/O request is serviced with a single data stripe; use smaller values for the segment size. To change the segment size, run the following command:
set virtualDisk ([ segmentSize=
segmentSizeValue
virtualDiskName
] | <
wwid
>)
Maintaining a Storage Array 97
where segmentSizeValue is the new segment size you want to set. Valid segment size values are 8, 16, 32, 64, 128, 256, and 512. You can identify the virtual disk by name or World Wide Identifier (WWID) (see "Set Virtual Disk" on page 198).

Defragmenting a Disk Group

When you defragment a disk group, you consolidate the free capacity in the disk group into one contiguous area. Defragmentation does not change the way in which the data is stored on the virtual disks. As an example, consider a disk group with five virtual disks. If you delete virtual disks 1 and 3, your disk group is configured in the following manner:
space, virtual disk 2, space, virtual disk 4, virtual disk 5, original unused space
When you defragment this group, the space (free capacity) is consolidated into one contiguous location after the virtual disks. After being defragmented, the disk group is:
virtual disk 2, virtual disk 4, virtual disk 5, consolidated unused space
To defragment a disk group, run the following command:
start diskGroup [
where diskGroupNumber is the identifier for the disk group.
NOTE: Defragmenting a disk group starts a long-running operation.
diskGroupNumber
] defragment

Troubleshooting and Diagnostics

If a storage array exhibits abnormal operation or failures, you can use the commands described in this section to determine the cause of the problems.

Collecting Physical Disk Data

To gather information about all the physical disks in a storage array, run the save allPhysicalDisks command. This command collects sense data from all
the physical disks in a storage array and saves the data to a file. The sense data consists of statistical information maintained by each of the physical disks in the storage array.
98 Maintaining a Storage Array

Diagnosing a RAID Controller Module

The diagnose controller command’s testID parameter takes the following options, which you can use to verify that a RAID controller module is functioning correctly:
•1— Reads the test
2
— Performs a data loop-back test
3
— Writes the test
The read test initiates a read command as it would be sent over an I/O data path. The read test compares data with a known, specific data pattern, checking for data integrity and errors. If the read command is unsuccessful or the data compared is not correct, the RAID controller module is considered to be in error and is placed offline.
Run the data loopback test only on RAID controller modules that have connections between the RAID controller module and the physical disks. The test passes data through each RAID controller module physical disk-side channel out onto the loop and back again. Enough data is transferred to determine error conditions on the channel. If the test fails on any channel, this status is saved so that it can be returned if all other tests pass.
The write test initiates a write command as it would be sent over an I/O data path to the diagnostics region on a specified physical disk. This diagnostics region is then read and compared to a specific data pattern. If the write fails or the data compared is not correct, the RAID controller module is considered to be in error, and it is failed and placed offline.
For best results, run all three tests at initial installation. Also, run the tests any time you make changes to the storage array or to components connected to the storage array (such as hubs, switches, and host adapters).
A custom data pattern file called diagnosticsDataPattern.dpf is included on the Utility directory of the installation CD. You can modify this file, but the file must have the following properties to work correctly for the tests:
The file values must be entered in hexadecimal format (00 to FF) with only one space between the values.
The file must be no larger than 64 bytes in size. Smaller files can be used, but larger files can cause an error.
Maintaining a Storage Array 99
The test results contain a generic, overall status message and a set of specific test results. Each test result contains the following information:
Test (read/write/data loopback)
Port (read/write)
Level (internal/external)
Status (pass/fail)
Events are written to the MEL when diagnostics are started and when testing is completed. These events help you to evaluate whether diagnostics testing was successful or failed and the reason for the failure.

Recovery Operations

Recovery operations involve replacing failed RAID controller modules and physical disks, restoring data, and restoring the storage array to operation.

Setting RAID Controller Module Operational Mode

A RAID controller module has three operational modes:
Online
•Offline
Service
NOTICE: Placing a RAID controller module offline can cause loss of data.
Placing a RAID controller module online sets it to the Optimal state and makes it active and available for I/O operations. Placing a RAID controller module offline makes it unavailable for I/O operations and moves its disk groups to the other RAID controller module if failover protection is enabled.
Taking a RAID controller module offline can seriously impact data integrity and storage array operation.
If you take a RAID controller module offline, the second RAID controller module in the pair takes over. Disk groups and their associated virtual disks that were assigned to the offline RAID controller module are automatically reassigned to the remaining RAID controller module.
NOTICE: Place a RAID controller module in Service mode only under the direction
of Technical Support.
100 Maintaining a Storage Array
Loading...