Interesting problem - SMB shares between Windows VMs stalls consistently

I’ve troubleshot this to the best of my ability and I’m uncertain I have the knowledge to resolve the issue. Here’s the problem:

Large file transfers (> 1GB) between Windows 10/11 VMs and my TrueNAS storage pool will stall, resume, stall, resume, etc. until the file transfer completes.

My Setup:

  • System 1 (NAS) (S1): TrueNAS Dragonfish, several VMs with both Linux and Windows VMs, storage pool is a (6) 14TB in raid-z2 configuration, (2) NICs with all VMs using the NIC 2 (with TN using NIC 1)
  • System 2 (Proxmox) (S2): Several VMs with both Linux and Windows VMs, (2) NICs with all systems using bridges

What I know:

  • The issue does not exist for file transfers between bare metal Windows 10/11 installations and the pool. It only occurs when transferring files between Windows 10/11 VMs only.
  • The issue does not exist for file transfers between Windows SERVER VMs and the pool. It only occurs when transferring files between Windows 10/11 VMs and the pool.
  • Where the Windows VM sits is irrelevant. Whether on system 1 or system 2, a Windows 10/11 VM transferring a large file (using SMB) from S1 storage pool will exhibit this behavior.
  • Direct transfers in Linux (using scp command) do not show this behavior. They are smooth and cap at the network transfer limit.
  • Direct transfers in Windows Server (2016) VMs do not show this behavior. They are smooth and cap at the network transfer limit.
  • All Windows VM NICs are setup using virtio red hat ethernet driver.

The only issue is with virtual machines running Windows 10 or 11 installations.

Does anyone have an idea what might be the issue?

Are you copying to the pool in a single Windows VM on a mounted SMB share on the TrueNAS?
Where are you copying it to? To another share somewhere else (like another SMB share on a differant Windows machine), or from the SMB share to the local “C” drive on that same single Windows machine?

Theres alot of pluralities in your question. Lets try to limit the scope to a single thing. “SMB shares between Windows VMs” makes it sound like you are copying files from a nativeSMB share hosted on one Windows VM to an SMB share hosted on another Windows VM. I dont think thats what you mean.

I worked on this yesterday. And it appears that Windows 11 VM does not exhibit this issue, only Windows 10 VM.

To clarify, between my 2 servers each running Windows 10 VMs, moving data from my storage pool on S1 (which uses an raid-z2 config.) to that VM results in this stalling behavior. It does not occur with any other OS. And Windows 10 physical installations also do not exhibit this. It is only Windows 10 VMs.

I don’t think it’s related to the HW setup - in Proxmox, I literally just changed the boot order from a W10 virtual disk to a W11 virtual disk and this stalling transfer problem went away. It’s something about Windows 10.