Chapter 6. The Fibre Channel RAID Command-Line Interface

The Fibre Channel RAID command-line interface, ssmcli, communicates with the SP (storage processor) in the Fibre Channel RAID enclosure. The ssmcli program communicates directly with the Fibre Channel RAID agent ssmagent. It provides an alternative to the RAID GUI (ssmgui). The CLI is accessible using a serial-port terminal, or remote login.

This chapter introduces the ssmcli, explains the ssmcli command, and describes each subcommand for the ssmcli command in these sections:

Using the Fibre Channel CLI

The RAID CLI is typically run on a management station, such as a console or terminal attached to an Origin2000 workstation, although it can also run on an array server. Like the RAID GUI, the RAID CLI can run locally or remotely (communicating with the agent ssmagent over the network).

You can use the CLI to configure, control, and retrieve status from the Fibre Channel RAID enclosure. You can also use the RAID CLI to automate disk-array management functions by writing shell scripts or batch files that incorporate the ssmcli command.

You run the RAID CLI in an IRIX shell. Each ssmcli command consists of the ssmcli command (and switches) together with another subcommand (and its switches). The ssmcli command does not perform any function when executed by itself. However, when used in combination with the other commands described in this chapter, you can configure and manage the Fibre Channel RAID storage systems.

ssmcli

The ssmcli command sends RAID storage device management and configuration requests to an API (application programming interface) on a local or remote server. The RAID storage device consists of disk drives, power supplies, fans, a standby power supply (SPS), and a second RAID storage processor (SP); ssmcli subcommands monitor and control these components.


Note: The agent ssmagent must be running before ssmcli commands are accepted. See “Starting the Fibre Channel RAID Agent ssmagent” in Chapter 1.

This section contains the following topics;

For more information on ssmcli, see its man page ssmcli(7M).

ssmcli Syntax

The ssmcli command syntax is

ssmcli [-help] [-d device] [-p] [-t timeout] -[v|q] [-h hostname] command <optional switches>


Note: You must be logged in as root or as the system administrator for this command.

Optional switches are as follows:

-help 

Display the help screen and do not start the ssmcli process.

command 

One of a set of subcommands that are used with the ssmcli command to configure and manage a storage system, such as bind or getdisk. See “ssmcli Subcommands”.

-d device 

The target RAID device. If you do not specify the -d switch, the environment variable RaidAgentDevice is the default value for the device. (RaidAgentDevice is explained later in this section.) If RaidAgentDevice is not set and the -d switch is not present, an error is generated on all commands that need device information. Unless the environment variable indicates otherwise, every instance of the ssmcli command must have the -d switch. The -d switch overrides the RaidAgentDevice environment variable. You can get a list of RAID devices present using the getagent command with ssmcli.

-h hostname 

The network name of the destination server. The environment variable RaidAgentHost is the default value for the server if the -h switch is not present. The -h switch overrides the RaidAgentHost setting. If RaidAgentHost is not set and the -h switch is not present, the local hostname is used.

-p 

Parses the entered command without making a network call to the application programming interface (API). If the string does not parse correctly, an error message prints to stderr; otherwise a message verifying that the string parsed correctly prints to stderr.

-q 

Suppresses error messages. This switch can be useful in a script.

-t timeout 

Sets the timeout value in seconds. Default is 25 seconds.

-v 

Enables verbose error descriptions. This is the default unless -q is specified.

command <optional switches 

>
A subcommand and its switches. These subcommands are described in “ssmcli Subcommands”; Table 6-1 on page 142 summarizes the subcommands.

Environment Variables RaidAgentHost and RaidAgentDevice

The environment variables RaidAgentHost and RaidAgentDevice are default values for the server and the device if -h and -d switches are not supplied with the ssmcli command. (The -h and -d switches are explained above.)

If RaidAgentDevice is not set and the -d switch is not present, an error is generated on all commands that need device information.

The following examples illustrate environment command settings:

setenv RaidAgentDevice sc1d0l0 
setenv RaidAgentHost panther 

In these examples, sc1d0l0 is a device name and panther is a hostname.

ssmcli Subcommands

This section explains all ssmcli subcommands. Table 6-1 summarizes the subcommands.

Table 6-1. ssmcli Subcommand Summary

Subcommand

Page

Purpose

bind

page 143

Binds (groups) physical disks into RAID types

chglun

page 150

Changes parameters for a currently bound group

clearlog

page 153

Destroys the contents of the SP error log and resets its counters to zero

clearstats

page 153

Resets statistics logging on the SP, setting all log counters to 0

failback

page 153

Returns control of the fibre loop to the specified SP

getagent

page 154

Gets names and descriptions of devices controlled by the destination API

getcache

page 155

Gets information about the storage-system caching environment

getcontrol

page 159

Gets information about the SP configuration

getcrus

page 161

Displays status information on all system components, such as the fan module, SPS, and so on

getdisk

page 164

Displays status information on disk modules in the system

getlog

page 167

Displays the SP log, in which errors are stored, or displays the oldest or newest entries

getloop

page 168

Returns information about the fibre loop.

getlun

page 169

Displays information about a disk group

getsniffer

page 175

Displays background and sniff information for a LUN

r3wrbuff

page 177

Sets RAID 3 write buffering

rebootSP

page 177

Reboots one or both SPs in the system

setcache

page 178

Changes information about the FC RAID controller's caching environment

setraid5

page 180

Sets the state of mixed-mode RAID 5

setsniffer

page 181

Sets sniffer and background verify parameters

setstats

page 182

Set statistics logging or returns its state

trespass

page 183

Sets the trespass value of a LUN

unbind

page 183

Deconfigures physical disks from their current logical configuration, destroying all data on LUN



Note: You must be logged in as root or as the system administrator to use ssmcli.


bind

The bind command groups physical disks into logical RAID types (levels). This section contains the following topics:

bind Syntax

bind is used with ssmcli as follows:

ssmcli bind raid-type lun-number disk-names <optional switches>

Required parameters are as follows:

raid-type 

Specifies the RAID type for the array:

  • r5 = RAID type 5

  • r3 = RAID type 3

  • r1 = RAID type 1

  • r1_0 = RAID type 1/0

  • r0 = RAID type 0

  • id = individual disk

  • hs = hot spare

lun-number 

Logical unit number (LUN) to assign the unit (valid range: 0-31).

disk-names 

Physical disks to bind, in the format e_d, where e is enclosure number (in hex) and d is the disk number on that bus.

For example, 2_3 represents enclosure 2, disk 3. Valid enclosure values are the hexadecimal numbers 0 through 9, A (the hex representation of 10), and B (the hex representation for 11). Valid disk numbers are 0 through 9.

Optional switches are as follows. For specific RAID types, some of these parameters are required; see Table 6-3.

-c cache-flags 

Enables either read or write caching, both read and write caching, or neither type of caching for any type of LUN except for a RAID 3 LUN or a hot spare. If you enable any type of caching for the LUN, caching occurs only when storage-system caching is enabled; see “setcache”. Write caching has special hardware requirements; see “Hardware Requirements for Caching” in Chapter 2.

Set the type of caching used as follows:

  • none = no caching

  • read = read caching

  • write = write caching

  • rw = read and write caching

The default is none. Whether you should use caching for a specific LUN depends on the LUN's RAID type; see Table 6-2.

Table 6-2. Binding Restrictions for RAID Types and Caching

RAID Type

Write Caching

Read Caching

RAID 5

Highly recommended

Recommended

RAID 3

Not acceptable

Not acceptable

RAID 1

Acceptable

Recommended

RAID 1/0

Acceptable

Recommended

RAID 0

Acceptable

Recommended

Individual disk

Acceptable

Recommended

Hot spare

Not acceptable

Not acceptable


-n min_latency_read 


For RAID 3 only, enables minimal latency reads functionality. A setting of 0 (the default) disables minimal latency reads; a setting of 1 enables it.

-r rebuild-time 

