Delen via


Tijdsynchronisatie voor Windows-VM's in Azure

Van toepassing op: ✔️ Windows-VM's ✔️ Flexibele schaalsets ✔️ Uniform schaalsets

Tijdsynchronisatie is belangrijk voor beveiliging en gebeurteniscorrelatie. Soms wordt het gebruikt voor de implementatie van gedistribueerde transacties. De tijdsnauwkeurigheid tussen meerdere computersystemen wordt bereikt door synchronisatie. Synchronisatie kan worden beïnvloed door meerdere dingen, waaronder opnieuw opstarten en netwerkverkeer tussen de tijdbron en de computer die de tijd ophaalt.

Azure wordt nu ondersteund door een infrastructuur die wordt uitgevoerd Windows Server 2016. Windows Server 2016 heeft verbeterde algoritmen gebruikt om de tijd te corrigeren en de lokale klok te synchroniseren met UTC. Windows Server 2016 ook de VMICTimeSync-service verbeterd die bepaalt hoe VM's worden gesynchroniseerd met de host voor nauwkeurige tijd. Verbeteringen omvatten een nauwkeurigere begintijd bij het starten van de VM of correctie van vm-herstel en onderbrekingslatentie voor voorbeelden die worden verstrekt aan Windows Time (W32time).

Notitie

Bekijk deze overzichtsvideo op hoog niveau voor een kort overzicht van De Windows Time-service.

Zie Nauwkeurige tijd voor Windows Server 2016 voor meer informatie.

Overzicht

De nauwkeurigheid van een computerklok wordt gemeten op basis van hoe dicht de computerklok is bij de utc-tijdstandaard (Coordinated Universal Time). UTC wordt gedefinieerd door een multinationale steekproef van nauwkeurige atoomklokken die slechts één seconde in 300 jaar kunnen worden uitgeschakeld. Voor het rechtstreeks lezen van UTC is echter speciale hardware vereist. In plaats daarvan worden tijdservers gesynchroniseerd met UTC en toegankelijk vanaf andere computers om schaalbaarheid en robuustheid te bieden. Elke computer heeft een tijdsynchronisatieservice die weet welke tijd servers moeten gebruiken en controleert regelmatig of de computerklok moet worden gecorrigeerd en past de tijd aan indien nodig.

Azure-hosts worden gesynchroniseerd met interne Microsoft-tijdservers die hun tijd nemen vanaf Stratum 1-apparaten die eigendom zijn van Microsoft, met GPS-antennes. Virtuele machines in Azure kunnen afhankelijk zijn van hun host om de nauwkeurige tijd (hosttijd) door te geven aan de VM of de VM kan rechtstreeks tijd ophalen van een tijdserver of een combinatie van beide.

Interacties van virtuele machines met de host kunnen ook van invloed zijn op de klok. Tijdens onderhoud met geheugenbehoud worden VM's maximaal 30 seconden onderbroken. Voordat het onderhoud begint, wordt bijvoorbeeld de klok van de VM 10:00:00 uur weergegeven en duurt het 28 seconden. Nadat de VM is hervat, wordt in de klok op de VM nog steeds 10:00:00 uur weergegeven, wat 28 seconden later is. Om dit te corrigeren, controleert de VMICTimeSync-service wat er gebeurt op de host en wordt gevraagd of er wijzigingen moeten worden aangebracht op de VM's om dit te compenseren.

De VMICTimeSync-service werkt in de voorbeeld- of synchronisatiemodus en heeft alleen invloed op de klok vooruit. In de voorbeeldmodus, waarvoor W32time moet worden uitgevoerd, controleert de VMICTimeSync-service de host elke 5 seconden en geeft tijdsvoorbeelden aan W32time. Ongeveer elke 30 seconden neemt de W32time-service het laatste tijdsvoorbeeld en gebruikt deze om de klok van de gast te beïnvloeden. De synchronisatiemodus wordt geactiveerd als een gast is hervat of als de klok van een gast meer dan 5 seconden achter de klok van de host afdrijft. In gevallen waarin de W32time-service correct wordt uitgevoerd, mag het laatste geval zich nooit voordoen.

