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:
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.
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).
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 | > |
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.
This section explains all ssmcli subcommands. Table 6-1 summarizes the subcommands.
Table 6-1. ssmcli Subcommand Summary
Subcommand | Page | |
---|---|---|
bind | Binds (groups) physical disks into RAID types | |
chglun | Changes parameters for a currently bound group | |
clearlog | Destroys the contents of the SP error log and resets its counters to zero | |
clearstats | Resets statistics logging on the SP, setting all log counters to 0 | |
failback | Returns control of the fibre loop to the specified SP | |
getagent | Gets names and descriptions of devices controlled by the destination API | |
getcache | Gets information about the storage-system caching environment | |
getcontrol | Gets information about the SP configuration | |
getcrus | Displays status information on all system components, such as the fan module, SPS, and so on | |
getdisk | Displays status information on disk modules in the system | |
getlog | Displays the SP log, in which errors are stored, or displays the oldest or newest entries | |
getloop | Returns information about the fibre loop. | |
getlun | Displays information about a disk group | |
getsniffer | Displays background and sniff information for a LUN | |
r3wrbuff | Sets RAID 3 write buffering | |
rebootSP | Reboots one or both SPs in the system | |
setcache | Changes information about the FC RAID controller's caching environment | |
setraid5 | Sets the state of mixed-mode RAID 5 | |
setsniffer | Sets sniffer and background verify parameters | |
setstats | Set statistics logging or returns its state | |
trespass | Sets the trespass value of a LUN | |
unbind | 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. |
The bind command groups physical disks into logical RAID types (levels). This section contains the following topics:
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:
| |
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:
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
| |||||||||||||||||||||||||
-n min_latency_read |
| |||||||||||||||||||||||||
-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.
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 |
| |||||||||||||||||||||||||
-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 | 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, |
Individual | Required | Not required | Not required | No | Read, write, |
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.
For greatest flexibility, bind LUNs in the following order in the array:
RAID 1/0
RAID 5, RAID 3, and RAID 0
RAID 1
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. |
3 minimum | 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. | |
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. | |
2 |
| |
Even number: | Disk modules are paired into mirrored images in the order in which you select them: see Figure 6-1 on page 149. | |
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. |
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.
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).
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
| |||
-c cache-flags | See the description of this parameter on page 144 in “bind.” | |||
-d default-owner |
| |||
-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 |
| |||
-n min_latency_reads |
| |||
-pf prefetch_type |
| |||
-pm prefetch_size/mult |
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 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.”
| |||
-rt retain_prefetch_data |
| |||
-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.
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. |
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. |
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.
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:
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 |
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:
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. |
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:
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. |
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:
| |||||||||||
-spb | Gets state information on SP B. See the description of -spa. | |||||||||||
-spsa | ||||||||||||
-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.
|
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 |
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)
| |||||||||||||||||||||||||||||
-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 |
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 |
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 |
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 | ||
-at | ||
-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 | ||
-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 |
| |
-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:
| |
-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 |
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 |
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.
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.
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 |
| |
-rsza read-cache-size-spa |
| |
-rszb read-cache-size-spb |
| |
-rca read-cache-spa |
| |
-rcb read-cache-spb |
| |
-wc write-cache |
| |
-wsza write-cache-size-spa |
| |
-wszb write -cache-size-spb |
|
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.
![]() | Note: See also “Hardware Requirements for Caching” and “Hardware Requirements for RAID 3 LUNs” in Chapter 2. |
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.
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.
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. |
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 |
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. |
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.
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.
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 |