Today, there are a variety of architectures, fabrics, and protocols that can be utilized for Storage Area Networks (SANs). Because of this, the challenges in choosing the right approach, fabric, and protocol to optimize application performance are not trivial, nor are all the tradeoffs obvious when making such as choice. The choice of a storage architecture (and the fabric and protocols utilized) is generally driven by four factors:
1) The “scale” of the SAN; e.g., how many nodes need to access the shared storage pool.
2) The performance required, as measured by throughput (either bandwidth or packets per second for a given packet size) and latency (the time it takes to complete a storage command).
3) The consistency of the performance that applications require before their availability is compromised.
4) Whether a dedicated SAN can be utilized, or whether a converged network is required, either due to economics or other constraints.
For applications that can afford a dedicated SAN and require thousands of nodes sharing the same storage namespaces and/or significant throughput per initiator node with low jitter and low latency, Fibre Channel (FC) has several advantages over Ethernet-based fabrics. While converged Ethernet networks (one that operates as both a SAN and a LAN) are more economical and can boast clock speeds of up to 100Gb/second today, network congestion can be a significant issue for converged networks, impairing the usable bandwidth delivered and significantly adding to jitter. While utilizing a dedicated Ethernet-based SAN would reduce these effects, it also significantly increases SAN costs.
For use cases where a dedicated SAN is not desirable or economical, Ethernet converged networks utilizing NVMe over Fabric protocols for the SAN generally offer the best performance and latency, though storage architects must pay attention to the effects of congestion on SAN performance. Understanding where the boundary lies between these two problem spaces, and what to do when in this “gray area”, is critical to ensure that your choice meets the shared storage needs of your application.