The Enclosure Services Interface (ESI) is a computer protocol used in SCSI enclosures. This is part of a chain of connections that allows a host computer to communicate with the enclosure to access its power, cooling, and other non-data characteristics. This overall approach is called SCSI attached enclosure services:
The host computer communicates with the disks in the enclosure via a Serial SCSI interface (which may be either FC-AL or SAS). One of the disk devices located in the enclosure is set up to allow SCSI Enclosure Services (SES) communication through a LUN. The disk-drive then communicates with the SES processor in the enclosure via ESI. The data sent over the ESI interface is simply the contents of a SCSI command and the response to that command.
In fault-tolerant enclosures, more than one disk-drive slot has ESI enabled to allow SES communications to continue even after the failure of any of the disk-drives.
ESI electrical interface
The ESI interface was designed to make use of the seven existing "SEL_n" address signals which are used at power-on time for establishing the address (ALPA) of a disk-drive. An extra eighth signal called "-PARALLEL ESI" is used to switch the function of the SEL_n signals.
Signal name | Function |
SEL_0/D0 | Data bus bit 0 |
SEL_1/D1 | Data bus bit 1 |
SEL_2/D2 | Data bus bit 2 |
SEL_3/D3 | Data bus bit 3 |
SEL_4/-ENCL_ACK | The enclosure clocks this to acknowledge a read or write data transfer |
SEL_5/-DSK_RD | The disk-drive clocks this to send a NIBL of data to the enclosure |
SEL_6/-DSK_WR | The disk-drive clocks this to receive a NIBL of data from the enclosure |
ESI command sequence
A SCSI Send Diagnostic command or Receive Diagnostic Results command is sent from the host computer to the disk-drive to initiate an SES transfer. The Disk-drive then asserts "-PARALLEL ESI" to begin this sequence of ESI bus phases:
Phase | Function | |
Discovery phase | Disk-drive tests that the enclosure is SFF-8067 compliant | |
Command phase | Disk-drive sends the SCSI CDB to the enclosure (similar to the write phase) | |
Either | Read phase | Disk-drive sends diagnostic page data to the enclosure |
or | Write phase | Disk-drive receives diagnostic page data from the enclosure |
Finally, the disk-drive deasserts "-PARALLEL ESI".
The above sequence is just a simple implementation of a 4-bit wide parallel interface which is used to execute a SCSI transaction. If the CDB is for a Send Diagnostic command then the data is sent to a SCSI diagnostic page in the enclosure. If the CDB is for a SCSI Receive Diagnostic Results command then the data is received from a SCSI diagnostic page. No other CDB types are allowed.
Alternatives to ESI
There are two common alternatives ESI:
- Standalone Enclosure Services uses a direct connection which does not require ESI
- SSA enclosures use an interface called DSI which is similar to ESI
Specifications
The definition of the ESI protocols is owned by an ANSI committee and defined in their specifications ANSI SFF-8067 and ANSI SFF-8045.