ConfigMgr – Really really slow PXE boot between Hyper-V machines

pxe-bootsccm-2012-r2tftpwds

I have ConfigMgr 2012 R2 CU3 installed on a Hyper-V virtual machine. The virtual machines are hosted on a Server 2012 R2 Hyper-V cluster, and the ConfigMgr server is running on Server 2012 R2 as well.

I'm trying to PXE boot another virtual machine from configuration manager. It works, but the boot process just to get to WinPE loaded took hours. The ConfigMgr and client machines were on different nodes of the cluster – it turns out this is relevant.

Troubleshooting steps so far

I read a variety of articles like this one that say to set the RamDiskTFTPBlockSize registry key to a higher value. Tried several values, didn't seem to make a difference, so I set it back to the default.

To eliminate any network issues, I tried moving the client machine so it was on the same node as ConfigMgr – and it booted up somewhat faster. Reapplied the RamDiskTFTPBlockSize, and it got nice and fast, and booted in about 2 minutes.

So now I'm reasonably sure it's a network issue, but I'm not sure what that issue is.

I have done packet captures from the ConfigMgr machine of a boot from a VM on the same node, and a VM on a different node, and don't see any differences. The TFTP packets get acknowledged the same way, there aren't any noticeable errors, no retried blocks. In both cases packets get fragmented if the TFTPBlockSize is set high.

Update

I tried network booting a physical client machine, and it's slow as well. In resource monitor in the ConfigMgr server, the network traffic sending to the client is about 130Kb/s. When running this test, the RamDISKTFTPBlockSize was set to 8192, and packet captures confirm it's using that block size.

Network Configuration

The networking for virtual machines is setup like this:

  • Virtual machines are connected to the virtual switch, and have VLANs configured.
  • The ConfigMgr server is using the newer type of network adapter. The client is using the Legacy Network Adapter to support PXE.
  • Each node in the cluster has the built in windows NIC teaming setup – two adapters in switch independent mode with dynamic load balancing.for the virtual machines. The Hyper-V virtual switch uses this team.
  • Each node has it's adapters plugged in to the same HP V1910-48G switch. All the connections are gigabit.
  • On the switch, the ports for virtual machines are setup as VLAN trunks with the appropriate VLANs. There is no LACP or other teaming setup on the switch side.

Any idea what is causing this, and how can I fix it?

Best Answer

Hyper-VExtensibleVirtualSwitch

I had the same error, and I did the same things as you are doing. Then, I found that my internet connection also was very slow.

On the network connections, choose the physical network card, click on the properties, then click on Hyper-V Extensible Virtual Switch, configure, click on advanced, and click on Virtuel Machine Queues, in the value click on disabled.

That's it now you will have full speed on the PXE boot. I went from 20 min to under 1.