Implementing Ethernet Network Technologies in Storage Environments

Implemening the Ethernet network technologies

When I first got hands-on with a storage cluster that leaned entirely on Ethernet instead of a dedicated Fibre Channel fabric, I remember being surprised at how much the humble Ethernet frame had grown up. What used to be “just the office network” is now carrying iSCSI, NFS, SMB, RoCE, and even NVMe-oF traffic for mission-critical databases. In this article I want to walk you through everything I’ve learned about implementing Ethernet in storage networking — from the basics of frames and switching all the way up to lossless Ethernet, RDMA, and enterprise deployment patterns.

Why Ethernet Matters in Storage Networking

Ethernet is the most widely deployed Layer 1/2 technology on the planet. Its ubiquity is exactly why storage vendors have spent the last two decades building storage protocols on top of it. I’ve worked in shops that run pure Fibre Channel SANs, pure Ethernet-based NAS/iSCSI environments, and hybrid FCoE deployments. In every case, the underlying design principles of Ethernet — collision domains, broadcast domains, switching, and now lossless extensions — determine whether the storage layer performs well or becomes a bottleneck.

A Quick History: From Shared Media to Switched Fabric

Ethernet started life as a shared coaxial bus (10BASE5, 10BASE2) where every device on the segment fought for the same collision domain using CSMA/CD (Carrier Sense Multiple Access with Collision Detection). I don’t work with these anymore, but understanding the evolution helps explain why modern switched Ethernet behaves the way it does:

EraStandardSpeedMediaTopology
1980s10BASE5/10BASE210 MbpsCoaxBus
1990s10BASE-T10 MbpsCat3/Cat5 UTPStar (hub)
Late 1990s100BASE-TX (Fast Ethernet)100 MbpsCat5 UTPStar (switch)
2000s1000BASE-T (Gigabit)1 GbpsCat5e/Cat6Switched
2010s10GBASE-T / SFP+10 GbpsCat6a, DAC, fiberSwitched
2015+25/40/50 GbE25-50 GbpsSFP28, QSFP+Switched
2018+100/200/400 GbE100-400 GbpsQSFP28/QSFP-DDSwitched/spine-leaf

Modern data centers have completely moved away from shared collision domains. Every port on a modern switch is its own collision domain, and full-duplex operation means collisions are effectively a non-issue in properly implemented networks.

Ethernet Frame Structure

Understanding the frame format matters when you’re troubleshooting storage traffic with a packet capture tool like Wireshark:

| Preamble (7B) | SFD (1B) | Dest MAC (6B) | Src MAC (6B) | 802.1Q Tag (4B, optional) | EtherType/Length (2B) | Payload (46-1500B) | FCS (4B) |

Key fields I pay attention to during storage troubleshooting:

  • 802.1Q VLAN tag — critical for separating storage VLANs from general LAN traffic.
  • EtherType — identifies the next-layer protocol (0x0800 for IPv4, 0x8906 for FCoE, 0x8100 for 802.1Q).
  • FCS (Frame Check Sequence) — CRC32 checksum; if I see incrementing FCS errors on a storage-facing interface, that’s usually a cabling or transceiver problem, not a software one.

Jumbo Frames for Storage Traffic

One of the first things I configure on any storage-dedicated Ethernet segment is jumbo frames. Standard Ethernet MTU is 1500 bytes; storage protocols like iSCSI and NFS benefit heavily from a 9000-byte MTU because it reduces the number of frames needed to move large blocks of data, cutting CPU interrupt overhead.

# Linux - set jumbo frames on an interface
ip link set dev eth0 mtu 9000

# Verify
ip link show eth0

# Cisco switch - set jumbo MTU system-wide (Nexus)
switch(config)# system jumbomtu 9216
switch(config)# policy-map type network-qos jumbo
switch(config-pmap-nq)# class type network-qos class-default
switch(config-pmap-nq-c)# mtu 9216

Important rule I always follow: jumbo frames must be configured end-to-end — on the host NIC, every switch in the path, and the storage array’s network interface. A single device stuck at 1500 MTU will cause fragmentation or silent packet drops, and I’ve spent painful afternoons chasing exactly that mismatch.

Ethernet Speeds and When to Use Them

SpeedTypical Use Case in Storage
1 GbEManagement networks, legacy iSCSI (low-throughput)
10 GbEStandard iSCSI/NFS storage traffic, small-to-mid VMware clusters
25 GbEModern all-flash array front-end, per-port cost-efficient upgrade from 10G
40/100 GbEStorage backend/east-west traffic, hyperconverged clusters, NVMe-oF
200/400 GbESpine switches in large-scale software-defined storage fabrics

Switching Fundamentals for Storage Networks

Layer 2 Switching and VLANs

I always isolate storage traffic into its own VLAN(s), separate from general application or management traffic. This achieves:

  1. Broadcast domain containment — storage arrays are chatty on discovery protocols; you don’t want that noise hitting every host on the LAN.
  2. Security segmentation — limiting which hosts can even see the storage subnet.
  3. QoS enforcement — applying storage-specific queuing policies without touching unrelated traffic.
