Disk array controller
From Wikipedia, the free encyclopedia
A disk array controller is a device which 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.
A disk array controller name is often improperly shortened to a disk controller. The two should not be confused as they provide very different functionality.
Contents |
[edit] Front-end and back-end side
Disk array controller is said to provide front-end interfaces and back-end interfaces.
- Back-end interface communicates with controlled disks. Hence protocol is usually ATA (a.k.a. PATA; incorrectly called IDE), SATA, SCSI, FC or SAS.
- Front-end interface communicates with a computer's host adapter (HBA, Host Bus Adapter) and uses:
- one of ATA, SATA, SCSI, FC; these are popular protocols used by disks, so by using one of them a controller may transparently emulate a disk for a computer
- somewhat less popular protocol dedicated for a specific solution: FICON/ESCON, iSCSI, HyperSCSI, ATA over Ethernet or InfiniBand
A single controller may use different protocols for back-end and for front-end communication. Many enterprise controllers use FC on front-end and SATA on back-end.
[edit] Enterprise controllers
In a modern enterprise architecture disk array controllers are parts of physically independent enclosures, such as a disk arrays placed in a storage area network (SAN) or network-attached storage (NAS) servers.
Those external disk arrays are usually purchased as an integrated subsystem of RAID controllers, disk drives, power supplies, and management software. It is up to controllers to provide advanced functionality (various vendors name these differently):
- automatic failover to another controller (transparent to computers transmitting data)
- long-running operations performed without downtime
- forming a new RAID set
- reconstructing degraded RAID set (after a disk failure)
- adding a disk to online RAID set
- removing a disk from a RAID set (rare functionality)
- partitioning a RAID set to separate volumes/LUNs
- snapshots
- Business Continuance Volumes (BCV)
- replication with a remote controller....
[edit] Simple controllers
A simple disk array controller may be fit inside a computer, either as a PCI expansion card or just built into the motherboard. Such controller usually provides host bus adapter (HBA) functionality itself to save physical space. Hence it is sometimes called RAID adapter.
Lately (February 2007) Intel has even integrated their own Matrix RAID controller in their more upmarket motherboards giving control over 4 devices and an additional 2 SATA connectors, totalling to 6 SATA connections (3Gbit/s each). For backward compatbility one IDE connector enabling to connect 2 ATA devices (100 Mbit/s) is also present.
[edit] History
While hardware RAID controllers were available for a long time, they always required expensive SCSI hard drives and aimed at the server and high-end computing market. SCSI technology advantages included: up to 15 devices on one bus, independent data transfers, hot-swapping, much higher MTBF.
Around 1997, with the introduction of ATAPI-4 (and thus the Ultra-DMA-Mode 0, which enabled fast data transfers with less CPU utilization) the first ATA RAID controllers were introduced (as PCI expansion cards). Those RAID systems made their way to the consumer market, where the users wanted the fault-tolerance of RAID without investing in expensive SCSI drives.
ATA drives make it possible to build RAID systems at lower cost than with SCSI, but most ATA RAID controllers lack a dedicated buffer or high-performance XOR hardware for parity calculation. As a result, ATA RAID performs relatively poorly compared to most SCSI RAID controllers. Additionally, data safety suffers if there is no battery backup to finish writes interrupted by a power outage.
[edit] References
- Storage Basics: Choosing a RAID Controller, May 7, 2004, By Ben Freeman[1]
This article was originally based on material from the Free On-line Dictionary of Computing, which is licensed under the GFDL.