Last updated Jun 3, 2026
Create ZFS Pool & Datasets#
The media storage uses a ZFS mirror pool. A mirror protects against a single disk failure and is the minimum recommended setup for data you care about.
Create the pool#
Run this on the Proxmox host. Replace /dev/sdb and /dev/sdc with your actual data disk names (check with lsblk):
zpool create tank mirror /dev/sdb /dev/sdcThis creates a pool named tank using a two-disk mirror. The pool name tank is used throughout this documentation.
Verify the pool was created:
zpool status tankCreate datasets#
Create separate datasets for media and downloads. Datasets give you finer control over compression, snapshots, and quotas later.
zfs create tank/media
zfs create tank/media/movies
zfs create tank/media/tv
zfs create tank/media/downloadsVerify:
zfs listYou should see:
NAME USED AVAIL REFER MOUNTPOINT
tank ... ... ... /tank
tank/media ... ... ... /tank/media
tank/media/movies ... ... ... /tank/media/movies
tank/media/tv ... ... ... /tank/media/tv
tank/media/downloads ... ... ... /tank/media/downloadsEnable compression#
ZFS compression is transparent and effectively free on modern hardware. Enable it on all datasets:
zfs set compression=lz4 tank/mediaThis applies to all child datasets automatically.
Set ownership#
Set the correct ownership so that the Plex LXC and Docker VM (both running as UID/GID 1000) can write to these paths:
chown -R 1000:1000 /tank/mediaResult#
Storage is ready:
/tank/media/movies— final movie library/tank/media/tv— final TV library/tank/media/downloads— download staging area
Continue to Mount Storage into LXC & VM.