Maximum time in hours allocated to reconstruct data on either a hot spare or a new disk module that replaces a failed disk module in a LUN. This parameter applies to all RAID LUNs except RAID 0 and hot spares. Legal values are 0 through 254. The default value is 4, which is adequate for most situations.

The time you specify determines the amount of resource that the SP devotes to rebuilding instead of to normal I/O activity. A rebuild time of 2 hours rebuilds the disk more quickly, but degrades response time slightly. A rebuild time of 0 hours rebuilds the disk module as quickly as possible, but degrades response time significantly. If your site requires fast response time and you want to minimize degradation to normal I/O activity, you can set the rebuild to a longer period of time, such as 24 hours.


Note: You cannot change the rebuild time for a LUN while the LUN is rebuilding. Any change to the rebuild time takes effect as soon as the operation completes.

The actual rebuild time can differ significantly from the time you specify, especially for a RAID 1/0 LUN, or a LUN containing 4- GB disk modules. Because a RAID 1/0 with n disk modules can continue functioning with up to as many as n/2 failed drive modules and only one drive at a time is rebuilt, the actual rebuild time for such a LUN is the time you specify multiplied by the number of failed drives. For 4-GB disk modules, the minimum rebuild time should be 2 hours, because a rebuild time of less than 2 hours actually takes about 2 to 3 hours. If you specify any other time, actual disk module rebuilding takes about twice as long.

-s stripe-size 

Number of blocks per physical disk within a LUN. The default value is 128 and should be an even multiple of 16 sectors; supported values are 4, 8, 16, 32, 64, 128, and 256.

The stripe element size can affect the performance of a RAID 5 or RAID 1/0 LUN. This value is ignored for RAID 1 LUNs, individual disks, and hot spares. For RAID 3 binds, the only legal value is 1.

The smaller the stripe size, the more efficient the distribution of data read or written. However, if the stripe size is too small for a single I/O operation, the operation requires access to two stripes, which causes the hardware to read to or write from two disk modules instead of one. Generally, you should use the smallest stripe size that rarely forces access to another stripe.

-v max_verify_time 


The maximum amount of time to spend rebuilding a LUN if an SP fails and is replaced during I/O operations. A longer value rebuilds the LUN more slowly and has less impact on overall system performance. The allowable range is 0-254 hours; the default value is 4 hours.

-z stripe-count 

The number of stripes in a LUN. For example, when you bind a RAID 5 with a stripe count of 2, partition the LUN into 2 stripes, thus preventing access to the remainder of the available space. This switch is useful for short bind operations (minibinds). Legal values are any number greater than or equal to zero. The default value is 0, which binds the maximum number of stripes available.

Table 6-3 identifies bind parameters that you must configure for each RAID type.

Table 6-3. RAID Types and Bind Parameters

RAID Type

Default SP

Rebuild Time

Stripe (Element) Size

Verify Time

Caching

RAID 5

Required

Required

Required

Yes

Read and write

RAID 3

Required

Required

Not required

Yes

Not required

RAID 1

Required

Required

Not required

Yes

Read and write

RAID 1/0

Required

Required

Required

Yes

Read and write

RAID 0

Required

Not required

Required

No

Read, write,
or both

Individual
disk

Required

Not required

Not required

No

Read, write,
or both

Hot spare

Not required

N/A

Not required

No

Not required

LUN number must be specified for all RAID types in Table 6-3. RAID 3 also requires minimal latency reads.

The following example binds LUN 3 as disks 1, 2, 3, 4, and 5 from enclosure 1 into a RAID 5, with a 4-hour maximum rebuild time, a 128-block stripe size per physical disk, and with read cache enabled.

ssmcli -d sc2d0l0 bind r5 3 1_1 1_2 1_3 1_4 1_5 -r 4 -s 128 -c read 

This subcommand has no output. Errors are printed to stderr.

LUN Binding Order and Restrictions

For greatest flexibility, bind LUNs in the following order in the array:

  1. RAID 1/0

  2. RAID 5, RAID 3, and RAID 0

  3. RAID 1

  4. individual units and hot spares

Before you start binding disk modules, read the restrictions and recommendations in Table 6-4.

Table 6-4. Binding Restrictions for RAID Types

LUN Type

Disk Modules

Notes

Any LUN

Unbound disk modules only; all must have the same capacity

For LUNs except RAID 3, you can deallocate RAID 3 memory. Binding RAID 3 LUNs with other LUN types in the same array is not supported.

RAID 5

3 minimum
(5 recommended minimum),
16 maximum

You can bind one less module per LUN that you eventually use by selecting an empty slot icon. However, the LUN operates in a degraded mode until a disk module is installed in the empty slot and the array integrates it into the LUN. You can select the modules in any order.

RAID 3

5 or 9

You can bind one less module per LUN than you eventually use by selecting an empty slot icon. However, the LUN operates in a degraded mode until a disk module is installed in the empty slot and the array integrates it into the LUN. You can select the modules in any order.

Check RAID 3 memory before binding. If you do not allocate adequate memory to the RAID 3 partition, the LUN is unowned.

Binding other LUN types in the same array is not supported.

RAID 1

2

 

RAID 1/0

Even number:
4 minimum, 16 maximum

Disk modules are paired into mirrored images in the order in which you select them: see Figure 6-1 on page 149.

RAID 0

3 minimum, 16 maximum

You can select the modules in any order.

Individual disk

1

 

Hot spare

1

You cannot bind as hot spares disk modules 0:0 through 0:8.

The capacity of a hot spare must be at least as great as the capacity of the largest disk module that it might replace.

For a RAID 3 LUN, only one hot spare is used in case of disk failure; a second hot spare is not used in case of a second disk failure.


Selecting Modules for Mirror Images for a RAID 1/0 LUN

If you are binding a RAID 1/0 LUN, select disk modules in alternating order for the primary and secondary images. Figure 6-1 diagrams this order.

Figure 6-1. Selecting Modules for Mirror Images for a RAID 1/0 LUN


The first and second modules selected for a RAID 1/0 LUN are a pair of peer image parts, the third and fourth modules are another pair of peer image parts, and so on.

When a LUN is assigned to an SP, its state becomes Assigned. When you use the SP that owns the LUN as the communications path to the chassis, the state of its disk modules becomes Enabled.

If you need to change the raid-type or -s stripe-size parameters, you must unbind the LUN and then rebind it with the correct parameters. (The unbind subcommand is explained on page 183.) If you need to change the maximum rebuild time, read cache state, or write cache state, use the chglun command (see page 150).

chglun

The chglun subcommand changes parameters on a currently bound LUN. You must use the LUN number -l lun switch with this subcommand; you must also use at least one other switch with it.

chglun is used with ssmcli as follows:

ssmcli chglun -l lun <optional switches>

where -l lun specifies which logical unit to change. This switch is mandatory.

Optional switches are as follows:

-a auto 

Automatically reassigns ownership of a LUN to an active SP if an SP failure occurs. By default this feature, known as auto assign, is disabled for all RAID types except hot spares, to which it does not apply. The values are

  • 0 = disable auto assignment for the specified LUN (default)

  • 1 = enable auto assignment for the specified LUN

-c cache-flags 

See the description of this parameter on page 144 in “bind.”

-d default-owner 


Change the default owner of the LUN.

  • 0 = change ownership of the LUN to SP A

  • 1 = change ownership of the LUN to SP B

-i idle-thresh 

Maximum number of I/Os that can be outstanding to a LUN for the LUN still to be considered idle. Used to determine cache flush start time. Valid values are 0 through 254; the default is 0.

-t idle-delay-time
 

Amount of time in 100-ms units that a LUN must be below the idle-thresh in order to be considered idle. For example, 5 equals 500 ms. Once a LUN is considered idle, any dirty pages in the cache can begin idle time flushing. The default is 20.

-pc maxIO 

Maximum number of I/Os which the LUN can have outstanding and still perform prefetching. The default is 40; valid values are 1 through 100.