# Example: creating a dedicated storage VLAN on a Cisco switch
vlan 20
 name STORAGE-ISCSI
interface Ethernet1/1
 switchport mode access
 switchport access vlan 20
 spanning-tree portfast

Spanning Tree and Storage

Spanning Tree Protocol (STP) prevents Layer 2 loops but its convergence time (up to 30-50 seconds for classic STP) can cause storage timeouts during a topology change. In every storage deployment I’ve built, I either:

  • Enable PortFast on host-facing/storage-facing access ports so they skip the listening/learning states, or
  • Use Rapid PVST+ (802.1w) or MSTP for sub-second convergence, or
  • Move to a spine-leaf, loop-free Layer 3 ECMP fabric entirely, which avoids STP altogether in modern designs.

Link Aggregation (LACP)

For redundancy and bandwidth, I bond multiple physical NICs into a single logical link using LACP (802.3ad):

# Linux bonding configuration example
cat <<EOF > /etc/netplan/01-bond.yaml
network:
  version: 2
  bonds:
    bond0:
      interfaces: [eth0, eth1]
      parameters:
        mode: 802.3ad
        lacp-rate: fast
        mii-monitor-interval: 100
EOF
netplan apply

On the switch side, both physical ports must be configured as members of the same port-channel:

interface port-channel10
 switchport mode trunk
interface Ethernet1/1
 channel-group 10 mode active
interface Ethernet1/2
 channel-group 10 mode active

Lossless Ethernet: DCB, PFC, and ETS

Traditional Ethernet is a “best-effort, lossy” transport — if a switch buffer fills up, frames get dropped and TCP handles retransmission. Storage protocols like FCoE and RoCEv2, however, need lossless behavior similar to Fibre Channel. This is where Data Center Bridging (DCB) comes in, made up of three IEEE standards I always configure together:

  1. Priority Flow Control (PFC — 802.1Qbb) — pauses specific traffic classes (by 802.1p priority) rather than the whole link, so storage traffic doesn’t get dropped under congestion.
  2. Enhanced Transmission Selection (ETS — 802.1Qaz) — guarantees a minimum bandwidth allocation per traffic class.
  3. Data Center Bridging Exchange (DCBX) — a discovery protocol (built on LLDP) that lets switches and NICs negotiate these settings automatically.
# Example: Cisco Nexus PFC configuration for a storage class
class-map type qos match-all class-storage
 match cos 3
policy-map type qos storage-qos
 class class-storage
  set qos-group 3
policy-map type network-qos jumbo-storage
 class type network-qos class-storage
  pause
  mtu 9216

RDMA over Converged Ethernet (RoCE)

RoCE lets applications bypass the CPU and OS kernel and write directly into remote server memory, which is huge for storage performance (used heavily in NVMe-oF and some hyperconverged platforms like VMware vSAN’s RDMA transport). There are two versions:

  • RoCEv1 — operates directly at Layer 2, not routable.
  • RoCEv2 — encapsulated in UDP/IP, routable across Layer 3, and the one I recommend for anything beyond a single rack.

RoCE absolutely requires a lossless Ethernet fabric (PFC/ETS configured correctly) — without it, retransmissions destroy the low-latency benefit RDMA is supposed to provide.

iSCSI Over Ethernet: A Practical Example

iSCSI is probably the most common storage protocol riding on plain Ethernet. Here’s a real configuration flow I use when standing up an iSCSI target/initiator relationship on Linux:

# Target side (using targetcli on a Linux storage server)
targetcli
/> backstores/block create disk1 /dev/sdb
/> iscsi/ create iqn.2026-01.com.example:storage.disk1
/> iscsi/iqn.../tpg1/luns create /backstores/block/disk1
/> iscsi/iqn.../tpg1/acls create iqn.2026-01.com.example:client1
/> saveconfig

# Initiator side
iscsiadm -m discovery -t sendtargets -p 192.168.20.10
iscsiadm -m node -T iqn.2026-01.com.example:storage.disk1 -p 192.168.20.10 --login
lsblk

For performance and redundancy, I always configure MPIO (Multipath I/O) across at least two separate Ethernet paths so a single NIC or switch failure doesn’t take down storage access.

Performance Considerations

  • Flow control tuning — I always disable global (link-level) pause frames when using DCB/PFC, since they conflict.
  • NIC offloads — enabling TCP Segmentation Offload (TSO), Large Receive Offload (LRO), and checksum offload on storage NICs reduces host CPU overhead significantly.
  • Queue depth and interrupt coalescing — tuning these on 10/25/100GbE NICs prevents CPU interrupt storms under high IOPS workloads.
  • Buffer/Bandwidth-Delay Product — for iSCSI over longer distances (DR replication), TCP window sizing needs to match the bandwidth-delay product or throughput will stall well below link speed.

Security for Storage Ethernet Networks

