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.
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.
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. Protocol is usually one of:
- ATA (aka IDE)
- Serial ATA
- SCSI
- Fibre Channel
- Serial Attached SCSI
- Front-end interface communicates with a computer's host adapter (HBA). Protocol is usually one of:
- popular ATA, SATA, SCSI, FCP, SAS protocols or less popular...
- FICON/ESCON
- iSCSI
- HyperSCSI
- ATA over Ethernet
- InfiniBand
A single controller may use different protocols for back-end and for front-end communication. For example many enterprise controllers use FC on front-end and a mix of SATA and FC on back-end.
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 a 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:
- failover on a controller level (transparent to computers transmitting data)
- snapshots
- Business Continuance Volumes (BCV)
- replication with a remote controller
Simple controllers
A simple disk array controller may be integrated with a host bus adapter (HBA) to form a single adapter (e.g. a single PCI expansion card) to easily fit inside a computer. This unit is often called a RAID adapter.
References
- Storage Basics: Choosing a RAID Controller, May 7, 2004, By Ben Freeman[1]
- Raid, is there any other way?, A Discussion
This article is based on material taken from the Free On-line Dictionary of Computing prior to 1 November 2008 and incorporated under the "relicensing" terms of the GFDL, version 1.3 or later.