Skip to main content
RunBook Academy

Proxmox VEV · Storage FundamentalsStorage concepts

Storage fundamentals: block, file, object

Foundation⏱ ~14 min

What you'll learn

  • Distinguish block, file, and object storage
  • Map common workloads to the right storage class
  • Recognise the trade-offs between access patterns
  • Choose between local, shared, and distributed storage at a high level

Prerequisites

Verified against Proxmox VE 9.2.4 · Proxmox Backup Server 4.2.5 · Ceph Squid / Tentacle · Debian 13 (Trixie) · Linux kernel 7.0 (PVE 9.2 default) · 2026-08-07

Not yet marked complete on this device.

Why this matters in production

Storage is the most common performance and availability bottleneck. Picking the wrong storage class for a workload produces a system that is technically correct but operationally miserable. This lesson introduces the three primitives so the rest of the storage lessons have a common vocabulary.

The three primitives

Block storage

A virtual disk the guest treats as a raw block device. The guest owns the filesystem; the hypervisor just provides durable storage underneath.

Examples: VM disks on LVM, ZFS zvols, Ceph RBD, iSCSI LUNs.

flowchart LR
  G[Guest filesystem: ext4 / xfs / ntfs] --> D[Virtual disk]
  D --> H[Hypervisor block layer]
  H --> S[Physical disk]

Characteristics:

  • Random-access reads and writes at block granularity.
  • Best performance for VM workloads.
  • Snapshots are filesystem-agnostic (a snapshot is just “don’t deallocate these blocks”).
  • Storage stack decides snapshot semantics (ZFS, Ceph, LVM, file-backed qcow2).

File storage

A filesystem exposed over a network protocol (NFS, SMB). The guest or application sees a directory tree. Multiple clients can share the same filesystem.

Examples: NFS mount used for VM disks; SMB share for file server VMs.

flowchart LR
  A[Client] --> N[NFS / SMB protocol]
  N --> S[Server filesystem]

Characteristics:

  • Good for shared data (file server VMs, ISO storage, templates).
  • Locking semantics are protocol-dependent; NFS is “best effort” concurrent.
  • Performance depends on the protocol and the server’s ability to handle concurrency.

Object storage

A flat namespace of objects addressed by key. Designed for massive scale-out. Examples: S3, Ceph RGW, MinIO.

Examples: PBS S3 datastores (where supported), archive storage.

flowchart LR
  A[Application] --> H[HTTP API]
  H --> O[Object store]

Characteristics:

  • Virtually unlimited scale (no single namespace bottleneck).
  • Eventual consistency in many implementations; not a database substitute.
  • Best for archival, backups, large blobs.

How Proxmox uses each

PrimitiveProxmox use case
BlockVM disks (KVM/QEMU); primary workload
FileNFS for VM disks; ISO/template storage; backup staging
ObjectOptional: PBS S3 datastores, object-storage-based snapshots

The local-vs-shared-vs-distributed axis

Independent of the access primitive, storage can be:

TopologyWhat it isExamples
LocalPhysically attached to one nodeLocal ZFS, LVM on local SSDs
SharedOne device shared by multiple nodes via networkNFS server, iSCSI SAN, FC
DistributedSoftware-defined, replicated across nodesCeph, S3-compatible clusters

These axes combine: block storage can be local (LVM on local disk) or distributed (Ceph RBD). File storage is usually shared (NFS). Object storage is usually distributed.

Choosing for a workload

WorkloadRecommended
Single-VM critical service, single siteLocal ZFS on enterprise SSDs
Mixed Linux + Windows fleet, single siteShared SAN (NFS or iSCSI)
Multi-site with DRDistributed Ceph, with PBS off-site sync
Archival / cold storageObject storage (S3-compatible) or NFS to a tape-attached server
Container workloadsLocal ZFS for speed; Ceph for distributed

Hands-on lab (Mode C)

For a given workload list, classify each VM’s storage requirement:

  1. What primitive (block/file/object)?
  2. What topology (local/shared/distributed)?
  3. What performance class (low/medium/high IOPS)?

A 4-vCPU app server with 200 IOPS belongs on local block. A 40-VM cluster with replication needs distributed block (Ceph). A 200 TB archive needs object storage.

Common mistakes

  • Using NFS for high-IOPS VM disks. NFS adds latency and contention; Ceph RBD or local ZFS is faster.
  • Treating object storage as a database. It is not.
  • Putting all VM disks on a single shared LUN; if the LUN fails, every VM is down.

Key takeaways

  • Block, file, and object are the three primitives.
  • VM disks are almost always block.
  • Local, shared, and distributed are independent choices from the primitive.

Knowledge check

Knowledge check · 3 questions

  1. Q1. Which storage primitive is the default for VM disks in Proxmox?

  2. Q2. Which of the following are valid Proxmox storage topologies? (Select all that apply.)

  3. Q3. Object storage can replace a relational database.

Passing score: 75%. Answers are checked in this browser.