-v verify_time  

Maximum number of hours to spend rebuilding a LUN if an SP fails and is replaced during I/O operations. A longer value rebuilds the LUN more slowly and has less impact on overall system performance. The range is 0-254 hours; the default value is 0 hours.

-pd min_size_disable 


Sets the prefetch disable, which is the size in blocks of the smallest read request for which prefetching is disabled. Prefetching is disabled for all read requests whose size is equal or larger than the Prefetch Disable size. The range is 0 through 65534; the default value is 129 (blocks).

-n min_latency_reads 


Enables minimal latency reads functionality. A setting of 0 disables; a setting of 1 enables. This parameter applies to RAID 3 only.

-pf prefetch_type 


Determines whether to prefetch data of a variable or constant length or to disable prefetching.

  • 0 = disabled

  • 1 = constant length

  • 2 = variable length (default)

-pm prefetch_size/mult 


Determines the amount of data prefetched for one host read request.

  • For constant-length prefetching, the prefetch size is the number of blocks to prefetch.

  • For variable-length prefetching, the prefetch multiplier is the amount of data to prefetch relative to the amount of data requested.

For example, if the prefetch size is 8, the amount of data to prefetch is 8 times the amount of data requested. The range is 1 through 32; the default value is 4.

-mp maxlength 

For variable-length prefetching, gets the absolute maximum number of disk blocks to prefetch in response to a read request. This value is ignored for constant length.

-sm segment-size/mult  


For constant-length prefetching, sets the number of blocks of data to prefetch for each read request. An SP reads one segment at a time from the LUN because smaller prefetch requests interfere less with other host requests.

For variable-length prefetching, determines the amount of data to retrieve from the LUN in a single prefetch operation. Specify a factor equal to or less than the prefetch multiplier. If the segment multiple is equal to the prefetch multiplier, prefetch operations are not divided into segments. The amount of data prefetched for each read request must equal or be less than the prefetch multiplier.

-r rebuild-time 

See the description of this parameter on page 145 in “bind.”


Note: You cannot change the rebuild time for a LUN while the LUN is rebuilding. Any change to the rebuild time takes effect as soon as the operation completes.


-rt retain_prefetch_data 


Enables retaining prefetch data. A setting of 0 disables; a setting of 1 enables. The range is 16 through 65534; the default is 2048 (blocks).

-w write-aside 

Sets the smallest write request size, in blocks, that bypasses the cache and goes directly to the disks.


Note: RAID 3 LUNs do not use read or write caching.

If you are binding a RAID 1/0 LUN, the order in which you select modules is important; see “Selecting Modules for Mirror Images for a RAID 1/0 LUN”.


Note: A LUN cannot use write caching until you enable the storage-system write cache. Write caching requires two SPs with equal amounts of memory. The LUN cannot use read caching until you enable the read cache for the SP that owns the LUN (see “setcache”).

This example changes LUN 3 to perform write caching and to rebuild in 4 hours:

ssmcli -d sc2d0l0 chglun -l 3 -c write -r 4 

This subcommand has no output. Errors are printed to stderr.

clearlog

The clearlog command destroys the contents of the RAID SP's unsolicited error log. All log counters are reset to zero. clearlog is used with ssmcli as follows:

ssmcli clearlog

For example:

ssmcli -d sc2d0l0 clearlog 

Example output is as follows:

SP unsolicited error log cleared.

clearstats

The clearstats command resets statistics logging on the RAID SP. If statistics logging is on, it is turned off and then back on. If statistics logging is off, it is turned on and then off. clearstats is used with ssmcli as follows:

ssmcli clearstats

For example:

ssmcli -d sc2d0l0 clearstats 

Example output is as follows:

Statistics successfully cleared, statistics logging disabled.

failback

The failback command returns control of the fibre loop to the specified SP. failback is used with ssmcli as follows:

ssmcli failback

For example:

ssmcli -d sc2d0l0 failback 

This subcommand has no output.

getagent

The getagent command returns the names of devices controlled by the destination API along with descriptions about each device that the API is configured to communicate with. If you use the getagent command without switches, all of the values are displayed. If you enter the getagent command with switches, only the values for those switches are displayed.

This subcommand is used with ssmcli as follows:

ssmcli getagent <optional switches>

Optional switches are as follows:

-cabinet  

Cabinet type.

-desc  

ASCII description of the device.

-mem  

Size in MB of the SP's memory. Each SP in the storage system must have the same amount of memory to make full use of the memory.

-model  

Model number of the device.

-name  

Name of the device.

-node  

Location in file system of device.

-peersig  

Signature of peer SP.

-prom  

Revision level of the SP's PROM code. Each SP in the storage system runs the same revision of PROM code. PROM code is updated automatically when an SP's LIC is updated.

-rev  

Microcode revision number: the revision of the Licensed Internal Code (LIC) that the SP is running. Each SP in the storage system runs the same revision of LIC.

-scsiid  

SCSI ID number for the SP host connection, which is determined by switch settings on the SP. For information on these switch settings, see the Origin FibreVault and Fibre Channel RAID Owner's Guide

-serial 

Enclosure serial number.

-sig 

Unique SP signature.

-type 

Model type (deskside, rackmount).

-ver 

Agent revision number: the version of the agent that is running.

For example:

ssmcli -d sc2d0l0 getagent 

Following is example output for one device:

Agent Rev: 1.50
Name: ttyb
Desc: sandshark
Node: ttyb
Signature: 0xd454201
Peer Signature: 0x0
Revision 8.15.13
SCSI Id: 0
Model: 7310
Model type: Deskside
Prom Rev: 2.79.0
SP Memory: 32
Serial No: 94-2754-252
Cabinet: 5 

getcache

The getcache subcommand returns information about the RAID SP's caching environment. This subcommand is used with ssmcli as follows:

ssmcli getcache <optional switches>

Optional switches are as follows:

-bbutd 

Day of the week that BBU self-test is performed.

-bbutt  

Time of day that BBU self-test is performed. Format: hhmm.

-freebackend 

Free memory available in the back-end memory bank.

-freecontrol 

Free memory available in the control memory bank.

-freefrontend 

Free memory available in the front-end memory bank.

-high 

Write cache high watermark. The percentage of dirty pages that, when reached, causes the SP to begin flushing the cache. The default is 100%. A lower value causes the SP to start flushing the cache sooner. The high watermark cannot be less than the low watermark. Watermark processing is turned off when both the low and high watermark values are 100.

-low 

Write cache low watermark. The percentage of cache dirty pages that determines when cache flushing stops. When the write cache low watermark is reached during a flush operation, the SP stops flushing the cache. The default value is 50%. Do not set the low watermark higher than the high watermark. Watermark processing is turned off when both the low and high watermark values are 100.

-mirror 

Write cache mirrored state.

-page 

Size of a cache page in KB: 2, 4, 8, or 16 KB. The default size is 2 KB.

-pdp 

Percent dirty pages currently in cache. The percentage of pages that have been modified in the SP's write cache, but that have not yet been written to disk. A high percentage of dirty pages means the cache is handling many write requests.

-pmbackend 

Physical memory size for the back-end memory bank.

-pmfrontend 

Physical memory size for the front-end memory bank.

-ppo 

Percent pages owned by SP.

-rh 

Read hit ratio. The percentage of cache read hits for the SP. A read hit occurs when the SP finds a sought page in cache memory, and thus does not need to read the page from disk. The ratio is meaningful only if the SP's read cache is enabled. High hit ratios are desirable because each hit indicates at least one disk access that was not needed. You may want to compare the read and write hit ratios for the LUN with the read and write hit ratio for the entire storage system. For a LUN to have the best performance, the hit ratios should be higher than those for the storage system. A very low read or write hit rate for a busy LUN may mean that caching is not helping the LUN's performance.

-rm3a 

Amount of memory, in MB, reserved for the optimized RAID 3 data buffers on SP A.

