HP Array Configuration Utility CLI (Originally this document was for the Windows version) (We apologize that it is not customized for FreeBSD, but the commands are the same.) 07/28/2004 Description ----------- The Array Configuration Utility CLI is a commandline-based disk configuration program for Smart Array Controllers and RAID Array Controllers. Controllers ----------- SMART-2/E Array Controller SMART-2/P Array Controller SMART-2SL Array Controller SMART-2DH Array Controller Fibre Channel Host Controller /E Fibre Channel Host Controller /P 64-bit/66Mhz Fibre Host Bus Adapter Smart Array 3100ES Controller Smart Array 3200 Controller Smart Array 221 Controller Integrated Smart Array Controller Smart Array 4200 Controller Smart Array 4250ES Controller Smart Array 431 Controller Smart Array 5300 Controller Smart Array 532 Controller Raid Array 4000 Controller Raid Array 4100 Controller MSA1000 Controller Smart Array Cluster Controller Smart Array 5i Controller Smart Array 5312 Controller Smart Array 641 Controller Smart Array 642 Controller Smart Array 6400 Controller Smart Array 6400 EM Controller Smart Array 6i Controller MSA500 G2 Controller MSA1500 CS Controller MSA20 Controller Installing & Running the Array Configuration Utility CLI -------------------------------------------------------- Installing on FreeBSD Untar the hpacucli tar file. Inside of the ./hpacucli directory is the binary (.hpacucli) and the script around it (hpacucli) along with the libraries required. There is a quick install script in that directory called install.sh. You should be able to run that to install it on FreeBSD 4.X. If you want it to work on FreeBSD 5.x, the 4.x compat libs must be installed. For FreeBSD 4.X, if the "/dev/ciss0" device file does NOT exist, you will have to create it using the following command: mknod /dev/ciss0 c 166 0 Run the CLI: 1. Install the CLI component onto your system. 2. When component installation is complete, click Start and navigate to Programs, HP System Tools, HP Array Configuration Utility CLI. By default this will run the CLI in command prompt environment. The CLI can also be started by changing to the directory in which it was installed and doing the following: To enter the ACU CLI console type: hpacucli Commands can also be executed from outside the ACU CLI console using the syntax: hpacucli Type "hpacucli help" or type "help" at the CLI prompt for usage details. Also see the "Using ACU CLI" section of this document, located after Feedback. Exiting CLI: 1. To exit the ACU CLI, type "exit" while at the CLI command console. Additional Notes ---------------- * Except for show commands, the CLI locks each external controller on which it performs an operation when the command starts and unlocks it when the command is complete. This prevents the CLI from tying up a controller, but also prevents errors from occurring while another configuration utility is being run. The CLI does not attempt to lock controllers when performing a show command, nor does it lock controllers for an entire session. Note that this differs from ACU's session-style locking scheme. Known Issues ------------ * Generic error is displayed if create logical drive fails. The error says to check raid and size parameters, however it may have failed because of another reason (i.e. failed physical drive). * When using the CLI console, pressing the up arrow does not cycle through commands in Linux. * CLI commands are not editable when they wrap to the next line. Feedback -------- For feedback or suggestions on ACU CLI, please send comments to acu@hp.com; however, we regret support cannot be provided through this address. Using ACU CLI ------------- ACU Command Line Interface (CLI) Overview -------- The HP Array Configuration Utility (ACU) is a browser-based utility with the following features: * Can be used online (that is, while the operating system is running) * Has different operating modes, allowing faster configuration or greater control over the configuration options * Suggests the optimum configuration for an unconfigured system * Provides on-screen tips for individual steps of a configuration procedure * Allows online array capacity expansion, logical drive capacity extension, assignment of online spares, and RAID or stripe size migration The ACU CLI is an interactive command console with immediate user feedback. It is functionally equivalent to the ACU GUI. This users guide is intended to supplement the CLI's internal help (see the "CLI Internal Help" section for usage). Note: It is assumed that the user has a working knowledge of ACU terminology. For more information, see the ACU Users Guide. Running the ACU CLI ------------------- The CLI can be run in one of two modes: command or console. Command Mode Command mode is running the CLI from the operating system command line. Windows Example C:\hpacucli\bldd>hpacucli help Linux Example [root@localhost root]# ./hpacucli help Console Mode Console mode is running the CLI from its own interactive command prompt. The benefits of using console mode is that the overhead of restarting the CLI once for every command is eliminated. Also, console mode provides the user with the set target command (see "Set Target Command" section) which is not possible with command mode. To enter the CLI console mode, simply start the CLI without passing any parameters. Windows example C:\hpacucli\bldd>hpacucli HP Array Configuration Utility CLI 7.15.17.0 Detecting Controllers...Done. Type "help" for a list of supported commands. Type "exit" to close the console. => Linux example [root@localhost root]# ./hpacucli HP Array Configuration Utility CLI 7.15.17.0 Detecting Controllers...Done. Type "help" for a list of supported commands. Type "exit" to close the console. => Note: All commands in this users guide will be written as if typed into the CLI during console mode operation. Shorthand Symbols ----------------- Shorthand symbols can be used wherever regular target and command keywords are used in order to save keystrokes. aa = arrayaccelerator ai = adapterid ch = chassisname (also known as boxname or raidarrayid) cn = connectionname cr = cacheratio ctrl = controller dt = drivetype ep = expandpriority ld = logicaldrive pd = physicaldrive ps = parallelscsi rp = rebuildpriority ssd = surfacescandelay sn = serialnumber ss = stripesize td = tapedrive CLI Internal Help ----------------- The CLI has it's own internal help system that provides syntax and usage examples. Command Syntax help Example Command => help CLI Command Syntax ------------------ The CLI syntax which may be confusing at first. However, this syntax offers much flexibility and power once it becomes familiar. This basic syntax is: [keyword=value] The angle brackets ('<' and '>') represent a required variable. Regular brackets ('[' and ']') symbolize an optional variable. The represents a path to a device. Some examples might be: ctrl all specifies all controllers ctrl slot=3 specifies a single controller ctrl slot=3 array A ctrl chassisname="A" array A ld 1 ctrl chassisname="A" pd 1:0 The is the entire line up to . should not be confused with the set target command (see "Set Target Command" section). Multiple devices can be specified by using the all keyword. If multiple devices are specified, the command will be run on each device. Note: A controller can be specified using: wwn, serialnumber, slot, and chassisname represents any one of the CLI's commands. These include: set target help create delete modify remove show rescan may or may not require certain parameters. Also, some parameters, such as the forced parameter, do not require values. An example of a is: drives=1:0,1:1,1:2 Query Mechanism --------------- The question mark symbol can be used to query the capabilities of certain devices. To use this functionality, simply specifiy a question mark '?' instead of a value for a given parameter. See the CLI help for details on which parameters accept the question mark value. Example Command => ctrl chassisname="Lab 4" ld 1 modify size=? Example CLI Response => ctrl chassisname="Lab 4" ld 1 modify raid=0 stripesize=? Available stripesize options: 8 16 32 64 128 (default) 256 Preventing Warning Prompts -------------------------- Whenever there is a potential for a command to destroy user data, a warning prompt will be presented to the user. The user then must enter either 'y' or 'n' and hit the enter key before the operation will be executed. When using scripting it is important that these warning prompts be repressed by using the forced keyword. This keyword can also be used within the CLI prompt in order to avoid the warnings. Example Command => ctrl chassisname="Lab 4" ld 1 delete forced Create Logical Drive -------------------- Creating a logical drive in the CLI is identical to ACU except that the array is created implicitly. In order to create a logical drive on a new array, drives must be specified and the target must be a controller. In order to create a logical drive on an existing array, do not specify any drives and make the target the array. Command Syntax create type=logicaldrive [param=value] Notes: can be a controller or array Basic Parameters [drives=#:#|all|allunassigned] [raid=ADG|5|4|1+0|1|0|?] [stripesize=8|16|32|64|128|256|default|?] Units in KB [size=#|max|?] Units in MB [sectors=32|63|default] [arrayaccelerator=enable|disable] Note: Not specifying an optional command will result in the optimal default value. Examples: size uses max, drives uses all drives, and raid uses highest available Note: The CLI does not support units other than what is expected. Do not type in any additional text specifying the units (e.g. type size=300 not size=300MB). Example Command Create a logical drive on a new array made with specified drives: => ctrl slot=5 create type=ld drives=1:0,1:1,1:3 raid=adg Create a logical drive on an existing array (do not specify drives): => ctrl slot=5 array A create type=ld size=330 raid=adg Example CLI Response Goal: Create two arrays with one logical drive on the first array and two logical drives on the second. The first thing to do is find the physical drives: => ctrl ch="Lab 4" pd all show MSA1000 at Lab 4 unassigned physicaldrive 1:12 (box 1:bay 12, Parallel SCSI, 36.4 GB, OK) physicaldrive 1:13 (box 1:bay 13, Parallel SCSI, 9.1 GB, OK) physicaldrive 1:14 (box 1:bay 14, Parallel SCSI, 9.1 GB, OK) Next create an array with a logical drive on it: => ctrl ch="Lab 4" create type=ld drives=1:12 => ctrl ch="Lab 4" pd all show MSA1000 at Lab 4 array A physicaldrive 1:12 (box 1:bay 12, Parallel SCSI, 36.4 GB, OK) unassigned physicaldrive 1:13 (box 1:bay 13, Parallel SCSI, 9.1 GB, OK) physicaldrive 1:14 (box 1:bay 14, Parallel SCSI, 9.1 GB, OK) Now create the second array with a logical drive on it. First, try checking out the available raid options: => ctrl ch="Lab 4" create type=ld drives=1:13,1:14 size=300 raid=? Available raid levels: RAID 0 RAID 1+0 Create the array with a RAID 1+0 logical drive: => ctrl ch="Lab 4" create type=ld drives=1:13,1:14 size=300 raid=1+0 => ctrl ch="Lab 4" pd all show MSA1000 at Lab 4 array A physicaldrive 1:12 (box 1:bay 12, Parallel SCSI, 36.4 GB, OK) array B physicaldrive 1:13 (box 1:bay 13, Parallel SCSI, 9.1 GB, OK) physicaldrive 1:14 (box 1:bay 14, Parallel SCSI, 9.1 GB, OK) Now create the second logical drive on the second array: => ctrl ch="Lab 4" array B create type=ld size=900 => ctrl ch="Lab 4" ld all show MSA1000 at Lab 4 array A logicaldrive 1 (33.9 GB, RAID 0, OK) array B logicaldrive 2 (298 MB, RAID 1+0, OK) logicaldrive 3 (896 MB, RAID 1+0, OK) Controller Chassis Name ----------------------- View and modify the controller chassis name. The chassis name is user-specified name used to identify the controller. You cannot modify a chassis name on an unconfigured controller. There must be at least one logical drive first. Command Syntax modify chassisname="ABC" Notes: must be a controller Example Command => ctrl sn=P56350D9IP903J modify chassisname="Lab 6" Example CLI Response => ctrl all show MSA1000 at Lab 4 (sn: P56350D9IP903J, wwn: 500805F3000BAC11) Smart Array 5312 in Slot 3 (sn: P4AB5X9BFMLNTJ) Smart Array 532 in Slot 2 (sn: P44940LDAORS4F) => ctrl ch="Lab 4" modify ch="Lab 6" => ctrl all show MSA1000 at Lab 6 (sn: P56350D9IP903J, wwn: 500805F3000BAC11) Smart Array 5312 in Slot 3 (sn: P4AB5X9BFMLNTJ) Smart Array 532 in Slot 2 (sn: P44940LDAORS4F) Selective Storage Presentation (SSP) ------------------------------------ Also known as Access Control List Commands, SSP lets you determine which host controllers can access which particular logical drives. SSP is used in two steps. First, SSP must be enabled. If the controller being used supports controller centric SSP, the controller needs to be specified for the target. If the controller supports logical drive centric SSP, a logical drive must be specified for the target. Note: The only controller currently supporting logical drive centric SSP is the RA4x000 Turning SSP on causes all Adapter ID's for all logical drives to become masked, preventing access to the logical drives. Note: Turning on SSP and masking Adapter ID's creates warning prompts, so be sure to use the forced parameter when using script files in these scenarios. Once SSP is enabled, it is possible to mask/unmask Adapter ID's. The target in this case is always the logical drive. It is also possible to specify multiple logical drives using the all keyword. Masking means to prevent access to the logical drive through the specified Adapter ID(s) and unmask means to allow access. SSP information can be viewed by using the show command along with the ssp parameter. Viewing SSP Information ----------------------- Command Syntax show ssp Notes: is a controller that supports SSP. Example Command => ctrl chassisname="Lab 4" show ssp Example CLI Response => ctrl chassisname="Lab 4" show ssp MSA1000 at Lab 4 (controller centric ssp) Adapter ID: 210000E08B07A68F connectionname: Unknown Location: Local Status: Online Host Mode: Default Adapter ID: 5034414235583942 connectionname: Unknown Location: Unknown Status: Offline Host Mode: Default Modifying Connection Names -------------------------- Command Syntax modify adapterid=# connectionname="ABC" Notes: is a controller that supports SSP. Example Command => ctrl ch="Lab 4" ld 1 modify adapterid=210000E08B07A68F connectionname = "abc" Example CLI Response => show ssp MSA1000 at Lab 4 (controller centric ssp) Adapter ID: 210000E08B07A68F connectionname: Unknown Location: Local Status: Online Host Mode: Default logicaldrive 1 is unmasked Adapter ID: 5034414235583942 connectionname: Unknown Location: Unknown Status: Offline Host Mode: Default logicaldrive 1 is masked => ctrl chassisname="Lab 4" modify adapterid=5034414235583942 connectionname="hp invent" => show ssp MSA1000 at Lab 4 (controller centric ssp) Adapter ID: 210000E08B07A68F connectionname: Unknown Location: Local Status: Online Host Mode: Default logicaldrive 1 is unmasked logicaldrive 2 is masked Adapter ID: 5034414235583942 connectionname: hp invent Location: Unknown Status: Offline Host Mode: Default logicaldrive 1 is masked Modifying SSP Access -------------------- Command Syntax modify ssp=on|off [forced] modify mask|unmask=#,#,...|all|none [forced] Notes: To turn ssp on is a controller if controller centric SSP is supported, else a logical drive. Use the show ssp to see what's supported on a given controller. To mask and unmask logical drives for a given adapter id, must be logical drive. Example Command => ctrl chassisname="Lab 4" modify ssp=on forced => ctrl chassisname="Lab 4" ld 1 modify mask=all => ctrl chassisname="Lab 4" ld 1 modify unmask=210000E08B07A68F => ctrl chassisname="Lab 4" ld all modify mask="abc" Notes: You can mask and unmask using either adapter ids or connection names. Example CLI Response => ctrl chassisname="Lab 4" show ssp MSA1000 at Lab 4 (controller centric ssp) Adapter ID: 210000E08B07A68F connectionname: Unknown Location: Local Status: Online Host Mode: Default Adapter ID: 5034414235583942 connectionname: Unknown Location: Unknown Status: Offline Host Mode: Default => ctrl chassisname="Lab 4" modify ssp=on forced => ctrl chassisname="Lab 4" ld all show MSA1000 at Lab 4 array A logicaldrive 1 (33.9 GB, RAID 0, OK) array B logicaldrive 2 (298 MB, RAID 1+0, OK) logicaldrive 3 (896 MB, RAID 1+0, OK) => ctrl chassisname="Lab 4" ld 1 modify unmask=210000E08B07A68F => ctrl chassisname="Lab 4" show ssp MSA1000 at Lab 4 (controller centric ssp) Adapter ID: 210000E08B07A68F connectionname: Unknown Location: Local Status: Online Host Mode: Default logicaldrive 1 is unmasked Adapter ID: 5034414235583942 connectionname: Unknown Location: Unknown Status: Offline Host Mode: Default logicaldrive 1 is masked Managing Host Mode (also known as Connection Profile) ------------------ Command Syntax modify adapterid=# hostmode="ABC"|? Notes: is a controller that supports host modes. Example Command => ctrl chassisname="Lab 4" ld all modify mask="abc" Example CLI Response => modify ai=5034414235583942 hostmode=? hostmode options: Default Windows OpenVMS Tru64 Linux Solaris Netware HP => modify ai=5034414235583942 hostmode=Windows => show ssp MSA1000 at Lab 6 (controller centric ssp) Adapter ID: 210000E08B07A68F connectionname: Unknown Location: Local Status: Online Host Mode: Default logicaldrive 1 is unmasked logicaldrive 2 is masked Adapter ID: 5034414235583942 connectionname: hp invent Location: Unknown Status: Offline Host Mode: Windows logicaldrive 1 is masked logicaldrive 2 is unmasked Deleting Devices ---------------- Using the CLI, it is possible to delete one or more devices with a single command (however, you cannot delete multiple controllers). Since deleting a device may result in data loss, a warning prompt will be presented to the user. Be sure to use the forced keyword when using scripting to prevent this prompt. Command Syntax delete [forced] Notes: can be any valid device. Example Command => ctrl chassisname="Lab 4" delete forced => ctrl slot=3 ld all delete => ctrl slot=3 array A ld 1 delete Example CLI Response => ctrl slot=3 ld 1 delete Deleting the specified device(s) will result in data being lost. Continue? (y/n) Identifying Devices It is possible to blink the LEDs on one or more devices. The LED's will remain on until the user turns them off. Command Syntax modify led=on|off Notes: can be any valid device. Example Command => ctrl chassisname="Lab 4" modify led=on => ctrl ch="Lab 4" array A modify led=off Expand Array ------------ Expanding an array allows you to add one or more physical drives to the specified array to increase the space in the array. A warning prompt will occur if an even number of drives is added to an array containing one or more RAID 1+0 logical drives. In this case, the CLI will prompt asking if it is acceptable to convert the RAID 1+0 fault tolerance to RAID 5. If the controller supports RAID ADG, that will be used instead of RAID 5. If forced is specified, this migration occurs automatically. Command Syntax add drives=#:#,#:#,...|allunassigned Notes: can be a logical drive or array Example Command => ctrl slot=3 array A add drives=1:0,1:1 => ctrl slot=3 ld 1 add drives=allunassigned Extend Logical Drive -------------------- Extending logical drive allows you to extend the size of a given logical drive using the available free space on the array on which it resides. Some operating systems are not supported and thus a warning prompt is presented. Command Syntax modify size=#|max|? [forced] Notes: must be a logical drive Example Command => ctrl slot=3 ld 1 modify size=max => ctrl slot=3 ld 1 modify size=500 forced => ctrl slot=3 ld 1 modify size=? Example CLI Response => ctrl slot=3 ld 1 modify size=? Valid size range: Max: 12270MB Min: 298MB => ctrl slot=3 ld 1 modify size=500 Warning: Extension may not be supported on certain operating systems. Performing extension on these operating systems can cause data to become inaccessible. See ACU documentation for details. Continue? (y/n) y => ctrl slot=3 ld 1 show Smart Array 5312 in Slot 3 logicaldrive 1 Size: 498 MB Fault Tolerance: RAID 5 Heads: 255 Sectors per Track: 32 Cylinders: 125 Stripe Size: 16 Status: Ok Array Accelerator: Enabled Parity Initialization Status: In Progress Disk Name: Unknown Mount Points: Unknown Spare Management ---------------- An array can have several spares, and any spare can be shared by several arrays. Assigning several spares to an array lets you postpone replacement of faulty drives, but it does not increase the fault-tolerance level of any logical drives in the array. For example, a logical drive in a RAID 5 configuration suffers irretrievable data loss if two physical drives fail simultaneously, regardless of the number of spare drives assigned to it. Command Syntax add spares=#:#,#:#,...|allunassigned remove spares=#:#,#:#,...|all Notes: can be a logical drive or array Example Command => ctrl slot=3 array B add spares=1:4 => ctrl slot=3 array all add spares=1:5 => ctrl slot=3 ld 3 remove spares=1:5 Example CLI Response => ctrl slot=3 pd all show Smart Array 5312 in Slot 3 array A physicaldrive 1:0 (port 1:id 0 , Parallel SCSI, 4.3 GB, OK) physicaldrive 1:1 (port 1:id 1 , Parallel SCSI, 4.3 GB, OK) physicaldrive 1:2 (port 1:id 2 , Parallel SCSI, 4.3 GB, OK) physicaldrive 1:3 (port 1:id 3 , Parallel SCSI, 4.3 GB, OK) physicaldrive 1:4 (port 1:id 4 , Parallel SCSI, 4.3 GB, OK) array B physicaldrive 1:5 (port 1:id 5 , Parallel SCSI, 4.3 GB, OK) physicaldrive 1:8 (port 1:id 8 , Parallel SCSI, 4.3 GB, OK) unassigned physicaldrive 1:9 (port 1:id 9 , Parallel SCSI, 4.3 GB, OK) physicaldrive 1:10 (port 1:id 10, Parallel SCSI, 4.3 GB, OK) physicaldrive 1:11 (port 1:id 11, Parallel SCSI, 4.3 GB, OK) physicaldrive 1:12 (port 1:id 12, Parallel SCSI, 4.3 GB, OK) physicaldrive 1:13 (port 1:id 13, Parallel SCSI, 4.3 GB, OK) => ctrl slot=3 array all add spares=1:9,1:11 => ctrl slot=3 array B remove spares=1:11 => ctrl slot=3 pd all show Smart Array 5312 in Slot 3 array A physicaldrive 1:0 (port 1:id 0 , Parallel SCSI, 4.3 GB, OK) physicaldrive 1:1 (port 1:id 1 , Parallel SCSI, 4.3 GB, OK) physicaldrive 1:2 (port 1:id 2 , Parallel SCSI, 4.3 GB, OK) physicaldrive 1:3 (port 1:id 3 , Parallel SCSI, 4.3 GB, OK) physicaldrive 1:4 (port 1:id 4 , Parallel SCSI, 4.3 GB, OK) physicaldrive 1:9 (port 1:id 9 , Parallel SCSI, 4.3 GB, OK, spare) physicaldrive 1:11 (port 1:id 11, Parallel SCSI, 4.3 GB, OK, spare) array B physicaldrive 1:5 (port 1:id 5 , Parallel SCSI, 4.3 GB, OK) physicaldrive 1:8 (port 1:id 8 , Parallel SCSI, 4.3 GB, OK) physicaldrive 1:9 (port 1:id 9 , Parallel SCSI, 4.3 GB, OK, spare) unassigned physicaldrive 1:10 (port 1:id 10, Parallel SCSI, 4.3 GB, OK) physicaldrive 1:12 (port 1:id 12, Parallel SCSI, 4.3 GB, OK) physicaldrive 1:13 (port 1:id 13, Parallel SCSI, 4.3 GB, OK) Migrate Logical Drive --------------------- This option lets you alter the stripe size (data block size) or RAID level, or both, for a selected logical drive. There might need to be unused drive space available on the array for the migration to be possible, depending on the initial and final settings for the stripe size and RAID level. Command Syntax modify [raid=0|1+0|1|4|5|ADG|?] [stripesize=8|16|32| 64|128|256|default|?] Note: Only one query can ever be specified for single command. If no RAID level is specified and the stripe size is queried, the CLI uses the current RAID as the default. Notes: must be a logical drive. If only the stripe size is specified, the raid will remain the same. If only the raid is chosen, the default stripe size will be selected. Example Command => ctrl slot=3 ld 1 modify raid=1 => ctrl slot=3 ld 1 modify ss=16 => ctrl slot=3 ld 1 modify raid=5 ss=16 Example CLI Response => ctrl slot=3 ld 1 show Smart Array 5312 in Slot 3 logicaldrive 1 Size: 498 MB Fault Tolerance: RAID 5 Heads: 255 Sectors per Track: 32 Cylinders: 125 Stripe Size: 16 KB Status: Ok Array Accelerator: Enabled Disk Name: Unknown Mount Points: Unknown => ctrl slot=3 ld 1 modify raid=? Available raid levels: RAID 0 RAID 5 => ctrl slot=3 ld 1 modify raid=0 ss=? Available stripesize options: 8 16 32 64 128 (default) 256 => ctrl slot=3 ld 1 modify raid=0 ss=256 => ctrl slot=3 ld 1 show Smart Array 5312 in Slot 3 logicaldrive 1 Size: 498 MB Fault Tolerance: RAID 0 Heads: 255 Sectors per Track: 32 Cylinders: 125 Stripe Size: 256 KB Status: Ok Array Accelerator: Enabled Disk Name: Unknown Mount Points: Unknown Rebuild Priority ---------------- Rebuild priority is the level of priority that rebuilding the data from the failed drive should have over handling current requests from the operating system. Rebuilding occurs after a failed drive has been replaced. Command Syntax modify rebuildpriority=high|medium|low Notes: must be a controller Example Command => ctrl slot=3 modify rebuildpriority=high Example CLI Response => ctrl slot=3 modify rebuildpriority=high => ctrl slot=3 show Controller Smart Array 5312 in Slot 3 Bus Interface: pci slot: 3 serialnumber: P4AB5X9BFMLNTJ RAID ADG status: False Controller Status: OK Hardware Revision: Rev B Firmware Version: 2.36 Rebuild Priority: Medium ... Expand Priority --------------- Expand priority is the level of priority that expanding array capacity should have over handling current operating system requests. Expanding happens after choosing to expand an array. Command Syntax modify expandpriority=high|medium|low Notes: must be a controller Example Command => ctrl slot=3 modify expandpriority=high Example CLI Response => ctrl slot=3 modify expandpriority=high => ctrl slot=3 show Controller Smart Array 5312 in Slot 3 Bus Interface: pci slot: 3 serialnumber: P4AB5X9BFMLNTJ RAID ADG status: False Controller Status: OK Hardware Revision: Rev B Firmware Version: 2.36 Rebuild Priority: Medium Expand Priority: Medium ... Controller Cache Ratios ----------------------- This ratio determines the amount of memory allocated to read and write operations. Different types of applications have different optimum ratios. You can change the ratio only if the controller has a battery-backed cache (only battery-backed cache can be used for write cache) and if there are logical drives configured on the controller. Command Syntax modify cacheratio=#/#|? Notes: must be a controller. Ratio is read/write Example Command => ctrl slot=3 modify cacheratio=25/75 Example CLI Response => ctrl slot=3 modify cacheratio=? Available cacheratio values: 0/100 25/75 50/50 75/25 100/0 => ctrl slot=3 modify cacheratio=25/75 => ctrl slot=3 show Controller Smart Array 5312 in Slot 3 Bus Interface: pci slot: 3 serialnumber: P4AB5X9BFMLNTJ RAID ADG status: False Controller Status: OK Hardware Revision: Rev B Firmware Version: 2.36 Rebuild Priority: Medium Expand Priority: Medium Surface Scan Delay: 15 sec Cache Board Present: True Cache Status: OK Accelerator Ratio: 25/75 (read/write) ... Surface Scan Delay ------------------ The surface scan delay is the time interval before surface scan analysis activates. This time does not begin counting until there are no commands being sent to the controller. Surface scan analysis is a background process that scans hard drives for bad sectors in fault tolerant logical drives. In RAID 5 or RAID ADG configurations, surface scan also verifies the consistency of parity data. This process assures that you can recover all data successfully if a drive failure occurs in the future. The possible value is 1-30 seconds. Command Syntax modify surfacescandelay=# Notes: must be a controller Example Command => ctrl sn=P56350D9IP903J modify surfacescandelay=3 Example CLI Response => ctrl slot=3 modify surfacescandelay=25 => ctrl slot=3 show Controller Smart Array 5312 in Slot 3 Bus Interface: pci slot: 3 serialnumber: P4AB5X9BFMLNTJ RAID ADG status: False Controller Status: OK Hardware Revision: Rev B Firmware Version: 2.36 Rebuild Priority: Medium Expand Priority: Medium Surface Scan Delay: 25 sec ... Re-enable Logical Drive ----------------------- It is possible to re-enable a logical drive using the CLI. Re-enabling a failed logical drive will allow the logical drive to be used again. Any previously existing data on the logical drive may not be valid or recoverable. The forced keyword represses the warning prompt. Command Syntax modify reenable [forced] Notes: must be a logical drive Example Command => ctrl slot=3 ld 1 modify reenable forced Example CLI Response => ctrl slot=3 ld all show Smart Array 5312 in Slot 3 array A logicaldrive 1 (498 MB, RAID 0, Failed) array B logicaldrive 2 (442 MB, RAID 1+0, OK) => ctrl slot=3 ld 1 modify reenable Warning: Any previously existing data on the logical drive may not be valid or recoverable. Continue? (y/n) y => ctrl slot=3 ld all show Smart Array 5312 in Slot 3 array A logicaldrive 1 (498 MB, RAID 0, OK) array B logicaldrive 2 (442 MB, RAID 1+0, OK) Array Accelerator ----------------- Array accelerator is an internal part of the controller that dramatically improves performance of disk read and write operations by providing a buffer. A battery backup and ECC memory protects the data. Command Syntax modify arrayaccelerator=enable|disable Notes: must be a logical drive Example Command => ctrl slot=3 ld 1 modify aa=enable Example CLI Response => ctrl slot=3 ld 1 show Smart Array 5312 in Slot 3 logicaldrive 1 Size: 498 MB Fault Tolerance: RAID 0 Heads: 255 Sectors per Track: 32 Cylinders: 125 Stripe Size: 256 KB Status: Ok Array Accelerator: Enabled Disk Name: Unknown Mount Points: Unknown => ctrl slot=3 ld 1 modify aa=disable => ctrl slot=3 ld 1 show Smart Array 5312 in Slot 3 logicaldrive 1 Size: 498 MB Fault Tolerance: RAID 0 Heads: 255 Sectors per Track: 32 Cylinders: 125 Stripe Size: 256 KB Status: Ok Array Accelerator: Disabled Disk Name: Unknown Mount Points: Unknown Rescan ------ Rescan detects newly added controllers. Command Syntax rescan Example Command => rescan Set Target Command ------------------ It can be tedious to type out long 's over and over again. What if we could say, "I'm only going to be working on ctrl slot=3 array A and I only want to vary the logical drive." With the set target command this is possible. The set target command is used to set an implicit and is intended to save keystrokes. After the implicit is set, the user no longer needs to type in the explicitly. If a is typed in explicitly, it will override the implicit target but the implicit target will not change. Think of the implicit as a copy and paste technique; you can copy either a portion of or even the entire and, from that point forward, use it implicitly (see examples for clarification). If the user specifies a that does not currently exist, a warning will be printed to the screen. If the implicit becomes invalidated at some point during the CLI session, it is the user’s responsibility to reset it to a valid before using it again. The set target command cannot not be used unless the user is in the CLI prompt mode and is there for not valid for scripting. Note: set target is not valid for scripting Command Syntax set target Sets the implicit clear target Shows the current value of show target Clears the implicit Example Command => set target ctrl slot=3 => show target => clear target Example CLI Response => set target ctrl chassisname="Lab 4" controller chassisname="Lab 4" The implicit is now controller chassisname="Lab 4". We can either use this target as is or explicitly amend a more specific device to it, such as an array: => array A show MSA1000 at Lab 4 array A Interface Type: Parallel SCSI Unused Space: 7949 MB Status: OK => clear target Target cleared. => show target Target not set. Internally, the implicit is prefixed to whatever is typed in as the . So "array A" becomes "controller chassisname="Lab 4" array A" before the show command is executed. If we did not specify the array (and hence no explicit ), the show command would print out the information for the controller since that what the implicit is set to..