I found myself unable to deploy Virtual Machine templates via App controller or virtual machine manager. The detailed error was available when attempting via VMM and stated:
“The projected CPU utilization exceeds the CPU utilization of 0% specified at the host reserve level”
All the hosts had zero stars and I couldn’t continue. Normally this is a useful message as it is preventing me from putting too many virtual machines on my hosts and stretching them too far, however in this instance I knew that we should be OK – we need to have 50 or so VMs on each host and they don’t use much CPU. It was possible to manually make more virtual machine in hyper-v and then manage them post deployment in VMM but that defeats the point of having a scripted template deployment and app controller setup so users can deploy their own Test VMs?
I found that there is a somewhat hidden option in the host reserve settings available only in PowerShell. You can have a look at what yours are configured to use with the Get-SCHostReserve” PowerShell command. The setting you need to change to bypass CPU reserves is the “CPUReserveOff” parameter.
So as you can see I have my CPU reserve level set to 0% but when VMM evaluates the deployment if it believes there will be less than 0% CPU available it says no.
You can change this with the Set-SCHostReserve command.
Get-SCHostReserve -VMHostGroup “your host group here” | Set-SCHostReserve -CPU -Enabled $false
“The projected CPU utilization exceeds the CPU utilization of 0% specified at the host reserve level” but it lets you continue and deploy anyway.