Something I ran into at a client recently was problems with some VMs showing up in SCVMM with “Incomplete VM configuration” and some would fail to perform Live Migration between hosts in a cluster. Some also failed to do a storage migration from one host or cluster shared volume (csv) to another. They were also having sporadic problems with DPM 2010 failing to perform backups from guest's shadow copy. The problem boiled down to having several different versions of the Virtual Machine Integration Components scattered around between the hosts and the guests.
In this case there were 7 hosts running Windows Server 2008 R2 and more than 30 VMs of various operating systems that had at least 4 different VMIC revisions. If the Guest machine was running a version of the VMIC that was different from the host it was running on then any number of things could go wrong (as described above). The fix was to first upgrade the hosts to one common version and then then upgrade the VMIC on all guests by inserting the virtual media and installing the same version. It also involved rebooting pretty much everything!
So how do you tell what version is installed? Check the version of vmbus.sys. Here’s a command that you can run on each host.
wmic datafile where name="c:windowssystem32driversvmbus.sys" get version
It should return something that looks like this:
The last four digits is what you are looking for. Run this on all hosts and make sure they are the same version. If they are the same then the problem is not the hosts and it’s time to move on to the guests. If they are different then get yourself a copy of the latest update that patches vmbus.sys and install it.
For me that update was found in KB981836
which installs v6.1.7600.20683.
Once all the hosts are the same, now it’s time to look at your guests. Run that same wmic command on your guest machines to see if the version matches your hosts. If they do not, then open the Hyper-V Console and from the Action menu select “Insert Integration Services Setup Disk” and install it on the guests. When it’s done run the wmic command to verify that the VMIC has been updated and matches the hosts.
When you’re done you should be able to move on with your life. Just don’t forget to ensure the VMIC on any new hosts you might build in the future are also running the same version.