Chapter 7. The Fibre Channel Non-RAID Command-Line Interface

The fibre channel non-RAID (JBOD) command-line interface, fccli, is an interface to the SP (storage processor) in a FibreVault enclosure that contains non-RAID disks. The fccli program communicates directly with the JBOD agent fcagent. This software is the only way to communicate with JBOD storage; a graphical user interface is provided only for RAID storage. This CLI is accessible using a serial-port terminal, or remote login.


Note: For communication with RAID storage, use the graphical user interface explained in other chapters in this guide or the command-line interface explained in Chapter 6, “The Fibre Channel RAID Command-Line Interface.”

This chapter is organized as follows:

The Agent fcagent

The fccli works directly with the fibre channel agent fcagent. The fcagent must be running before fccli commands are accepted and executed by the fibre channel host system. To start the fcagent, follow these steps:

  1. Make sure that the host system on which the agent is to run has the correct date and time.

  2. Enter

    chkconfig fcagent on 
    

    to turn on the fcagent flag.

  3. Launch the agent by entering

    /etc/init.d/fcagent start 
    

Stop the agent by entering

/etc/init.d/fcagent stop

fccli Subcommands and Syntax

Table 7-1 summarizes fccli subcommands.

Table 7-1. fccli Subcommands

Subcommand

Use

GETVERSION

Gets version number of fcagent on a particular host system

GETSTATUS

Gets channel and enclosure status

REMOVE

Takes a non-RAID drive offline

INSERT

Brings a drive online

LEDON

Turns disk module check LED on

LEDOFF

Turns disk module check LED off

BYPASS

Causes the host to bypass JBOD disk(s) in a specific enclosure on a specific channel

UNBYPASS

Brings bypassed disks back online

Command syntax is as follows:

fccli SUBCOMMAND [-h hostname] [parameters]

where

SUBCOMMAND  


Subcommand as listed in Table 7-1 and explained in this chapter.

-h hostname 

Specifies hostname of target host, for when user is logged in remotely.

parameters 

