VMware Cloud Community
bovc
Enthusiast
Enthusiast

Resource Pool Error

Hi,

We've got a setup of 6 ESX servers (2x 2,5GHz, 8GB ram each) in a DRS/HA cluster. In this cluster I've created 3 resource pools: low, medium and high.

Low group = CPU Shares:Low, RAM Shares:Low, Both:No Limit and expandable.

Medium group = CPU Shares:Medium, RAM Shares:Medium, Both:No Limit and expandable.

High group = CPU Shares:6000, RAM Shares:High, Both:No Limit and expandable.

Now... There are approximately 11 vm's in each group. And then there's 1 which I've not put into any group yet - simply because I get the error below.

The vm belongs in the high priority group, but when I try to add it, I get an error saying:

"The memory resource shares for VM-NAME are much higher than the virtual machine's in the resource pool. With its current share settings, this virtual machine will be entitled to 62% of the CPU resources in the pool. Are you sure you want to do this?"

Then I can select yes or no. But the error confuses me... Is this a CPU or memory thing? - cause it mentions both!

Anyone seen this error before, or knows what to do? Maybe recommendations to a re-design of the resoruce pools?

Thanks in advance,

Rasmus

13 Replies
wobbly1
Expert
Expert

It sounds as though you have resource settings applied to the VM(s) you are adding into the resource pool, is this correct? Do the VMs in the resource pool also have settings applied or are they just inheriting from the resource pool's settings?

Reply
0 Kudos
bovc
Enthusiast
Enthusiast

I agree - it sounds that way, but they DO inherrit from the pools. Nothing has been set up on the individual machines.

Rasmus

Reply
0 Kudos
DeeJay
Enthusiast
Enthusiast

Are you sure nothing is set on the VM?

Could you post the shares and status of the 'unlimited' checkbox for both memory and CPU on that VM?

The error box only mentions CPU, but applies to memory too. I've seen this where a machine in a resource pool is moved to another.

If it still complains, move the VM out of the resource group, reset the resource settings, then move it into the 2nd resource group.

D

Reply
0 Kudos
bigvee
Enthusiast
Enthusiast

Ive seen this with VMs that were migrated from old hosts... It seemed to retain its old share values from its old host. I had to go custom and manually edit the share value.....

Reply
0 Kudos
bovc
Enthusiast
Enthusiast

The resource settings on the vm is just set to normal. Nothing has been touched there.

The vm is not an old migrated one. It has been installed in a ver. 3.0.1 environment along with other vm's that works just fine in resource pools.

I tried manually setting custom share values, but it didn't make a difference. I then changed it back to Normal (cpu and memory) and tried again, with no luck Smiley Sad

I've successfully added it to the medium resource pool though, and tried to migrate it from there to the high priority group, but again - no luck!

Anyone got a clue?

Rasmus

Reply
0 Kudos
swisst
Contributor
Contributor

I have this exact problem, ie; no share settings, not migrated, etc. Did anyone get to the bottom of it?

Reply
0 Kudos
RParker
Immortal
Immortal

The problem stems from the individual settings for that VM. click on the resource pool, and then click the resource allocation for ALL the VM's in that group.

If you notice, that one VM will probably be something like1000 MHZ and maybe 256 Meg of RAM or whatever, you can right click on it from there and change that VM to "normal" / "normal" and set the unlimited switch, and then you won't have a problem.

Reply
0 Kudos
MarkCleveland
Contributor
Contributor

On the VM you are getting the error on: Right click on the VM -> edit settings -> Resources tab -> change CPU & Memory to high and click ok.

click on the root cluster below the datacenter or the container the VM is located in -> click on the resource allocation tab -> switch the VM shares to normal.

You should be able to move the VM into any resource pool now. I know this post is old as dirt but I was having this issue and stumbled accross it, hopefully someone will get some use out of this.

anv9031
Contributor
Contributor

Mark,

The post was indeed old as dirt, but I was having this exact problem and did not have a fix until I came across your post. Worked like a charm!

Greatly appreciated! Thanks!

Ant

Reply
0 Kudos
FrostyatCBM
Enthusiast
Enthusiast

Changing the VM's Resource settings for CPU and Memory from Normal to High and then back again from High to Normal seemed to fix it for me.  Thanks.

3r1k
Contributor
Contributor

Old as dirt, but somehow people still get dirty every once in a while. I stumbled upon the same error this morning. Changing CPU shares to high and changing it back to normal was sufficient to fix it.

Thanks everyone, you saved me from a futile search for misconfigurations!

Reply
0 Kudos
rszymczak
Hot Shot
Hot Shot

And once again I came around this issue. Is it just me or does the hole concept of ressource pools feel outdated within a SDDC / tag-based management context?

Whatever. The "set to high and back to normal" trick didn't work for me this time - for whatever reason. So I wrote a little PowerCLI script wich will normalize all the VMs within a cluster.

$vms = Get-Cluster CLUSTER_NAME_YOU_WANT_TO_NORMALIZE | Get-VM

Write-Host "Old configuration:"

$vms | Get-VMResourceConfiguration

foreach ($vm in $vms)

{

  #Normalize CPU shares

  # vSphere 5.5 defaults:

  # High: 2000 shares per configured vCPU

  # Normal: 1000 shares per configured vCPU

  # Low: 500 shares per configured vCPU

  $cpuShares = ($vm.NumCpu * 1000);

  #Normalize Memory shares

  # vSphere 5.5 defaults:

  # High: 20 shares per megabyte of configured vRAM

  # Normal: 10 shares per megabyte of configured vRAM

  # Low: 5 shares per megabyte of configured vRAM

  $memShares = ($vm.MemoryMB * 10);

  $vm | Get-VMResourceConfiguration | Set-VMResourceConfiguration -CpuSharesLevel Custom -NumCpuShares $cpuShares -MemSharesLevel Custom -NumMemShares $memShares

}

Write-Host "New configuration:"

$vms | Get-VMResourceConfiguration

Relevant documentation:

Set-VMResourceConfiguration - vSphere PowerCLI Cmdlets Reference

vSphere 5.5 Documentation Center

https://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=20188...

Reply
0 Kudos
rszymczak
Hot Shot
Hot Shot

Oh and if you want to quickly check if there is a VM that is configured with other values as default (e.g. detect if some moron set a CPU / memory limit) you may use this:

$vms = Get-Cluster CLUSTER_NAME_YOU_WANT_TO_ANALYZE | Get-VM

foreach ($vm in $vms)

{

  $conf = $vm | Get-VMResourceConfiguration;

  if( ($conf.CpuReservationMhz -ne 0) -or ($conf.CpuLimitMhz -ne -1) -or ($conf.CpuSharesLevel -ne "Normal") -or

  ($conf.MemReservationMB -ne 0) -or ($conf.MemLimitMB -ne -1) -or ($conf.MemsharesLevel -ne "Normal"))

  {

  $vm | Get-VMResourceConfiguration | select-object VM,CpuReservationMhz,CpuLimitMhz,CpuSharesLevel,MemReservationMB,MemLimitMB,MemsharesLevel | ft

  }

}

It will print any VM that is configured other then the default values set in the test (which are the defaults when creating a new VM)

Reply
0 Kudos