Computer Storage Codexery

Disk array controller

Manages disks as logical units, often with hardware RAID.

Disk array controller

A disk array controller is a device that manages physical disk drives and presents them to a computer as logical units. It often implements hardware RAID, leading to its common designation as a RAID controller, and frequently provides additional disk cache. The term is sometimes ambiguously shortened to 'disk controller,' which can also refer to the circuitry that manages internal disk drive operations.

Front-end protocols
ATA, SATA, SCSI, FC, FICON/ESCON, iSCSI, HyperSCSI, ATA over Ethernet, InfiniBand
Back-end protocols
ATA (PATA), SATA, SCSI, FC, SAS
Enterprise controller form
Physically independent enclosures in SAN or NAS
Simple controller form
PCI/PCIe expansion card or built onto motherboard
Intel matrix raid connections
6 SATA (3 Gbit/s each) plus 1 IDE connector (100 Mbit/s)
Ata raid introduction context
Around introduction of ATAPI-4 and Ultra-DMA-Mode
Openbsd bio(4) adoption year
2005

Lore & Background

Disk array controllers have front-end and back-end interfaces. The back-end communicates with the controlled disks using protocols such as ATA, SATA, SCSI, FC, or SAS. The front-end communicates with a computer's host adapter, using protocols like ATA, SATA, SCSI, FC, or less common dedicated protocols such as FICON/ESCON, iSCSI, HyperSCSI, ATA over Ethernet, or InfiniBand. A single controller may use different protocols for front-end and back-end; many enterprise controllers use FC on the front-end and SATA on the back-end.

In enterprise architectures, disk array controllers—sometimes called storage processors (SPs)—are parts of physically independent enclosures, such as disk arrays in a storage area network (SAN) or network-attached storage (NAS) servers. These external disk arrays are typically purchased as integrated subsystems of RAID controllers, disk drives, power supplies, and management software. The controllers provide advanced functionality including automatic failover, long-running operations without downtime, forming new RAID sets, reconstructing degraded RAID sets, adding or removing disks online, partitioning RAID sets into volumes/LUNs, snapshots, business continuance volumes (BCV), and replication with a remote controller.

Simple disk array controllers may fit inside a computer as a PCI/PCIe expansion card or be built onto a motherboard, often providing host bus adapter (HBA) functionality themselves and sometimes called a RAID adapter. Intel integrated their Matrix RAID controller in upmarket motherboards, controlling 4 devices plus 2 additional SATA connectors for 6 total SATA connections at 3 Gbit/s each, with one IDE connector for backward compatibility.

Reader's Guide

The disk array controller's significance lies in its role as the bridge between physical storage and logical presentation, enabling RAID functionality that provides fault tolerance, performance, and capacity management. Historically, hardware RAID controllers initially required expensive Parallel SCSI hard drives and targeted the server and high-end computing market, with SCSI advantages including support for up to 15 devices per bus, independent data transfers, hot-swapping, and higher MTBF. Around the introduction of ATAPI-4 and Ultra-DMA-Mode, the first ATA RAID controllers appeared as PCI expansion cards, bringing RAID to the consumer market for users seeking fault tolerance without investing in expensive SCSI drives. However, most ATA RAID controllers lacked dedicated buffers or high-performance XOR hardware, resulting in relatively poor performance compared to SCSI RAID controllers, and data safety suffered without battery backup for writes interrupted by power outages.

Operating system support varies widely. Because hardware RAID controllers present assembled RAID volumes, operating systems are not strictly required to implement complete configuration for each controller. Basic features are often implemented in open-source drivers, with extended features provided through binary blobs from manufacturers. RAID controllers are typically configured through card BIOS before booting, and proprietary configuration utilities are available from each manufacturer. Unlike Ethernet network interface controllers, which can be configured through common OS paradigms without third-party tools, each RAID controller manufacturer usually provides proprietary software for each supported OS, creating vendor lock-in and potential reliability issues. Some operating systems have implemented generic frameworks for interfacing with any RAID controller, such as OpenBSD's bio(4) pseudo-device driver and bioctl utility from 2005, which provide volume status, LED/alarm/hotspare control, and health monitoring sensors, keeping the feature set minimal so each controller can be supported uniformly.

Did You Know?

Frequently Asked Questions

What is a disk array controller and what does it actually do?

It is a hardware device that takes charge of multiple physical disk drives and bundles them together so the host computer sees them as one or more logical storage units. Because it handles the array logic in dedicated silicon rather than leaving it to the operating system, it is most commonly recognized as a RAID controller.

Which front-end and back-end protocols can a disk array controller speak?

On the host-facing side it supports ATA, SATA, SCSI, Fibre Channel, FICON/ESCON, iSCSI, HyperSCSI, ATA over Ethernet, and InfiniBand. On the drive-facing side it connects using ATA (PATA), SATA, SCSI, FC, or SAS.

Why is the shortened term 'disk controller' considered ambiguous?

People often drop 'array' and just say 'disk controller,' but that phrase can equally mean the basic circuitry that manages a single internal drive's read and write operations. In technical documentation the two meanings can collide, so context is needed to tell them apart.

What physical form factors does a disk array controller come in?

In enterprise deployments it lives in a physically independent enclosure attached through a SAN or NAS fabric. In simpler or workstation-class systems it is either a PCI/PCIe expansion card you slot into the board, or the controller logic is integrated directly onto the motherboard.

How many drive connections does Intel's Matrix RAID controller provide, and when did it appear?

It offers six SATA ports at 3 Gbit/s each plus a single legacy IDE connector running at 100 Mbit/s. This configuration dates to the period around the introduction of ATAPI-4 and Ultra-DMA-Mode, when ATA-based RAID was first becoming practical.

More in Computer Storage 1-24

Spotted an error? Know more?

Reader corrections go straight into our review queue. Suggest an edit · How this site is sourced

Comments

Loading…
Open in the interactive codex →