-rm3b 

The amount of memory, in MB, reserved for the optimized RAID 3 data buffers on SP B.

-rsta 

Current internal state of the read cache on SP A.

-rstb 

Current internal state of the read cache on SP B.

-rsza 

Amount of read cache memory SP A is allowed to use (in MB).

-rszb 

Amount of read cache memory SP B is allowed to use (in MB).

-spa 

Number of pages owned by SP A. The total number of pages in the SP, each page with the cache page size you selected when setting up storage-system caching. This number equals the cache size divided by the cache page size, minus space for checksum tables. If the storage system has two SPs and both are working, they divide the total number of pages between them. If an SP is idle for a long period or fails, the active SP may increase its share of pages.

-spb 

Number of pages owned by SP B. The total number of pages in the SP, each page with the cache page size you selected when setting up storage-system caching. This number equals the cache size divided by the cache page size, minus space for checksum tables. If the storage system has two SPs and both are working, they divide the total number of pages between them. If an SP is idle for a long period or fails, the active SP may increase its share of pages.

-state 

Current state of the SP's read or write cache. The possible read cache states are Enabled, Disabling, and Disabled. An SP's read cache is automatically enabled on power-on if the cache size is a valid number and the SP has at least 8 MB of memory. The possible write cache states are Enabled or Disabled, and several transition states, such as Initializing, Enabling, Disabling, Dumping, and Frozen.

-ucp 

Unassigned cache pages (that is, owned by neither SP A nor B).

-wh 

Write hit ratio: the percentage of cache write hits for the SP's write cache. A write hit occurs when the SP finds and modifies data in cache memory, which usually saves a write operation. For example, with a RAID 5 LUN, a write hit eliminates the need to read, modify, and write the data. High hit ratios are desirable because each hit indicates at least one disk access that was not needed.

You may want to compare the read and write hit ratios for the LUN with the read and write hit ratio for the entire storage system. For a LUN to have the best performance, the hit ratios should be higher than those for the storage system. A very low read or write hit rate for a busy LUN may mean that caching is not helping the LUN's performance.

-wsza 

Write cache size for SP A; it is always equal to that of SP B.

-wszb 

Write cache size for SP B; it is always equal to that of SPA.

For example:

ssmcli -d sc2d0l0 getcache 

Example output is as follows.

SP Write Cache State Disabled
Cache Page Size: 2
Write Cache Mirrored: YES
Low Watermark: 0
High Watermark: 0
SPA Cache Pages: 0
SPB cache pages: 0
Unassigned cache pages: 0
Read Hit Ratio: 0
Prct Dirty Cache Pages: 0
Prct Cache Pages Owned
SPA Read Cache State Disabled
SPB Read Cache State Disabled
SPS Test Day: Sunday
SPS Test Time: 01:00
Physical Memory Size of CPU Ram = 3
Physical Memory Size of Front-End = 16
Physical Memory Size of Back-End = 16
SPA Read Cache Size = 0
SPB Read Cache Size = 0
SPA Write Cache Size = 0
SPB Write Cache Size = 0
SPA Optimized RAID 3 Memory Size = 6
SPB Optimized RAID 3 Memory Size = 6
Free Memory Size of CPU RAM = 2
Free Memory Size of Front-End = 10
Free Memory Size of Back End = 9

An SP's write cache is automatically enabled at power-on if the cache size is a valid number and the storage system has certain components; see “Hardware Requirements for Caching” in Chapter 2.


Note: Caching statistics are meaningful only if the SP's write cache is enabled; use setcache.


getcontrol

The getcontrol subcommand returns information about the SP configuration. This subcommand is used with ssmcli as follows:

ssmcli getcontrol <optional switches>

Optional switches are as follows:

-allib 

Idle and busy ticks for both buses.

-arv 

Number of times a user request arrived while at least one other request was being processed.

-avg 

Average number of requests seen by the SP.

-busy 

Percentage of time the SP is busy.

-cbt 

Controller idle and busy ticks.

-date 

SP's system date.

-day 

SP's system day.

-flush 

Number of times the high watermark, low watermark, and idle unit turned on flushing. This parameter also displays the number of requests to flush write cache, and the number of write cache blocks flushed.

-he 

Number of hard errors the SP has seen.

-ib1 

Displays internal bus 1 idle and busy ticks.

-ib2 

Displays internal bus 2 idle and busy ticks.

-idle 

Percentage of time the SP is idle.

-max 

Maximum number of requests seen by the SP.

-read 

Number of reads received by the SP.

-rw 

Displays the following:

  • host read requests: the number of read requests that host makes to LUN

  • host write requests: the number of write requests from host to LUN

  • host blocks read: the number of blocks the host read from the LUN

  • host blocks written: the number of blocks the host wrote to the LUN

-sc 

Indicates whether system cache is disabled or enabled. For SP A, the output gives the state of both read and write cache; for example:

SP Read Cache State Disabled
SP Write Cache State Disabled

For SP B, the output is read cache only, because write cache is always the same as that for SP A.

-sf 

Indicates whether system fault LED is on or off.

-sl 

Indicates whether statistics logging is on or off.

-time 

SP's system time.

-write 

Number of writes received by SP.

For example:

ssmcli -d sc2d0l0 getcontrol 

Example output is as follows:

System Fault LED: OFF 
Statistics Logging: ON
SP Write Cache State: Disabled
Max Requests: 3
Average Requests: 0
Hard errors: 0
Total Reads: 145
Total Writes: 34642049
Prct Busy: 27
Prct Idle: 72
System Date: 04/11/1997
Day of the week: Friday
System Time: 8:58:57
read_requests: 145
write_requests: 34642049
blocks_read: 1633
blocks_written: 363696414
sum_queue_lengths_seen_by_arrivals: 401
arrivals_to_non_zero_queue: 400
hw_flush_on: 0
idle_flush_on: 5314
lw_flush_off: 0
write_cache_flushes: 98
write_cache_blocks_flushed: 1150
Internal bus 1 busy ticks: 4294967295
Internal bus 1 idle ticks: 4294967295
Internal bus 2 busy ticks: 0 
Internal bus 2 idle ticks: 0 
Internal bus 3 busy ticks: 0 
Internal bus 3 idle ticks: 0 
Internal bus 4 busy ticks: 0 
Internal bus 4 idle ticks: 0 
Internal bus 5 busy ticks: 0 
Internal bus 5 idle ticks: 0 
Controller busy ticks: 1403792
Controller idle ticks: 3775334


Note: Fibre Channel RAID SPs have only one internal bus. For 5400 model series, the internal bus 2 through 5 idle and busy ticks values are 0.


getcrus

The getcrus command returns state information on all or selected CRUs (customer replaceable units) in the subsystem except for disks (see the getdisk command). The getcrus command displays the state of the following CRUs: fan packs, link controller cards (LCCs), storage processors (SPs), standby power supplies (SPSs), and power supplies (also called voltage semi-regulated converters, or VSCs). The external Fibre Channel Hub is transparent to ssmcli.


Note: Despite the command name, not every component for which the getcrus command returns state information is customer-replaceable. Only fan packs, LCCs, and power supplies are customer-replaceable; see the Origin FibreVault and Fibre Channel RAID Owner's Guide for instructions. For failed SPs and SPSs, call your service provider.

getcrus is used with ssmcli as follows:

ssmcli getcrus <optional switches>

Optional switches are as follows:

-fana 

Gets the state information on fan module A, which is the fan for the drives (rear fan) in a DPE, or the only fan module in a DAE.

If any fan in a module fails, a fault is displayed for its module, and other fans speed up to compensate. They cool the storage system indefinitely; however, if failure occurs in the normally functioning module, the temperature rises and the storage system shuts down after two minutes.

If a fan bank is down, you can determine whether it has failed by whether its button is amber, the event log lists fan failures, or the replace light on the fan module is lit. If a fan module has failed, replace it as soon as practical.

