Troubleshooting slow OS installation over the network

I have seen this question pop up endless times. "when I install the OS in my virtual machine using PXE over the network, is takes hours".  This situation can be caused by many different factors, but here are the top two that I have seen:

1) Smart Host adapters - Most Ethernet adapters in servers today have a feature called TCP/IP offloading.  This is where the adapter decodes the packet for the driver and hands it the payload.  This can provide performance improvement and scalability. 

Problem is the adapter that Virtual Server emulates does not understand this feature.  Therefore if you attach a VM to a virtual network that is bound to a host network adapter that has TCP/IP offloading enabled, the adapter thinks the driver handing the decoded payload knows that it is a decoded payload and how to process it.

The Virtual Server VM additions driver and the Microsoft Out-Of-Box driver does not not support TCP/IP offloading. Therefore, you must disable TCP/IP offloading on the host adapter under advanced properties.

2) Disk performance - Installing an OS is a disk intensive process. Doing it over the network does not eliminate the disk IO issue. Anything that will affect disk performance will have an effect on the installation performance. Some things to look out for:

a) AntiVirus applications - AV applications usually are implemented with a disk filter driver that intercepts all disk reads and writes. If you have the AV software installed on the host, then all disk reads and writes from the guest VM will be intercepted.  This can have a large impact on disk performance. Many AV applications can exclude entire processes or file extensions from the real time virus scanning process. Excluding the process or service is the best approach. If you AV application supports this option, you want to exclude the VSSRVC.EXE and VMH.EXE services from the real time antivirus scan. If it only supports extensions, then you want to exclude VHD, VMC, VSV, VUD, VFD, and possibly ISO files extensions.

b) Using SCSI attached virtual hard disks without the VM additions driver - The VM additions driver provide enhanced performance over the inbox Adaptec driver. When installing the OS in the VM, you want to load the SCSI VM additions driver with the F6 option to load additional storage drivers during setup, or you want to preinstall the driver as an option for the PXE deployment server. If you use the F6 option, there is a virtual floppy drive with the drivers installed with Virtual server called SCSI Shunt Driver.vfd.

c) VHD placement - Attempting to get by on your system with a single disk drive. You need to place the VHD on a disk spindle separate from the OS. So if you have a single disk drive, add another drive.

So by addressing one or more of the issues above when installing your VM over the network should help you get the best performance possible.