So as ESXi 4.0 is becoming the new standard in our lab, we’re running into little annoyances here and there. The first of which is something that’s been a problem since ESXi was still called “ESX 3i” – ESXi has no ability to set a timezone. On the face of it, this doesn’t seem too critical, but this has a big impact on some environments.
First, we need to cover some background. Back in 1979 when MS-DOS was first shipped, no one could envision it being involved in a giant network of computers across different time zones, so it stored the hardware clock as local time. When Windows was released, it piggybacked off DOS for timekeeping. When Windows NT came out, they decided since people would be dual-booting between 16-bit Windows and NT, they needed to keep the same convention (having the hardware clock set to local time). When 2000 came out, because people might dual-boot….. ad-naseum. Windows 7 is coming out and still stores the hardware clock as local time. Almost all modern Unix-like operating systems store the hardware clock in universal time (UTC). This includes ESX server (and, by extension, ESXi).
Now, in ESX Server Classic, one of the options during the setup process is to assign the server a timezone. This is important because the UTC of the server + the TimeZone offset will be presented as the hardware clock to Guest Operating Systems which expect a hardware UTC clock (like Windows).
ESXi has no ability to assign it a timezone. This means that when you start up Windows systems, their clock is wrong (it’s UTC). You also can no longer rely on VMware Tools to perform timesync with the host OS, you must use NTP or some other method of time keeping. Obviously, in lab, test, and development environments this can be less than desirable.
Is there any way around this? Can Windows be forced to use UTC? Yes and no. There is a registry setting called “RealTimeIsUniversal” that supposedly helps, but it is buggy and doesn’t work properly in several instances in all current shipping versions of Windows. Supposedly, this will be fixed in Windows 7/Server 2008 R2, however this promise has been made before, and it doesn’t appear very high on Microsoft’s to-do list.
This is not an unusual problem for people. VMware – why can’t we set a TimeZone in ESXi, and then present this modified clock to “legacy” operating systems?