If I were to use a SATA M.2 for my host and passthrough an NVMe M.2 for a Windows guest, would the NVMe be bottlenecked by the host drive? I am confused as to how much of KVM is running from RAM or if it’s solely dependent on what the Linux Kernel is deciding to do. This is assuming one isn’t using a distro which loads everything into RAM.
I don’t plan on doing this, I just wanted to know as I couldn’t figure out the answer myself. I assume my issue is in my knowledge of how the Kernel and it’s modules are working.
I’m just a noob/tinkerer, so take this with a pinch of salt. This isn’t really a RAM, or a kernel issue; it is an addressing issue. While it is possible to pass through an individual disk partition, I would expect better performance if an entire drive was passed through to the VM. If you have two M,2 drives, the break down of your motherboard’s IOMMU groups would be the determining factor as to how much headache would be involved in passing through one of the M.2 drives. Whether they are SATA, or NVMe really isn’t the determining factor. If both M.2 drives fall into the same IOMMU group, there are still some strategies that may work, but the path of least resistance may instead be to pass a SSD through to the VM, for instance, which would almost certainly be in a separate IOMMU group.
You’d have to install both M.2 drives and then have a look at your IOMMU groups to see how your particular motherboard handles the drives.