Glossary
All-flash array
An all-flash array is a networked storage system built only from flash drives, with no hard disks, that presents shared capacity to many servers. Most designs place two controllers in front of the drives. It serves latency-sensitive workloads such as databases and virtual machines, and its cost per terabyte and controller ceiling shape how far it grows.
Controllers, cache and drive shelves
Most arrays pair two controllers, small servers running the array software, with one or more shelves of flash drives, now mostly NVMe. Writes land in protected memory mirrored on both controllers and are acknowledged at once, then gathered into large sequential writes before reaching flash, a pattern that keeps internal housekeeping and wear low. If one controller fails, its partner keeps serving. Servers usually see the array as block storage over a storage area network, and many arrays also serve files.
Data reduction is part of the design
Because flash costs more per terabyte than disk, all-flash arrays almost always deduplicate and compress data as it is written, and quote capacity as an effective figure after reduction. Results depend heavily on the data. Virtual machine images and databases often reduce well. Media files, encrypted data and many scientific formats are already dense and barely shrink, as described under storage compression. Ratios also shift over time, because deleting data that shares many blocks with other data frees less space than its logical size suggests.
For example, an array with 100 TB of usable flash quoted at 300 TB effective assumes three-to-one reduction. Filled with video, it holds close to 100 TB.
Where the model strains
Three limits appear as data grows. The controllers are a fixed amount of processing, so beyond a point added drives add capacity but no speed. Capacity beyond the largest shelf configuration means a second array, with its own management, upgrade cycle and free space that cannot be shared with the first. And every terabyte nobody reads is still paid for at flash prices. Several arrays bought for separate projects over successive years is a common route to storage sprawl.
Replacement adds a fourth constraint. Arrays are typically retired after a support period of several years, and the data on them has to move to the successor. Each migration is a project of its own, with its own window, cutover and risk, and an estate of many arrays turns that into a recurring workload. Designs that let controllers be upgraded in place, or that add and retire nodes without moving whole datasets, aim to remove the forklift step.
Which data uses the flash
Read activity on a typical array concentrates in a small region while most capacity sits untouched for months. Transactional databases, virtual desktops and server virtualization, where many small requests wait on storage, are the workloads that gain from flash latency. Backups, archives, finished projects and large unstructured datasets gain little. Storage tiering moves idle data to cheaper capacity and keeps the array as the fast tier. The flash-and-disk alternative is described under hybrid flash array.