Complete Guide: Step 3 - Install TrueNAS
Download the latest TrueNAS ISO and upload it to your local storage. I couldn’t get “Download From UR"L button to work. You should get something like this:
Create the VM (Click on the blue “Create VM” button on the top right). Choose a unique ID and name. I have set following advance options.
- Do not turn on “AutoStart” for now just in case you made a mistake with IOMMU group (e.g. you risk losing your Proxmox VE if the IOMMU Group you pass through includes your NVMe drive). You can always turn on AutoStart later when you verify everything is working
- This VM will startup immediately when on autostart
- This VM will shutdown after 60 seconds if I powerdown or reboot the server. This delay is to allow enough time for any VM, LXC or TrueNAS Jails to close gracefully before the NAS itself is powered down. Note if you are using a UPS the time here must not exceed your UPS battery up time.
Select the TrueNAS ISO, and “Other” as the OS.
Set the hardware to qx35, and check qemu agent.
Create a virtual disk to house your TrueNAS OS. Create additional virtual drives for L2ARC and ZIL I prefer 1 virtual disk per zpool but you can technically use a single one for all your pools. I set all virtual disks to 20 GB and place them all on LVM-thin storage. All these virtual disks will be on my NVMe for the best bandwidths.
Obviously there are many strategies you can do here - from different sizes, pass a physical NVMe into the VM for ultimate speed and so on. I just prefer to have Proxmox host control my OS, logs and cache drives because I can then back them all up in a single hit.
Set the CPU type to HOST. This means I can run virtualisation inside a virtualisation, allowing my jails to function better (yet to try this). Otherwise known as nested virtualisation. You can experiment with other vCPU types to suit. Note if you are using encrypted volumes you’ll need a vCPU that has the necessary CPU instruction set for hardware encryption acceleration. I have no idea what those are so I just pass the whole CPU into my VM.
As AMD 5600G has 6 CPUs and 12 threads, so I am giving my TrueNAS VM a total of 8 vCPUs.
ZFS is pretty CPU intensive, I am dedicated 48GB to TrueNAS VM since I have a 64 GB host. Make sure the Ballooning Device checkbox is off as you really want to dedicate a big chuck of your RAM to this VM. Remember the minimum requirements for TrueNAS is 8 GB, try not to use any number lower than 8192.
Connect vmbr0 for now. Ensure firewall is checked if you intend to use Proxmox firewall infrastructure to protect your NAS connections. Proxmox firewall will be discussed later.
Click on to finish the VM creation and wait.
Once the VM is created, click on your VM, go into the Hardware option and create your PCI passthrough device if you are using a dedicated HBA controller. Check PCI-e checkbox since we are using qm35 machine type, and also uncheck ROM-bar.
Also add any additional network bridges for the VM. Like the first network, the model used should be “VirtIO (paravirtualized)", and again check firewall if you intend to use firewall.
Now you are ready to boot up your VM to install TrueNAS. Follow this guide to install TrueNAS core. Only thing you need to make sure is to use BIOS as your bootloader. Proxmox does have a UEFI BIOS (OVMF) but I have not tested that.
You will be prompted to reboot after installation is finished. Click on reboot and disconnect the ISO image in the Hardware section.
The first boot will take some time, but eventually you’ll see this, and you’ll get a IP address on the network that’s bridged to vmbr0 (provided a DHCP is running on the subnet).
You should also get a portal login if your load a browser from another computer, and browse to the IP shown above.
If you don’t, uncheck firewall checkbox in all your virtual network interfaces and try again.
Congrats! You have successfully virtualised TrueNAS inside Proxmox. You’re almost there. Do not fret if you have problems, as I did simplified some of the steps above (this is a complete guide, not a step-by-step). Add a comment below or post in the problems if you need help.