In computer storage, SAF-TE (abbreviated from SCSI Accessed Fault-Tolerant Enclosure) is an industry standard to interface an enclosure in-band to a (parallel) SCSI subsystem in order to gain access to information or control for various elements and parameters. These include temperature, fan status, slot status (populated/empty), door status, power supplies, alarms, and indicators (e.g. LEDs, LCDs). [1] Practically, any given SAF-TE device will only support a subset of all possible sensors or controls. [2]
Many RAID controllers can utilize a SAF-TE "activated" backplane by detecting a swapped drive (after a defect) and automatically starting a rebuild. A passive subsystem usually requires a manual rescan and rebuild.
A SAF-TE device (SEP) is represented as a SCSI processor device that is polled every few seconds by e.g. the RAID controller software. [1] Due to the low overhead required, impact on bus performance is negligible. [3] For SAS or Fibre Channel systems, SAF-TE is replaced by the more standardized SCSI Enclosure Services (SES).
The most widely used version was defined in the SAF-TE Interface Specification Intermediate Review R041497, released on April 14, 1997 by nStor (now part of Seagate Technology) and Intel.
Status requests are performed as READ BUFFER SCSI commands, enclosure action requests as WRITE BUFFER commands. [2]
Command type | Opcode | mandatory / optional | Command | Description |
---|---|---|---|---|
READ BUFFER | 00h | m | Read enclosure configuration | inquire about system components in the enclosure |
01h | m | Read enclosure status | inquire about operational status of enclosure components | |
02h | o | Read usage statistics | fetch information about total usage time and number of power-cycles | |
03h | o | Read device insertions | returns information on how many times a device has been inserted into each enclosure slot | |
04h | m | Read device slot status | returns information on the current state of each slot | |
05h | o | Read global flags | read global flags from processor | |
WRITE BUFFER | 10h | m | Write device slot status | updates state of the slots, essentially drives LEDs, alarms etc. |
11h | o | Set SCSI ID | set the SCSI ID of any device on the channel | |
12h | m | Perform slot operation | prepare a slot for insertion or removal (electronically or mechanically) | |
13h | o | Set fan speed | set rotational speed for each fan | |
14h | o | Activate power supply | turn a power supply on or off | |
15h | m | Send global flags | send global flags to processor (audible alarm; indicators for global failure, global warning, enclosure power, fan/cooling failure, power failure, drive failure, drive warning, array failure, array warning; enclosure lock; enclosure identification) |
In the context of an operating system, a device driver is a computer program that operates or controls a particular type of device that is attached to a computer or automaton. A driver provides a software interface to hardware devices, enabling operating systems and other computer programs to access hardware functions without needing to know precise details about the hardware being used.
Small Computer System Interface is a set of standards for physically connecting and transferring data between computers and peripheral devices, best known for its use with storage devices such as hard disk drives. SCSI was introduced in the 1980s and has seen widespread use on servers and high-end workstations, with new SCSI standards being published as recently as SAS-4 in 2017.
Direct memory access (DMA) is a feature of computer systems that allows certain hardware subsystems to access main system memory independently of the central processing unit (CPU).
Internet Small Computer Systems Interface or iSCSI is an Internet Protocol-based storage networking standard for linking data storage facilities. iSCSI provides block-level access to storage devices by carrying SCSI commands over a TCP/IP network. iSCSI facilitates data transfers over intranets and to manage storage over long distances. It can be used to transmit data over local area networks (LANs), wide area networks (WANs), or the Internet and can enable location-independent data storage and retrieval.
SATA is a computer bus interface that connects host bus adapters to mass storage devices such as hard disk drives, optical drives, and solid-state drives. Serial ATA succeeded the earlier Parallel ATA (PATA) standard to become the predominant interface for storage devices.
Serial Peripheral Interface (SPI) is a de facto standard for synchronous serial communication, used primarily in embedded systems for short-distance wired communication between integrated circuits.
A disk array controller is a device that manages the physical disk drives and presents them to the computer as logical units. It almost always implements hardware RAID, thus it is sometimes referred to as RAID controller. It also often provides additional disk cache.
The DECstation was a brand of computers used by DEC, and refers to three distinct lines of computer systems—the first released in 1978 as a word processing system, and the latter two both released in 1989. These comprised a range of computer workstations based on the MIPS architecture and a range of PC compatibles. The MIPS-based workstations ran ULTRIX, a DEC-proprietary version of UNIX, and early releases of OSF/1.
A host controller interface (HCI) is a register-level interface that enables a host controller for USB or IEEE 1394 hardware to communicate with a host controller driver in software. The driver software is typically provided with an operating system of a personal computer, but may also be implemented by application-specific devices such as a microcontroller.
In computing, Serial Attached SCSI (SAS) is a point-to-point serial protocol that moves data to and from computer-storage devices such as hard disk drives and tape drives. SAS replaces the older Parallel SCSI bus technology that first appeared in the mid-1980s. SAS, like its predecessor, uses the standard SCSI command set. SAS offers optional compatibility with Serial ATA (SATA), versions 2 and later. This allows the connection of SATA drives to most SAS backplanes or controllers. The reverse, connecting SAS drives to SATA backplanes, is not possible.
The Intelligent Platform Management Interface (IPMI) is a set of computer interface specifications for an autonomous computer subsystem that provides management and monitoring capabilities independently of the host system's CPU, firmware and operating system. IPMI defines a set of interfaces used by system administrators for out-of-band management of computer systems and monitoring of their operation. For example, IPMI provides a way to manage a computer that may be powered off or otherwise unresponsive by using a network connection to the hardware rather than to an operating system or login shell. Another use case may be installing a custom operating system remotely. Without IPMI, installing a custom operating system may require an administrator to be physically present near the computer, insert a DVD or a USB flash drive containing the OS installer and complete the installation process using a monitor and a keyboard. Using IPMI, an administrator can mount an ISO image, simulate an installer DVD, and perform the installation remotely.
In computing, channel I/O is a high-performance input/output (I/O) architecture that is implemented in various forms on a number of computer architectures, especially on mainframe computers. In the past, channels were generally implemented with custom devices, variously named channel, I/O processor, I/O controller, I/O synchronizer, or DMA controller.
SCSI Enclosure Services (SES) is a protocol for more modern SCSI enclosure products. An initiator can communicate with the enclosure using a specialized set of SCSI commands to access power, cooling, and other non-data characteristics.
SCSI Enclosure Services (SES) devices contains a number of elements, each of which is defined by a one byte SCSI element code. There are many different element codes defined to cover various devices as shown in the list below.
Open Platform Management Architecture (OPMA) is an open, royalty free standard for connecting a modular, platform hardware management subsystem to a computer motherboard. Platform hardware management generally refers to the remote monitoring of platform hardware variables such as fan speed, voltages, CPU and enclosure temperatures along with a wide range of other sensors. It also implies the ability to remotely control the power state of the platform and to reset the system back into an operational state should it "hang". A significant advantage of OPMA over previous generation management subsystem attachment methods is that OPMA does not consume a PCI socket. OPMA cards are also smaller and lower cost than their PCI predecessors.
A SCSI connector is used to connect computer parts that communicate with each other via the SCSI standard. Generally, two connectors, designated male and female, plug together to form a connection which allows two components, such as a computer and a disk drive, to communicate with each other. SCSI connectors can be electrical connectors or optical connectors. There have been a large variety of SCSI connectors in use at one time or another in the computer industry. Twenty-five years of evolution and three major revisions of the standards resulted in requirements for Parallel SCSI connectors that could handle an 8, 16 or 32 bit wide bus running at 5, 10 or 20 megatransfer/s, with conventional or differential signaling. Serial SCSI added another three transport types, each with one or more connector types. Manufacturers have frequently chosen connectors based on factors of size, cost, or convenience at the expense of compatibility.
In computer storage, a disk buffer is the embedded memory in a hard disk drive (HDD) or solid-state drive (SSD) acting as a buffer between the rest of the computer and the physical hard disk platter or flash memory that is used for storage. Modern hard disk drives come with 8 to 256 MiB of such memory, and solid-state drives come with up to 4 GB of cache memory.
NVM Express (NVMe) or Non-Volatile Memory Host Controller Interface Specification (NVMHCIS) is an open, logical-device interface specification for accessing a computer's non-volatile storage media usually attached via the PCI Express bus. The initial NVM stands for non-volatile memory, which is often NAND flash memory that comes in several physical form factors, including solid-state drives (SSDs), PCIe add-in cards, and M.2 cards, the successor to mSATA cards. NVM Express, as a logical-device interface, has been designed to capitalize on the low latency and internal parallelism of solid-state storage devices.
In computing, Linux-IO (LIO) Target is an open-source implementation of the SCSI target that has become the standard one included in the Linux kernel. Internally, LIO does not initiate sessions, but instead provides one or more Logical Unit Numbers (LUNs), waits for SCSI commands from a SCSI initiator, and performs required input/output data transfers. LIO supports common storage fabrics, including FCoE, Fibre Channel, IEEE 1394, iSCSI, iSCSI Extensions for RDMA (iSER), SCSI RDMA Protocol (SRP) and USB. It is included in some Linux distributions; native support for LIO in QEMU/KVM, libvirt, and OpenStack makes LIO also a storage option for cloud deployments.
The bio(4) pseudo-device driver and the bioctl(8) utility implement a generic RAID volume management interface in OpenBSD and NetBSD. The idea behind this software is similar to ifconfig, where a single utility from the operating system can be used to control any RAID controller using a generic interface, instead of having to rely on many proprietary and custom RAID management utilities specific for each given hardware RAID manufacturer. Features include monitoring of the health status of the arrays, controlling identification through blinking the LEDs and managing of sound alarms, and specifying hot spare disks. Additionally, the softraid
configuration in OpenBSD is delegated to bioctl as well; whereas the initial creation of volumes and configuration of hardware RAID is left to card BIOS as non-essential after the operating system has already been booted. Interfacing between the kernel and userland is performed through the ioctl
system call through the /dev/bio
pseudo-device.