Some general notes concerning the configuration options for running OS X Server as a virtual machine hosted on ESXi.

There are a number of things that can cause your VM to work less than optimally. Several things about the default configurations may result in stuff like your VM generated a lot of log files about stuff that you don’t care about for example.

Serial numbers

By default, ESXi prior to version 5.5 would auto-generate a long serial number for your VM. The problem is that OS X is expecting a 12 digit serial number and services that depend on apsd (Apple Push Services Daemon?) will simply not work. One glaring example is the caching service. If you have created a new VM on an ESXi 5.5 server, it should be set automatically to limit itself to a 12 digit serial number. If this is not the case you will need to create an entry for the following value equals TRUE in the Advanced settings:

SMBIOS.use12CharSerialNumber

Note that this value is only taken into account on ESXi 5.5 and greater. If you are still running ESXi 5.1 or 5.1 it won’t do anything.

Symptoms : caching server not working and in the debug log (/Library/Server/Caching/Logs/Debug.log) it stops with the following message:

Registering for notifications
Waiting for push token

Changing this value will require that you reauthenticate on the console using the account that you used to sign up for push notifications.

VMware Tools

Yes - do install them. But once you do, edit the vmx file or edit the advanced settings to add the following line

isolation.tools.hgfs.disable=TRUE

Otherwise you may end up seeing a pile of log entries like :

lsof: WARNING: can't stat() vmhgfs file system /Volumes/VMware Shared Folders
  Output information may be incomplete.
  assuming "dev=2d000003" from mount table

Outstanding bugs

Under ESXi 5.x and 10.9 there is a bug which will flood your system.log with entries like :

WindowServer[111]: _CGXGLDisplayContextForDisplayDevice: No matching context for device (0x7fc8b3424340) - disabling OpenGL

which will result in huge log files with no additional value. This is especially problematic if you are doing any kind of WAN replication of these VMs.

Unfortunately, there is no fix for this at the moment, but I’ve submitted radar://15977256. The workaround, if this acceptable for non critical machines is to disable the syslog service which can be done with:

sudo launchctl unload /System/Library/LauchDaemons/com.apple.syslogd.plist

If you want this to persist over reboots, add the -w flag.

Update

The _CGXGLDisplayContextForDisplayDevice syslog bug has been corrected in 10.10.

Also, there is a much cleaner fix available by tweaking the asl/syslog filtering rules over at Insomniac Software. Although I would recommend a different method for restarting syslog:

sudo launchctl unload /System/Library/LauchDaemons/com.apple.syslogd.plist
sudo launchctl load /System/Library/LauchDaemons/com.apple.syslogd.plist

There have been a number of changes in launchctl between 10.9 and 10.10 which mean that if you force disabled syslog and then upgraded your system, you’ll need the following commands to get it back online:

launchctl enable system/com.apple.syslogd
launchctl load /System/Library/LauchDaemons/com.apple.syslogd.plist