Sun Virtual Desktop Connector - Insides on Recycling Part 3
By mprove on Jul 20, 2008
originally blogged by Tino Rachui
This is the last posting on how recycling works with SVDC for the time being. The previous posting of this small series ended with the question "What if things are not working as expected and you need to know why not as soon as possible?".
There exist a couple of tools and sources of information to help you tracking down possible root causes:
\* VMware Infrastructure Client (VIC)
\* ESX Managed Object Browser
\* Windows Event Log Viewer
\* VDA Agent log files
Before you start using any of these tools or information reflect and understand on what conditions SVDC is actually supposed to recycle your VMs.
Ask yourself "What are the power settings of your guest OS?" and "What are the power settings of the VM hosting your guest OS?". Review the conditions that SVDC takes into account for recycling to get a clear picture of what actually should lead SVDC to recycle a specific VM. When you have done this it makes sense to actually start using the above listed tools and information sources for further investigation.
Lets go through some prominent cases and see how to check what is
going on (this is how I investigate recycling problems before resorting
to use the debugger).
- You have a VM that is assigned to a user and the VM is in power
state 'suspended' but the VM will not be recycled after the idle time
has elapsed. You probably have had a look at the VM status already using
the VIC in order to know that it is actually 'suspended'.
If a VM is in use and suspended SVDC makes the recycling decision based on the suspend time stamp that VC has set for that VM (see my previous postings for details).
Probably the first thing to do would be to have a look into the VDA Agent log files which you will find in the 'log' subdirectory of the installation directory of the VDA Agent on your VC host. If you find a warning therein similar to
"Virtual Machine <name> suspended without suspend time"
then you know that you've come across the VC 2.5 problem I've mentioned in my previous posting. Otherwise you might want to check if the VDA Agent is actually running. Use the "Services" control panel on Windows to verify that. Finally you should check if something in the logs suggests communication problems between VDA Agent (running on the VC host) and VDA Service (running on your Sun Ray host(s)) or even more subtle issues like problems to connect to VC via the VMware SDK etc.
- You have a VM that is assigned to a user, the VM is in power state 'running' but no user is logged in to the guest OS anymore.
The VM will not be recycled after the idle time has elapsed. In this current case the VM should actually be recycled based on the time stamp written by the VDA Tools.
If you have multiple ESX servers in your setup use the VIC to identify which one is running your VM. Open a web browser and browse to the Managed Object Browser of this ESX host
Log in using the root credentials of your ESX host. Follow these links
on this page you'll find a list of 'childEntity' entries (a bunch of numbers) referring to the VMs running on that ESX host. Pick the one of the machine your're interested in. You have to look for it by clicking on the links and find that VM with the name of the one you are seeing when using the VIC.
After you've found it click on the 'config' link near the top of the page. In the section 'extraConfig' you'll find a 'extraConfig["guestinfo.logoffTime"]'. Click on this link to see what the value of this property is. A value of "0" means the VM will not be recycled by SVDC any other value means this VM is subject to recycling.
If everything is working correctly in the case we are talking about the value you find should not be "0". If it is nevertheless than you need to dig deeper. Connect to the guest OS via RDP using the Sun Ray Windows Connector (SRWC) or the console in the VIC. Verify that the VDA Tools are actually started. Open the Windows "Event Viewer" (in the control panel under Administrative Tools) and go to the 'Application' section. See if you can find any error messages written by the VDA Tools suggesting that they were having problems setting the 'guestinfo.logoffTime' property.
- You have a VM that is assigned to a user, the VM is in power
state 'running' and the guest OS has entered the 'standby' mode. The VM
will not be recycled after the idle time has elapsed. Use the same
procedure as suggested in the second case to investigate possible causes
for the problem.
These are some problems I've heard about quite frequently. The list
is certainly not complete nor will all possible root causes be tracked
down using the methods and tools I've described it's a good start