-fanb 

Gets the state information on fan module B, which is the SP fan pack in a DPE (front fan). See -fana for further information.

-lcca 

State information on the link controller card (LCC) for SP A.

-lccb 

State information on the LCC for SP B.

-spa 

Current operational state of SP A. It can be in any of these states:

  • Present: The SP is the communication channel you are using to communicate with the chassis.

  • Empty: The agent cannot talk to the SP because a communication channel specifying the SP is not in the agent's configuration file for the selected host. For example, the SP is connected to a different host than the SP in the communications channel for the chassis.

  • Not Present: The SP that is in the communication channel to the selected chassis has failed or been removed.

  • Removed: The SP was not present when the agent was started.

-spb 

Gets state information on SP B. See the description of -spa.

-spsa 

Gets state information on SPS A.

-spsb 

Gets state information on SPS B.

-vsca 

Gets state information on power supply A.

If a chassis has the maximum number of VSCs, it can continue operating if one VSC fails, but shuts down immediately if a second VSC fails. If a VSC is Down, you can determine whether it has failed by seeing if its button is amber, looking at the event log for VSC failures, or seeing if the Replace light on the VSC is lit. If the VSC has failed, replace the VSC as soon as practical.

-vscb 

Gets the state information on power supply B. You can use getcrus without any switches to get the state information for every CRU except disks.

Table 6-5 summarizes states.

Table 6-5. VSC States

VSC State

Meaning

Present

Operating normally.

Empty

Failed or removed before the agent started running.

Not Connected

For an SP: the agent cannot talk to the SP because a communication channel specifying the SP is not in the agent's configuration file for the selected host. For example, the SP is connected to a different host than the SP in the communications channel for the chassis. ailed or removed before the agent started running.

Removed

Not present when the agent was started.


For example:

ssmcli -d sc2d0l0 getcrus 

Example output is as follows:

DPE Enclosure 0
Enclosure 0 FAN A State: Present
Enclosure 0 FAN B State: Present
Enclosure 0 Power A State: Present
Enclosure 0 Power B State: Empty
SPA State: Empty
Enclosure 0 SPS A State: Empty
Enclosure 0 SPS B State: Empty
Enclosure 0 LCC A State: Present
Enclosure 0 LCC B State: Present
DAE Enclosure 1
Enclosure 1 FAN A State: Removed
Enclosure 1 Power A State: Removed
Enclosure 1 Power B State: Removed
Enclosure 1 LCC A State: Removed
Enclosure 1 LCC B State: Removed 

getdisk

The getdisk command returns detailed status information about all or selected disks in the system. getdisk is used with ssmcli as follows:

ssmcli getdisk <optional switches>

Optional switches are as follows:

disk_position 

Use the format e_d, where e is the enclosure number (1-10) and d is the disk number (0-9).

When the disk-position is not entered, getdisk returns an inclusive report on all disks, regardless of what switches are set. To obtain only the information specified by the optional switches, set the disk-position switch in the getdisk command.

-bind 

Percent of the disk that is bound.

-capacity 

Disk capacity in blocks.

-hr 

Total number of hard read errors for all the disk modules in the LUN that persisted through all the retries. A growing number of hard errors may mean that one or more of the LUN's disk modules is nearing the end of its useful life.

-hs 

Hot spare information (NO if not hot spare)

-hw 

Total number of hard write errors for all the disk modules in the LUN that persisted through all the retries. A growing number of hard errors may mean that one or more of the LUN's disk modules is nearing the end of its useful life.

-lun 

Possible values include: a hexadecimal number, Unbound for an enclosure disk not bound to a LUN, or Empty for an empty enclosure disk slot.

-private 

Private space of disk in blocks.

-product 

Product ID of the disk.

-rb 

What percent of the disk is rebuilt.

-read 

Total number of read requests made to the disk module. You might find the LUN read information in getlun more useful because it is for the entire LUN, and not just for one of the disk modules in the LUN.

-rr 

Number of read retries. Total number of times read and write requests to the disk module were retried.

-rs 

Number of remapped sectors. Total number of disk sectors that were faulty when written to, and thus were remapped to a different part of the disk module.

-state 

State of disk, as summarized in Table 6-6.

Table 6-6. Disk States (getdisk -state Output)

Disk State

Meaning

Binding

Being bound into a LUN.

Empty

Failed or removed before the agent started running.

Enabled

Either a hot spare on standby or part of a bound LUN that is assigned to (owned by) the SP you are using as the communication channel to the chassis. If the storage system has another SP, this module's status is Ready when you use the other SP as the communication channel to the chassis.

Equalizing

Data from a hot spare is being copied onto a replacement disk module.

Failed

Powered off or inaccessible.

Empty

Powered off by the SP, which can happen if a wrong size module is inserted.

Powering Up

Power is being applied to the disk module.

Ready

Module is part of a broken LUN or of a LUN that is bound and unassigned. This can mean that the disk module is part of a LUN that is not owned by the SP that you are using as the communication channel to the chassis. If the disk module is part of a LUN assigned to an SP other than the one you are using as the communication chassis, the module's status is either Enabled or Ready. It is Enabled when you use the other SP as the communication channel to the chassis.

Rebuilding

Module is either a hot spare or replacement disk module that replaced a failed module in a LUN. The data is being rebuilt on a hot spare or a replacement disk module.

Removed

Removed from the chassis; applies only to a disk module that is part of a LUN.

Hot Spare Ready

Module is either a hot spare or replacement disk module that replaced a failed module in a LUN. The data is being rebuilt on a hot spare or replacement disk module.

Unbound

Ready to be bound into a LUN.

Unformatted

Disk drive is not formatted and is thus unusable.


-serial 

Serial number of the disk.

-sig 

Bind signature (automatically assigned during bind).

-sr 

Total number of soft read errors for all the disk modules in the LUN that disappeared before all the retries. A growing number of soft errors may indicate that one of the LUN's disk modules is nearing the end of its useful life.

-sw 

Total number of soft write errors for all the disk modules in the LUN that disappeared before all the retries. A growing number of soft errors may indicate that one of the LUN's disk modules is nearing the end of its useful life.

-vendor 

Vendor ID of the disk.

-wr 

Number of write retries. Total number of times write requests to the disk module were retried.

-write 

Total number of write requests made to the disk module. You might find the LUN write information in getlun more useful because it is for the entire LUN, and not just for one of the disk modules in the LUN.

The following example returns information for disk 1 in disk array enclosure (FibreVault) 1 (DAE 1):

ssmcli -d sc2d0l0 getdisk 1_1 

Example output is as follows:

Enclosure 0 Disk 0
Vendor Id: <disk vendor name> 
Product Id: ST19171FC
Product Revision: CC46
Lun: 3
State: Ready
Hot Spare: NO
Prct Rebuilt: 0
Prct Bound: 0
Serial Number: LA142784
Capacity: 8429
Private: 184320
Bind Signature: 9337
Hard Read Errors: 0
Hard Write Errors 0
Soft Read Errors 0
Soft Write Errors 0
Read Retries 0
Write Retries 0
Remapped Sectors 0
Number of Reads 0
Number of Writes 0 

getlog

The getlog command returns the entire SP log, the newest entries to the log, or the oldest entries to the log. getlog is used with ssmcli as follows:

ssmcli getlog <optional switches>

Depending on the size of the unsolicited log, the getlog command may take several minutes to execute.

Optional switches are as follows:

+N 

Displays the oldest N entries in the log, with the oldest entry first. If there are fewer than N entries, the entire log is displayed. N must be greater than 0.

-N 

Displays the newest N entries in the log, with the oldest entry first. If there are fewer than N entries, the entire log is displayed. N must be greater than 0.

If a range of entries is not specified, the entire log is displayed, with the oldest entry first.

For example:

ssmcli -d sc2d0l0 getlog -5 

The following example output shows the most recent entries in the log, which show a CRU that has failed, been replaced, rebuilt, and become enabled.

