Are there performance benefits of passing NVMe to Windows 10 VM, along with passing GPU, that I'll use as daily driver?

IMTheNachoMan

Member
Jun 27, 2021
11
0
6
41
I have an HP ProDesk 600 S4 SFF. It has:
  • i5-8500 with iGPU
  • 1x NVME
  • 1x 4 TB SATA SSD
  • 1x 256 GB SATA SSD
I want to:
  • Install Proxmox on the 256 GB SATA SSD
  • Create a few low friction, low use VMs with disk images stored in the 256 GB SATA SSD
  • Create a Windows 10 VM
    • Passthrough NVMe for the Windows 10 OS installation (C:)
    • Passthrough 4 TB SATA SSD to become D:
    • Pass iGPU
    • Pass USB ports
My thought is:
  • Proxmox will boot
  • All VMs will auto boot/start
  • Windows 10 VM will take control of video out and USB ports so my keyboard and mouse connected to the HP connect to it
My questions:
  • Will this work?
  • Will passing the NVMe and SATA SSD to the Windows 10 VM help with performance?
I don't care about moving the Windows 10 VM or back ups or anything like that.
 
Last edited:
USB passthrough is only emulated with virtual hardware. So not great for USB devices that need low latency or high bandwidth like soundcards, USB HDDs and so on. For good stability and performance it would be better to use PCI passthrough to passthough the whole USB controller.
Similar thing with the 4TB SATA SSD. Disk passthrough is no real physical passthrough. Your WinVM will still work with a virtual disk. Only way how the WinVM could directly access the real physical SATA SSD would be to PCI passthrough the whole disk controller with all of its ports. So this will probably not work, unless you got at least two separate disk controllers, as you don't want to passthrough the 256GB SATA SSD your PVE is running on.

If that will work or not really depends on your hardware. You can only PCI passthrough devices that got its own IOMMU group. Usually all stuff connected to the chipset (disk controller, USB controllers, some PCIe slots, some M.2 slots, sometimes NICs or soundcards) will share the same IOMMU group so these devices can't be passed through at all (or only with acs override, which will lower security and maybe stability).
 
  • Like
Reactions: leesteken
Running a VM as your desktop or even gaming (on a powerful system) works fine, if the passthrough works. If you don't passthrough the drive, you can use PVE's on-the-fly backups or deduplicated backups with PBS, which I personally much prefer over any possible disk performance. If you run multiple drives with ZFS on Proxmox, a virtual drive might even be faster...
 
Disk passthrough is no real physical passthrough. Your WinVM will still work with a virtual disk.

I am confused. The article you linked implies I'm passing the disk. Isn't that what it does?

Usually all stuff connected to the chipset (disk controller, USB controllers, some PCIe slots, some M.2 slots, sometimes NICs or soundcards) will share the same IOMMU

I have Windows 10 installed on this machine right now. Is there anyway to see what IOMMU groups everything is in? I can boot into some Linux live CD if that will show me?

And regarding the other stuff, my thinking:
  • Add a PCIe SATA card to the computer
    • Connect either 4 TB SATA SSD OR 256 GB SATA SSD to it
  • Pass NVMe PCIe to Windows 10 VM
  • Pass onboard SATA controller or the PCIe card from above -- depending on which drive I connect to it -- to the Windows 10 VM
  • I can pass the motherboard USB controller to the Windows 10 VM
  • If I really need Proxmox to have USB, I can add a PCIe USB card
Thoughts?

Running a VM as your desktop or even gaming (on a powerful system) works fine

Thanks. The only reason I need Proxmox is for HomeAssistant so I can pass USB Z-Wave stick, which I can't do with Hyper-V. The primary purpose of this machine is Windows 10 which is why I want it to perform the best.
 
The only reason I need Proxmox is for HomeAssistant so I can pass USB Z-Wave stick, which I can't do with Hyper-V. The primary purpose of this machine is Windows 10 which is why I want it to perform the best.

In this case, it would be better in my opinion to simply get an additional (even more) small low-power system for Home Assistant and leave your Windows system bare-metal.
Way less struggle for what it is!
(And you even can shutdown the Windows system, if you do not need it, to safe power; instead of needing it running only for Home Assistant...)
 
  • Like
Reactions: leesteken
In this case, it would be better in my opinion to simply get an additional (even more) small low-power system for Home Assistant and leave your Windows system bare-metal.

Yes. That is my fallback. I really only want one system at home because my total usage combined, with HA + daily driver, is so low that if I got a 2nd system, they'd both still be hardly utilized. So I'm desperately trying to see if I can get everything done with one -- my existing -- computer.
 
I am confused. The article you linked implies I'm passing the disk. Isn't that what it does?
That article is using a virtual disk and the content of that virtual disk will be stored on the "passthroughed" physical disk. So yes, data will end up on the physical disk, but because you are using a virtual disk you still get additional overhead, stuff like SMART won't work inside the VM and Windows would be working with wrong sector sizes (512B logical + 512B physical sectors of the virtual disk, instead of the 4K physical sectors the physical SSD is probably using).
 
That article is using a virtual disk and the content of that virtual disk will be stored on the "passthroughed" physical disk. So yes, data will end up on the physical disk, but because you are using a virtual disk you still get additional overhead, stuff like SMART won't work inside the VM and Windows would be working with wrong sector sizes (512B logical + 512B physical sectors of the virtual disk, instead of the 4K physical sectors the physical SSD is probably using).

Ah. I see. Thank you. This tells me what I need to do.
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!