what is storage array? Types of storage arrays

what is storage array? Types of storage arrays

As data volumes grow beyond what a single server’s internal drives can handle, organizations turn to storage arrays — dedicated systems built to hold, protect, and serve large amounts of data to multiple servers at once. This article explains what a storage array is, how it’s built, and the major architectural types you’ll encounter in real environments.

What Is a Storage Array?

A storage array is a dedicated hardware system containing multiple disk drives (HDD, SSD, or a mix), managed by one or more controllers, and presented to servers as usable storage over a network or direct connection. Unlike a single disk in a PC, an array combines drives using RAID or similar data-protection schemes, adds caching, and exposes storage through protocols like Fibre Channel, iSCSI, or NFS/SMB.

graph TD
    subgraph Storage Array
    Ctrl1[Controller A] --- Ctrl2[Controller B]
    Ctrl1 --- Disks[Disk Shelf: HDD/SSD Drives]
    Ctrl2 --- Disks
    end
    Ctrl1 -->|FC/iSCSI| Server1[Server 1]
    Ctrl2 -->|FC/iSCSI| Server2[Server 2]
    Disks -->|NFS/SMB| FileClient[File Access Clients]

Core Components

ComponentRole
ControllersThe “brains” — manage RAID, caching, and host connectivity; typically dual for redundancy
Disk shelves/enclosuresHouse the physical drives, connected to controllers via SAS or similar
Cache (RAM/NVRAM)Absorbs writes and speeds reads before committing to slower media
Front-end portsConnect to servers (FC, iSCSI, NFS, SMB)
Back-end connectionsConnect controllers to disk shelves (typically SAS)

Storage Array Categories by Access Type

Block Storage Arrays (SAN)

Present raw block devices (LUNs) to servers, which format them with their own filesystem, exactly as if they were local disks. Accessed via Fibre Channel or iSCSI.

FeatureDetail
Access protocolFC, iSCSI, FCoE
Presented asRaw block devices (LUNs)
Filesystem controlManaged by the connecting host
Typical useDatabases, VM datastores, high-performance applications

File Storage Arrays (NAS)

Present a ready-to-use filesystem over the network using NFS (Linux/Unix) or SMB/CIFS (Windows), rather than raw block devices.

FeatureDetail
Access protocolNFS, SMB/CIFS
Presented asShared folders/mount points
Filesystem controlManaged by the array itself
Typical useUser file shares, home directories, general-purpose file storage

Object Storage Arrays

Store data as discrete objects, each with data, metadata, and a unique identifier, accessed via HTTP-based APIs (most commonly S3-compatible).

FeatureDetail
Access protocolHTTP/REST (S3-compatible, etc.)
Presented asObjects via API, not a filesystem/block device
ScalabilityExtremely high — designed for massive scale-out
Typical useBackups, archives, cloud-native applications, large unstructured datasets

Unified Storage Arrays

Many modern arrays support block, file, and sometimes object access simultaneously from a single platform — reducing the need for separate dedicated systems for each access type.

Comparison: SAN vs NAS vs Object

FactorSAN (Block)NAS (File)Object
Access methodFC/iSCSI LUNsNFS/SMB sharesHTTP/REST API
PerformanceHighest, low latencyGood for general file accessHigher latency, optimized for throughput/scale
ScalabilityModerate (array-bound)ModerateVery high (scale-out)
Best forDatabases, VMsFile shares, user dataBackup, archive, big unstructured data
Metadata handlingNone (raw blocks)Basic filesystem metadataRich, customizable metadata per object

Storage Array Architectures

Monolithic (Dual-Controller) Arrays

The traditional design: two controllers in an active-active or active-passive configuration, sharing a common set of disk shelves. Simple, well-understood, and still very common in mid-range deployments.

Scale-Out Arrays

Add capacity and performance by adding more nodes, each contributing both storage and processing power, working together as a single logical system (common in modern NAS and object storage platforms). This avoids the ceiling imposed by a fixed pair of controllers.

Hyperconverged Infrastructure (HCI)