Zonder dat de tijdsynchronisatie werkt, zou de klok op de VM fouten verzamelen. Wanneer er slechts één VM is, is het effect mogelijk niet significant, tenzij de workload zeer nauwkeurige tijdregistratie vereist. Maar in de meeste gevallen hebben we meerdere onderling verbonden VM's die tijd gebruiken om transacties bij te houden en de tijd moet consistent zijn gedurende de hele implementatie. Wanneer de tijd tussen VM's verschilt, kunt u de volgende effecten zien:

  • Verificatie mislukt. Beveiligingsprotocollen zoals Kerberos of certificaatafhankelijke technologie zijn afhankelijk van tijd die consistent is in de systemen.
  • Het is erg moeilijk om erachter te komen wat er in een systeem is gebeurd als logboeken (of andere gegevens) het niet op tijd eens zijn. Dezelfde gebeurtenis ziet eruit alsof deze op verschillende momenten is opgetreden, waardoor correlatie moeilijk wordt.
  • Als de klok is uitgeschakeld, kan de facturering onjuist worden berekend.

De beste resultaten voor Windows-implementaties worden bereikt door Windows Server 2016 als gastbesturingssysteem te gebruiken, zodat u de nieuwste verbeteringen in tijdsynchronisatie kunt gebruiken.

Configuratie-opties

Er zijn drie opties voor het configureren van tijdsynchronisatie voor uw Windows-VM's die worden gehost in Azure:

De standaardinstelling gebruiken

Standaard worden vm-installatiekopieën van Windows-besturingssysteem geconfigureerd voor w32time om te synchroniseren vanuit twee bronnen:

  • De NtpClient-provider, die informatie ophaalt uit time.windows.com.
  • De VMICTimeSync-service, die wordt gebruikt om de hosttijd door te geven aan de VM's en correcties aan te brengen nadat de VM is onderbroken voor onderhoud. Azure-hosts gebruiken Stratum 1-apparaten van Microsoft om de tijd nauwkeurig te houden.

w32time geeft de voorkeur aan de tijdprovider in de volgende volgorde van prioriteit: stratumniveau, root delay, root dispersion, time offset. In de meeste gevallen geeft w32time op een Azure-VM de voorkeur aan hosttijd vanwege evaluatie die nodig is om beide tijdsbronnen te vergelijken.

Voor computers die lid zijn van een domein, wordt door het domein zelf een tijdsynchronisatiehiërarchie ingesteld, maar de foresthoofdmap moet nog steeds ergens tijd in beslag nemen en de volgende overwegingen zijn nog steeds van toepassing.

Alleen host

Omdat time.windows.com een openbare NTP-server is, is het synchroniseren van tijd met het verkeer via internet vereist, verschillende pakketvertragingen kunnen de kwaliteit van de tijdsynchronisatie negatief beïnvloeden. Als u time.windows.com verwijdert door over te schakelen naar alleen hostsynchronisatie, kunt u soms uw tijdsynchronisatieresultaten verbeteren.

Overschakelen naar alleen-host-tijdsynchronisatie is zinvol als u problemen ondervindt met tijdsynchronisatie met behulp van de standaardconfiguratie. Probeer de alleen-hostsynchronisatie uit om te zien of dit de tijdsynchronisatie op de VM zou verbeteren.

Externe tijdserver

Als u specifieke tijdsynchronisatievereisten hebt, is er ook een optie voor het gebruik van externe tijdservers. Externe tijdservers kunnen specifieke tijd bieden, wat handig kan zijn voor testscenario's, het garanderen van tijdsuniformiteit met machines die worden gehost in niet-Microsoft-datacenters of het op een speciale manier verwerken van schrikkelseconden.

U kunt externe servers combineren met de VMICTimeSync-service en VMICTimeProvider om resultaten te bieden die vergelijkbaar zijn met de standaardconfiguratie.

Controleer de configuratie

Controleer of de NtpClient-tijdprovider is geconfigureerd voor het gebruik van expliciete NTP-servers (NTP) of domeintijdsynchronisatie (NT5DS).

w32tm /dumpreg /subkey:Parameters | findstr /i "type"

Als de VM NTP gebruikt, ziet u de volgende uitvoer:

Value Name                 Value Type          Value Data
Type                       REG_SZ              NTP

Als u wilt zien op welke tijd server de NtpClient-tijdprovider gebruikt, typt u het volgende bij een opdrachtprompt met verhoogde bevoegdheid:

w32tm /dumpreg /subkey:Parameters | findstr /i "ntpserver"

Als de VM de standaardwaarde gebruikt, ziet de uitvoer er als volgt uit:

NtpServer                  REG_SZ              time.windows.com,0x8

Om te zien hoe laat de provider momenteel wordt gebruikt.

w32tm /query /source

Dit is de uitvoer die u kunt zien en wat dit zou betekenen:

  • time.windows.com : in de standaardconfiguratie krijgt w32time tijd van time.windows.com. De kwaliteit van de tijdsynchronisatie is afhankelijk van de internetverbinding en wordt beïnvloed door pakketvertragingen. Dit is de gebruikelijke uitvoer die u op een fysieke machine krijgt.
  • VM IC-tijdsynchronisatieprovider : de VM synchroniseert de tijd van de host. Dit is de gebruikelijke uitvoer die u krijgt op een virtuele machine die wordt uitgevoerd in Azure.
  • Uw domeinserver : de huidige machine bevindt zich in een domein en het domein definieert de tijdsynchronisatiehiërarchie.
  • Een andere server : w32time is expliciet geconfigureerd om de tijd van die andere server op te halen. De kwaliteit van de tijdsynchronisatie is afhankelijk van de serverkwaliteit van deze tijd.
  • Lokale CMOS-klok - klok is niet gesynchroniseerd. U kunt deze uitvoer krijgen als w32time niet voldoende tijd heeft gehad om te starten na het opnieuw opstarten of wanneer niet alle geconfigureerde tijdbronnen beschikbaar zijn.

Aanmelden voor tijdsynchronisatie voor alleen-host

Azure werkt voortdurend aan het verbeteren van de tijdsynchronisatie op hosts en kan garanderen dat alle tijdsynchronisatie-infrastructuur wordt gebruikt in datacenters die eigendom zijn van Microsoft. Als u problemen met tijdsynchronisatie ondervindt met de standaardinstelling die de voorkeur geeft aan het gebruik van time.windows.com als primaire tijdbron, kunt u de volgende opdrachten gebruiken om u aan te geven dat alleen tijdsynchronisatie wordt gehost.

Markeer de VMIC-provider als ingeschakeld.

reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w32time\TimeProviders\VMICTimeProvider /v Enabled /t REG_DWORD /d 1 /f

Markeer de NTPClient-provider als uitgeschakeld.

reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w32time\TimeProviders\NtpClient /v Enabled /t REG_DWORD /d 0 /f

Start de w32time-service opnieuw op.

net stop w32time && net start w32time

vm's Windows Server 2012 en R2

Windows Server 2012 en Windows Server 2012 R2 hebben verschillende standaardinstellingen voor tijdsynchronisatie. De w32time is standaard geconfigureerd op een manier die de voorkeur geeft aan lage overhead van de service gedurende een nauwkeurige periode.

Als u uw Windows Server 2012- en 2012 R2-implementaties wilt verplaatsen naar de nieuwere standaardinstellingen die de voorkeur geven aan nauwkeurige tijd, kunt u de volgende instellingen toepassen.

Werk de w32time-poll en update-intervallen bij zodat deze overeenkomen met Windows Server 2016 instellingen.

reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w32time\Config /v MinPollInterval /t REG_DWORD /d 6 /f
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w32time\Config /v MaxPollInterval /t REG_DWORD /d 10 /f
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w32time\Config /v UpdateInterval /t REG_DWORD /d 100 /f
w32tm /config /update

Om w32time de nieuwe poll-intervallen te kunnen gebruiken, moeten de NtpServers worden gemarkeerd als gebruikend. Als servers worden geannoteerd met het 0x1 bitflagmasker, zou dat dit mechanisme overschrijven en w32time in plaats daarvan worden gebruikt SpecialPollInterval . Zorg ervoor dat de opgegeven NTP-servers de 0x8 vlag of helemaal geen vlag gebruiken:

Controleer welke vlaggen worden gebruikt voor de NTP-servers.

w32tm /dumpreg /subkey:Parameters | findstr /i "ntpserver"

Volgende stappen

Hieronder vindt u koppelingen naar meer informatie over de tijdsynchronisatie: