Chapter 1. TPM Command Line Interface (TPMCLI)

TPMCLI is a command line interface RAID management utility for SGI Total Performance 9100 (TP9100) storage systems. A large number of functions are available to the user. The main benefit of TPMCLI is the ability to invoke it from shell scripts to automate configuration and array management tasks.

The tpmcli executable should be run only by the root user. Attempting to run the utility without root privilege results in an error message.

Supported Platforms

TPMCLI is supported on the following versions of the IRIX operating system:

  • TPMCLI tool is supported on TP9100 systems with 1-Gb/s FFX RAID controllers (firmware version 7.75) and TP9100 systems with 2-Gb/s FFX2 RAID controllers (firmware versions 8.40, 8.50 and 9.03).

  • TPMCLI is supported on the IRIX operating system, version 6.5.16 or later.

  • TPMCLI is supported on SGI Altix series servers with the following Linux versions:
    SGI Linux Environment 7.2 with SGI ProPack 2.1
    SGI Advanced Linux Environment 2.1 or later with SGI ProPack 2.2 or later

  • SGI CXFS shared filesystem

  • SGI FailSafe high-availability filesystem

TPMCLI Commands

In all cases the “-” character is used to differentiate command parameters from arguments. By default, all commands issue warning confirmation messages if the requested command degrades the system. For example, a confirmation message displays when you attempt to force a drive that is part of an optimal array offline. You can override the confirmation message by using the -o, -force or -y command line parameter.


Caution: Use caution when you override confirmation messages. Customer data can be lost.

For many of the commands, a verbose output option is available. To use this mode, simply append the command with -v. All command examples in this document that support this mode show the difference between the standard and verbose displays.

The -syslog command line option may be used to log commands in the system log file.


Caution: SGI recommends that you create backups before you make any changes to an optimal array that contains customer data.


Synopsis

tpmcli <-command> <-command line parameters> [-v | -o]

Description

The tpmcli command sends RAID storage management and configuration requests to an application programmer's interface (API) on the local machine or remote machine. The RAID storage management device consists of several classes of customer replaceable units (CRUs), including disk drives, power supplies, fans, a battery backup unit (BBU), and an optional second RAID controller.

For many commands, verbose output is available. To use this mode simply append the command with the -v parameter. All commands that support this mode show the difference between the standard and verbose displays.

To display the version level of tpmcli, use the -version parameter. For example tpmcli -version.

The -syslog optional parameter enables you store output from the -help or -disp command line arguments to the system log file.

tpmcli -disp	 -dev -v 	-syslog

The following is an excerpt from system log file:

Sep 10 09:39:46 serverA tpmcli: ./tpmcli -disp -dev -syslog -v  RC=0:
Command Completed okay

  1. If the CLI_HOME environment variable is not set, a warning message displays to standard-error each time a command is invoked. If the environment variable CLI_HOME is not set, commands default to your current directory.

  2. After the specified command completes, it returns a code number and displays a message to the standard output.

    >RC=0: Command Completed okay
    

  3. The commands, command parameters and optional parameters are not case sensitive.

Cancel Command

Use this command to cancel a background process. This command cancels all background tasks of the same process type on all LUNs.

This command displays a confirmation message and does not continue until you enter YES or Y. You can override the confirmation message by using the -o option. No confirmation message is displayed when you use the -o option; the command proceeds immediately.

tpmcli -cancel {-background | -back} <process type> [-o]

Where:

<process type> can be either

check | cc 

Consistency check

checkrestore | cr 

Check and restore

init 

Initialization

bginit 

Background initialization

rebuild | rb 

Rebuild

all 

Cancels all background processes


Example:

tpmcli -cancel -background init
Attempting to cancel the Initialisation background task on SD 0 
Attempting to cancel the Initialisation background task on SD 1 
Attempting to cancel the Initialisation background task on SD 2

Consistency Check Command

Use this command to check the parity or consistency of any LUN. Use the tpmcli -display -back check command or the tpmcli -check -restore command to start a consistency check in the background. It is then your responsibility to monitor the progress of the process. The tpmcli -check -wait or tpmcli -check -restore -wait command issues the command and then polls the controller to wait for the command to complete.

This command displays a confirmation message and does not continue until you enter YES or Y. You can override the confirmation message by using the -o option. No confirmation message is displayed when you use the -o option; the command proceeds immediately.

tpmcli {-check | -check restore} [-wait] <sd #> [-o]

Where

-wait

Causes the command to wait for completion before returning. If -wait is not specified, then the command returns immediately and progress must be monitored by using the tpmcli -display -back check command.

sd #

The number of the system drive (LUN) that you want to check. If sd # is set to all and the -wait option is used, then all LUNs are checked consecutively. Note that the all argument is not valid without the -wait option.


Examples:

Checks system drive 4 only.

tpmcli -check 4
SD 4 is being Checked in the background.
Use -disp -back check to monitor progress

Checks and restores system drive 6. This command waits for the consistency check to complete.

tpmcli -check -restore -wait 6
Waiting for Check and Restore of SD 6 to complete.
10.0 % complete

Clear Configuration Command

Use this command to clear a configuration completely. All array information is erased.

This command displays a confirmation message and does not continue until you enter YES or Y. You can override the confirmation message by using the -o option. No confirmation message is displayed when you use the -o option; the command proceeds immediately.

tpmcli {-clear | -clr} [-o]

Example:

tpmcli -clear
Clearing Configuration ..

Clear Host Mapping Information

Use this command to clear the host-specific information from the SAN mapping table. This command enables all attached hosts to have access to all system drives (LUNs) on all ports. This command is equivalent to the “Enable All Hosts” option found in the TPM configuration utility. LUN IDs remain unchanged. It is NOT possible to clear the host-specific information if multiple arrays have the same controller firmware.

This command displays a confirmation message and does not continue until you enter YES or Y. You can override the confirmation message by using the -o option. No confirmation message is displayed when you use the -o option; the command proceeds immediately.

tpmcli {-clear | clr} {-san | -mapping} [-o]

Example:

tpmcli -clear -san
Resetting all host tables to enable all hosts ..

LUN Creation Commands

Use these commands to create LUNs.


Note: SGI does not support non-redundant (RAID 0) and redundant (fault-tolerant) RAID levels within a dive pack (LUN).


Simple LUN Creation

Simple LUN creation enables you to create new LUNs by using a minimal number of options. This makes creating LUNs easy, but with limited flexibility.


Note: Performance is degraded during background initialization because every write requires access to all drives in the RAID group. Sites requiring optimal performance, running acceptance tests or running performance tests should take this into account and initialize LUNs in the foreground. Published performance levels are not guaranteed when using background initialization.



Note: When you use simple LUN creation, some restrictions exist: The maximum number of drives that are used is currently fixed at one pack of sixteen drives. Also, SAN mapping is not supported. LUNs are available to all hosts. If greater flexibility is required, use “Selective LUN Creation”.


tpmcli -create <RAID type> <size> <cache> <stripe size> [ports[hosts]] [-o]

Where:

RAID type

0, 1, 3, 5 or 0+1

size

Actual size of the array in MB

cache

0 for disabled or 1 for enabled

stripe size

8, 16, 32 or 64

ports

0, 1, 2, 3 or all for all 4 ports

hosts

Set to all for access by all hosts

Example:

Create a 1-GB (1000-MB) RAID 5 LUN and use a 64-K stripe size that has write-cache enabled.

tpmcli -create 5 1000 1 64
Creating a 1000 MB RAID 5 with Write Cache Enabled using a 64KB stripe on port 0 by this host

Simple LUN Creation Restrictions

There are a number of rules governing which drives are used in simple array creation:


Note: If you need greater flexibility, refer to “Selective LUN Creation”.


  • SGI does not support non-redundant (RAID 0) and redundant (fault-tolerant) RAID levels within a dive pack (LUN).

  • Calling this command multiple times results in arrays that are created alongside each other using the rules listed below:

  • The LUN IDs are assigned consecutively. A new array is assigned the next available ID. The size requested by the user is the actual or logical size and not the physical size. For example, a 100 MB RAID 1 (mirror) occupies 200 MB physically, but only 100 MB is available to the user. The second 100 MB is used for the mirrored data.

  • The maximum possibilities for any array is 2 TB or 2,097,138 MB.

  • Once one logical drive has been created, all future logical drives will have the same stripe size, regardless of whether a value is chosen by the user. If you use selective LUN deletion to make additional space, the new array fills the largest available space whose array type matches what you have chosen.

Rules for array creation:

Due to the simplicity of this command, the following rules exist to allocate disk drives and available space:

  1. In all cases, if you choose an array of a specific type that can coexist using the same drives as a previously created array, and if space exists, then the new array can be created on those drives using the available space. The largest available space is filled first.

  2. If you select a RAID array, and there is no space available on any drive in use by a previous RAID array of the same type, then the new LUN occupies the smallest available drives that provide enough space.

  3. If there is not enough space to build the requested array, then an array will be created using the maximum amount of free space possible. An error will occur when there is either no space available or when the array does not match any previously created arrays and no available drives exist.

  4. A RAID 0 array occupies a minimum of two drives and a maximum of sixteen drives (one pack).

  5. A RAID 3, 5, or 0+1 array occupies a minimum of three drives and a maximum of sixteen drives (one pack).

  6. A RAID 1 array always occupies two drives.

  7. Simple array creation occupies the maximum number of drives possible. For example, if sixteen 34-GB drives are available, and the user requests a 200-GB RAID 5, all sixteen drives are used. The software does not attempt to use the minimum number of drives. If this is required, use “Selective LUN Creation” and choose the drives.

  8. Simple array creation attempts to fit the requested array size to the available drives. For example, if sixteen drives are available, and fifteen drives are 70-GB, and one is 34-GB, and you attempt to create a 1-TB RAID 5 array, then applying rule 7 results in all sixteen drives being used with the RAID 5 array totaling 510-GB. However, by selecting only the fifteen 70-GB drives using “Selective LUN Creation”, you could create a 1-TB array.

  9. Simple array creation is limited to sixteen drives or one pack. Spanning is not supported. If you require this feature, refer to “Selective LUN Creation”.

Selective LUN Creation

Selective LUN creation uses a text file to enable the user to specify many more options. It offers greater flexibility than simple LUN creation.


Note: The current restrictions on the maximum number of drives that can be used, is sixteen packs with sixteen drives each.



Note: SGI does not support non-redundant (RAID 0) and redundant (fault-tolerant) RAID levels within a dive pack (LUN).


tpmcli -create -file <filename> [-o]

Where:

filename

The name of the text file that contains the LUN creation information


The maximum possible size of any array is 2 TB or 2,097,136 MB.

This command displays a confirmation message and does not continue until you enter YES or Y. You can override the confirmation message by using the -o option. No confirmation message is displayed when you use the -o option; the command proceeds immediately.

  • Each line must end with a semicolon (;).

  • If the same type of definition is repeated multiple times with different arguments then the last value read is used to create the array. For example, if within one array definition, RAID=5 is followed by RAID=0, then the array created is a RAID 0.

  • It is possible that not all packs are used if a small array size with multiple packs are chosen. If it is possible to fit the array on fewer packs than the number you chose, then fewer packs are used. There is no way to override this feature. This feature is consistent with other array configuration utilities.

  • You must create multiple configuration files (see example below) if you want to create multiple LUNs. You must execute tpmcli -create -file /pathname/filename, for each configuration file you create until the desired number of LUNs have been created.

Configuration file definitions

Table 1-1. Configuration File Definitions

Command

Definition

#SysDriveDef

Denotes the beginning of a new system drive definition. This must precede each array description. All following definitions until a subsequent #SysDriveDef command or the end of the file is reached, apply to a single RAID array.

//

Denotes a line containing a comment. Example: // This is an example of a comment

SIZE= xxxxx

Denotes the actual or logical size of the array in MB.

Note: The physical size may be greater. For example, a request for a 1000-MB RAID 1 results in 2000 MB's of physical space used. The additional 1000 MB is the mirrored information.

Example: SIZE=10000

Creates a 10,000-MB system drive.

SIZE=ALL

Forces the tpmcli to assign the maximum possible size using the selected drives.

RAID= x

Denotes the RAID level requested.

Valid values are:

0 - striped

1 - mirrored

3 - stripe with fixed drive parity

5 - Striped with floating drive parity

0+1 - Mylex RAID 6

Example: RAID=5 creates a RAID 5 array.

CACHE= x

Denotes whether write cache is enabled (1) or disabled (0).

Example: CACHE=1 enables write-back cache on the system drive.

STRIPE= xx

Denotes the stripe size in KB to be used.

Valid values are 8, 16, 32, or 64.

Note: This option is only valid for the first array configured. All subsequent arrays use the same stripe size as the first system drive.

Example: STRIPE=32

Creates the system drive using a 32K stripe

PACK x= y- zzz

Contains a list of the drives to be used in the array.

x denotes the pack number in the range 0 to 15.

y denotes the channel and zzz the ID of the drive to be added. Channel and ID are separated using the minus (-) character. Drives are separated using the comma (,) character.

Example: PACK=0-5,0-7,1-3,1-9; creates an array using the drives at channel 0, ID 5; channel 0, ID 7; channel 1, ID 3; and channel 1, ID 9.

PORT= xxxx, y

Contains the LUN mapping for the specified port.

xxxx denotes the controller and port number. Valid values are c0p0, c0p1, c1p0 and c1p1.

y is the LUN ID mapped to the selected port. Valid values are 0 to 31. Setting y to nothing (PORT=c0p0, ;) results in the port being allocated the first available LUN ID.

Example: PORT=c0p0,5; creates an array using LUN ID 5 on port 0 of controller 0.

HOST x= yyyy

Contains the host mapping information.

x is the port number. Valid values are 0 for c0p0, 1 for c0p1, 2 for c1p0 and 3 for c1p1.

yyyy is the world wide name (WWN) of the host, which has exclusive access to this system drive on this port.

The value of yyyy can be set to all, which means the system drive is available to all hosts on this port.

The value of yyyy can be set to nothing (HOST0=;), which results in a system drive that is not available to any host. Note: Add only one WWN at a time. For multiple hosts, use the HOST definition multiple times. The maximum number of hosts is 256 (firmware 8.xx or later).

Example: HOST0=20-00-00-E0-8B-00-47-8E; assigns port 0 (c0p0) to host 20-00-00-E0-8B-00-47-8E.

Example 1:

cat > /path/name/myfile.cfg
// file: myfile.cfg - RAID 5 array
#SysDriveDef;
RAID=5;
SIZE=100000;
CACHE=1;
STRIPE=64;
PACK0=0-125,1-124,0-123,1-122;
PACK1=0-121,1-120,0-119,1-118;
PORT=c0p0,1;
HOST0=20-00-00-E0-8B-00-33-41;
CTRL-D
tpmcli -create -file	/path/name/myfile.cfg
Creating a 100000 MB RAID 5 with Write
Cache Enabled using a 64KB stripe

This creates a 100-GB (100000-MB) RAID 5 LUN spanning two packs, each using four drives, with write cache enabled. The LUN is accessible from port 0 on controller 0, set to LUN ID 1, and is only available to the host whose world wide name (WWN) is 20-00-00-E0-8B-00-33-41.

Example 2:

cat > /pathname/myfile_array.cfg
// file: myfile_array.cfg - RAID 5 array
#SysDriveDef;
RAID=5;
SIZE=50000;
CACHE=1;
STRIPE=64;
PACK0=0-5,0-7,0-9,0-11;
PORT=c0p0, ;
HOST0=20-00-00-E0-8B-00-CD-08;
CTRL-D
tpmcli -create -file /pathname/myfile_array.cfg
Creating a 50000 MB RAID 5 with Write Cache Enabled using a 64KB stripe
tpmcli -create -file /pathname/myfile_array.cfg
Creating a 50000 MB RAID 5 with Write Cache Enabled using a 64KB stripe
tpmcli -create -file /path/name/myfile_array.cfg
Unable to create a 50000 MB array.
Largest possible is 4128 MB Creating a 4128 MB RAID 5 with Write Cache Enabled using a 64KB stripe

Example 2 creates 3 LUNs that span the same pack of disk drives. The RAID level for the LUNs is RAID 5, and the stripe size is 64 KB, with write cache enabled. The size of the first and second LUN is 50000 MB and the size of the last LUN is 4128 MB (all of the remaining available space). All of the LUNs are accessible from port 0 on controller 0 The LUNs are set to LUN ID x (where x is the next available sequential LUN ID). Also, the LUNs are only available to the host whose WWN is 20-00-00-E0-8B-00-CD-08.

Example 3:

cat > /pathname/myfile_array1.cfg
// file: myfile_array1.cfg - RAID 5 array
#SysDriveDef;
RAID=5;
SIZE=50000;
CACHE=1;
STRIPE=64;
PACK0=1-6,1-8,1-16,1-18;
PORT=c0p0,0;
HOST0=20-00-00-E0-8B-04-A6-5C;
CTRL-D
cat > /path/name/myfile_array2.cfg
// file: myfile_array2.cfg - RAID 0+1 array
#SysDriveDef;
RAID=0+1;
SIZE=all;
CACHE=1;
STRIPE=64;
PACK0=1-6,1-8,1-16,1-18;
PORT=c0p0,1;
HOST0=20-00-00-E0-8B-04-A6-5C;
CTRL-D
tpmcli -create -file /pathname/myfile_array1.cfg
Creating a 50000 MB RAID 5 with Write
Cache Enabled using a 64KB stripe
tpmcli -create -file /pathname/myfile_array2.cfg
Creating a 36088 MB RAID 0+1 with Write
Cache Enabled using a 64KB stripe

Example 3 creates two LUNs that span the same pack of disk drives.

The RAID level for the first LUN is RAID 5 and the stripe size is 64 KB, with write cache enabled and a capacity of 50000 MB. This LUN is accessible from port 0 on controller 0 and is set to LUN 0 and only available to the host whose WWN is 20-00-00-E0-8B-04-A6-5C.

The RAID level for the second LUN is RAID 0+1 and the stripe size is 64 KB, with write cache enabled and a capacity of 36088 MB (all of the remaining space available). This LUN is accessible from port 0 on controller 0 and is set to LUN 1 and only available to the host whose WWN is 20-00-00-E0-8B-04-A6-5C.

Deleting a LUN

Use this command to delete a LUN. Selective LUN deletion is only available when you use controller firmware levels above 8.25.


Note: If you attempt to select and delete a LUN when using a firmware revision below 8.25, the last LUN is deleted.

This command displays a confirmation message and does not continue until you enter YES or Y. You can override the confirmation message by using the -o option. No confirmation message is displayed when you use the -o option; the command proceeds immediately.

tpmcli {-delete | -del} <sd #> [-o]

Where:

sd #

The number of the system drive (LUN) to be deleted (only applicable on post 8.25 firmware). This variable can be left blank to delete the last LUN. When you attempt to select a LUN and delete it when using firmware versions below 8.25, the last LUN is deleted.

Example:

tpmcli -delete 3
WARNING - This command will delete the selected array (SD03).

Display Command

This command displays physical device(s), disk drive(s), background process(es), array system drive (LUN), controller status, controller parameters or enclosure information.

tpmcli {-display | -disp } {-background | -back} <process type>

 

-background

Display a background process. Use this command to display the progress of a background process such as an initialization (init) or consistency check (check).

Where:

<process type> can be either:

check | cc

Consistency check

init

Initialization

bginit

Background initialization

rebuild | rb

Rebuild

more

Online RAID expansion

all

Online RAID expansion. Default - shows all of the above options.



Note: If the <process type> is left blank the argument defaults to all.

Example:

tpmcli -display -background check
System Drive 0 - RAID 5
         Consistency Check Status    : Not in progress
System Drive 1 - RAID 1
         Consistency Check Status    : Not in progress
System Drive 2 - RAID 0+1
         Consistency Check Status    : Not in progress

-battery

Display battery backup unit (BBU) status.


tpmcli {-display | -disp}  {-battery | -bbu}

Example:

tpmcli -display -battery
Current Power             : 5560 minutes (92.67 hrs)
Maximum Power             : 5560 minutes (92.67 hrs)
Power Threshold           : 2275 minutes (37.92 hrs)
Charge Level              : 100%
Hardware Version Number   : 1
Battery Type              : Nickel Metal Hydride
Operation Status          : No reconditioning since power up
                            Reconditioning needed

 

-config

Display hexadecimal configuration. Use this command to display a hex dump of the configuration structures.


tpmcli  {-display | -disp}  {-config | -cfg}

Example:

tpmcli -display -config
Controller Information - MDACIOCTL_GETCONTROLLERINFO
0000: 00 01 6D 00 00 00 01 00 02 00 00 00 00 00 00 00    ..m.............
0010: 46 46 78 32 20 20 20 20 20 00 00 00 00 00 00 00    FFx2 .......
0020: 4D 59 4C 45 58 20 44 41 43 46 46 78 32 20 20 20    MYLEX DACFFx2
0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0040: 08 19 00 07 00 00 00 00 00 00 00 00 00 00 00 00    ................
0050: 00 00 00 00 00 00 00 00 10 10 80 00 20 00 00 00    ............ ...
0060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0080: 00 00 00 00 4D 59 4C 45 58 20 20 20 20 20 20 20    ....MYLEX
0090: 20 20 20 20 03 00 00 00 00 00 00 00 20 00 80 00    ........ ...
00a0: 05 00 00 00 00 00 09 00 07 00 00 00 00 00 F4 00    ................
00b0: 02 00 02 00 7E 7E 00 00 00 00 00 00 00 00 00 00    ....~~..........
00c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................

-cont

Display controller status.


tpmcli  {-display | -disp}  {-controller | -cont}  [-v]

Use this command to display the status information on the installed controllers. For more detailed information use the -v option.

Example:

tpmcli -display -cont

Master/Slave Controller State : Disabled or in Simplex mode

Status from some background tasks are not accessible from the controller in slot 1 (usually the slave controller). The variable CLIRAID_CONTSTATE contains the last queried state of the controllers. The possible values are SIMPLEX, OFFLINE, DUAL ACTIVE, C0 FAIL and C1 FAIL. To query the contents of CLIRAID_CONTSTATE use:

tpmcli -query CLIRAID_CONTSTATE

