Storage Performance fundamentals

1. Throughput

Throughput is simply, the amount of material or items passing through a system or process. Another term for Throughput is Bandwidth. You can think of it as how fast can I transfer data in and out of my storage array.

Typically Measured as:
Data volume per second (sometimes per hour for larger volumes)

2. IOPs

Input and/or Output operations per second is the number of I/O Operations currently occurring. Some systems have fixed I/O sizes which is easier to calculate from, others will report at any given time what the I/O size is anyway.

Typically Measured as :
I/O per second = Input and/or Output / second

IOPs in a storage array is typically measured as front end IOPs to or from the host

Back end IOPs is to or from the storage media.

3. Latency ( response time )

Typically Measured as :
milliseconds or microseconds to respond to a host I/O

Storage concepts

Storage Architecture Concepts.

RAID Architectures

RAID – Redundant Array of Independent Disks

Typically drives of varying sizes can be used in a RAID configuration, however they will also size to the lowest drive format / geometry.

If you want to understand RAID concepts in more details, you can check the WIKI and various other online places rather than have me repeat it all here. Modern All Flash storage arrays that are less concerned with performance will primarily go with a dual or triple parity RAID for HA / Resilience


Good for performance , but no fault tolerance – striping


Good for read performance – mirroring


Forget RAID 2 – I have never in 20+ years used this


Forget RAID 3 – I have never in 20+ years used this


Forget RAID 4 – I have never in 20+ years used this


Good for performance. Block level striping with a single parity bit distributed over all the drives in the group. A minimum of 3 drives is required, 2 data and 1 parity but typically around 5-7 drives would be used as it allows for 1 failed drive but you don’t want to build your stripe too wide. Typically used with performance based 10K HDDs.


Good for resilience, similar to RAID 5, but has an additional parity bit (2). Write performance is traded off for redundancy as for every write you to also write 2 data bits so read performance could be 3x better than write performance. Often used for very wide stripes such as 18+2 or even wider when you are trying to maintain performance with data resilience.

Non RAID Architectures


Just a Bunch Of Disks.


Similar to RAID, but just a concatenation of drives to be used in a single volume and drives can be varying sizes, which is not good from a performance stand point.


Massive Array of Idle Drives, typically used for Write Once, Read Occasionally. Not a performance tier.


Erasure Coding and RAID can sometimes be confused. You can use Erasure Coding in a similar way as RAID, however data is distributed and encoded (and can also contain parity data). Erasure Coding will use less capacity than RAID.

Erasure Coding is also used for things like distributed applications and Object storage providing redundancy at scale.