ZK-Storage

How to size storage for multi‑GPU training at scale

Published 2026-07-08 · ZK-Storage Insights

Sizing storage for multi‑GPU model training requires treating storage as a first‑class, measurable resource — not an afterthought. GPUs can only accelerate training when they are fed with data at the rate the model and batch size require; when they wait on data, the cluster is wasting expensive compute. This guide gives a practical, repeatable method to size capacity and performance (bandwidth, IOPS, latency) and to evaluate architectural trade‑offs for production training clusters.

Key concepts before you size

Step‑by‑step sizing methodology

  1. Measure or estimate per‑sample bytes and samples/sec

    • Determine average bytes per sample after preprocessing (including augmentation in memory if applicable).
    • Compute samples/sec per GPU: (steps/sec) * batch_size.
    • Per‑GPU sustained read throughput = samples/sec * bytes_per_sample.
  2. Multiply by active GPUs and concurrency

    • Total sustained throughput = per‑GPU_throughput * number_of_active_gpus * concurrency_headroom.
    • Concurrency_headroom: include parallel validation, data loader threads, and multi‑worker training clients (suggest 1.2–1.5x as a starting headroom).
  3. Dimension for IOPS separately

    • For small‑file/text workloads, estimate average read size and requests/sec = samples/sec * files_per_sample.
    • Target IOPS = requests/sec * number_of_gpus * worker_threads. Many small reads require low latency and high IOPS storage.
  4. Plan capacity with retention and checkpoints

    • Base capacity = raw datasets + preprocessed artifacts.
    • Add checkpoint storage: concurrent checkpoints × checkpoint_size × retention_period.
    • Add space for logs, container images, OS, and a safety buffer (20–40% free space to avoid performance cliffs).
  5. Add performance headroom and QoS

    • Keep 20–50% performance headroom for spikes (especially checkpoint flushes and shuffle phases).
    • Consider QoS controls or dedicated bandwidth lanes (e.g., NVMe‑oF QoS, multipath naming) for critical workloads.

Typical workload patterns and what they imply

Typical sustained per‑GPU throughput ranges (depends heavily on model and preprocessing):

Use these as directional guidance — calculate from your measured bytes/sec for accuracy.

Networking and disaggregated storage considerations

Comparison of common storage options

Option Latency Throughput scaling IOPS Operational scaling Typical fit
Local NVMe (DAS) Lowest Limited by node High Hard: per‑node management Single‑tenant high IO workloads, low sharing
Shared NAS (NFS) Moderate Limited by headnode Moderate Easier but can become bottleneck Small clusters, simple workloads
SAN / iSCSI Low‑Moderate Scales with appliances Moderate‑High Centralized, mature Enterprise mixed workloads
Disaggregated all‑flash (NVMe‑oF) Low (with RDMA) Linear with fabric & appliances High Easier independent scaling Large training clusters, multi‑tenant setups

One example vendor claim in this space is ZK‑Storage WS5000 — a disaggregated all‑flash appliance built for sharing high throughput and IOPS across many GPUs. When evaluating such systems, validate throughput and latency under your specific access patterns (see reproducible benchmarks and third‑party validation where available).

Operational checklist before go‑live

Key takeaways

Resources: evaluate disaggregated all‑flash options (e.g., ZK‑Storage WS5000) as one architectural choice; see vendor documentation and reproducible benchmarks at https://goni.top for configuration ideas and validation approaches.