Rob van Hamersveld.nl My digital life

3Feb/091

VMware: Tijdsynchronisatie binnen VM’s

Ik merk dat veel mensen nog steeds niet helemaal door hebben hoe om te gaan met tijdsynchronisatie binnen Windows VM's. Moet nou de w32time service van Windows gebruikt worden of die van de VMware tools? En hoe dan om te gaan met Domain Controllers? In deze post hoop ik dit voor eens en altijd duidelijk te maken.

VMware ESX

Allereerst dient de tijdsynchronisatie van de ESX host zelf goed op orde te zijn, voorheen was dit een gedoe binnen het service console maar gelukkig heeft VMware er vanaf ESX 3.5 U1 een mooi grafisch schilletje omheen gebouwd.

Om de ntp server in te stellen openen we de VI client en selecteer je je ESX host, open vervolgens de 'configuration' tab en klik op 'Time Configuration' on 'Software'.

esxtime

Klik nu rechts boven op 'Properties...' om de configuratie te openen.

esxtime2

Vink de optie 'NTP Client Enabled' aan en klik op de 'Options...' knop. Hier kunnen we de tijd servers gaan opgeven.

esxtime3

Wijzig in het 'General' gedeelte niets, dit staat verder goed. De Firewall poorten worden zodadelijk automatisch opgezet voor ntp. Klik nu op 'NTP Settings'.

esxtime4

Verwijder de aanwezige ntp servers d.m.v. de 'Remove' knop en voeg een tijd server voor jouw omgeving toe d.m.v. de 'Add' knop. In dit voorbeeld heb ik hiervoor de publieke NTP server van Planet Internet gebruikt (ntp.planet.nl). Sluit nu dit venster door voor 'OK' te kiezen. Nu worden de firewall poorten op het service console geopend en de configuratie toegepast. Als alles goed gaat ziet de configuratie er als volgt uit;

esxtime5

De tijdsynchronisatie op ESX is nu voor elkaar, doe dit voor alle ESX hosts in je datacenter.

Windows VM's (geen domain controllers)

De beste manier om tijdsynchronisatie te doen binnen Windows VM's is d.m.v. de VMware Tools. Standaard zal Windows de tijd synchroniseren met de Windows Time service, deze vraagt de tijd dan op bij de Domain Controller. Echter door het virtualiseren van de CPU gaat dit niet goed aangezien de tijd van Windows werkt op basis van CPU cycles.

Eerst dient de Windows Time service uitgeschakeld te worden. Open de service manager, start - run - services.msc. Open nu de properties van de Windows Time service. Zet het startup type op 'Disabled' en stop de service d.m.v. de 'Stop' knop.

esxtime7

Nu moet de tijdsynchronisatie via de VMware Tools aangezet worden. Open de VMware Tools Options en zet het vinkje voor 'Time synchronization between the virtual machine  and the ESX Server operating system.' en klik vervolgens op 'OK' om de settings toe te passen.

esxtime6

De tijd synchronisatie voor niet domain conroller Windows VM's is nu gereed.

Windows Domain Controller VM's

Aangezien de 'Windows Time' service voor Domain Controllers esentieel is kan deze niet worden uitgeschakeld. Deze service wordt op een domain controller gebruikt als ntp server voor domain members (servers en clients). Echter is het mogelijk om via het Windows register het client deel van de service uit te schakelen. Hiervoor dient de onderstaande waarde aangepast te worden binnen HKEY_LOCAL_MACHINESystemCurrentControlSetServicesW32TimeParameters

Zet hier de REG_SZ waarde van 'Type' naar NoSync.

esxtime8

Herstart nu de 'Windows Time' service en de settings worden actief. Het enige wat nu nog rest is om de VM d.m.v. de VMware Tools de tijd te laten synchroniseren met de ESX host.

esxtime6

Vanaf nu is de tijd synchronisatie volledig goed ingesteld.

[ad#postad]

Comments (1) Trackbacks (0)
  1. Hi Rob,

    Toch vind ik het logischer om ook op virtuele servers die zich binnen een AD bevinden gebruik te maken van de best practise tav tijdsynchronisatie. Ervaring leert dat je hiermee de minste ellende op je hals haalt.

    Verders gebruik ik liever de ntp oplossing van ntp.pool.org (http://www.pool.ntp.org/zone/nl).

    Leuk om te lezen dat in 3.5 de NTP config grafisch is gemaakt wist ik nog niet.

    Groet,
    Louis


Leave a Reply

No trackbacks yet.