123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 |
- HPSA - Hewlett Packard Smart Array driver
- -----------------------------------------
- This file describes the hpsa SCSI driver for HP Smart Array controllers.
- The hpsa driver is intended to supplant the cciss driver for newer
- Smart Array controllers. The hpsa driver is a SCSI driver, while the
- cciss driver is a "block" driver. Actually cciss is both a block
- driver (for logical drives) AND a SCSI driver (for tape drives). This
- "split-brained" design of the cciss driver is a source of excess
- complexity and eliminating that complexity is one of the reasons
- for hpsa to exist.
- Supported devices:
- ------------------
- Smart Array P212
- Smart Array P410
- Smart Array P410i
- Smart Array P411
- Smart Array P812
- Smart Array P712m
- Smart Array P711m
- StorageWorks P1210m
- Additionally, older Smart Arrays may work with the hpsa driver if the kernel
- boot parameter "hpsa_allow_any=1" is specified, however these are not tested
- nor supported by HP with this driver. For older Smart Arrays, the cciss
- driver should still be used.
- The "hpsa_simple_mode=1" boot parameter may be used to prevent the driver from
- putting the controller into "performant" mode. The difference is that with simple
- mode, each command completion requires an interrupt, while with "performant mode"
- (the default, and ordinarily better performing) it is possible to have multiple
- command completions indicated by a single interrupt.
- HPSA specific entries in /sys
- -----------------------------
- In addition to the generic SCSI attributes available in /sys, hpsa supports
- the following attributes:
- HPSA specific host attributes:
- ------------------------------
- /sys/class/scsi_host/host*/rescan
- /sys/class/scsi_host/host*/firmware_revision
- /sys/class/scsi_host/host*/resettable
- /sys/class/scsi_host/host*/transport_mode
- the host "rescan" attribute is a write only attribute. Writing to this
- attribute will cause the driver to scan for new, changed, or removed devices
- (e.g. hot-plugged tape drives, or newly configured or deleted logical drives,
- etc.) and notify the SCSI midlayer of any changes detected. Normally this is
- triggered automatically by HP's Array Configuration Utility (either the GUI or
- command line variety) so for logical drive changes, the user should not
- normally have to use this. It may be useful when hot plugging devices like
- tape drives, or entire storage boxes containing pre-configured logical drives.
- The "firmware_revision" attribute contains the firmware version of the Smart Array.
- For example:
- root@host:/sys/class/scsi_host/host4# cat firmware_revision
- 7.14
- The transport_mode indicates whether the controller is in "performant"
- or "simple" mode. This is controlled by the "hpsa_simple_mode" module
- parameter.
- The "resettable" read-only attribute indicates whether a particular
- controller is able to honor the "reset_devices" kernel parameter. If the
- device is resettable, this file will contain a "1", otherwise, a "0". This
- parameter is used by kdump, for example, to reset the controller at driver
- load time to eliminate any outstanding commands on the controller and get the
- controller into a known state so that the kdump initiated i/o will work right
- and not be disrupted in any way by stale commands or other stale state
- remaining on the controller from the previous kernel. This attribute enables
- kexec tools to warn the user if they attempt to designate a device which is
- unable to honor the reset_devices kernel parameter as a dump device.
- HPSA specific disk attributes:
- ------------------------------
- /sys/class/scsi_disk/c:b:t:l/device/unique_id
- /sys/class/scsi_disk/c:b:t:l/device/raid_level
- /sys/class/scsi_disk/c:b:t:l/device/lunid
- (where c:b:t:l are the controller, bus, target and lun of the device)
- For example:
- root@host:/sys/class/scsi_disk/4:0:0:0/device# cat unique_id
- 600508B1001044395355323037570F77
- root@host:/sys/class/scsi_disk/4:0:0:0/device# cat lunid
- 0x0000004000000000
- root@host:/sys/class/scsi_disk/4:0:0:0/device# cat raid_level
- RAID 0
- HPSA specific ioctls:
- ---------------------
- For compatibility with applications written for the cciss driver, many, but
- not all of the ioctls supported by the cciss driver are also supported by the
- hpsa driver. The data structures used by these are described in
- include/linux/cciss_ioctl.h
- CCISS_DEREGDISK
- CCISS_REGNEWDISK
- CCISS_REGNEWD
- The above three ioctls all do exactly the same thing, which is to cause the driver
- to rescan for new devices. This does exactly the same thing as writing to the
- hpsa specific host "rescan" attribute.
- CCISS_GETPCIINFO
- Returns PCI domain, bus, device and function and "board ID" (PCI subsystem ID).
- CCISS_GETDRIVVER
- Returns driver version in three bytes encoded as:
- (major_version << 16) | (minor_version << 8) | (subminor_version)
- CCISS_PASSTHRU
- CCISS_BIG_PASSTHRU
- Allows "BMIC" and "CISS" commands to be passed through to the Smart Array.
- These are used extensively by the HP Array Configuration Utility, SNMP storage
- agents, etc. See cciss_vol_status at http://cciss.sf.net for some examples.
|