Proxmox VE exposes a unified storage model — LVM-thin, ZFS, NFS, Ceph, directory — through one Storage abstraction. This guide configures the three you will reach for first: local LVM-thin, ZFS, and an NFS share for ISO/backup.
Prerequisites
- A working Proxmox VE 8 host.
- At minimum the boot disk (already in
local-lvm/local). - For ZFS: a spare disk (or two for mirror).
- For NFS: a reachable NFS server (TrueNAS, Synology, plain Linux NFS).
Step 1: Inspect what you already have
pvesm status
df -hT
zpool list 2>/dev/null
lvs
A fresh install gives you local (directory /var/lib/vz — ISOs, templates, backups) and local-lvm (LVM-thin pool on the same disk — VM disks). That is the bare minimum.
Step 2: Add a ZFS pool for VM disks
For a single-disk pool (lab):
zpool create -o ashift=12 tank /dev/sdb
For a mirror (recommended for production data):
zpool create -o ashift=12 tank mirror /dev/sdb /dev/sdc
For RAID-Z1 with three disks:
zpool create -o ashift=12 tank raidz1 /dev/sdb /dev/sdc /dev/sdd
Tune defaults:
zfs set compression=lz4 tank
zfs set atime=off tank
zfs set xattr=sa tank
zfs set acltype=posixacl tank
Add it to Proxmox storage:
pvesm add zfspool tank-vms --pool tank --sparse 1 --content images,rootdir
Now tank-vms shows up in the UI as a storage target for VMs and containers.
Step 3: Grow the existing LVM-thin pool
If you bought a bigger disk and want to extend the default local-lvm:
# Identify the VG
vgdisplay pve | head
# Add a PV
pvcreate /dev/sdd
vgextend pve /dev/sdd
# Grow the thin pool
lvextend -l +95%FREE /dev/pve/data
Skip 5 percent free — LVM-thin needs metadata headroom.
Step 4: Attach an NFS share
# From the Proxmox UI: Datacenter → Storage → Add → NFS
# Or via CLI:
pvesm add nfs nas-backup \
--server 10.0.10.20 \
--export /export/proxmox-backups \
--content backup,iso,vztmpl
Behind the scenes Proxmox writes /etc/pve/storage.cfg:
nfs: nas-backup
export /export/proxmox-backups
path /mnt/pve/nas-backup
server 10.0.10.20
content backup,iso,vztmpl
Confirm:
pvesm status
ls /mnt/pve/nas-backup/
Step 5: Storage roles — content types
| Content type | What lives there |
| --- | --- |
| images | VM disk images |
| rootdir | LXC container root filesystems |
| iso | ISO images for installs |
| vztmpl | LXC templates |
| backup | vzdump backup archives |
| snippets | cloud-init / hookscript snippets |
Pick the right mix per storage. A dir/NFS share is fine for backup,iso,vztmpl; production VM disks should sit on ZFS or LVM-thin.
Step 6: ZFS snapshots vs Proxmox snapshots
Proxmox UI snapshots use the underlying storage's mechanism. On ZFS storage you get fast, cheap snapshots:
qm snapshot 101 pre-upgrade
zfs list -t snapshot | grep vm-101
The Proxmox snapshot becomes a ZFS snapshot tagged with the snapshot name — visible from zfs list -t snapshot. Delete via the UI or qm delsnapshot.
Verify
pvesm status
zpool status
df -hT | grep pve
mount | grep pve
Conclusion
local-lvm for boot-disk VMs, a dedicated ZFS pool for production VMs, an NFS share for ISOs and backups — three storage backends and you cover every common case.
Next steps
- Build VMs that use this storage via Create your first VM.
- Wire in offsite backup via Proxmox Backup Server.
- Install the OS first if you skipped ahead — see Install Proxmox VE 8.
Comments
0 total · 0 threads