Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a: ✔️ Macchine virtuali Windows ✔️ Set di scalabilità flessibili ✔️ Set di scalabilità uniformi
La sincronizzazione dell'ora è importante per la sicurezza e la correlazione degli eventi. A volte viene usato per l'implementazione delle transazioni distribuite. La precisione dell'ora tra più sistemi di computer si ottiene con la sincronizzazione. La sincronizzazione può essere interessata da più fattori, tra cui i riavvii e il traffico di rete tra l'origine dell'ora e il computer che la recupera.
Informazioni generali
La precisione di un orologio del computer viene misurata in base a quanto l'orologio del computer si avvicina allo standard dell'ora UTC. L'ora UTC è definita da un campione multinazionale di orologi atomici precisi che possono essere sfalsati solo di un secondo in 300 anni. Tuttavia, leggere l'ora UTC direttamente richiede un hardware specializzato. Al contrario, i server di riferimento ora vengono sincronizzati con UTC e sono accessibili da altri computer in modo da garantire scalabilità e affidabilità. In ogni computer viene eseguito un servizio di sincronizzazione dell'ora che sa quali server di riferimento ora usare e verifica periodicamente se l'orologio del computer deve essere corretto e, se necessario, regola l'ora.
Gli host di Azure vengono sincronizzati con i server di riferimento ora interni di Microsoft che ricavano l'ora da dispositivi di strato 1 di proprietà di Microsoft, con antenne GPS. Le macchine virtuali di Azure possono dipendere dal proprio host per passare l'ora esatta (ora host) alla macchina virtuale oppure la macchina virtuale può ottenere direttamente l'ora da un server di riferimento ora o una combinazione di entrambi.
Le interazioni delle macchine virtuali con l'host possono influire sull'orologio. Durante la manutenzione con mantenimento della memoria le macchine virtuali vengono messe in pausa fino a 30 secondi. Ad esempio, prima che inizi la manutenzione l'orologio della macchina virtuale indica 10:00:00 AM e dura 28 secondi. Quando l'esecuzione della macchina virtuale riprende, l'orologio della macchina virtuale indicherebbe ancora 10:00:00 AM, con un ritardo di 28 secondi. Per risolvere il problema, il servizio VMICTimeSync monitora ciò che accade nell'host e chiede che le modifiche vengano apportate alle macchine virtuali per compensare.
Il servizio VMICTimeSync opera in modalità di esempio o sincronizzazione e influirà solo sull'orologio in avanti. In modalità di esempio, che richiede l'esecuzione di W32time, il servizio VMICTimeSync esegue il polling dell'host ogni 5 secondi e fornisce campioni di tempo a W32time. Ogni 30 secondi circa il servizio W32time acquisisce il campione temporale più recente e lo usa per influenzare l'orologio del guest. La modalità di sincronizzazione viene attivata se un ospite è stato ripreso o se l'orologio di un ospite ritarda di più di 5 secondi indietro rispetto all'orologio dell'host. Nei casi in cui il servizio W32time è in esecuzione correttamente, quest'ultimo caso non dovrebbe mai verificarsi.
Senza il lavoro di sincronizzazione dell'ora, l'orologio della macchina virtuale può accumulare errori. Quando è presente una sola macchina virtuale, l'effetto potrebbe non essere significativo a meno che il carico di lavoro non richieda un mantenimento del tempo estremamente accurato. Tuttavia, nella maggior parte dei casi sono disponibili più macchine virtuali interconnesse che usano l'ora per tenere traccia delle transazioni e l'ora deve essere coerente in tutta la distribuzione. Quando l'ora è diversa tra le macchine virtuali, si possono osservare gli effetti seguenti:
- L'autenticazione ha esito negativo. I protocolli di sicurezza come Kerberos o la tecnologia dipendente dal certificato si basano sulla coerenza dell'ora tra i sistemi.
- È molto difficile capire cosa è successo in un sistema se i log (o altri dati) non sono d'accordo sul tempo. Può sembrare che lo stesso evento si sia verificato in momenti diversi e questo rende difficile la correlazione.
- Se orologio è disattivato, la fatturazione può essere calcolata in modo non corretto.
I risultati migliori per le distribuzioni di Windows vengono ottenuti usando Windows Server 2016 come sistema operativo guest, che consente di usare i miglioramenti più recenti nella sincronizzazione dell'ora.
Opzioni di configurazione
Sono disponibili tre opzioni per configurare la sincronizzazione dell'ora per le macchine virtuali Windows ospitate in Azure:
- Tempo dell'host e time.windows.com. Questa è la configurazione predefinita usata nelle immagini di Azure Marketplace.
- Solo per l'host.
- Usare un altro server di riferimento ora esterno, con o senza l'ora dell'host. Per questa opzione, seguire la guida meccanismo dell'ora per le macchine virtuali Windows di Active Directory in Azure.
Usare il valore predefinito
Per impostazione predefinita, le immagini di macchina virtuale del sistema operativo Windows sono configurate per w32time per la sincronizzazione da due origini:
- Il provider NtpClient, che ottiene informazioni da time.windows.com.
- Il servizio VMICTimeSync, usato per comunicare l'ora dell'host alle macchine virtuali e apportare correzioni dopo la sospensione della macchina virtuale per la manutenzione. Gli host di Azure usano dispositivi Stratum 1 di proprietà di Microsoft per mantenere un tempo preciso.
w32time preferisce il provider di servizi orari nel seguente ordine di priorità: livello strato, ritardo radice, dispersione radice, differenza di orario. Nella maggior parte dei casi, w32time in una macchina virtuale di Azure preferirebbe l'ora dell'host a causa della valutazione che verrebbe eseguita per confrontare entrambe le origini temporali.
Per i computer appartenenti a un dominio, lo stesso dominio stabilisce una gerarchia di sincronizzazione dell'ora, ma la radice della foresta proveniente da un punto ha comunque bisogno di tempo e le considerazioni seguenti restano vere.
Solo host
Poiché time.windows.com è un server NTP pubblico, la sincronizzazione del tempo con esso richiede l'invio del traffico su Internet, i ritardi di pacchetti variabili possono influire negativamente sulla qualità della sincronizzazione dell'ora. La rimozione di time.windows.com passando alla sincronizzazione solo host può talvolta migliorare i risultati della sincronizzazione dell'ora.
Passare alla sincronizzazione temporale solo tra host ha senso se si verificano problemi di sincronizzazione usando la configurazione predefinita. Prova la sincronizzazione solo con host per vedere se migliora la sincronizzazione dell'ora sulla macchina virtuale.
Server ora esterno
Se si dispone di requisiti di sincronizzazione dell'ora specifici, è anche possibile usare server ora esterni. I server orari esterni possono fornire un tempo specifico, che può essere utile per gli scenari di test, garantendo l'uniformità del tempo con i computer ospitati in data center non Microsoft o gestendo i secondi intercalari in modo speciale.
È possibile combinare server esterni con il servizio VMICTimeSync e VMICTimeProvider per fornire risultati simili alla configurazione predefinita.
Verificare la configurazione
Controllare se il provider di tempo NtpClient è configurato per l'uso di server NTP espliciti (NTP) o sincronizzazione dell'ora di dominio (NT5DS).
w32tm /dumpreg /subkey:Parameters | findstr /i "type"
Se la macchina virtuale usa NTP, verrà visualizzato l'output seguente:
Value Name Value Type Value Data
Type REG_SZ NTP
Per vedere quali server di riferimento ora usa il provider di servizi orari NtpClient, in un tipo di prompt dei comandi con privilegi elevati:
w32tm /dumpreg /subkey:Parameters | findstr /i "ntpserver"
Se la macchina virtuale usa l'impostazione predefinita, l'output sarà simile al seguente:
NtpServer REG_SZ time.windows.com,0x8
Per verificare quale provider di servizi orari è attualmente in uso.
w32tm /query /source
Di seguito è riportato l'output che è possibile visualizzare e cosa significa:
- time.windows.com : nella configurazione predefinita, w32time otterrebbe l'ora da time.windows.com. La qualità della sincronizzazione dell'ora dipende dalla connettività Internet e dipende dai ritardi dei pacchetti. Questo è il solito output che si otterrebbe in un computer fisico.
- Provider di sincronizzazione dell'ora IC della macchina virtuale: la macchina virtuale sta sincronizzando l'ora dall'host. Questo è il solito output che si otterrebbe in una macchina virtuale in esecuzione in Azure.
- Server di dominio : il computer corrente si trova in un dominio e il dominio definisce la gerarchia di sincronizzazione dell'ora.
- Un altro server : w32time è stato configurato in modo esplicito per ottenere l'ora da un altro server. La qualità della sincronizzazione dell'ora dipende dalla qualità di questo server di riferimento ora.
- Orologio CMOS Locale - l'orologio non è sincronizzato. È possibile ottenere questo output se w32time non ha avuto tempo sufficiente per iniziare dopo un riavvio o quando tutte le origini temporali configurate non sono disponibili.
Scegli di abilitare la sincronizzazione dell'ora solo per host
Azure sta costantemente lavorando per migliorare la sincronizzazione del tempo negli host e può garantire che l'infrastruttura di sincronizzazione di tutto il tempo sia collocata nei data center di proprietà di Microsoft. Se si verificano problemi di sincronizzazione dell'ora con l'installazione predefinita che utilizza time.windows.com come fonte principale dell'ora, è possibile utilizzare i seguenti comandi per passare alla sincronizzazione dell'ora solo con host locale.
Contrassegnare il provider VMIC come abilitato.
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w32time\TimeProviders\VMICTimeProvider /v Enabled /t REG_DWORD /d 1 /f
Contrassegnare il provider NTPClient come disabilitato.
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w32time\TimeProviders\NtpClient /v Enabled /t REG_DWORD /d 0 /f
Riavviare il servizio w32time.
net stop w32time && net start w32time
Macchine virtuali Windows Server 2012 e R2
Windows Server 2012 e Windows Server 2012 R2 hanno impostazioni predefinite diverse per la sincronizzazione dell'ora. Per impostazione predefinita, w32time è configurato in modo da preferire un sovraccarico ridotto del servizio nel tempo preciso.
Se vuoi spostare le distribuzioni di Windows Server 2012 e 2012 R2 per usare le impostazioni predefinite più recenti che preferiscono l'ora precisa, puoi applicare le impostazioni seguenti.
Aggiornare gli intervalli di polling e aggiornamento w32time in modo che corrispondano alle impostazioni di Windows Server 2016.
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
Affinché w32time possa usare i nuovi intervalli di polling, i NtpServer devono essere contrassegnati per usarli. Se i server sono annotati con la maschera 0x1 bitflag, essa sovrascriverebbe questo meccanismo e w32time utilizzerebbe SpecialPollInterval invece. Assicurarsi che i server NTP specificati usino il flag 0x8 o nessun flag:
Controllare quali flag vengono usati per i server NTP.
w32tm /dumpreg /subkey:Parameters | findstr /i "ntpserver"
Passaggi successivi
Di seguito sono riportati i collegamenti a informazioni più dettagliate sulla sincronizzazione dell'ora:
- Windows Time Service Tools and Settings (Strumenti e impostazioni del servizio Ora di Windows)
- Windows Server 2016 Improvements (Miglioramenti di Windows Server 2016)
- Accurate Time for Windows Server 2016 (Ora esatta per Windows Server 2016)
- Support boundary to configure the Windows Time service for high-accuracy environments (Limiti del supporto per la configurazione del servizio Ora di Windows per gli ambienti ad alta precisione)