I treat storage networks as a high-value target and apply layered protections:

  • Physical/logical isolation — dedicated VLANs or even air-gapped physical switches for storage traffic.
  • iSCSI CHAP authentication — mutual CHAP between initiator and target prevents unauthorized LUN access.
  • Port security — restricting MAC addresses on storage-facing switch ports.
  • ACLs and private VLANs — to prevent lateral movement between storage endpoints.
  • Encryption in transit — IPsec for iSCSI where data sensitivity requires it (with a performance trade-off I always benchmark first).

Monitoring and Troubleshooting

Tools and counters I check first when storage-over-Ethernet performance looks off:

# Interface error counters
ethtool -S eth0 | grep -i -E "drop|error|discard"

# Switch-side interface counters (Cisco)
show interface ethernet1/1 counters errors
show interface ethernet1/1 | include "input rate|output rate"

# PFC/DCBX state
show interface priority-flow-control
show lldp dcbx interface ethernet1/1

Common issues I’ve run into:

  1. MTU mismatch — silent fragmentation, or worse, black-holed jumbo frames.
  2. Auto-negotiation mismatch — a NIC forced to 10G full-duplex against a switch port left on auto can cause massive error counters.
  3. Oversubscribed uplinks — a spine-leaf design where leaf-to-spine uplinks aren’t sized for the aggregate storage traffic behind them.
  4. Pause storms — misconfigured PFC causing head-of-line blocking across unrelated traffic classes.

Enterprise Deployment Patterns

In real deployments I’ve supported, Ethernet storage networking typically follows one of these designs:

  • Converged infrastructure (CI) — Dell EMC VxBlock, Cisco UCS with Nexus fabric interconnects, where storage and compute share the same Ethernet fabric but are logically separated via VLANs/VRFs.
  • Hyperconverged infrastructure (HCI) — VMware vSAN or Nutanix, where Ethernet (often RDMA-capable 25/100GbE) carries all east-west storage replication traffic between nodes.
  • Disaggregated NVMe-oF — high-performance clusters using RoCEv2 Ethernet fabrics to present NVMe storage across the network with near-local latency.
  • Cloud-integrated storage — on-prem NAS/SAN gateways (e.g., NetApp Cloud Volumes, Dell PowerScale) connecting via Ethernet WAN links for hybrid cloud tiering.

Ethernet vs. Fibre Channel (Quick Comparison)

FactorEthernet (iSCSI/NFS/RoCE)Fibre Channel
CostLower (shared infrastructure)Higher (dedicated fabric/HBAs)
ComplexityFamiliar to most network teamsRequires FC-specific skills
LatencyGood, excellent with RDMAExcellent, purpose-built
ConvergenceRuns alongside LAN trafficDedicated SAN fabric
ScalabilityVery high with modern switchingHigh, well-proven at scale

Neither is universally “better” — I choose based on existing skill sets, budget, and whether the environment already has an FC investment to protect.

Common Mistakes I See Repeatedly

  • Forgetting to configure jumbo frames on every hop, including the switch uplinks.
  • Mixing storage and general traffic on the same physical NIC without QoS.
  • Ignoring PFC deadlock scenarios in RoCE deployments with more than 3 hops.
  • Skipping MPIO and relying on a single NIC path for production storage.
  • Not baselining “normal” error counters before deployment, making later troubleshooting guesswork.

Frequently Asked Questions

Do I need dedicated switches for storage Ethernet traffic? Not strictly, but I strongly recommend dedicated VLANs at minimum, and dedicated physical switches for high-throughput or RDMA-based storage fabrics.

Is 10GbE still relevant in 2026? Yes, especially for mid-sized environments and secondary/backup networks, though 25GbE has become the new baseline for new all-flash deployments due to similar per-port pricing.

Can I run FCoE and iSCSI on the same switch? Yes, as long as the switch supports DCB and you separate the traffic classes properly with PFC/ETS.

What’s the biggest performance killer in Ethernet storage networks? In my experience, it’s almost always an MTU mismatch or an oversubscribed uplink — both are invisible until load increases.

Summary

Ethernet has evolved from a simple shared-media LAN technology into a legitimate storage fabric capable of carrying iSCSI, NFS, SMB, FCoE, and RDMA-based NVMe-oF traffic at multi-hundred-gigabit speeds. Getting it right for storage means paying attention to jumbo frames, lossless Ethernet extensions (PFC/ETS/DCBX), link aggregation, proper VLAN segmentation, and rigorous monitoring. I’ve found that most storage performance problems trace back to a handful of root causes — MTU mismatches, oversubscription, and misconfigured flow control — so building discipline around those from day one pays off enormously later.

References

  • IEEE 802.1Qbb, 802.1Qaz — Data Center Bridging standards
  • Cisco Nexus Data Center Networking documentation (cisco.com)
  • Dell EMC Networking and iSCSI best practices guides (dell.com)
  • VMware vSAN Network Design Guide (vmware.com)
  • SNIA Dictionary of storage networking terms (snia.org)
  • NetApp Ethernet Storage Best Practices (netapp.com)
Total
0
Shares

Leave a Reply

Previous Post
Implement the Fiber Channel technologies

Implementing Fibre Channel Technologies for Enterprise Storage

Next Post
Basics of converged storage network technologies

Basics of Converged Storage Network Technologies

Related Posts