-device

Display all available devices.

This command displays all physical devices that are attached to your system. All internal hard drives, CD-ROMs, and RAID devices are displayed. As well as a description of the device, this command displays the physical device path. Use the physical device path in conjunction with the tpmcli -set -dev command to open a path to the selected device. All subsequent commands use this path.

tpmcli {-display | -disp} {-device | -dev} [-v]

Where:

-v

Enable verbose output.

Example:

tpmcli -display -device

Phys Dev Path   Vendor   Product      C0 WWN
/hw/scsi/sc3d4l0   SGI    TP9100 FFX2      20-00-00-50-CC-00-42-3C

-drive

Display drive information.


Use this command to display information about a drive. This can be either a single drive or all drives. When a single drive is selected, the returned string in standard format is placed in the environment variable CLIRAID_DRIVE. This is true even when the verbose output flag (-v) is used.


Note: By default, if the <ch>, <id> or <all> variables are not specified all disk drives are displayed.


tpmcli {-display | -disp}  {-drive | -drv} [{<ch> <id> | {available | avail}}] [-v]

Where:

< ch> 

The channel of the drive to be displayed. If all is used instead of < ch>, then the < id> field is ignored.

< id> 

The ID of the drive to be displayed.

<available>

Display drives that have a state of online and are not assigned to a drive group.


tpmcli -display -drive
Vendor  Model    S/N       Phys Size  Ch   ID   State     uCode
------  -----    ---       ---------  --   --   -----     -----
SGI     ST373405FC   3EK28R3F   70007 MB  0   19   Optimal    2702
SGI     ST373405FC   3EK28ZMR   70007 MB  1    4   Optimal    2702
SGI     ST373405FC   3EK28W6G   70007 MB  1   16   Optimal    2702

-enclosure

Display SCSI enclosure services (SES) information.


Use this command to display the enclosure information.


Note: This is sometimes referred to as the SCSI enclosure services (SES) information.

tpmcli {-display | -disp} {-enclosure | -enc | -ses} [-v]

Where:

-v

Enable verbose output.

Example:

tpmcli -display -enclosure
Enclosure 0
--------- --
     Vendor ID                  : XYRATEX
     Product ID                 : RS1600-FC2-FFX2S
     Product Revision Level     : 37
     World Wide Name (WWN)      : 20-00-00-50-CC-00-42-3C
     Number of Bays             : 16
     Enclosure Address Switch   : 1
     Enclosure Status           : Present
     Primary Path [ 1:04]       : Normal
     Secondary Path [ 0:19]     : Normal
     SES Available              : Present

-host

Display host WWN information.


Use this command to display the World Wide Names (WWN) of the hosts that are attached to the controller.

tpmcli  {-display | -disp} {-host | -hostwwn}

Example:

tpmcli -display -host
Host 10-00-00-60-69-20-15-72 is not available on any ports.
Host 20-00-00-E0-8B-01-0B-58 is not available on any ports.
Host 20-00-00-E0-8B-05-1E-66 is not available on any ports.
Host 20-00-00-E0-8B-04-F0-C5 is available on port(s) C0P0.

-log

Display the controller event log.


Use this command to display the event log of the controller.

tpmcli {-display | -disp} -log [-ctime] [-v]

Where:

-ctime

Displays the time in standard date and time format.

-v

Enable verbose output.


Example:

tpmcli -display -log
Seq  Time Sev Event  Description
---  ------ ---  -----    ------------------------------------------
0        0    I     384     Array management server software started...
1        0    I     518     Automatic reboot count has changed.
2        1    I      13     A new physical disk has been found.
3        1    I      13     A new physical disk has been found.
4        1    I      13     A new physical disk has been found.
5        1    I      13     A new physical disk has been found.
6        1    I      13     A new physical disk has been found.

Using -ctime argument results in the following output:

Seq  Date        Time  Sev  Event  Description
---  ------   -------  ---  -----  ------------------------------------
0    05Dec02 12:00:05   W     422  Dual controllers enabled.
1    05Dec02 12:00:07   I     384  Array management server software...
2    05Dec02 12:00:09   I     518  Automatic reboot count has changed.
3    05Dec02 12:00:15   W     419  Updated partner's status.

-lun

Display LUN Information.


Use this command to display LUN information.

