General ZFS Question's

System Architecture

  • My main machine (server located @ home)

    • I plan on running proxmox
      • VM 1: (my homelab OS + the containers & software for my homelab)
      • VM 2: (completely isolated VM separate from my personal stuff
  • I have 2 Main NVMe Drives + 1 external SATA SSD for my homelab file backups

  • I want to configure ZFS via Nix & get individual FS level snapshots on my homelab VM and 2nd VM

  • I dont mind moving away from proxmox & using my homelab OS as my host machine, I could make the 2nd VM via libvirt QEMU on the host homelab OS

Question

  1. Where do I put the ZFS filesystem?
    Should my Proxmox FS be ZFS (closer to baremetal)
    OR
    Should my VM FS be ZFS (which is a VM) - I dont mind passing a whole NVMe drive to my homelab VM

Someone will probably provide a better answer but I’ll share some thoughts.

  • I have zero experience with Proxmox but have heard it makes decisions about ZFS that can be hard to modify. I don’t know if that has changed.
  • In general, you want ZFS to work directly with the storage H/W. Nevertheless, it can be implemented using files as storage and I do that for testing. (GitHub - HankB/Fun-with-ZFS: Explore simple ZFS operations)
  • I have heard that it is a Bad Thing to pass drives to a VM. A better approach is to pass the storage controller. I pass two drives to a Debian VM on a Debian host and have not had any problems. The boot drive for the host and storage drives are on the same controller so I cannot pass it to the VM.

I’ve used MD RAID and ZFS on Debian for years (decades?) and have been happy with that. I’ve never felt the urge to try Proxmox but if you prefer a GUI to CLI it’s probably the way to go.

I think that Proxmox is probably more than you need for two VMs, if your homelab OS has good support for ZFS I’d run that on bare metal and create ZFS datasets for each VM and container, then you also don’t have to do nested virtualization with the containers.

1 Like