'hpsa' - A SCSI-based Linux device driver for HP Smart Array Controllers
2
Abstract
The hpsa driver is an open-source Linux device driver for HP Smart Array controllers. Red Hat and SUSE include the hpsa
driver as part of their standard enterprise Linux distributions.
Unlike its predecessor, the cciss driver, the hpsa driver presents logical disk devices in the standard SCSI namespace.
While this change means easier compatibility with system tools and utilities designed to work with SCSI storage, there
are some differences in device naming, and other changes of which to be aware when using the hpsa driver.
This paper describes similarities and differences between hpsa and cciss drivers, defines how to determine which driver
to use with particular controllers, and outlines the planning and processes for a successful deployment of the hpsa
driver.
What is the hpsa driver?
The hpsa driver is an open-source device driver used with HP Smart Array SAS RAID Array controllers. SAS and SATA
physical disks connect to a Smart Array controller to create RAID logical disks. The hpsa driver presents the logical disks
to the operating system. The hpsa driver queues and manages I/O requests, handles retries and errors, and passes
through configuration, monitoring, and management requests to the controller’s firmware.
The hpsa driver evolved from the HP Smart Array cciss driver. We have modernized and streamlined the hpsa driver for
direct interaction with the standard SCSI mid-layer of Linux. The hpsa driver builds on the traditions of high
performance, open source, and device compatibility that have made the cciss driver a fixture on Linux distributions for
more than 12 years.
Unlike the cciss driver, the hpsa driver presents logical disk devices in the standard SCSI namespace. This change
improves compatibility with system tools and utilities designed to work with SCSI storage. You should know about these
differences along with differences in device naming and other changes when using the hpsa driver.
HP released the hpsa driver in 2008 for VMware, and posted to kernel.org for Linux community review in early 2009.
After many refinements, the hpsa driver became a part of standard kernel.org kernels, as well as enterprise Linux
releases from SUSE and Red Hat.
Motivation
The hpsa driver is a SCSI driver, while its predecessor was a block-layer driver. Hpsa combines traditional HP Smart Array
driver and controller technology with the large body of Linux community development on the SCSI storage layer. Hpsa
retains Smart Array reliability but enables these devices to benefit from the continuing development of the Linux SCSI
layer. This results in better error handling, enhanced device management, and quick integration with standard system
tools and utilities that rely on the SCSI subsystem. These benefits do not affect data or array configuration compatibility.
Hpsa maintains compatibility with pre-existing storage configurations and data from systems using the cciss driver.
Availability
Hpsa is available in kernel.org distributions, and is included in industry-standard operating system (OS) vendor releases.
Use of the hpsa driver also depends on the controller in use, and this selection mechanism can vary per distribution.
Kernel.org
The hpsa driver in kernel.org distributions has a well-defined mapping process that distinguishes between particular
Smart Array controller models. The hpsa driver handles all newer models; the traditional HP cciss driver handles older
controller models.
SUSE
The hpsa driver debuted on the SUSE Linux Enterprise Server (SLES) as an optional driver in SLES 11 SP1. For newer
Smart Array controllers, there was a choice to use the standard cciss driver, or hpsa. Older Smart Array controllers
require the cciss driver. HP recommends using the standard cciss driver in SLES 11 SP1, since the included hpsa driver
was an early experimental version. However, ProLiant Gen8 servers require the hpsa driver, since these servers contain