2009-12-28

VMwareVCMSDS - A time for change



As of vCenter 4.0 when installing a new instance of vCenter, in order to allow for Linked Mode, an instance of Microsoft ADAM is installed on Windows 2003 or AD LDS on Windows 2008. The reason for this is because in order to link your vCenter Server together there has to be some kind of hierarchy in order to allow for the communication between the servers, similar to Active Directory.

Below is a sample screenshot of what it looks like:

 

Ok so here comes the reason for the post and why all of this important. A customer contacted me today saying, “I cannot log into my vCenter Server - something is wrong!”. I asked what was the error message he said, “Something about an error! Please Fix it!!”. He sent me a screenshot:

image

Well he was right about the error message, totally no information here.

First things first I looked at the Services, to see if everything was started and lo and behold there was one that was not:

image

Started the Service and connectivity returned to normal.

The reason this service stopped is not exactly clear, but then I was thinking to myself, if this is such a critical service then why did it not restart, I mean if you do experience an error (for whatever reason) and it shuts the service down - I would expect it to restart.

This is the service setting for the vCenter Service

image

For the Webservices:

image

And even for Update Manager:

image

But the VMwareVCMSDS?

image

Now that seems a bit strange for a Critical service - don’t you think? It would be interesting find the logic behind not setting this service to be the same as all the other?

I am changing mine - What about you?

image

Update: 

I would actually not be doing myself justice if I would not provide a quick Powershell way to change this value – without going into the GUI.

I would like to thank Shay Levy for the assistance and point you to his:
Stand alone registry functions library 

Saving this file as a .ps1 file

And then using this small bit of Powershell code.

   1: ##Load the modules in the script
   2: ################################
   3:  
   4: . .\Registry.ps1 
   5:  
   6: ##Get the correct values from the vCenter Service (vpxd)
   7: ########################################################
   8:  
   9: $myval = Get-regbinary -server ilvcenter -hive localmachine ` 
  10:     -keyName "SYSTEM\CurrentControlSet\Services\vpxd" ` 
  11:     -valueName Failureactions
  12:  
  13: #Set the values to the ADAM_VMwareVCMSDS Service
  14: ################################################
  15:  
  16: Set-regbinary -server ilvcenter -hive localmachine -keyName ` 
  17:     "SYSTEM\CurrentControlSet\Services\ADAM_VMwareVCMSDS" ` 
  18:     -valueName Failureactions -value $myval

Line 9 – Gets the current recovery options settings from the vCenter service and save to the $myval variable

Line 16 – Sets the variable for the VMwareVCMSDS service with the same options.