Possible parameters are as follows:

  • -c channelid: specifies ID of a specific channel

    All subcommands except GETVERSION can take this parameter.

  • -e enclosureid: specifies ID of a specific enclosure

    Only the subcommand GETSTATUS can take this parameter.

  • -t tid1 [tid2 ... [tidn]: specifies ID(s) of target drives

    All subcommands except GETVERSION and GETSTATUS can take this parameter.

For more information on fccli, see its man page fccli(1M).

Determining the fcagent Version Number

You can obtain the version number of the fcagent that is running on a particular host system in two ways:

  • Get the version information remotely.

  • Get the version information directly from the host system's terminal interface.

If you are remotely logged into the host, enter

fccli GETVERSION -h hostname 

To get the revision information directly from the host system running fcagent, enter

fccli GETVERSION 

A sample output follows:

FC JBOD Agent version 1.1, Wed Mar 12 08:04:26 PST 1997.

In this example, the agent is identified as a JBOD, or non-RAID, agent version.

Getting Channel and Enclosure Status

To get a general channel and enclosure status for all the fibre channel devices on a host system, enter

fccli GETSTATUS 

If you are remotely logged into the host, enter

fccli GETSTATUS -h hostname 

Output looks like the following:

CHANNEL| DRIVES   POWER     FANS      PEER LCCS
-------+-----------------------------------------
01     | OK       FAIL       OK        OK
02     | OK        OK        OK        OK
03     | OK        OK        OK        OK
04     | OK        OK        OK        OK
05     | OK        OK        OK        OK
06     | OK        OK        OK        OK

In channel 01 in the sample output, a power error is shown. Because the drives, fans, and link control cards (LCCs) show OK in the GETSTATUS output example, you can conclude that there is probably trouble with one of the two power supplies in the enclosure.


Note: In this example, channel 01 controls three enclosures. Each fibre channel site can have different configurations installed, and a single channel can control up to 11 (non-RAID) enclosures within the same rack. (The Fibre Channel Hub is transparent to fccli.)

To determine more about the power failure in the enclosure controlled by fibre channel 01, specify the channel:

fccli GETSTATUS -c 01 

This command causes the fcagent to output a more detailed screen display showing the status of the enclosure(s) controlled by channel 01. The following example output shows that a power supply has failed:

ENCLOSURE | DRIVES    POWER     FANS      PEER LCC  
----------+-----------------------------------------
      4   |   OK       FAIL      OK         OK 
      5   |   OK       FAIL      OK         OK 
     11   |   OK       FAIL      OK         OK 

Always physically inspect the power supply before ordering a new part. The GETSTATUS command reports an unplugged power supply or a power supply with its breaker set at 0 (off), as a “failed” power supply.

If you try to obtain status on a channel that does not exist on the host, the fcagent reports an error; for example:

# fccli GETSTATUS -c 4
Channel 4 does not exist on `localhost'.

For an enhanced output of information or to specify one particular enclosure supported by a particular channel, specify the enclosure as well as the channel with the -c and -e arguments to GETSTATUS. The following example requests information for channel 01 and enclosure 01:

fccli GETSTATUS -c 01 -e 01

Figure 7-1 shows example output.

Figure 7-1. Output for GETSTATUS With -c and -e Parameters


If you select a nonexistent or offline enclosure with a GETSTATUS inquiry, the fcagent reports an error similar to the following:

fccli GETSTATUS -c 1 -e 0
Enclosure 0 does not exist on channel 1 on host `localhost'.

Taking JBOD Drives Offline

To remove a non-RAID fibre channel disk module from an operating enclosure use the fccli REMOVE command:

fccli REMOVE -c channelid -t tid1 [tid2 ... [tidn]


Note: You must use the -c (channel designator argument) and -t (target drive argument) with the command in order to properly spin down the target disk module.

In the following example, the tenth disk module on channel 01 is spun down and taken out of the fibre channel operational loop.

fccli REMOVE -c 1 -t 10

The fccli REMOVE command does not confirm that the disk module has been taken offline. Use a GETSTATUS inquiry such as fccli GETSTATUS -c 1 or physically inspect the number 10 drive (and see the amber LED) to confirm that it is offline or bypassed (BP). The GETSTATUS shows something similar to:

+---------------------------------------+------+
| [1] FAIL                              |      | 
+---------------------------------------+      | 
|   |   |   |   |   |   |   |   |   |   | P    | 
| O | O | O | O | O | O | O | O | O | B | E  L | 
| K | K | K | K | K | K | K | K | K | P | E  L | 
| 10| 11| 12| 13| 14| 15| 16| 17| 18| 19| R  C | 
+---------------------------------------+      | 
|               FANS  OK                |  OK  | 
|      PS0 FAIL           PS1  OK       |      | 
+---------------------------------------+------+ 

The targeted disk module shows BP instead of OK and can now be physically removed from the enclosure.

If you use fccli REMOVE to remove a disk module on a channel that does not exist, you receive an error message similar to the following:

fccli REMOVE -c 1 -t 11 
Drive 11 does not exist on channel 1 on host `localhost'. 

In this case, channel 01 controls only one enclosure with a total of ten disk modules. The targeted disk module (drive 11) does not exist and cannot be taken offline.

Bringing Up a Replacement Drive

After you install a new disk module, you must alert the host system to spin up the disk module and bring it online. This spin-up process uses the INSERT subcommand and requires the proper channel (-c) and targeted disk (-t):

fccli INSERT -c channelid -t tid


Note: During the replacement process, quiesce the loop's activity. Advise all users to unmount filesystems and stop running applications until the process is complete.

The following example spins up a replacement disk module at slot 10 on channel 1 and brings it back online.

fccli INSERT -c 1 -t 10

If you enter an invalid channel, enclosure, or drive number when bringing a new or replacement drive online, fcagent returns an error message.

Turning Disk Check LEDs On or Off

Each disk module slot in a FibreVault has two LEDs directly above it. The LED closest to the disk drive is a green activity LED, which lights during normal drive operations. The amber LED, farther from the drive, lights when there is a problem with the drive or when the drive is offline or missing. This amber LED can also be turned on using the LEDON subcommand with fccli with the proper arguments.

You may wish to turn on the LED of a particular drive to confirm the identity of a channel, enclosure, or a particular drive. Doing so can be especially helpful in systems with many cables, enclosures, and drives. Proper cable and enclosure labeling should greatly reduce this type of identification problem.

Use LEDON as follows:

fccli LEDON -c channelid -t tid1 [tid2 ... [tidn]

The following example turns on the check LEDs for disk 3 and 5 in enclosure 1 on channel 12.

fccli LEDON -c 12 -t 13 -t 15

Figure 7-2 shows output for this example.

Figure 7-2. LEDON Example Output


The amber LEDs above disk drives 3 and 5 in enclosure 1 light up and stay lit until you turn them off with the LEDOFF subcommand.

Note in the sample output for LEDON that there is an asterisk above positions 13 and 15. The asterisk indicates that the amber LED has been turned on for enclosure 1, drive 3 and enclosure 1, drive 5.

To turn the LED off again, use LEDOFF:

fccli LEDOFF -c channelid -t tid1 [tid2 ... [tidn]

The following example turns off the amber check LED on the disk modules from the previous example.

fccli LEDOFF -c 12 -t 13 -t 15


Note: The LEDOFF subcommand is not intended for turning off a check LED on a drive that is experiencing an actual failure.


Bypassing a JBOD Drive

You can cause the host to bypass one or more disks in a specific enclosure on a specific channel by using the BYPASS subcommand with the -c and -e arguments:

fccli BYPASS -c channelid -t tid1 [tid2 ... [tidn]


Note: When you use BYPASS to take a drive offline, you cut off all I/O access. Before implementing the command, make sure that this action does not affect local or remote users.

In the example in Figure 7-3, five of the ten drives in enclosure 4 on channel 1 are taken offline.

Figure 7-3. BYPASS Example


The fcagent always reports the bypassing of a drive(s) to /var/adm/SYSLOG. If you checked the SYSLOG immediately after the last command was issued, you would see something similar to the following:

system1 15# view /var/adm/SYSLOG
May  7 17:49:10 5D:system1 fcagent[427]: FRU reconfiguration: DISK #5 in enclosure 4 on channel 01: OK --> BYPASSED
May  7 17:49:10 5D:system1 fcagent[427]: FRU reconfiguration: DISK #6 in enclosure 4 on channel 01: OK --> BYPASSED
May  7 17:49:11 5D:system1 fcagent[427]: FRU reconfiguration: DISK #7 in enclosure 4 on channel 01: OK --> BYPASSED
May  7 17:49:11 5D:system1 fcagent[427]: FRU reconfiguration: DISK #8 in enclosure 4 on channel 01: OK --> BYPASSED
May  7 17:49:11 5D:system1 fcagent[427]: FRU reconfiguration: DISK #9 in enclosure 4 on channel 01: OK --> BYPASSED

Bringing JBOD Drives Back Online (Unbypassing)

To bring bypassed drives back online, have the host “unbypass” the disks in an enclosure that have been bypassed:

fccli UNBYPASS -c channelid -t tid1 [tid2 ... [tidn]


Note: When you use UNBYPASS to bring drives back online, the host has almost immediate access. Be sure this does not affect local or remote users before implementing the order.

For example, if five of the ten drives in enclosure 4 on channel 1 were offline, you would use the following commands to unbypass the drives and bring them back online and show the status after that operation. Figure 7-4 shows the commands and output.

Figure 7-4. UNBYPASS Example


As with the BYPASS command, the fcagent reports the unbypassing of a drive(s) to /var/adm/SYSLOG. If you checked the SYSLOG immediately after the last command was issued, you would see something similar to the following:

system1 15# view /var/adm/SYSLOG
May  7 17:59:10 5D:system1 fcagent[427]: FRU reconfiguration: DISK #5 in enclosure 4 on channel 01: OK --> UNBYPASSED
May  7 17:59:10 5D:system1 fcagent[427]: FRU reconfiguration: DISK #6 in enclosure 4 on channel 01: OK --> UNBYPASSED
May  7 17:59:11 5D:system1 fcagent[427]: FRU reconfiguration: DISK #7 in enclosure 4 on channel 01: OK --> UNBYPASSED
May  7 17:59:11 5D:system1 fcagent[427]: FRU reconfiguration: DISK #8 in enclosure 4 on channel 01: OK --> UNBYPASSED
May  7 17:59:11 5D:system1 fcagent[427]: FRU reconfiguration: DISK #9 in enclosure 4 on channel 01: OK --> UNBYPASSED

Using IRIX Utilities to Get JBOD Information

This section explains how to use IRIX utilities to get more information about JBOD storage:

Getting a Fibre Channel Hardware Graph Output

To obtain hardware graph information for a local host system that is controlling a fibre channel disk array, enter a grep inquiry such as the following:

grep ^controller_number /etc/ioconfig.conf

The following example displays information on channel 12.

grep ^12 /etc/ioconfig.conf

The output might look like the following:

12 /hw/module/1/slot/io4/fibre_channel/pci/0/scsi_ctlr/0

This output tells you that module 1, slot io4, has a fibre channel enclosure connected to pci 0 (the first channel on the Fibre Channel XIO board).

Listing Fibre Channel Controller and Drive Numbers

You can use the hinv command at the operating system level to determine numbers and types of fibre devices on a particular host system, as follows:

hinv | grep Fibre

Such hinv output might look like the following:

Integral SCSI controller 12: Version Emerald Fibrechannel 
Integral SCSI controller 13: Version Emerald Fibrechannel
Integral SCSI controller 10: Version Emerald Fibrechannel
Integral SCSI controller 11: Version Emerald Fibrechannel
Integral SCSI controller 22: Version Emerald Fibrechannel
Integral SCSI controller 23: Version Emerald Fibrechannel

To use hinv to get the listing of devices connected to the fibre channel controller(s), enter

hinv -c disk

The output might look like the following:

Integral SCSI controller 12: Version Emerald Fibrechannel
Disk drive: unit 19 on SCSI controller 12
Disk drive: unit 17 on SCSI controller 12
Disk drive: unit 15 on SCSI controller 12
Disk drive: unit 13 on SCSI controller 12
Disk drive: unit 11 on SCSI controller 12
Disk drive: unit 18 on SCSI controller 12
Disk drive: unit 16 on SCSI controller 12
Disk drive: unit 14 on SCSI controller 12
Disk drive: unit 12 on SCSI controller 12
Disk drive: unit 10 on SCSI controller 12