ZFS drive arrangement

I am building my new server and I want to know how will TrueNAS manage some disk configurations.
I will have 12x 4Tb wd red plus hdd and 4x20Tb seagate exos x20 plus ssd/nvme depending on your opinion.

I want to use samba and some truenas apps plus 2-3 vm.
I want to know how to create the the new pool so I can have also speed and capacity.

for samba it is simple, but for the VM will it be better to put l2arc and move the metadata to a mirror drive or is it better to have a separate pool on ssd/nvme and install the vm there and map share via samba/nfs to them for the bulk data.

on the vm I will have standard lamp stack (apache php mysql)

virtualisation could be an option but my proxmox experience is not great and I will have to watch the xcp-ng tutorials to move to that platform.
I am in a homelab setup, I do not do editing on the server (just store files and play with databases).

I will have 256Gb ram and an epyc 7303p.

The Metadata VDEV is only helpful if you have a few hundred thousand files and L2ARC is good as a read cache provided you have a work load that keeps asking for the same files.

Wendell has a video on Medata here

And has a write up here:

For the other drives splitting them up into multiple VDEV’s will get you better performance but will sacrifice space, I have that broken down here:

SI it is better to have the ssd’s separate and install the vm there and map via nfs the main storage for that vm (I have files from 1 to 500Mb)

For data VDEV’s don’t mix SSD and spinning drives.

i know that. separate vdevs and internal share from one to the other.