Storage, compute, and networking are combined within the same cluster of servers rather than existing as a separate dedicated array — software-defined storage pools local disks across nodes into a shared resource.

graph LR
    subgraph Scale-Out Cluster
    N1[Node 1: Compute+Storage] --- N2[Node 2: Compute+Storage]
    N2 --- N3[Node 3: Compute+Storage]
    N3 --- N1
    end
    N1 --> Net[Network]
    N2 --> Net
    N3 --> Net

RAID Levels Used in Arrays

RAID LevelDescriptionFault ToleranceUsable Capacity
RAID 0Striping, no redundancyNone100%
RAID 1Mirroring1 drive failure50%
RAID 5Striping + single parity1 drive failure(n-1)/n
RAID 6Striping + dual parity2 drive failures(n-2)/n
RAID 10Mirrored + striped1 per mirror pair50%

Most enterprise arrays today use RAID 6 or proprietary erasure-coding schemes for large capacity drives, since RAID 5’s single-parity protection leaves a dangerously long rebuild window vulnerable to a second failure on large modern drives.

Practical Example: Presenting Storage on Linux

Connecting to an iSCSI Target

sudo apt install open-iscsi

# Discover targets
sudo iscsiadm -m discovery -t sendtargets -p 10.0.0.50

# Log in to a discovered target
sudo iscsiadm -m node --targetname iqn.2020-01.com.example:array1 --login

# Confirm the new block device appeared
lsblk

Mounting an NFS Share from a NAS

sudo apt install nfs-common
sudo mkdir -p /mnt/nasshare
sudo mount -t nfs 10.0.0.60:/export/data /mnt/nasshare

# Persist across reboots
echo "10.0.0.60:/export/data /mnt/nasshare nfs defaults 0 0" | sudo tee -a /etc/fstab

Checking Array Health via Python (SNMP Example)

from pysnmp.hlapi import *

def get_snmp_value(host, community, oid):
    iterator = getCmd(
        SnmpEngine(),
        CommunityData(community),
        UdpTransportTarget((host, 161)),
        ContextData(),
        ObjectType(ObjectIdentity(oid))
    )
    errorIndication, errorStatus, errorIndex, varBinds = next(iterator)
    if not errorIndication and not errorStatus:
        for varBind in varBinds:
            return varBind[1]
    return None

# Example OID would be vendor-specific for array health status
value = get_snmp_value("10.0.0.50", "public", "1.3.6.1.2.1.1.1.0")
print(f"Array system description: {value}")

Best Practices

  • Match the array type to the workload: block for databases/VMs, file for shared user data, object for backup/archive/unstructured scale.
  • Always deploy dual controllers/redundant paths — a storage array is often a single point of failure for many servers at once.
  • Use RAID 6 or erasure coding rather than RAID 5 on large modern drives, given rebuild-time risk.
  • Monitor capacity trends proactively; running an array to near-full capacity degrades performance and risks outages.
  • Separate management traffic from data traffic on dedicated networks/VLANs where possible.
  • Plan for growth — scale-out architectures avoid painful forklift upgrades later.

Troubleshooting

SymptomLikely CauseFix
LUN not visible on hostZoning/masking misconfigurationVerify LUN masking and FC/iSCSI zoning
Degraded performanceController overload, cache exhaustion, failed diskCheck controller stats, disk health
Array shows degraded RAIDFailed driveReplace drive, monitor rebuild progress
NFS mount hangsNetwork issue or NFS server overloadCheck network path, NFS server load
Capacity alertsArray nearing fullExpand capacity or archive/delete data

Further Reading

Conclusion

Storage arrays come in many shapes, but they all solve the same fundamental problem: reliably storing large amounts of data and serving it efficiently to multiple consumers at once. Understanding the tradeoffs between block, file, and object access — and the underlying architectures behind them — is essential for choosing (and troubleshooting) the right storage platform for any given workload.

Total
0
Shares

Leave a Reply

Previous Post
what are the different types of solid state media

what are the different types of solid state media

Next Post
Book Review - Linked: The New Science of Networks By Albert-László Barabási

Book Review – Linked: The New Science of Networks By Albert-László Barabási

Related Posts