Troubleshooting: Root Cause of Invalid memory setting: memory reservation (sched.mem.min) should be equal to memsize (memsize)

Screenshot 2014-07-12 20.04.31While working on reconfiguring my home lab setup, and migrating all the vSphere resources into a single cluster I ran into a problem powering on one of the VMs which used to run on a single host. The power on operation yielded the following error message:

Invalid memory setting: memory reservation (sched.mem.min) should be equal to memsize (memsize)
[showhide type=”errorstack” more_text=”Show error stack (%s More Words)”]

Task Details:
Status: Invalid memory setting: memory reservation (sched.mem.min) should be equal to memsize(4096).
Start Time: Jul 12, 2014 4:22:21 PM
Completed Time: Jul 12, 2014 4:22:23 PM
State: error
Error Stack:
An error was received from the ESX host while powering on VM MinecraftServer.
Failed to start the virtual machine.
Module MemSched power on failed.
An error occurred while parsing scheduler-specific configuration parameters.
Invalid memory setting: memory reservation (sched.mem.min) should be equal to memsize(4096).
Additional Task Details:
VC Build: 1476327
Error Type: GenericVmConfigFault
Task Id: Task
Cancelable: false
Canceled: false
Description Id: Datacenter.ExecuteVmPowerOnLRO
Event Chain Id: 20017

[/showhide]

Clearly there was an issue with memory reservations on the VM, but there was no memory reservation enabled on it at all, nor should there be. The only related errors I found while investigating the issue, was with regards to pass-through devices, which also did not apply in this case. It turns out that the problem was due to the VM was configured to use the latency sensitivity feature introduced in vSphere 5.5.

The Deploying Extremely Latency-Sensitive Applications in VMware vSphere 5.5 whitepaper from VMware clearly states that usage of this feature also demands a memory reservation being set on the VM, and this VM had no reservation.

Enabling the latency-sensitivity feature requires memory reservation.

In the end, the solution was a simple one, revert the latency Screenshot 2014-07-12 21.10.12sensitivity advanced option for the VM to the default value of Normal let me power-on the VM again without issues.

The error message received in vCenter could be a lot clearer though, and a knowledge base article with the exact error message and resolution paths might be in order. It was not immediately obvious that the lack of memory reservation error message was related to the latency sensitivity settings for the given VM. The vSphere Web Client shows a warning that you should check the CPU reservations, but does not mention memory reservations when you enable this feature.

Now I just need to figure out why my home MineCraft server had that setting enabled in the first place…

Can you combine vSphere Host Cache and vFlash on a single SSD?

One of the new features in vSphere 5.5 is the vSphere vFlash that enables you to use a SSD/Flash device as a read cache for your storage. Duncan Epping has a series of posts on vSphere Flash Cache that is well worth a read.

vSphere vFlash caches your read IOs, but at the same time you can use it as a swap device if you run into memory contention issues. The vSphere vFlash Host Cache is similar to the older Host Cache feature, but if you are upgrading from an older version of ESXi there is a couple of things that needs to be done to be able to use this feature. Screen Shot 2013-09-30 at 02.19.57

If you had the “old” Host Cache enabled before upgrading to v5.5, you have to delete the dedicated Host Cache datastore and re-create a new vSphere vFlash resource to be able to use both vFlash Host Cache and vSphere Flash Read Cache on the same SSD/Flash device.

Also note that vFlash Read Cache is only available for VMs that run in ESXi 5.5 Compatibility Mode aka Virtual Hardware Version 10, and is enabled pr. VMDK in the VMs settings.

Screen Shot 2013-09-30 at 02.19.57Now you can utilize vFlash to both accelerate your read IOs, and speed up your host if you run into swapping issues. Good deal!

VMware vCenter Server Appliance Error: VPXD must be stopped to perform this operation

While deploying a fresh vCenter Server 5.5 Appliance, I ran into an issue getting it configured.

When the appliance is deployed, the first time you log in you get presented with the configuration wizard. The wizard clearly states that if you want to set a static ip, or hostname, you should cancel the wizard, do the network configuration and then re-run the wizard after the fact.

Well, that´s what I did, and it resulted in the following error when trying to create the embedded database:

[cc lang=”bash” width=”100%” nowrap=”0″]
VC_CFG_RESULT=410(Error: VPXD must be stopped to perform this operation.)
[/cc]

I even tried redeploying the appliance from scratch, but sadly that had the same outcome.

In the end, I was able to complete the configuration by opening an SSH session to the vCenter appliance, and running the following command to stop the vmware-vpxd service mentioned in the error message:

[cc lang=”bash” width=”100%” theme=”blackboard” nowrap=”0″]
~ # service vmware-vpxd stop
[/cc]

After that I could successfully complete the Setup Wizard. Hopefully this will help someone finding themselves in the same conundrum in the future.

Update:

Since my setup is a single host, and at the moment of deploying the vCenter Server Appliance there was no existing vCenter in place, I deployed the appliance directly to an ESXi host. When you do this, you do not get the OVF deployment wizard that asks your IP adresses, netmasks etc. I suspect that this is the root cause of this issue, and that this is something you can/will run into of you deploy it in this manner.