Learnings from xcp-ng and TrueNas a hypervisors

A few months ago, I was entirely happy with my homelab set-up: a Ubuntu server running docker, and a bunch of docker-compose stacks to provide:

  • email server
  • three websites
  • photo gallery
  • database server for gnucash
  • jitsi conferencing
  • home automation (home assistant, esphome, app daemon)
  • file server (samba and nfs)
  • iSCSI server
    and probably some more I’ve swept under the carpet.

Anyhow, I stumbled across LTS’s Youtube videos on xcp-ng, Proxmox and TrueNas and thought “there’s something interesting to play with”, also know in our household as “breaking the email”.

Initially I decided on xcp-ng as my homelab, with TrueNAS as a virtual machine to provide file services, and a Debian virtual machine running docker to provide the services.

I discovered one big gotcha here, which is probably so obvious that it doesn’t appear in the YouTube advice. It’s a bad idea to make your xcp-ng dependent on a virtual machine it is running. But you kind of want to do that because xcp-ng isn’t really a filesystem manager. It supports zfs, although only weakly, if you want to use zfs snapshots and replication you have to do this from a ssh command line. I want to mount an isos filesystem from the TrueNas server.

Ultimately I decided I needed the hypervisor to have no dependencies on the virtual machines it runs. So I switched to TrueNas running on the bare metal, providing zvol disks and nfs exports to virtual machines. TrueNas don’t have anything like the richness of Proxmox or xcp-ng defining and running virtual machines. But it’s OK for me and my single-machine home-lab.

Actually, it’s not a single-machine home-lab because I also have a backup server that is woken and put back to sleep from cron jobs on TrueNas, and acts as a replication target.

I hope these experiences are interesting/helpful to others in a similar situation to me. I’m sure that’s a lot different to the professionals out there with racks of equipment. :slight_smile:

Regards,
Adrian Stephens, Cambridge UK, retired software engineer and now full-time meddler and fettler

Homelab and TrueNAS noobie here…

Can someone please elaborate on this statement,

“I discovered one big gotcha here, which is probably so obvious that it doesn’t appear in the YouTube advice. It’s a bad idea to make your xcp-ng dependent on a virtual machine it is running.”

Getting access to the ISO to setup the TrueNAS will be more involved but once the TrueNAS is up and running as a VM on XCP-ng… why is it a problem for XCP-ng to depend on TrueNAS to serve up ISOs from that point on?

Please educate me. I’m brand new to XCP-ng and NAS in general. I only have one machine available to be either XCP-ng or TrueNAS. Making TrueNAS a VM under XCP-ng seemed like the perfect solution to my one server constraint.

Thank you.