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-12
○Not yet marked complete on this device.
Storage arguments in virtualisation teams are usually arguments about
technology. They are more usefully arguments about capabilities, because a
capability is something you either have on a Tuesday afternoon or do not.
Proxmox VE publishes the matrix. This lesson reads it, explains what each column
costs, and turns it into four questions.
The documented matrix
Storage type
Plugin
Level
Shared
Snapshots
ZFS (local)
zfspool
both — VM disks are zvols
no
yes
Directory
dir
file
no
qcow2 only
BTRFS
btrfs
file
no
yes — technology preview
NFS
nfs
file
yes
qcow2 only
CIFS
cifs
file
yes
qcow2 only
Proxmox Backup
pbs
both
yes
n/a
CephFS
cephfs
file
yes
yes
LVM
lvm
block
no — but see below
volume chains, PVE 9+
LVM-thin
lvmthin
block
no
yes
iSCSI (kernel)
iscsi
block
yes
volume chains, PVE 9+
iSCSI (libiscsi)
iscsidirect
block
yes
volume chains, PVE 9+
FC / SAS
handled natively
block
yes
volume chains, PVE 9+
Ceph / RBD
rbd
block
yes
yes
ZFS over iSCSI
zfs
block
yes
yes
Three footnotes in that table carry most of the operational meaning.
Shared, for LVM over a SAN. LVM’s own “shared” column is no, but the
documentation qualifies it: with iSCSI, Fibre Channel or SAS block storage as
shared storage in a cluster, LVM splits the LUN into virtual disks. That is the
shared-LVM-over-SAN arrangement, and it is genuinely shared — the plugin is not
what shares, the LUN is.
Snapshots on file-level backends need qcow2. The documentation is explicit:
on file-based storages, snapshots are possible with the qcow2 format, using
either the internal snapshot function or snapshots as volume chains — and
creating or deleting internal qcow2 snapshots blocks a running VM and is not
an efficient operation. A raw file on NFS has no snapshot capability at all.
LVM gained snapshots in PVE 9. Since Proxmox VE 9, snapshots as a volume
chain are available for VMs: the snapshot data lives in separate volumes which
are layered. This is a real change to a long-standing limitation, and it is the
single most likely thing to be out of date in an older runbook or in an
engineer’s memory.
What each capability actually buys
Shared
Shared means every node reads and writes the same data. It buys exactly two
things, and they are the two biggest operational features in the product:
Live migration without copying disks. Memory moves; disks stay. Seconds
rather than hours.
HA that can restart a guest anywhere. The HA stack needs the guest’s disks
to be reachable from whichever node it recovers onto.
Without shared storage neither is impossible, but both change character. Live
migration becomes live migration with local disks, which copies. HA becomes HA
constrained to nodes that hold a replica.
Snapshots
A snapshot is a rollback point taken in seconds. What it buys is the
confidence to change things — an upgrade you can undo, a configuration change
you can reverse, a test you can run on the real system.
Two things it is not. It is not a backup: it lives on the same storage as the
data, so it does not survive the storage failing, and on most backends it does
not survive the guest being deleted. And on file-level backends it is not free:
internal qcow2 snapshot creation and deletion block a running VM.
Thin provisioning
Buys density: allocate 100 guests with 100 GB disks on 4 TB of real storage,
and pay only for what is written. It is genuinely useful and it is how most
estates run.
The cost is that capacity becomes a thing you have to watch rather than a thing
you allocated. A thin backend hitting 100% does not politely refuse new
allocations — it fails writes to guests that already exist, which is a far worse
failure than a provisioning refusal.
Clones
Full clones copy; linked clones reference a base image. Linked clones make
template-based provisioning almost instant and almost free, at the price of a
dependency: the base image cannot be deleted while linked clones exist, and the
clones’ read performance depends on the base image’s.
The four questions
1. Do more than three nodes need to run this guest, and does it need HA?
If yes, you need shared storage or replication. Shared: Ceph/RBD, CephFS, NFS,
CIFS, or LVM over a SAN LUN. Replication: ZFS with pvesr, with an RPO you have
written down.
2. Do you need to roll back? If yes, you need snapshots — which rules out
raw on a directory or NFS store, and rules in ZFS, LVM-thin, RBD, CephFS, and
qcow2 on file-level storage.
3. Do you have a storage team and a SAN, or do you have servers with disks?
This is an organisational question and it decides more designs than the
technical ones. A SAN estate leads to LVM over FC/iSCSI. A commodity-server
estate leads to Ceph or ZFS. Fighting the organisation’s shape produces a
correct design nobody can operate.
4. What happens when it is full, and who finds out? Every thin backend needs
this answered before it is deployed. Which alert, at what threshold, to whom.
Read-only / Safewhat capabilities does this cluster actually have today— Read-only. The first call lists configured storages with their type and shared flag; the second shows capacity and activation. Read them together — a shared storage that is inactive on half the nodes is not providing what its flag claims.
local dir 0 iso,vztmpl,backup all
local-zfs zfspool 0 images,rootdir all
shared-rbd rbd 1 images,rootdir all
cephfs-shared cephfs 1 iso,vztmpl,snippets,backup all
pbs-primary pbs 1 backup all
Key takeaways
The documented matrix is the starting point, and three footnotes carry the
meaning: LVM is shared when the LUN underneath it is; file-level snapshots
require qcow2 and internal snapshot operations block a running VM; and
PVE 9 added snapshots as volume chains for LVM.
Every backend with snapshots also supports thin provisioning, and linked
clones follow the same property. Snapshot capability predicts the bundle.
Shared storage buys live migration without copying and HA that can recover
anywhere. Replication buys an approximation of both, with an RPO equal to the
schedule — write the number down.
A snapshot is a rollback point, not a backup: same storage, and often the same
lifetime as the guest.
Thin provisioning converts capacity from an allocation into a thing you
monitor. A full thin pool fails writes for existing guests, which is worse
than refusing new ones.
Choose with four questions: does it need shared access and HA; does it need
rollback; what shape is the organisation and its hardware; and what happens
when it fills, monitored by whom.
Get shared access and rollback right first. Both are hard to change later;
density and performance are not.
Knowledge check
Knowledge check · 5 questions
Q1. A guest disk is stored as a raw file on an NFS storage. The team wants to snapshot it before an application upgrade. What is the position?
Q2. Which single documented sentence lets you predict thin-provisioning support from the capability matrix without a separate column?
Q3. A three-node cluster uses local ZFS with pvesr replication every 15 minutes, and the design document says it provides HA. What should the document also state? Select all that apply.
Q4. Since Proxmox VE 9, LVM supports snapshots for VM disks as volume chains, so an LVM-backed design is no longer automatically excluded when rollback is a requirement.
Q5. An LVM-thin pool of 4 TB backs eighty guests provisioned at 500 GB each. Usage crosses 100%. What is the failure and what is the correct preparation?
Passing score: 75%. Answers are checked in this browser.