Storage Area Networks
A storage area network carries block-storage traffic between host initiators and storage targets. The fabric, endpoint identities, zoning, logical-unit masking, and multipath software determine which hosts see each remote block device and how paths survive failures.
itStorage, backup, and data protection | OpenSkills.info
Course pathWalk it in order
Look it upDip in anytime
Go furtherLeaves this page
Don't Panic
Don't Panic — Storage Area Networks
A storage area network (SAN) is a dedicated network whose only job is to carry disk traffic between servers and storage systems. The server sees something that looks like a local hard drive. The actual blocks live on a storage array somewhere across the room, reached through a switch.
Before SANs, storage was mostly bolted inside each server. If one machine filled up while its neighbour had space to spare, that was simply too bad. A SAN pools the capacity and hands slices of it out over the network, so one array can serve many hosts and you can grow or reassign storage without opening a case.
Three ideas carry the whole topic. The first is the SCSI model of roles: an initiator, which is the server, sends storage commands; a target, which is the array, receives them; and a logical unit, addressed by a number called a LUN, is the block device the target hands back.
The second is that names are deliberately permanent. Each port carries a fixed identifier — a worldwide name on Fibre Channel, an iSCSI qualified name on iSCSI — because the physical adapter and its network address can change, and the rules that grant access must not move when they do.
The third is that access control has two separate layers that both have to agree. Zoning lives in the fabric and decides which ports are allowed to talk to each other at all. LUN masking lives on the array and decides which initiators it will actually present a given logical unit to. You configure both, every time.
The surprise for most people is that presenting one logical unit to two servers does not give you shared storage. The transport moves blocks; it never coordinates who writes them. Put an ordinary file system on that device, mount it on two hosts, and they will quietly corrupt each other. Genuinely shared access needs a cluster-aware file system or an application that arranges the coordination itself.
The other trap is multipathing. You run two cables for redundancy and software merges them into one device. But two cables through a single switch, or into a single array controller, still fail together. Independent paths mean separate hardware the whole way from host to array.
For the rest of the course: the Intro gives you the full component map and the data path; the Slides lay the transports and access layers out side by side; the Cheatsheet is what you want open while tracing a request or choosing a control; and the Reference tab points at the standards and vendor documentation for exact procedures. The habit that pays off everywhere is following one request through every layer — host, fabric, target, array — and asking which layer owns what.
Where this skill leads
Relevant careers
See how this topic contributes to broader role-level skill maps.
Sources
- https://www.snia.org/education/storage_networking_primer/san/what_san
Supports
- SAN definition, components, use cases, switched fabrics, Fibre Channel, Ethernet, InfiniBand, SCSI, and NVMe
- https://www.rfc-editor.org/info/rfc3720/
Supports
- iSCSI mapping of SCSI over TCP
- Initiator, target, session, naming, authentication, and security model
- RFC 3720 published April 2004
- https://www.rfc-editor.org/info/rfc3721/
Supports
- iSCSI node names, addresses, and discovery
- Stable identity independent of adapter location
- https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/10/html/managing_storage_devices/overview-of-available-storage-options
Supports
- Fibre Channel, iSCSI, NVMe over Fabrics, and device-mapper multipath relationships
- https://www.techtarget.com/it-infrastructure/definition/What-is-Fibre-Channel-History-layers-components-and-design
Supports
- Fibre Channel project begun in the ANSI X3T9.3 task group in 1988
- FC-PH approved as ANSI X3.230-1994 in October 1994; broad deployment from about 1998
- https://en.wikipedia.org/wiki/Fibre_Channel
Supports
- Fibre Channel speed generations and market-availability years: 1GFC 1997, 8GFC 2008, 32GFC 2016, 64GFC 2020
- Framing and fabric services unchanged across speed generations
- https://en.wikipedia.org/wiki/Brocade_Communications_Systems
Supports
- Brocade's first product, the SilkWorm Fibre Channel switch, released in 1997
- https://datatracker.ietf.org/wg/ips/about/
Supports
- IETF IP Storage working group chartered to encapsulate SCSI and Fibre Channel over IP, producing iSCSI, FCIP, and iFCP
- https://www.rfc-editor.org/info/rfc3821/
Supports
- FCIP (Fibre Channel over TCP/IP) standardized in RFC 3821, published July 2004
- Tunneling Fibre Channel frames between fabric islands across IP networks
- https://en.wikipedia.org/wiki/Fibre_Channel_over_Ethernet
Supports
- T11 FC-BB-5 defined FCoE in 2009; published as ANSI/INCITS 462-2010
- FCoE encapsulates Fibre Channel frames in lossless 10 Gigabit Ethernet
- https://en.wikipedia.org/wiki/LIO_(SCSI_target)
Supports
- LIO merged into the Linux kernel with version 2.6.38 (March 2011) as the unified in-kernel SCSI target
- http://linux-iscsi.org/wiki/LIO
Supports
- LIO supports iSCSI, Fibre Channel, FCoE, and NVMe over Fabrics target fabrics
- targetcli backstores, TPGs, LUNs, and ACLs
- https://nvmexpress.org/wp-content/uploads/NVMe_over_Fabrics_1_0_Gold_20160605-1.pdf
Supports
- NVM Express over Fabrics revision 1.0 published June 5, 2016
- https://nvmexpress.org/specification/nvme-of-specification/
Supports
- NVMe-oF carries NVMe queues and commands across RDMA and Fibre Channel fabrics
- NVMe-oF revision 1.1 (2019) incorporated NVMe/TCP and end-to-end flow control
- Namespace and ANA model replacing SCSI LUN and ALUA on the fast path
- https://lwn.net/Articles/772556/
Supports
- NVMe/TCP transport binding (TP 8000) ratified November 2018
- NVMe over Fabrics over ordinary TCP/IP without special adapters
- https://nvmexpress.org/wp-content/uploads/March-2019-NVMe-TCP-What-You-Need-to-Know-About-the-Specification.pdf
Supports
- NVMe/TCP specification overview and ratification context
- https://en.wikipedia.org/wiki/NVMe_over_Fabrics
Supports
- NVMe over Fabrics 1.1 released 2019 with NVMe/TCP support
- https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/9/html/managing_file_systems/overview-of-available-file-systems_managing-file-systems
Supports
- XFS and ext4 are local file systems assuming single-host access; concurrent multi-host mounting requires a shared file system such as GFS2
- https://www.techtarget.com/searchdatacenter/tip/Mount-Global-File-System-2-avoid-corruption-in-RHEL-High-Availability
Supports
- Mounting an ordinary file system on shared storage from two nodes simultaneously corrupts it; cluster file systems synchronize the cache to avoid this
- https://fibrechannel.org/fibre-channel-zoning-fundamentals-and-fundamental-questions/
Supports
- Single-initiator zoning confines RSCN to the ports that need it and limits disruptive fabric notifications
- https://www.yellow-bricks.com/2010/03/04/single-initiator-zoning-recommended-or-not/
Supports
- RSCN interruptions can disrupt in-flight I/O; single-initiator zoning is recommended practice with a change-management cost
- https://www.cisco.com/c/dam/en/us/products/collateral/storage-networking/mds-9700-series-multilayer-directors/whitepaper-c11-737315.pdf
Supports
- Slow-drain device holds buffer-to-buffer credits and starves shared ISLs
- txwait / credit-zero histograms per port as the diagnostic signal for fabric congestion
- https://www.broadcom.com/products/fibre-channel-networking
Supports
- Broadcom Brocade Fibre Channel switches and Fabric OS: name server, zoning, congestion and credit counters
- https://www.cisco.com/c/en/us/products/storage-networking/mds-9000-series-multilayer-switches/index.html
Supports
- Cisco MDS 9000 Series Fibre Channel directors and switches: VSANs and slow-drain detection
- https://www.broadcom.com/products/storage/fibre-channel-host-bus-adapters
Supports
- Broadcom Emulex Fibre Channel host bus adapters: initiator ports with worldwide names
- https://www.marvell.com/products/fibre-channel-adapters-and-controllers.html
Supports
- Marvell QLogic Fibre Channel adapters: initiator ports, fabric speeds, NVMe over Fibre Channel support
- https://www.dell.com/en-us/shop/powermax/sf/power-max
Supports
- Dell PowerMax target array: masking views binding initiators, ports, and volumes; dual-controller design
- https://www.dell.com/en-us/shop/powerstore/sf/power-store
Supports
- Dell PowerStore target: block volumes over Fibre Channel, iSCSI, and NVMe over Fabrics
- https://www.netapp.com/data-storage/ontap/
Supports
- NetApp ONTAP: igroups for logical-unit masking; ALUA path states for volume ownership
- https://www.purestorage.com/products/flasharray.html
Supports
- Pure Storage FlashArray: host and host-group objects; Fibre Channel, iSCSI, and NVMe over Fabrics
- https://www.hpe.com/us/en/alletra-storage-mp-b10000.html
Supports
- HPE Alletra Storage MP B10000: disaggregated scale-out block storage over Fibre Channel, iSCSI, and NVMe over Fabrics
- https://www.ibm.com/flashsystem
Supports
- IBM FlashSystem: host mappings over Fibre Channel, iSCSI, FCoE, and NVMe over Fabrics
- https://www.hitachivantara.com/en-us/products/storage
Supports
- Hitachi Vantara Virtual Storage Platform: host groups defined per array port
- https://linux-iscsi.org/
Supports
- Linux-IO (LIO) in-kernel target with targetcli: fileio and block backstores, ACL-based logical-unit masking
- https://www.starwindsoftware.com/starwind-virtual-san
Supports
- StarWind Virtual SAN: software iSCSI and NVMe over Fabrics targets with synchronous replication
- https://www.truenas.com/
Supports
- TrueNAS: storage operating system with a built-in iSCSI target for initiator discovery, target naming, and CHAP