02/10/98 12:43:01 SP B                  (6e5) (FE Fibre loop operational) [0x00]     0    0
02/10/98 12:43:19 SP B                  (6e4) (FE Fibre loop down) [0x03]            0    0
02/10/98 12:43:19 SP B                  (6e5) (FE Fibre loop operational) [0x00]     0    0
02/10/98 12:43:20 Enclosure 0 Disk 2    (938) (Non R3 LUN-Can't Assign BW) [0x01]    0    0
02/10/98 12:43:20 Enclosure 0 Disk 0    (938) (Non R3 LUN-Can't Assign BW) [0x03]    0    0 

getloop

The getloop command returns information about the fiber loop. getloop is used with ssmcli as follows:

ssmcli getloop

For example:

ssmcli -d sc2d0l0 getloop 

Example output is as follows:

Needs Discovery: NO
Data Loop Failover: NO
Command Loop Failover: NO
Can Peer SP Failover: YES
Manual Discovery Enabled: NO
Can This SP Failover: NO
Illegal Cross Loop: NO
Connection #0: Enclosure 0

getlun

The getlun command returns information about a LUN and the CRUs that make up that LUN. If statistics logging is disabled, some fields are not printed. Other switches must be used in conjunction with the -disk switch. getlun is used with ssmcli as follows:

ssmcli getlun lun-number <optional switches>

where lun-number is the number of the LUN about which to get information. This switch is mandatory.

All other switches are optional:

-aa 

Auto assign is enabled or disabled.

-at 

Auto-trespass is enabled or disabled.

-bind 

Percent of the LUN that is bound.

-bp 

Number of blocks prefetched by read cache. This field is not printed if statistics logging is disabled.

-bread  

Number of blocks read for each CRU. This switch must be used in conjunction with the -disk switch.

-brw 

Number of host block read and write requests. This field is not printed if statistics logging is disabled.

-busy  

Percentage of time that the disk is busy. This switch must be used in conjunction with the -disk switch.

-bwrite  

Number of blocks written for each CRU. This switch must be used in conjunction with the -disk switch.

-capacity 

LUN capacity in MB.

-crus 

Names and states of disks in this LUN.

-default 

SP is or is not the default owner of the LUN.

-disk 

Disk statistics for the LUN. Disk statistics switches are only valid when the -disk switch is included.

-element 

Stripe size (in blocks). Number of sectors that the storage system can read or write to a single disk module in the LUN. This size was specified when the LUN was bound. Stripe element size does not apply to a RAID 1 LUN, individual unit, or hot spare.

-ena  

Disk is enabled or disabled. This switch must be used in conjunction with the -disk switch.

-ff 

Number of times that a write had to flush a page to make room in the cache. This field is not printed if statistics logging is disabled.

-idle  

Percentage of time that the LUN is idle. This switch must be used in conjunction with the -disk switch.

-idt 

Idle delay time for caching (in 100-ms intervals).

-it 

Idle threshold value for caching.

-mp 

For variable length prefetching, gets the absolute maximum number of disk blocks to prefetch in response to a read request.

-nminus  

Gets whether minimal latency reads is or is not supported. This field is not printed if statistics logging is disabled.

-owner 

Which SP currently owns the LUN, SPA or SPB.

-pd min_size_disable 


Gets the prefetch disable, which is the size in blocks of the smallest read request for which prefetching is disabled. Prefetching is disabled for all read requests whose size is equal or larger than the Prefetch Disable size.

-pic 

Maximum number of I/Os that can be outstanding to the unit and have the unit still perform prefetching.

-prb 

Percentage of the LUN that is rebuilt.

-prefetch 

Type of prefetching that the LUN is using for read caching.

-prf 

Percentage of read requests that caused a flush.

-ps 

Prefetch size.

-psm 

Prefetch size/multiplier. The amount of data prefetched for one host read request. For constant length prefetching, gets the read request in blocks. For variable length prefetching, gets the multiplier used to calculate the amount of data to prefetch. For example, if the prefetch size is 8, the amount of data to prefetch is 8 times the amount of data requested.

-qavg  

Average queue depth for each CRU. This switch must be used in conjunction with the -disk switch.

-qmax  

Maximum queue depth for each CRU. This switch must be used in conjunction with the -disk switch.

-rb 

Maximum number of hours to rebuild failed disk.

-rc 

LUN's read cache state (enabled or disabled).

-rchm  

Read and write cache hits and misses. This field is not printed if statistics logging is disabled.

-reads  

Number of reads received for each CRU. This switch must be used in conjunction with the -disk switch.

-remap  

Number of remapped sectors. This switch must be used in conjunction with the -disk switch.

-ret 

Retention priority for retaining prefetched data when the read cache becomes full. If the priority is Equal Priority, prefetched data has priority over host-requested data. If it is Equal, both types of data have the same priority.

-rh 

Gets read-hit information if statistics logging is enabled. This field is not printed if statistics logging is disabled.

-rhist  

Read histogram, which is an array of 10 locations that contain the number of reads. Element n of the array contains the number of reads that were larger than or equal to 2n-1 and less than 2n blocks in size. For example, the first bucket contains 1 block reads, the second contains 2-3, the third 4-7 and so on. -rhist also displays read-histogram overflows, which are the number of I/O operations that were larger than 512 blocks. This field is not printed if statistics logging is disabled.

-rr  

Total number of times read requests to all the disk modules in the LUN were retried. This switch must be used in conjunction with the -disk switch.

-rwf 

Percent of write requests that caused a flush.

-rwr 

Host read and write requests. This field is not printed if statistics logging is disabled.

-service  

Average service time for each CRU. This switch must be used in conjunction with the -disk switch.

-srcp 

Read cache configuration.

-ss 

Segment size.

-ssm 

Prefetch segment size/multiplier, the size of the segments that make up a prefetch operation. For constant length prefetching, -ssm gets the segment size (in blocks) of data prefetched in one read operation from the LUN. For variable length prefetching, -ssm gets the multiplier which determines the amount of data, relative to the amount of requested data, prefetched in one read operation. For example, if the segment multiplier is 4, the segment size is 4 times the amount of data requested.

-stripe 

How many times an I/O crossed a stripe boundary on a RAID 5, RAID 0, or RAID 1/0 LUN.

-type 

RAID type of the LUN as follows:

  • RAID5: individual access array

  • RAID3: parallel access array

  • RAID1: mirrored pair

  • RAID1/0: mirrored RAID 0 group

  • RAID0: nonredundant individual access array

  • Disk: individual unit

  • Hot Spare: hot spare

-upb 

Number of prefetched blocks not used by the read cache. This field is not printed if statistics logging is disabled.

-verify  

Maximum verify time in hours. This field is not printed if statistics logging is disabled.

-was 

Minimum block size request that bypasses cache.

-wc 

LUN's write cache state (enabled or disabled).

-wch 

Number of times that a write was completely satisfied by the cache, avoiding a disk operation. This field is not printed if statistics logging is disabled.

-wh 

Write hit information, if statistics logging is enabled. This field is not printed if statistics logging is disabled.

-whist  

Write histogram, which is an array of 10 locations that contain the number of writes. Element n of the array contains the number of writes that were larger than or equal to 2n-1 and less than 2n blocks in size. For example, the first bucket contains 1 block writes, the second contains 2 to 3 block writes, the third 4 to 7 block writes, and so on. -whist also displays the write histogram overflows, which are the number of I/O that were larger than 512 blocks. This field is not printed if statistics logging is disabled.

-wr  

Total number of times write requests to all the disk modules in the LUN were retried. This switch must be used in conjunction with the -disk switch.

-writes  

Number of writes received for each CRU. This switch must be used in conjunction with the -disk switch.

The following example retrieves information about LUN 0:

ssmcli -d sc2d0l0 getlun 0 

Example output is as follows:

Prefetch size (blocks) = 4
Prefetch multiplier = 4
Segment size (blocks) = 4
Segment multiplier = 4
Maximum prefetch (blocks) = 512
Prefetch Disable Size (blocks) = 129
Prefetch count = 40

Variable length prefetching YES

Prefetched data retained YES

Max Verify Time  Hours
Read Histogram[0] 0
Read Histogram[1] 0
Read Histogram[2] 0
Read Histogram[3] 0
Read Histogram[4] 0
Read Histogram[5] 0
Read Histogram[6] 0
Read Histogram[7] 0
Read Histogram[8] 0
Read Histogram[9] 0
Read Histogram overflows 0

Write Histogram[0] 0
Write Histogram[1] 0
Write Histogram[2] 0
Write Histogram[3] 0
Write Histogram[4] 0
Write Histogram[5] 0
Write Histogram[6] 0
Write Histogram[7] 0
Write Histogram[8] 0
Write Histogram[9] 0
Write Histogram overflows 0

Read Requests 0
Write Requests 0
Blocks read 0
Blocks written 0
Read cache hits 0
Prefetched blocks 0
Unused prefetched blocks 0
Write cache hits 0
Forced flushes 0
Read Hit Ratio 0
Write Hit Ratio 0

RAID Type: Disk
Stripe Crossing: 0
Current owner: 
Auto-trespass: DISABLED
Auto-assign: DISABLED
Write cache: ENABLED
Read cache: ENABLED
Idle Threshold: 0
Idle Delay Time: 20
Write Aside Size: 2048
Default Owner: SPB
Rebuild Time: 0
Read Hit Ratio: 0
Write Hit Ratio: 0
Prct Reads Forced Flushed: 0
Prct Writes Forced Flushed: 0
Prct Rebuilt: 0
Prct Bound: 0
Lun Capacity: 8429
Enclosure 0 Disk 3
Ready
Reads: 0
Writes: 0
Blocks Read: 0
Blocks Written: 0
Queue Max: 0
Queue Ave:0
Avg Service Time: 0
Prct Idle Not Available
Prct Busy Not Available
Remapped Sectors: 0
Read Retries: 0
Write Retries: 0 

getsniffer

The getsniffer command fetches and displays background verify and sniff reports. For an explanation of this software, see “ssmgui Architecture” in Chapter 1.

getsniffer is used with ssmcli as follows:

ssmcli getsniffer lun-number <optional switches>

The following example displays background verify and sniff information for LUN 1.

ssmcli -d sc2d0l0 getsniffer 1

Optional switches are as follows:

-nonv 

Displays historical totals of all nonvolatile recovery verifies.

-curr 

Displays the currently running full-unit verify.

-rec 

Displays the most recently completed full-unit verify.

-alltot 

Displays historical totals of all full-unit verifies.

Example output is as follows:

VERIFY RESULTS FOR UNIT 1

                  Sniffing state:                 ENABLED
                  Sniffing rate(100 ms/IO):       4
                  Background verify time(hours):  0

                  Historical Total of all Non-Volatile Recovery Verifies(0 passes)
                  ----------------------------------------------------------------
                                      Corrected  Uncorrectable
                  Checksum errors         0       0
                  Write Stamp errors      0       0
                  Time Stamp errors       0       0
                  Shed Stamp errors       0       0
                  Coherency errors        0       0

                  Currently Running Full Unit Verify
                  ----------------------------------------------------------------
                  Verify State:           Sniff Running
                  Percent Complete:       0
                                      Corrected  Uncorrectable

     Page 35                                          (printed 4/9/98)

     ssmcli(7)                 UNIX System V                 ssmcli(7)

                  Checksum errors         0       0
                  Write Stamp errors      0       0
                  Time Stamp errors       0       0
                  Shed Stamp errors       0       0
                  Coherency errors        0       0

                  Most Recently Completed Full Unit Verify
                  ----------------------------------------------------------------
                                      Corrected  Uncorrectable
                  Checksum errors         0       0
                  Write Stamp errors      0       0
                  Time Stamp errors       0       0
                  Shed Stamp errors       0       0
                  Coherency errors        0       0

                  Historical Total of All Full Unit Verifies(0 passes)
----------------------------------------------------------------
                                      Corrected  Uncorrectable
                  Checksum errors         0       0
                  Write Stamp errors      0       0
                  Time Stamp errors       0       0
                  Shed Stamp errors       0       0
                  Coherency errors        0       0 

r3wrbuff

The r3wrbuff command sets the state of RAID 3 write buffering. If there are no parameters, the command returns the current status of RAID 3 write buffering. r3wrbuff is used with ssmcli as follows:

ssmcli r3wrbuff [-on] [-off]

where -on enables RAID 3 write buffering and -off disables RAID 3 write buffering.

For example:

ssmcli -d sc2d0l0 r3wrbuff -on 

Example output is as follows:

RAID 3 write buffering ENABLED.

When RAID 3 write buffering is enabled, the I/O has not been written to the media. Therefore, if a power cycle, SP failure, or other fatal error occurs, there is no guarantee that the last I/O is written to disk.

rebootSP

The rebootSP command reboots one or both of the storage processors in the system. If no switches are specified, the current SP is rebooted. rebootSP is used with ssmcli as follows:

ssmcli rebootSP <optional switches>

Optional switches are as follows:

-both 

Specifies both SPs.

-o 

Suppresses the prompt that asks the user for permission.

For example:

ssmcli -d sc2d0l0 rebootSP -both 

This subcommand has no output.

setcache

The setcache command changes system caching on the RAID SP. Using setcache with its various switches, you can enable, disable, and configure the cache. Read cache and write cache size switches do not work if that cache is enabled. setcache is used with ssmcli as follows:

ssmcli setcache <optional switches>

Optional switches are as follows:

-h hi-watermark
 

Write cache high watermark. The percentage of dirty pages, which, when reached, causes the SP to begin flushing the cache. The default is 100%. A lower value causes the SP to start flushing the cache sooner. The high watermark cannot be less than the low watermark. Watermark processing is turned off when both the low and high watermark values are 100.

-l low-watermark
 

Write cache low watermark. The percentage of cache dirty pages that determines when cache flushing stops. When the write cache low watermark is reached during a flush operation, the SP stops flushing the cache. The default value is 50%. The low watermark cannot be greater than the high watermark. Watermark processing is turned off when both the low and high watermark values are 100.

-m mirror 

Enable or disable mirroring. A setting of 1 enables mirroring (the default). For the 5400 model series, a setting of 0, which disables mirroring, is not supported and an error message is reported.

-p page-size 

Size (in KB) of pages into which to partition the cache. Valid sizes are 2 (the default), 4, 8, and 16. Page size is set to 2 regardless of enable/disable state. Generally, cache page size should be 8 KB for general IRIX file server applications, and 2 KB or 4 KB for database applications. This switch does not work if read or write cache is enabled.

-r3a raid3-size-spa
 

Optimized RAID 3 size for SP A. For RAID 3 LUNs to be accessible, the minimum value is 2 MB.

-r3b raid3-size-spb 


Sets the optimized RAID 3 size for SP B. For RAID 3 LUNs to be accessible, the minimum value is 2 MB.

-rsza read-cache-size-spa 


Sets read cache size for SP A.

-rszb read-cache-size-spb  


Sets read cache size for SP B.

-rca read-cache-spa  


Sets the read cache state for SP A. A setting of 1 enables read cache; a setting of 0 disables.

-rcb read-cache-spb  


Sets read cache state for SP B. A setting of 1 enables; a setting of 0 disables.

-wc write-cache 


Sets write cache state. A setting of 1 enables write cache; a setting of 0 disables.

-wsza write-cache-size-spa  


Sets write cache size for SP A. Write cache on each SP must be equal. If you set the size for one SP, the software automatically sets the size in the other SP to match. Write caching requires two SPs with equal amounts of memory.

-wszb write -cache-size-spb 


Sets write cache size for SP B; see the explanation of -wsza write-cache-size-spa.

Note the following:

  • Write caching requires two SPs with equal amounts of memory.

  • The sum of an SP's write cache size and optimized RAID 3 memory size must be less than or equal to the SP's front-end size.

  • The sum of an SP's read cache size and optimized RAID 3 memory size must be less than or equal to the SP's back-end size.

  • RAID 3 memory must be the same size in the front and back ends.

This example enables the system write cache, partitioned into 8-KB pages, with a 50% low-watermark value and a 75% high-watermark value:

ssmcli -d sc2d0l0 setcache -wc 1 -p 8 -l 50 -h 75

This subcommand has no output.

setraid5

The setraid5 command sets the state of mixed mode. You must enable or disable mixed mode for the LUNs in an array, depending on their type; see Table 6-7.

Table 6-7. Mixed Mode

Mixed Mode State

RAID 5, 1, 1/0, 0

RAID 3 and Hot Spares

Enabled

These LUNs can be bound and accessed.

These LUNs can be bound and accessed.

Disabled (default)

These LUNs can be bound, but not accessed until mixed mode is enabled.

These LUNs can be bound and accessed; RAID 3 operation is optimized.

Note the following:

  • Mixed mode is disabled by default, which optimizes performance for the array's RAID 3 transfers. With mixed mode disabled, you can bind other RAID types, but you cannot access them.

  • If you are binding or accessing RAID 5, 1, 1/0, or 0 LUNs, enable mixed mode.

  • If RAID 5, 1, 1/0, 0 LUNs are bound when mixed mode is disabled, they are unowned; if you then enable mixed mode, they become owned.

  • If mixed mode is enabled, disabling it reboots the array's SPs and restarts the LIC. Before beginning this process, make sure no users are conducting I/O with any filesystems or partitions on the array.

  • RAID 3 and hot spares work whether mixed mode is enabled or disabled, but RAID 3 is optimized if it is disabled.

If there are no parameters, the command returns the current status of mixed mode. This command is used with ssmcli as follows:

ssmcli setraid5 [-on] [-off]

where -on enables mixed mode and -off disables mixed mode.


Caution: Disabling or enabling mixed mode (ssmcli setraid5 -off) reboots the array's SPs and restarts the LIC. Before beginning this process, make sure no users are conducting I/O with any filesystems or partitions on the array.

For example:

ssmcli -d sc2d0l0 setraid5 -on 

Example output is as follows:

This operation will cause a storage subsystem reboot.
DO YOU WISH TO CONTINUE?   [n]   yes
Mixed mode RAID 5 is ENABLED.

setsniffer

The setsniffer command resets sniffer and background verify parameters. For an explanation of this software, see “ssmgui Architecture” in Chapter 1. setsniffer is used with ssmcli as follows:

ssmcli getsniffer lun-number 0|1 <optional switches>

where 0 disables sniffing and 1 enables sniffing.

Optional switches are as follows:

-bv 

STarts a background verify.

-cr 

Clears the background verify reports.

-snrate rate 

Specifies a sniff rate in units of 100 ms. This setting controls the rate at which sniffs are executed. Valid values are 1 through 254; the default is 30.

The following example sets sniffing on LUN 0 and starts a background verify.

ssmcli -d sc2d0l0 setsniffer 0 1 -bv

setstats

The setstats command sets statistics logging. If no optional switches are present, the command returns the current state of statistics logging.

The SP maintains a log of statistics for the LUNs, disk modules, and storage system caching that you can turn on and off. When the log is on it affects storage system performance, so you may want to leave it off unless you have a reason to monitor performance.

The log uses a 32-bit counter to maintain the statistics numbers, so when the counter is full, the statistics numbers start over at zero. As a result, you will see a sudden decrease in a statistics number if you view it shortly before the counter is full and shortly after the counter restarts at zero. If you want to keep the log turned on for more than two weeks, we recommend that you reset the log about every two weeks, so you know when the numbers start at zero.

setstats is used with ssmcli as follows:

ssmcli setstats <optional switches>

where -on sets statistics logging on and -off sets statistics logging off.


Note: If statistics logging is off, certain options in other subcommands are disabled (such as for getlun). The switch descriptions for the other subcommands specify whether statistics logging must be on for their switches to be valid.

For example:

ssmcli -d sc2d0l0 setstats -on 

Example output is as follows:

Statistics logging is enabled.

trespass

This command sets the LUN's trespass value. trespass is used with ssmcli as follows:

ssmcli trespass [mine|lun|all] lun-number

where

mine 

Performs whatever trespassing is necessary to take all of the LUNs that have this SP as a default owner.

lun 

Specifies trespass on one LUN (specified by the lun-number).

all 

Specifies trespass on all LUNs in the system.

The lun-number specifies the single LUN on which to trespass.

For example:

ssmcli -d sc2d0l0 trespass lun 2

This subcommand has no output.

unbind

The unbind command deconfigures LUNs from their current logical configuration. unbind destroys all data on the LUN. Therefore, when you execute an unbind command, you are prompted to verify that you really want to unbind the LUN. If you do not want the prompt to appear, you can override prompting with the -o switch.


Caution: Unbinding a LUN destroys any data on it. Observe these precautions:


  • Back up any data you want to retain from the LUN before beginning the unbind procedure.

  • Unbind only one LUN at a time.

  • Never unbind the last bound LUN in a storage system. Unbinding the last LUN may prevent you from accessing the storage system.

  • Never reboot a server unless at least one LUN is bound. If you unbind all of the LUNs and lose access to the storage system, refer to the release notice for the ssmagent for recovery procedures.

unbind is used with ssmcli as follows:

ssmcli unbind lun-number <-o>

where lun-number is the logical unit to deconfigure. The optional switch -o turns off the prompt that asks the user for permission.

This example destroys (deconfigures) LUN 3 without prompting for permission, and frees its physical disks to be reconfigured:

ssmcli -d sc2d0l0 unbind 3 -o 

This subcommand has no output.

ssmcli Error Values

The ssmcli command returns the error values summarized in Table 6-8.

Table 6-8. ssmcli Error Values

Value

Description

0

No error

1

Invalid command-line parameters (switches)

2

Too few parameters

3

Too many parameters

4

Invalid bind type

5

Invalid LUN number

6

Invalid rebuild time

7

Disk names for RAID 1/0 must have an even number of arguments

8

Invalid number of disks in bind command

9

Valid disk names are of format a0, b1, ... e3, and so on

10

An enclosure containing one or more of the disks is not present

11

Disk already bound or binding

12

Invalid stripe size

13

Invalid disk name

14

Invalid cache flags

15

Invalid default owner

16

Incorrect number of chglun parameters

17

Unable to determine name of target host machine

18

Enable-disable flag invalid

19

Invalid usable cache size

20

Invalid page size

21

Invalid watermark value

22

Hi-watermark less than lo-watermark

23

No device name listed on command line

24

Invalid idle threshold

25

Invalid idle delay

26

Invalid write aside size

27

Disks must be on separate buses for bind

28

The agent was unable to configure any devices

29

LUN does not exist

30

LUN already exists

31

Cannot get current working directory for firmware command

32

Illegal position for hot spare

33

Invalid read cache value

34

Invalid read cache size

35

Invalid write cache value

36

Invalid write cache size

37

Invalid RAID3 cache size

38

Cannot access device

39

Switch not supported

40

Command is not supported

41

Unknown error

50

Agent: Memory allocation error

51

Agent: Invalid device name

52

Agent: Host connection not found

53

Agent: SP not found

54

Agent: Invalid SP suffix

55

Agent: Invalid LUN number

56

Agent: Invalid page size

57

Agent: Invalid command-line switch

58

Agent: Error bind command

59

Agent: Error chglun command

60

Agent: Error unbind command

61

Agent - Error firmware command

62

Agent: Error trespass command

63

Agent: Error rebootSP command

64

Agent: Generic error

65

Agent: Unknown error