340 lines
14 KiB
Groff
340 lines
14 KiB
Groff
.\" Copyright (C) 2006,2007,2012,2013 Hewlett-Packard Development Company, L.P.
|
|
.\"
|
|
.\"
|
|
.\" Copyright 2006,2007,2012,2013 Hewlett-Packard Development Company, L.P.
|
|
.\"
|
|
.\" Author: Stephen M. Cameron
|
|
.\"
|
|
.\" This file is part of cciss_vol_status.
|
|
.\"
|
|
.\" cciss_vol_status is free software; you can redistribute it and/or modify
|
|
.\" it under the terms of the GNU General Public License as published by
|
|
.\" the Free Software Foundation; either version 2 of the License, or
|
|
.\" (at your option) any later version.
|
|
.\"
|
|
.\" cciss_vol_status is distributed in the hope that it will be useful,
|
|
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
.\" GNU General Public License for more details.
|
|
.\"
|
|
.\" You should have received a copy of the GNU General Public License
|
|
.\" along with cciss_vol_status; if not, write to the Free Software
|
|
.\" Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
.\"
|
|
.TH CCISS_VOL_STATUS "8" "May 2013" "cciss_vol_status (ccissutils) " ""
|
|
.SH NAME
|
|
cciss_vol_status \- show status of logical drives attached to HP Smartarray controllers
|
|
.SH SYNOPSIS
|
|
.B cciss_vol_status
|
|
[\fIOPTION\fR] [\fIDEVICE\fR]...
|
|
.SH DESCRIPTION
|
|
.\" Add any additional description here
|
|
.PP
|
|
Shows the status of logical drives configured on HP Smartarray
|
|
controllers.
|
|
.SH OPTIONS
|
|
.TP
|
|
\fB\-p, --persnickety\fR
|
|
Without this option, device nodes which can't be opened, or which
|
|
are not found to be of the correct device type are silently ignored.
|
|
This lets you use wildcards, e.g.: cciss_vol_status /dev/sg* /dev/cciss/c*d0,
|
|
and the program will not complain as long as all devices which are found
|
|
to be of the correct type are found to be ok. However, you may wish
|
|
to explicitly list the devices you expect to be there, and be notified
|
|
if they are not there (e.g. perhaps a PCI slot has died, and the system has
|
|
rebooted, so that what was once /dev/cciss/c1d0 is no longer there at
|
|
all). This option will cause the program to complain about any device
|
|
node listed which does not appear to be the right device type, or
|
|
is not openable.
|
|
.TP
|
|
\fB\-C, --copyright\fR
|
|
If stderr is a terminal, Print out a copyright message,
|
|
and exit.
|
|
.TP
|
|
\fB\-q, --quiet\fR
|
|
This option doesn't do anything.
|
|
Previously, without this option and if stderr is a
|
|
terminal, a copyright message precedes the normal program output.
|
|
Now, the copyright message is only printed via the -C option.
|
|
.TP
|
|
\fB\-s\fR
|
|
Query each physical drive for S.M.A.R.T data and report any drives
|
|
in "predictive failure" state.
|
|
.TP
|
|
\fB\-u, --try-unknown-devices\fR
|
|
If a device has an unrecognized board ID, normally the program will
|
|
not attempt to communicate with it. In case you have some Smart Array
|
|
controller which is newer than this program, the program may not
|
|
recognize it. This option permits the program to attempt to interrogate
|
|
the board even if it is unrecognized on the assumption that it is
|
|
in fact a Smart Array of some kind.
|
|
.TP
|
|
\fB\-v, --version\fR
|
|
Print the version number and exit.
|
|
.TP
|
|
\fB\-V, --verbose\fR
|
|
Print out more information about the controllers and physical drives.
|
|
For each controller, the board ID, number of logical drives, currently
|
|
running firmware revision and ROM firmware revision are printed. For
|
|
each physical drive, the location, vendor, model, serial number,
|
|
and firmware revision are printed.
|
|
.TP
|
|
\fB\-x, --exhaustive\fR
|
|
Deprecated. Previously, it "exhaustively" searched for logical
|
|
drives, as, under some circumstances some logical drives might
|
|
otherwise be missed. This option no longer does anything, as the
|
|
algorithm for finding logical drives was changed to obviate the
|
|
need for it.
|
|
.SH DEVICE
|
|
.PP
|
|
The DEVICE argument indicates which RAID controller is to be queried.
|
|
Note, that it indicates which RAID controller, not which logical drive.
|
|
.PP
|
|
For the cciss driver, the "d0" nodes matching "/dev/cciss/c*d0" are the
|
|
nodes which correspond to the RAID controllers. (See note 1, below.)
|
|
It is not necessary to invoke cciss_vol_status on each logical drive
|
|
individually, though if you do this, each time it will report the
|
|
status of ALL logical drives on the controller.
|
|
.PP
|
|
For the hpsa driver, or for fibre attached MSA1000 family devices, or
|
|
for the hpahcisr sotware RAID driver which emulates Smart Arrays,
|
|
the RAID controller
|
|
is accessed via the scsi generic driver, and the device nodes will
|
|
match "/dev/sg*" Some variants of the "lsscsi" tool will easily
|
|
identify which device node corresponds to the RAID controller. Some
|
|
variants may only report the SCSI nexus (controller/bus/target/lun
|
|
tuple.) Some distros may not have the lsscsi tool.
|
|
.PP
|
|
.br
|
|
Executing the following query to the /sys filesystem and correlating
|
|
this with the contents of /proc/scsi/scsi or output of lsscsi
|
|
can help in finding the right
|
|
/dev/sg node to use with cciss_vol_status:
|
|
.PP
|
|
.nf
|
|
.LD
|
|
wumpus:/home/scameron # ls -l /sys/class/scsi_generic/*
|
|
lrwxrwxrwx 1 root root 0 2009-11-18 12:31 /sys/class/scsi_generic/sg0 -> ../../devices/pci0000:00/0000:00:02.0/0000:02:00.0/0000:03:03.0/host0/target0:0:0/0:0:0:0/scsi_generic/sg0
|
|
lrwxrwxrwx 1 root root 0 2009-11-18 12:31 /sys/class/scsi_generic/sg1 -> ../../devices/pci0000:00/0000:00:1f.1/host2/target2:0:0/2:0:0:0/scsi_generic/sg1
|
|
lrwxrwxrwx 1 root root 0 2009-11-19 07:47 /sys/class/scsi_generic/sg2 -> ../../devices/pci0000:00/0000:00:05.0/0000:0e:00.0/host4/target4:3:0/4:3:0:0/scsi_generic/sg2
|
|
wumpus:/home/scameron # cat /proc/scsi/scsi
|
|
Attached devices:
|
|
Host: scsi0 Channel: 00 Id: 00 Lun: 00
|
|
Vendor: COMPAQ Model: BD03685A24 Rev: HPB6
|
|
Type: Direct-Access ANSI SCSI revision: 03
|
|
Host: scsi2 Channel: 00 Id: 00 Lun: 00
|
|
Vendor: SAMSUNG Model: CD-ROM SC-148A Rev: B408
|
|
Type: CD-ROM ANSI SCSI revision: 05
|
|
Host: scsi4 Channel: 03 Id: 00 Lun: 00
|
|
Vendor: HP Model: P800 Rev: 6.82
|
|
Type: RAID ANSI SCSI revision: 00
|
|
wumpus:/home/scameron # lsscsi
|
|
[0:0:0:0] disk COMPAQ BD03685A24 HPB6 /dev/sda
|
|
[2:0:0:0] cd/dvd SAMSUNG CD-ROM SC-148A B408 /dev/sr0
|
|
[4:3:0:0] storage HP P800 6.82 -
|
|
.DE
|
|
.fi
|
|
.PP
|
|
From the above you can see that /dev/sg2 corresponds to SCSI nexus 4:3:0:0,
|
|
which corresponds to the HP P800 RAID controller listed in /proc/scsi/scsi.
|
|
.SH EXAMPLE
|
|
.nf
|
|
.LD
|
|
[root@somehost]# cciss_vol_status -q /dev/cciss/c*d0
|
|
/dev/cciss/c0d0: (Smart Array P800) RAID 0 Volume 0 status: OK.
|
|
/dev/cciss/c0d0: (Smart Array P800) RAID 0 Volume 1 status: OK.
|
|
/dev/cciss/c0d0: (Smart Array P800) RAID 1 Volume 2 status: OK.
|
|
/dev/cciss/c0d0: (Smart Array P800) RAID 5 Volume 4 status: OK.
|
|
/dev/cciss/c0d0: (Smart Array P800) RAID 5 Volume 5 status: OK.
|
|
/dev/cciss/c0d0: (Smart Array P800) Enclosure MSA60 (S/N: USP6340B3F) on Bus 2, Physical Port 1E status: Power Supply Unit failed
|
|
/dev/cciss/c1d0: (Smart Array P800) RAID 5 Volume 0 status: OK.
|
|
/dev/cciss/c1d0: (Smart Array P800) RAID 5 Volume 1 status: OK.
|
|
/dev/cciss/c1d0: (Smart Array P800) RAID 5 Volume 2 status: OK.
|
|
/dev/cciss/c1d0: (Smart Array P800) RAID 5 Volume 3 status: OK.
|
|
/dev/cciss/c1d0: (Smart Array P800) RAID 5 Volume 4 status: OK.
|
|
/dev/cciss/c1d0: (Smart Array P800) RAID 5 Volume 5 status: OK.
|
|
/dev/cciss/c1d0: (Smart Array P800) RAID 5 Volume 6 status: OK.
|
|
/dev/cciss/c1d0: (Smart Array P800) RAID 5 Volume 7 status: OK.
|
|
|
|
[root@someotherhost]# cciss_vol_status -q /dev/sg0 /dev/cciss/c*d0
|
|
/dev/sg0: (MSA1000) RAID 1 Volume 0 status: OK. At least one spare drive.
|
|
/dev/sg0: (MSA1000) RAID 5 Volume 1 status: OK.
|
|
/dev/cciss/c0d0: (Smart Array P800) RAID 0 Volume 0 status: OK.
|
|
|
|
[root@localhost]# ./cciss_vol_status -s /dev/sg1
|
|
/dev/sda: (Smart Array P410i) RAID 0 Volume 0 status: OK.
|
|
connector 1I box 1 bay 1 HP DG072A9BB7 B365P6803PCP0633 HPD0 S.M.A.R.T. predictive failure.
|
|
[root@localhost]# echo $?
|
|
1
|
|
|
|
[root@localhost]# ./cciss_vol_status -s /dev/cciss/c0d0
|
|
/dev/cciss/c0d0: (Smart Array P800) RAID 0 Volume 0 status: OK.
|
|
connector 2E box 1 bay 8 HP DF300BB6C3 3LM08AP700009713RXUT HPD3 S.M.A.R.T. predictive failure.
|
|
/dev/cciss/c0d0: (Smart Array P800) Enclosure MSA60 (S/N: USP6340B3F) on Bus 2, Physical Port 2E status: OK.
|
|
|
|
|
|
[root@localhost cciss_vol_status]# ./cciss_vol_status --verbose /dev/sg0
|
|
Controller: Smart Array P420i
|
|
Board ID: 0x3354103c
|
|
Logical drives: 1
|
|
Running firmware: 3.42
|
|
ROM firmware: 3.42
|
|
/dev/sda: (Smart Array P420i) RAID 1 Volume 0 status: OK.
|
|
Physical drives: 2
|
|
connector 1I box 2 bay 1 HP EG1200FCVBQ KZG21NVD HPD1 OK
|
|
connector 2I box 2 bay 5 HP EG1200FCVBQ KZG20X7D HPD1 OK
|
|
/dev/sg0(Smart Array P420i:0): Non-Volatile Cache status:
|
|
Cache configured: Yes
|
|
Read cache memory: 81 MiB
|
|
Write cache memory: 735 MiB
|
|
Write cache enabled: Yes
|
|
Flash backed cache present
|
|
|
|
|
|
.DE
|
|
.fi
|
|
.SH DIAGNOSTICS
|
|
.PP
|
|
Normally, a logical drive in good working order should
|
|
report a status of "OK." Possible status values are:
|
|
.TP
|
|
"OK." (0) - The logical drive is in good working order.
|
|
.TP
|
|
"FAILED." (1) - The logical drive has failed, and no i/o to it is poosible.
|
|
Additionally, failed drives will be identified by connector, box and bay,
|
|
as well as vendor, model, serial number, and firmware revision.
|
|
.TP
|
|
"Using interim recovery mode." (3) - One or more drives has failed,
|
|
but not so many that the logical drive can no longer operate. The
|
|
failed drives should be replaced as soon as possible.
|
|
.TP
|
|
"Ready for recovery operation." (4) - Failed drive(s) have been
|
|
replaced, and the controller is about to begin rebuilding
|
|
redundant parity data.
|
|
.TP
|
|
"Currently recovering." (5) - Failed drive(s) have been replaced,
|
|
and the controller is currently rebuilding redundant parity
|
|
information.
|
|
.TP
|
|
"Wrong physical drive was replaced." (6) - A drive has failed, and
|
|
another (working) drive was replaced.
|
|
.TP
|
|
"A physical drive is not properly connected." (7) - There is some
|
|
cabling or backplane problem in the drive enclosure.
|
|
.TP
|
|
(From fwspecwww.doc, see cpqarray project on sourceforge.net):
|
|
Note: If the unit_status value is 6 (Wrong physical drive was replaced)
|
|
or 7 (A physical drive is not properly connected), the unit_status
|
|
of all other configured logical drives will be marked as
|
|
1 (Logical drive failed). This is to force the user to
|
|
correct the problem and to insure that once the problem
|
|
is corrected, the data will not have been corrupted by
|
|
any user action.
|
|
.TP
|
|
"Hardware is overheating." (8) - Hardware is too hot.
|
|
.TP
|
|
"Hardware was overheated." (9) - At some point in the past,
|
|
the hardware got too hot.
|
|
.TP
|
|
"Currently expannding." (10) - The controller is currently in the
|
|
process of expanding a logical drive.
|
|
.TP
|
|
"Not yet available." (11) - The logical drive is not yet finished
|
|
being configured.
|
|
.TP
|
|
"Queued for expansion." (12) - The logical drive will be expended
|
|
when the controller is able to begin working on it.
|
|
.PP
|
|
Additionally, the following messages may appear regarding spare
|
|
drive status:
|
|
.PP
|
|
.nf
|
|
.LD
|
|
"At least one spare drive designated"
|
|
"At least one spare drive activated and currently rebuilding"
|
|
"At least one activated on-line spare drive is completely rebuilt on this logical drive"
|
|
"At least one spare drive has failed"
|
|
"At least one spare drive activated"
|
|
"At least one spare drive remains available"
|
|
.DE
|
|
Active spares will be identified by connector, box and bay, as well
|
|
as by vendor, model, serial number, and firmware revision.
|
|
.fi
|
|
.PP
|
|
For each logical drive, the total number of failed
|
|
physical drives, if more than zero, will be reported as:
|
|
.TP
|
|
.nf
|
|
.LD
|
|
"Total of n failed physical drives detected on this logical drive."
|
|
.DE
|
|
.fi
|
|
.PP
|
|
with "n" replaced by the actual number, of course.
|
|
.PP
|
|
"Replacement" drives -- newly inserted drives that replace
|
|
a previously failed drive but are not yet finished rebuilding --
|
|
are also identified by connector, box and bay, as well as
|
|
by vendor, model, serial number, and firmware revision.
|
|
.PP
|
|
If the -s option is specified, each physical drive will be
|
|
queried for S.M.A.R.T data, any any drives in predictive failure
|
|
state will be reported, identified by connector, box and bay,
|
|
as well as vendor, model, serial number, and firmware revision.
|
|
.PP
|
|
Additionally failure conditions of disk enclosure fans,
|
|
power supplies, and temperature are reported as follows:
|
|
.PP
|
|
.nf
|
|
.LD
|
|
"Fan failed"
|
|
"Temperature problem"
|
|
"Door alert"
|
|
"Power Supply Unit failed"
|
|
.DE
|
|
.fi
|
|
.SH FILES
|
|
/dev/cciss/c*d0 (Smart Array PCI controllers using the cciss driver)
|
|
.br
|
|
/dev/sg* (Fibre attached MSA1000 controllers and
|
|
Smart Array controllers using the hpsa driver or
|
|
hpahcisr software RAID driver.)
|
|
.SH EXIT CODES
|
|
.TP
|
|
0 - All configured logical drives queried have status of "OK."
|
|
.TP
|
|
1 - One or more configured logical drives queried have status other than "OK."
|
|
.SH BUGS
|
|
.P
|
|
MSA500 G1 logical drive numbers may not be reported correctly.
|
|
.P
|
|
I've seen enclosure serial numbers contain garbage.
|
|
.P
|
|
Some Smart Arrays support more than 128 physical drives on a single RAID
|
|
controller. cciss_vol_status does not.
|
|
.SH AUTHOR
|
|
Written by Stephen M. Cameron
|
|
.SH "REPORTING BUGS"
|
|
.P
|
|
Report bugs to <scameron@beardog.cce.hp.com>
|
|
.SH COPYRIGHT
|
|
Copyright \(co 2007 Hewlett-Packard Development Company, L.P.
|
|
.br
|
|
This is free software; see the source for copying conditions. There is NO
|
|
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
.SH "SEE ALSO"
|
|
http://cciss.sourceforge.net
|
|
.SH note 1
|
|
The /dev/cciss/c*d0 device nodes of the cciss driver do double duty.
|
|
They serve as an access point to both the RAID controllers, and to the
|
|
first logical drive of each RAID controller. Notice that a /dev/cciss/c*d0
|
|
node will be present for each controller even if no logical drives are
|
|
configured on that controller. It might be cleaner if the driver had
|
|
a special device node just for the controller, instead of making these
|
|
device nodes do double duty. It has been like that since the 2.2
|
|
linux kernel timeframe. At that time, device major and minor nodes
|
|
were statically allocated at compile time, and were in short supply.
|
|
Changing this behavior at this point would break lots of userland
|
|
programs.
|
|
.FE
|