tpmcli {-display | -disp} -lun [<sd #>] [-v]

Where:

sd #

The number of the LUN (system drive) whose information is required. This variable also can be all or left blank to display all currently configured arrays.

-v

Enable verbose output.

Example:

tpmcli -display -lun

SD #  Act. Size   RAID      Phys Size   Cache     Status    Stripe
----  ----------   ------   ----------  -------   -------   ------
0     173560 MB   RAID 3    208272 MB   Enabled   Online    64KB


-parms

Display controller parameters

Use this command to display the controller parameters.

tpmcli {-display | -disp} {-parameters | -parms}

Example:

tpmcli -display -parms

Read Ahead                    ~r : Enabled
Reassign Restricted to 1 blk  ~r : Disabled
True Verification of Data     ~r : Disabled
Write Through Verify          ~rm: Disabled
Super Read Ahead              ~r : Disabled
Coalescing Optimization	       ~f : Disabled

Automatic Rebuild Management  ~f : Enabled
Operational Fault Management  ~r : Enabled

Where:

~f

On-the-fly, no controller reboot required.

~r

Controller reboot required.

m

Is dependent on the firmware level as to whether it can be modified.

x

Cannot be modified with certain controllers and firmware levels.


-realtimeclock

Display real-time clock information.


Use this command to display the real-time clock.

tpmcli {-display | -disp} {-realtimeclock | -clock | -clk} [-v]

Where:

-v

Enable verbose output.


tpmcli -realtimeclock
Realtime Clock = 1059622415 seconds which equates to Wed
Jul 30 20:33:35 2003

-san

Display SAN mapping information.


Use this command to display details of the SAN mapping for all arrays.

tpmcli {-display | -disp} {-san | -mapping} [-v]

Where:

-v

Enable verbose output.

Example:

tpmcli -display -san

        Controller 0 Port 0
        -------------------
          System  Drive   SD00  SD01
          ------  -----   ----  ----
               Host LUN     0      1
            Port Mapped     X      X
       Enable All Hosts     X      X


        Controller 0 Port 1
        -------------------
          System Drive   SD00  SD01
          ------ -----   ----  ----
              Host LUN     0      1
           Port Mapped     X      X
      Enable All Hosts     X      X

The above shows that system drive 0 (SD00) is mapped to LUN 0 on both controller 0 port 0 (c0p0) controller 1 port 0 (c1p0). It is visible on these ports and is available to all hosts. System drive 1 (SD01) is mapped to LUN 2 on controller 0 port 0 (c0p0) and LUN 1 on controller 1 port 0 (c1p0). SD01 is also visible on both ports but host mapping has been used on c0p0. It is available to all hosts on c1p0. Use the verbose option (-v) to view the host mapping table.

Flush Controller Cache Command

Use this command to flush the cache that is in the attached controllers to the disk drives.

tpmcli -flush {-controller | -cont}

Example:

tpmcli -flush -controller

Flushing Controller Cache to disk

Help Command

Use this command to display the tpmcli help.

tpmcli {-help | -h}

Example:

tpmcli <-help>

TPMCLI - Version #.## (Build ##)
Usage: TPMCLI [Options]

Options for devices:

-disp -dev

Display all available RAID devices.

-set -dev < device>

Set current device to < device>.


Identify Command

Use this command to identify a disk drive or LUN by flashing the green disk drive enclosure LEDs.

Note the -identify operation only last for 30 seconds.

tpmcli {-identify | -id} {-lun <sd #> | -drive <ch> <id>}

Where:

sd #

System drive (LUN) number of the array to identified.

ch

Channel of the disk drive to be identified.

id

ID of the disk drive to be identified.

Examples:

Flashes the LED of the disk drive that is attached to channel 0 at ID 115:

tpmcli -identify -drive 0 115
Illuminating or Flashing LED on Drive 0:115 for 30 seconds

Flashes the LEDs of all disk drives that are part of system drive (LUN) 0:

tpmcli -identify -lun 0
Illuminating or Flashing LEDs on System Drive 0 for 30 seconds

Initialization Command

Use this command to initialize the selected LUN.

tpmcli {-initialize | -init} [-wait] [-fore] <sd #> [-o]

Where:

-wait

Causes the command to wait for completion before returning. If -wait is not specified then the command returns immediately and progress must be monitored by using tpmcli -display -back init command.

-fore

Forces initialization to be done as a foreground task even though the background flag is enabled.

sd #

The system drive (LUN) you want to initialize. If the sd # variable is set to all, then the command attempts to initialize all system drives. If the sd # variable is set to allnot, then the command attempts to initialize all system drives that are not already initialized.

The tpmcli -init command starts the initialization and returns. It is then the responsibility of the user to monitor the progress of the process. The tpmcli -init -wait command issues the command and then polls the controller that is waiting for its completion. It is possible to run the initialization process in the background on the controller. To do this, the “Background Initialization” controller parameter must be changed from the default “Disabled” to “Enabled” by using the tpmcli -set <-parameters | -parms> <filename> command. The advantage of this feature is that it is possible to use the array while it is initializing. This option is valid only for redundant arrays. Non-redundant arrays are forced to run in the foreground.

This command displays a confirmation message and does not continue until you enter YES or Y. You can override the confirmation message by using the -o option. No confirmation message is displayed when you use the -o option; the command proceeds immediately. A similar confirmation message displays if the array is already initialized. You can override this by using the -o option.

Example:

tpmcli -initialize -wait 0
Waiting for initialization of SD 0 to complete.
2.1 % complete

Kill Partner Controller Command

Use this command to set a controller's partner offline.

tpmcli -kill {-controller | -cont} [-o]

This command displays a confirmation message and does not continue until you enter YES or Y. You can override the confirmation message by using the -o option. No confirmation message is displayed when you use the -o option; the command proceeds immediately.

Example:

tpmcli -kill -controller
Killing Partner Controller

Load RAID Subsystem Configuration

Use this command to load the controller configuration data.

tpmcli {-load | -ld} {-config | -cfg} <filename> [-o]

Where:

< filename>

Name of the file to load from or to save to



Note: TPMCLI saves the configuration data in the same format as the web-based TPM tool. The configuration can be saved by one tool and loaded with the other tool.

This command displays a confirmation message and does not continue until you enter YES or Y. You can override the confirmation message by using the -o option. No confirmation message is displayed when you use the -o option; the command proceeds immediately.

Example:

tpmcli -load -cfg /path/name/mycfg.cfg
Loading configuration .........
The configuration was successfully saved to file
"/path/name/mycfg.cfg".

Query Command

Use this command to query the current value of an environment variable.

tpmcli  {-query | -qry}  {<variable name> | all} [-v]

Where:

< variable name>

One of the values listed below. If this is set to all, then every environment variable that is set is displayed.

-v

Enable verbose output.



Note: If the <variable name> is left blank the argument defaults to all.

Environment Variable Names:

CLIRAID_DEVICE - holds the identity of the device being controlled

CLIRAID_RC - last return code number reported by tpmcli

CLIRAID_RC_DESC - last return code description reported by tpmcli

CLIRAID_LASTDRIVE - last drive queried or set by tpmcli (set to 9999 if no drive commands have been issued)

CLIRAID_LASTLUN - last LUN queried or set by tpmcli (set to 9999 if no LUN commands have been issued)

CLIRAID_CONTSTATE - the state of the controller after the last tpmcli -disp -cont command. Possible values are “Simplex”, “Dual Active”, “Controller 0 Failure” or “Controller 1 Failure”.

CLIRAID_DRIVE - contains information on the last queried drive using tpmcli -disp -drv <ch> <id>. Only valid if a specific drive was queried.

CLIRAID_SENSE - contains the sense information (KEY, ASC, ASCQ) from the last SCSI command issued.

CLIRAID_SENSEKEY - contains the decode of the sense key for the last SCSI command issued.

Examples:

Standard output displays the contents of CLIRAID_DEVICE variable.

tpmcli -query cliraid_device

/hw/scsi/sc3d4l0

Verbose output displays the contents of CLIRAID_DEVICE variable.

tpmcli -query cliraid_device -v

The Variable CLIRAID_DEVICE is set to /hw/scsi/sc3d4l0

Relinquish Partner Controller Command

Use this command to relinquish or place online the controller's partner.

tpmcli {-relinquish | -rel} {-controller | -cont} [-o]

This command displays a confirmation message and does not continue until you enter YES or Y. You can override the confirmation message using the -o option. No confirmation message is displayed when you use the -o option; the command proceeds immediately.

Example:

tpmcli -relinquish -controller

Relinquishing Partner
Controller...............................

Reset Controller Command

Use this command to issue a controller reset.

tpmcli {-reset | -rst | -r}   [{-nowait | -now}] [-o]

Where:

-nowait | -now

Returns immediately after the controller(s) is reset without waiting for the device to become ready. If the -nowait parameter is not specified, then this command polls the controller and waits for the reset to complete. The timeout of the polling process is set to 5 minutes. An error is returned if the reset does not complete successfully within this time.

This command displays a confirmation message and does not continue until you enter YES or Y. You can override the confirmation message by using the -o option. No confirmation message is displayed when you use the -o option; the command proceeds immediately.

This command polls the controller and waits for the reset to complete. The timeout for the polling process is set to 5 minutes. An error is returned if the reset does not complete successfully within this time.

Example:

tpmcli -reset
Resetting.........................................

Save RAID Subsystem Configuration

 Use this command to save the controller configuration data.

tpmcli {-save | -sv} {-config | -cfg} <filename> [-o]

Where:

< filename>

Name of the file to load from or to save to.



Note: The TPMCLI tool saves the configuration data in the same format as the web-based TPM tool. The configuration can be saved by one tool and loaded with the other tool.

This command displays a confirmation message and does not continue until you enter YES or Y. You can override the confirmation message by using the -o option. No confirmation message is displayed when you use the -o option; the command proceeds immediately.

Example:

tpmcli -save -cfg /path/name/mycfg.cfg

       Saving configuration .........
       The configuration was successfully saved to file
       "/path/name/mycfg.cfg".

Set Command

Use this command to select a device path, to modify disk drive states, or to modify array controller parameters.

tpmcli -set {-battery | -bbu} {threshold {<x> | <hh:mm>} | recondition | discharge | fastcharge | stoprecon | test | shutdown | cancel}

Where:

threshold < x> or

hh:mm

Sets the BBU threshold in minutes or hours and minutes

recondition

Starts a BBU recondition

discharge

Discharges the BBU

fastcharge

Places the BBU into fast charge mode

stoprecon

Stops a previously started BBU recondition

test

Initiates the battery test

shutdown

Initiates a BBU shutdown

cancel

Cancels a BBU shutdown request


-battery | -bbu

Set battery backup unit parameters

Use this command to set the battery backup unit (BBU) parameters.

Examples:

tpmcli -set -bbu threshold 1200

Setting BBU threshold to 1200 minutes
tpmcli -set -bbu threshold 20:30
Setting BBU threshold to 1230 minutes

-device

Selects a device.



Note: This command must be invoked before all other tpmcli commands with the exception of tpmcli -display -device. Failure to do this displays an error message.

Use this command to open a path to a device. The identity of the selected device is stored in the environment variable CLIRAID_DEVICE. Refer to “Query Command” for details on how to access these variables. All subsequent tpmcli commands use this value. To change to a different device, run this command with a different value.

tpmcli -set {-device | -dev} <Physical Device Path>

Where:

< Physical Device Path>

Value returned by invoking
tpmcli -display -device

Example:

tpmcli -display -device

Phys Dev Path        Vendor Product    C0 WWN
/hw/scsi/sc3d4l0          SGI TP9100 FFX2   20-00-00-50-CC-00-42-3C

tpmcli -set -device /hw/scsi/sc3d4l0

Device has been set to /hw/scsi/sc3d4l0

-drive

Modify drive state.


Use this command to modify the current state of a drive.

tpmcli -set {-drive | -drv} <ch> <id> <state> [-o]

Where:

< ch>

The channel of the drive to be modified.

< id>

The ID of the drive to be modified.

< state>

Either online or optimal, online, hotspare or spare, unconfigured | unconf | dead.

If the <ch> field contains all, then the <id> field is ignored and the command attempts to modify the state of all drives attached.

This command displays a confirmation message and does not continue until you enter YES or Y. You can override the confirmation message by using the -o option. No confirmation message is displayed when you use the -o option; the command proceeds immediately.


Note: You cannot modify the state of any drive before you create valid configuration.

Examples:

tpmcli -set -drive 0 20 offline
The drive at Ch 0 ID 20 was successfully modified to
SGI ST318304FC    3EL05CPF      17560 MB 0  20  Offline    2706
tpmcli -set -drive 0 120 hotspare
The drive at Ch 0 ID 120 was successfully modified to
SGI ST318304FC    3ED04CPF      17560 MB 0  120  Hotspare    2706


-lun

Set the LUN ID.


Use the following command to set the LUN ID of a selected LUN:

tpmcli -set -lun <sd #> <port> <lun> [-o]

Where:

sd #

 System drive (LUN) that you want to update.

port

The port ID that you want to update.

lun

The new LUN ID.

This command displays a confirmation message and does not continue until you enter YES or Y. You can override the confirmation message by using the -o option. No confirmation message is displayed when you use the -o option; the command proceeds immediately.

Example:

Set the LUN ID for port c0p0 on the system drive (LUN) 0 to 5.

tpmcli -set -lun 0 c0p0 5
Mapping port C0P0 to LUN ID 5 on SD 0...
Update complete

 -lun

Set LUN write cache.


Use this command to enable or disable the write-cache on a selected LUN.

tpmcli -set -lun <sd #> <state> [-o]

Where:

sd #

The system drive (LUN) that you want to update.

state

Either wce (write-cache enabled) or wcd (write-cache disabled).

This command displays a confirmation message and does not continue until you enter YES or Y. You can override the confirmation message by using the -o option. No confirmation message is displayed when you use the -o option; the command proceeds immediately.

Example:

Enable the write-cache on system drive (LUN) 0.

tpmcli -set -lun 0 wce
Write cache disabled on array 0

-san

Set host mapping information.


Use this command to set a world wide name (WWN) to have access to a specific system drive (LUN) and port.

tpmcli -set {-san | -mapping} <sd #> <port> <wwn> [<lunid>] [-o]

Where: 

sd #

The system drive (LUN) on which you want to change the host mapping.

port

The port associated with the above system drive.

wwn

The world wide name (WWN) that you want to have sole access to the above system drive and port. The format of the WWN is xx-xx-xx-xx-xx-xx-xx-xx. The hyphens are minus characters (-). If < wwn> is set to all, then the selected system drive (LUN) is set to enable all hosts access on the specified port.

lunid

The ID that you want to assign to the above system drive (LUN), port and host. If you leave this field blank, the current LUN ID is left unchanged.

This command displays a confirmation message and does not continue until you enter YES or Y. You can override the confirmation message by using the -o option. No confirmation message is displayed when you use the -o option; the command proceeds immediately.

An option to reset a system drives (LUN) mapping page regardless of whether the drive is configured or not may be achieved using a reset option. For example the SAN map for the system drive is set to invalid for all ports using the following command:

tpmcli -set -san 5 reset any_char any_char

Where: any_char is any alpha-numeric character (0-9, a-z)

Examples:

Make system drive 0 available only to the host whose WWN is 20-00-00-e7-f2-e8-00-47 on port 0 of controller 0 (c0p0). Leave its LUN ID unchanged.

tpmcli -set -san 0 c0p0 20-00-00-e7-f2-e8-00-47
Updating port C0P0 to give 320-00-00-e7-f2-e8-00-47
sole access to SD 0...
Update complete

Make system drive 2 available only to the host whose WWN is 20-00-00-a3-e4-f2-00-55 on port 0 of controller 0 (c0p0) and change its LUN ID to 7.

tpmcli -set -san 2 c0p0 20-00-00-a3-e4-f2-00-55 7
Updating port C0P0 to give 20-00-00-a3-e4-f2-00-55
sole access to SD 2...
Attempting to update LUN ID to 7
Update complete

-parameters

Set controller parameters.


Use this command to set the controller parameters.

tpmcli -set  {-parameters | -parms} <filename>

To set the controller parameters, you must create a text file that contains a list of the parameters that you want to modify. The text file is parsed and checked for errors, then applied to the attached controllers. The text file format is the same as the output from the display controller parameters command.

This command displays a confirmation message and does not continue until you enter YES or Y. You can override the confirmation message using the -o option. No confirmation message is displays when you use the -o option; the command proceeds immediately.

Example: A typical way of using this command would be to issue a display controller parameters command and redirect the output to a file:

tpmcli -disp -params > /path/name/myfiles.prm

Using a text editor, modify contents of the specified files to match your requirements. Note that it is possible to add comments to the file by using the following syntax:

// This is a comment which describes ...

Issue the set controller parameters command to apply changes:

tpmcli -set -parms /path/name/myfiles.prm

Controller Parameters and Possible Values

This is a list of the possible values for each of the controller parameters. A parsing routine checks the completed source file and invalid arguments cause an error message to display. The error message returns the incorrect line along with pointer to the offending object within that line.

Table 1-2. Controller Parameter Categories

Category

Descriptions

~f

 On-the-fly, no controller reboot required.

~r

 Controller reboot required.

m

 Dependent on the firmware level as to whether it can be modified.

x

 Cannot be modified with certain controllers and firmware levels.


Table 1-3. Controller Parameter Values

Parameter

Possible Values

Category

Read Ahead

Enabled or Disabled

~r

Reassign Restricted to 1 block

Enabled or Disabled

~r

True Verification of Data

Enabled or Disabled

~r

Write Through Verify

Enabled or Disabled

~rm

Super Read Ahead

Enabled or Disabled

~r

Coalescing Optimization

Enabled or Disabled

~f

Automatic Rebuild Management

Enabled or Disabled

~f

Operational Fault Management

Enabled or Disabled

~r

Default Rebuild Rate/CC Rate

0 to 50

~f

Queue Limit

1 to 255

~f

Disk Startup mode or On Command

Automatic, On Power

~f

Startup No of Devices

1 to 8

~f

Startup Delay

0 to 255

~f

SCSI Start Delay 2

0 to 255

~f

Vendor Unique TUR

Enabled or Disabled

~r

Disable CC for Invalid LUN

Enabled or Disabled

~r

No Pause on ctrlr not ready

Enabled or Disabled

~r

On Queue Full give Busy

Enabled or Disabled

~r

Disable Busy on Failback

Enabled or Disabled

~r

SAF-TE use of UPS

Enabled or Disabled

~f

Reset Propagation

Enabled or Disabled

~f

Multiport Reset

Enabled or Disabled

~f

RS232 Port Type

Debug or SLP/VT100

~r

RS232 Baud Rate

2400, 4800, 9600 or 19200

~rm

Smart Large Transfers

Enabled or Disabled

~f

Frame Size

512, 1024 or 2048

~r

PCI Latency Control

Short (512 Bytes), Medium (1024 Bytes), Long (2048 Bytes)

~r

Auto Failback/Restore

Enabled or Disabled

~r

Force Simplex

Enabled or Disabled

~r

Conservative Cache Mode

Enabled or Disabled

~f

Simplex no RSTCOM

Enabled or Disabled

~rm

Controller 0, Port 0, 0 to 125

Enabled or Disabled

~r

Controller 0, Port 1, 0 to 125

Enabled or Disabled

~r

Controller 1, Port 0, 0 to 125

Enabled or Disabled

~r

Controller 1, Port 1, 0 to 125

Enabled or Disabled

~r

Topology

Multiport or MultiTID

~r

Node Name Retention

Enabled or Disabled

~r

Debug Dump

Enabled or Disabled

~f

ROF Rearm Interval, CAUTION: Do not set to “Never”, if “ROF Reboot Count” is set to disabled or 0.

Never (Disabled), 3 mins, 5 mins, 15 mins, 30 mins, 60 mins, 90 mins, 2 hours, 4 hours, 8 hours, 12 hours, 16 hours, 24 hours, 2 days, 4 days or 7 days

~f

ROF Reboot Count

Disabled (or 0) or 1 to 15

~f

Background Initialization

Enabled or Disabled

~f

Host Channel Speed - C0P0 (> 8.xx) WARNING: Do not change from factory default (Auto Negotiate) setting, see notations below

Auto Negotiate, 1Gb/s or 2 Gb/s

~f

Host Channel Speed - C0P1 (> 8.xx) WARNING: Do not change from factory default (Auto Negotiate) setting, see notations below

Auto Negotiate, 1Gb/s or 2 Gb/s

~f

Host Channel Speed - C1P0 (> 8.xx) WARNING: Do not change from factory default (Auto Negotiate) setting, see notations below

Auto Negotiate, 1Gb/s or 2 Gb/s

~f

Host Channel Speed - C1P1 (> 8.xx) WARNING: Do not change from factory default (Auto Negotiate) setting, see notations below

Auto Negotiate, 1Gb/s or 2 Gb/s

~f

Drive Channel 0 Speed (> 8.xx)
WARNING: Do not change from factory default

Auto Negotiate

~fx

Drive Channel 1 Speed (> 8.xx)
WARNING: Do not change from factory default

Auto Negotiate

~fx

Drive Channel 2 Speed (> 8.xx)
WARNING: Do not change from factory default

Auto Negotiate

~fx

Drive Channel 3 Speed (> 8.xx)
WARNING: Do not change from factory default

Auto Negotiate

~fx

Thermal Disk Shutdown (> 9.xx)

Enabled or Disabled

~f

Kill Disk on PFA (> 9.xx)

Enabled or Disabled

~f

Enable PFA Polling (> 9.xx)

Enabled or Disabled

~r

PFA Polling Interval (> 9.xx)

0 to 255, 0 or 30 min, 255 or No delay, 1 to 254 = 1 to 254 mins

~r



Important: TP9100 2Gb RAID controllers currently support 1 Gb/s or 2 Gb/s Fibre Channel transfer data rates only. All ports connected to a loop must be set to the same data rates; if not, the ports will not start up. The Fibre Channel drive port data rate defaults to auto negotiate. These are on-the-fly parameters and they take effect immediately. A controller reset is not required.



Warning: SGI does not recommend or support changing of the host channel or disk data rates parameters. Changing of these parameters can make the RAID controller and all of its logical units inaccessible from your host. SGI TP9100 users must leave both host channel and disk data rates parameters set to “Auto negotiate”. If a different data rate is required then it must be set and controlled by the enclosures OPS module switch settings only.

-realtime

Set real-time clock.


Use this command to set the controllers real-time clock to the number of seconds since Jan 1, 1970 (EPOCH). This value is taken from the host's internal clock. If the host's clock is incorrect, then the controller's real-time clock is also incorrect.

tpmcli -set {-realtimeclock | -clock | -clk}

Example:

tpmcli -set -clock
Clock set successfully

Upgrade Command

Use the tpmcli -upgrade command to upgrade disk drive or controller firmware.

-controller

Upgrade controller firmware.

Use this command to upgrade controller firmware to the level found in filename.

This command displays a confirmation message and does not continue until you enter YES or Y. You can override the confirmation message by using the -o option. No confirmation message is displayed when you use the -o option; the command proceeds immediately.

The command fails if any background jobs are running.

tpmcli {-upgrade | -up} {-controller | -cont} [-rolling] <filename> [-o]

Where:

-rolling

Enables rolling upgrade capability on duplex RAID configurations only. The controller firmware may be upgraded from 9.03 to a later version without controller reset interruption. This scheme uses the failover and failback capability of the TP9100 RAID subsystem to upgrade the controller firmware of one of the two controllers. Once failback has occurred, autoflash is used to upgrade the firmware of the second controller.

Warning: Performance is affected during a rolling upgrade. Rolling upgrades are supported only on SGI IRIX platforms and SGI Altix series servers running an SGI Linux environment of 7.2 or later with SGI ProPack 2.1 or later.

< filename>

The name of the file that contains the firmware image.

Example:

Upgrade the controller firmware by using the contents of sgi_8.50.ima:


Note: The specified firmware file must reside in the /opt/dam (CLI_HOME) directory.


tpmcli -upgrade -controller sgi_8.50.ima
Reading firmware file and storing image to controller
    Transferring image...................................
    ...................................................
    ...................................................
    ...................................................
    ...............................................   
 The new firmware image has been stored successfully.
    Flashing image to controller
    The new firmware image has been flashed successfully.

    Please now perform either a cold-boot or a controller
    reset of your subsystem.


-drive

Upgrade disk drive firmware.

Use this command to upgrade disk drive firmware to the level found in filename.  

tpmcli {-upgrade | -upg}  {-drive | -drv} <ch> <id> <filename> [-o]

This command displays a confirmation message and does not continue until you enter YES or Y. You can override the confirmation message by using the -o option. No confirmation message is displayed when you use the -o option; the command proceeds immediately.


Important: Only Seagate disk drives are supported. If this command is issued against any other make of disk drive, it may result in significant damage to that drive.

Operational fault management must be disabled before you download disk drive firmware by using a parameters file as shown below:

% echo "Operational Fault Management : Disabled \
> /pathname/filename.prm
tpmcli  -set  -parms /pathname/filename.prm 

Where:

< ch>

The channel of the drive that you want to upgrade.

< id>

The ID of the drive to you want to upgrade.

< filename>

The name of the file that contains the firmware image.

Example:

To upgrade the disk drive that is located at channel 0, ID 5 to the firmware contained in ST373453FC_FC_2701.lod, enter the following command:


Note: The specified firmware file must reside in the /opt/dam (CLI_HOME) directory.

tpmcli -upgrade -drive 0 5 ST373453FC_FC_2701.lod

Loading Firmware to drive....
    Flashing Firmware to drive.........................
    .........
    Firmware updated successfully

After completing disk drive firmware update, Operational Fault Management must be reenabled using a parameters file as shown below:

% echo "Operational Fault Management: Enabled" \
> /pathname/filename.prm

tpmcli -set -parms /pathname/filename.prm

Environment Variables

Refer to the “Query Command” for a list of environment variables.


Note: If the environment variable CLI_HOME is not set, then the current working directory is used as the default.

Examples:

setenv CLI_HOME /opt/dam    (C Shell, tcsh)
export CLI_HOME=/opt/dam    (Bourne, Bash, Ksh Shell)

Error Codes


Note: Variable names are represented with a percent sign (such as %i) or italics font in the following error code descriptions.


General Error Codes

Table 1-4 lists the general error codes.

Table 1-4. General Error Codes

0

Command completed OK

1

Command aborted by user

2

Invalid command detected by parser

3

Unable to open environment variable file

4

Unable to open temporary file

5

The variable variable does not exist. *Please check the spelling and retry.

6

The given argument argument was invalid. *Please check the spelling and retry.

7

Unable to allocate memory for device

8

Invalid parameter supplied (parameter). A numerical value is required.


Controller Configuration Error Codes

Table 1-5 lists the controller configuration error codes.

Table 1-5. Controller Configuration Error Codes

10

Unable to open the configuration file (filename). *Please check the spelling and retry.

11

The selected file does not contain valid configuration data.

12

Unable to load the configuration data to the controller.

13

Unable to save the configuration data to the controller.


RAID Device Error Codes

Table 1-6 lists the RAID device error codes.

Table 1-6. RAID Device Error Codes

20

Unable to open device scan file. *Please rerun tpmcli -disp -dev

21

The selected device is invalid (see CLIRAID_DEVICE). *Use -set -dev to correct it.


Communication Error Codes

Table 1-7 lists the communication error codes.

Table 1-7. Communication Error Codes

30

Unable to communicate with selected controller

31

SCSI command failure. *Sense Key: 0x%X, ASC: 0x%X, ASCQ: 0x%X

32

Unable to communicate with selected device

33

Timed out waiting for reset to complete

34

Failed to reset the controller(s)


Command Error Codes

Table 1-8 lists the command error codes

Table 1-8. Command Error Codes

40

Invalid size requested. *Min Size is 1MB. Max Size possible is somesize MB

41

A rebuild or check is already in progress.

42

No RAID devices found. *Please check your system to determine if it is configured correctly.

43

There are currently NO LUNS configured

44

System Drive (systemdrive) is invalid or does not exist

45

Selected LUN (lun) is invalid or does not exist

46

Unable to set drive at %i:%i (hex %x:%x) to %s

47

Unable to communicate with the drive at %i:%i (hex %x:%x)

48

Unable to delete the array, which was created last

49

The ALL argument is not valid without the -wait parameter

50

%s %s does not exist. Please re-enter a valid value

51

Port port does not exist. Please re-enter a valid value

52

There are currently NO DRIVES attached to this controller

53

Drive State changes are invalid without a configuration

54

Selected LUN (lun) is already in use by another system drive

55

A disk patrol is already in progress.


RAID Creation Error Codes

Table 1-9 lists the RAID creation error codes.

Table 1-9. RAID Creation Error Codes

60

Selected RAID type does not match previously created RAID arrays *Hence there is no space available to complete request.

61

No space available to create the requested array

62

Invalid RAID type requested. *Please check the spelling and retry

63

Invalid Stripe Size requested. *Please re-enter a valid value

64

Write Cache must be either 0 (disabled) or 1 (enabled). *Please re-enter a valid value

65

The selected file (filename) does not contain valid data.

66

Invalid Drive (%i:%i) found in %s. *Please check the value and retry

67

Cannot recreate an existing system drive (%i).

68

Invalid RAID type (raidtype) found %s %i in %s

69

Invalid size (size) found %s %i in %s *Limits are minimum 1MB, maximum %ld

70

Invalid value for CACHE (value) found %s %i in %s*Possible values are 0 (disabled) and 1 (enabled)"

71

Invalid value for AUTOINIT (value) found on line %i in %s*Possible values are Y (Yes) and N (No)

72

Invalid value for STRIPE (value) found %s %i in %s *Possible values are 8, 16, 32 and 64

73

Invalid pack number (packnumber) or pack numbers not contiguous. *Found %s %i in %s. Limits are minimum 0, maximum %i

74

Unable to open the array creation configuration file (filename). *Please check the spelling and retry

75

Maximum number of arrays (numarrays) already configured.

76

Invalid channel (channel) found in pack packnum of SD %i in %s. *Limits are minimum 0, maximum %i

77

Invalid ID (%i) found in pack packnum of SD %i in %s. *Limits are minimum 0, maximum %i

78

Invalid line format found in pack packnum of SD %i in %s.

79

Drive (%i:%i) already in use by incompatible RAID type (RAID %i vs %i). *Please select another drive.

80

Incorrect number of drives (drives) found in pack on line %i in %s. *Number expected was %s for %s.

81

Unable to create array as SAN Mapping is invalid. *LUN IDs may be duplicated in array configuration file.

82

Invalid value for PORT (%s) found %s %i in %s *See documentation for help.

83

Semicolon missing from end of line %i in %s

84

Invalid port number (portnum). *Found %s %i in %s. Limits are minimum 0, maximum %i

85

RAID 0 packs must contain an even number of drives unless SIZE=ALL. *Found %i drives in a pack in %s.

86

There are only %i drives available. *There must be at least %i.


Firmware Error Codes

Table 1-10 lists the firmware error codes.

Table 1-10. Firmware Error Codes

90

Unable to open the controller firmware file (filename). *Please check the spelling and retry

91

Invalid controller firmware file (filename).

92

Unknown Drive manufacturer (%s) found at %i:%i.

93

Unable to open the drive firmware file (filename). *Please check the spelling and retry

94

Operational fault management must be disabled.


Controller Parameters Error Codes

Table 1-11 lists the controller parameter error codes.

Table 1-11. Controller Parameters Error Codes

100

Unable to open the parameter configuration file (filename). *Please check the spelling and retry

101

Invalid value (value) found. *The parameter was parameter in file filename

102

Invalid line found in file filename. *%s

103

Invalid controller number found in file %s within line *%s

104

Invalid port number found in file %s within line *%s

105

Invalid ID found in file %s within line *%s

106

Unable to communicate with enclosure. *Check to determine if operational fault management is enabled.


Controller Commands Error Codes

Table 1-12 lists the controller commands error codes.

Table 1-12. Controller Commands Error Codes

120

Unable to read the Battery Backup Unit status

121

Unable to retrieve Debug Information as it does not exist.

122

Unable to communicate with the Battery Backup Unit

123

Unable to set realtime clock on controller

124

Unable to read the status of the controller's health

125

Unable to flush the controller's cache

126

Unable to read the host WWN table

127

Host hostname cannot be found. *Please check all connections are correct

128

Selective LUN Deletion is not supported by firmware level %.2f. *Please upgrade to at least version 8.25.

129

This feature is not supported by firmware level %.2f. *Please upgrade to at least version 9.00.

130

Clearing ALL Host info on arrays with the same LUN ID is invalid.

131

LUN ID lunid already in use by this host on SD %i