Choosing an Operating System deferred TrueNAS and Unraid to this tier, on the grounds that storage as a dedicated concern only starts to matter once you're running multiple VMs/containers that all want access to the same data. That point has arrived.

Why centralize storage at all

Without it, each VM or container has its own local disk, and sharing files between them means copying, or ad-hoc bind mounts that only work because everything happens to live on one Proxmox host. A NAS - Network-Attached Storage - flips this: one place holds the data, everything else (Jellyfin, your backup jobs, other VMs) reaches it over the network instead of storing its own copy.

This matters more as your homelab grows: media libraries, backup targets, and shared config all want to live somewhere that isn't tied to any single guest's lifecycle - so you can rebuild a VM from scratch without losing or having to migrate its data.

TrueNAS Scale vs Unraid

Revisiting the comparison from Beginner, now that it's relevant:

  • TrueNAS Scale - built on Debian, ZFS-native (the same ZFS covered in Storage and ZFS), free and open-source. The stronger choice if data integrity and snapshotting are the priority, and if you're already comfortable with ZFS concepts from running it under Proxmox.
  • Unraid - paid license (one-time, not subscription), more flexible mixed-disk-size storage array (disks of different sizes and ages coexist more gracefully than in a ZFS pool), and a polished app/plugin ecosystem. Popular when you want one box that's both storage and a lightweight app host, not just a storage backend.

Both run well either as a dedicated physical machine or as a Proxmox VM with disks passed through (PCIe passthrough of a whole HBA/controller is the safer, cleaner option over passing through individual disks - check your motherboard/CPU support IOMMU first). A dedicated physical box is simpler to reason about and survives a Proxmox host reinstall untouched; a VM keeps everything on one machine but adds a dependency on Proxmox being healthy for your storage to be reachable at all.

Resource expectations: TrueNAS Scale wants at least 8GB RAM (more if using ZFS deduplication, which most homelabs should avoid - it's RAM-hungry for marginal benefit at this scale), plus whatever CPU/RAM any apps you run on it need. Unraid is lighter at idle but scales similarly once you're running containers on it too.

NFS vs SMB

  • NFS - the native choice for Linux/Unix clients (your Proxmox guests, Docker hosts). Lower overhead, simpler permission model (based on UID/GID matching between client and server, which is worth understanding before you hit a confusing "permission denied" despite the share looking open).
    # on the NFS client
    sudo mount -t nfs 192.168.20.20:/mnt/tank/media /mnt/media
    
  • SMB (Samba) - the native choice for Windows and macOS, and still broadly supported everywhere else. Slightly higher overhead than NFS, but simpler cross-platform permissions (username/password based rather than UID matching), and the obvious choice if any Windows/Mac machines need direct access to the same share.

For homelab traffic that's purely between Linux guests (Jellyfin reading a media library, a backup job writing to network storage), prefer NFS. Add SMB shares alongside for anything a Windows or Mac machine on your network needs to browse directly.

Mounting in containers and VMs

In a compose file, mount an NFS share as a Docker volume rather than mounting it on the host and bind-mounting it in - this keeps the dependency explicit and avoids surprises if the host's own mount unmounts unexpectedly:

services:
  jellyfin:
    image: jellyfin/jellyfin:latest
    volumes:
      - media:/media

volumes:
  media:
    driver_opts:
      type: nfs
      o: addr=192.168.20.20,rw
      device: ":/mnt/tank/media"

⚠️ Risk: an NFS share with no client restriction is reachable by anything that can route to it - keep it on your homelab VLAN (see Network Segmentation) and restrict exports to specific client IPs/subnets on the NAS side rather than leaving it open to the whole network.

Next: Media Automation.