Molti sistemi software che dipendono da un'attenta sequenza degli eventi si basano su un un orologio di sistema stabile e coerente. I log di sistema scritti dalla maggior parte dei servizi includono che aiuta a eseguire il debug dei problemi che si verificano tra i vari componenti del tuo sistema. Per mantenere sincronizzati gli orologi di sistema, Compute Engine Le istanze sono preconfigurate per l'uso del Network Time Protocol (NTP).
Oltre a mantenere sincronizzato il tempo del server, NTP è utile nel raro caso di un secondo intercalare. Il secondo intercalare è un aggiustamento di un secondo apportato all'ora UTC per tenere conto dei cambiamenti nella rotazione della Terra. I secondi intercalari non corrispondono intervalli di routine, poiché la velocità di rotazione della Terra varia in modo irregolare risposta agli eventi climatici e geologici. I secondi intercalari precedenti hanno avuto un impatto significativo su una serie di servizi e applicazioni sul web. I server NTP contribuiscono ad assicurare che tutti i server registrino la stessa ora in caso di un secondo intercalare.
Questo documento descrive come configurare i server NTP sulle tue macchine virtuali (VM) di comportarsi correttamente in caso di secondo intercalare.
Google NTP Server e leap smearing
In un sistema operativo Unix, i secondi intercalari vengono comunemente implementati ripetendo l'ultimo secondo della giornata. Ciò può causare problemi con il software che si aspetta i timestamp in modo che possano solo aumentare. Per aggirare questo problema, i server di riferimento in Google Cloud "sparsa" il secondo in più nelle ventiquattro ore, dodici prima e dodici dopo evento del secondo intercalare, in modo che i computer non vedano il secondo aggiuntivo una volta come timestamp ripetuto. Questo riduce il rischio nei sistemi che dipendono da con un timestamp coerente. È consigliabile che tutti i Compute Engine le istanze di macchine virtuali (VM) sono configurate per utilizzare Servizi Google NTP.
Configura NTP per le istanze
Google Cloud non può prevedere in che modo i servizi NTP esterni, come pool.ntp.org
,
gestire il secondo intercalare. Se possibile, consigliamo di non
usano origini NTP esterne con le VM di Compute Engine. Uniforme
peggio ancora, l'utilizzo sia del servizio NTP di Google sia di un servizio esterno può causare
cambiamenti imprevedibili nell'orario del sistema. È preferibile utilizzare una sola fonte NTP esterna rispetto a una combinazione, ma i servizi NTP esterni, comepool.ntp.org
, probabilmente utilizzeranno il passaggio per gestire il secondo intercalare. Di conseguenza,
le VM potrebbero vedere un timestamp ripetuto.
L'approccio più sicuro consiste nel configurare le VM di Compute Engine di utilizzare un solo server NTP, il server NTP interno fornito in tutti i canali Google. Non combinare server NTP esterni e server NTP di Google, in quanto ciò potrebbe causare comportamenti imprevisti. Per ulteriori informazioni sulla NTP interna server fornito da Google, consulta Domande frequenti su Google Public NTP.
Per assicurarti che le VM siano configurate correttamente, segui queste istruzioni.
Linux (chrony)
Per impostazione predefinita, la maggior parte delle nuove release di Linux utilizza
chrony
per gestire la propria
Impostazioni NTP e sincronizzazione dell'ora. Per fare in modo che
chrony
utilizza solo il servizio NTP interno, controlla chrony
configurazione e rimuovi i server NTP esterni.
Utilizza
ssh
per connetterti all'istanza.Console
Per utilizzare la console per connetterti alla VM tramite SSH, segui questi passaggi:
Vai alla pagina Istanze VM nella console Google Cloud.
Fai clic sul pulsante SSH per la VM da configurare.
gcloud
Per utilizzare Google Cloud CLI per connetterti alla VM tramite SSH, esegui seguente comando:
gcloud compute instances ssh VM_NAME
Sostituisci
VM_NAME
con il nome della VM che stai a cui connetterti.Sulla tua istanza, esegui
chronyc sources
per controllare lo stato attuale configurazione NTP:$ chronyc sources
L'output è simile al seguente:
210 Number of sources = 2 MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== ^* metadata.google.internal 2 6 377 4 -14us[ -28us] +/- 257us ^- 38.229.53.9 2 6 37 4 -283us[ -297us] +/- 28ms
Se vedi un singolo record che punta a
metadata.google
ometadata.google.internal
, non devi apportare alcuna modifica. Se visualizza più fonti, combinate trametadata.google
e una fonte pubblica ad esempiopool.ntp.org
, aggiorna le tue fonti per rimuovere eventuali server NTP esterni.Nell'output di esempio sono presenti due record, uno che punta a
metadata.google.internal
e un'altra che punta a un indirizzo esterno. Poiché esistono più origini, devi aggiornare i server NTP per rimuovere l'indirizzo38.229.53.9
, come descritto nel passaggio successivo.Configura i server NTP in modo da rimuovere i server NTP esterni.
Per rimuovere il server NTP aggiuntivo dall'elenco, modifica il
/etc/chrony/chrony.conf
utilizzando il tuo editor di testo preferito. Trova tutte le linee che iniziano conserver external_source_ip_or_name
e rimuovilo.Dopo aver modificato il file
/etc/chrony/chrony.conf
, riavviachrony
completamente gestito di Google Cloud. Il comando per il riavvio può variare a seconda della configurazione come mostrato nei seguenti esempi:sudo service chrony restart
sudo systemctl restart chrony
Verifica la configurazione eseguendo di nuovo il comando
chronyc sources
:$ chronyc sources
L'output dovrebbe essere simile al seguente:
210 Number of sources = 1 MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== ^* metadata.google.internal 2 7 377 98 -1343ns[-1588ns] +/- 396us
Linux (ntpd)
La maggior parte delle distribuzioni Linux meno recenti utilizza
ntpd
per gestire le impostazioni NTP
e la sincronizzazione dell'ora. Per assicurarti che ntpd
utilizzi solo lo stato interno
Servizio NTP, controlla la configurazione di ntpd
e rimuovi l'NTP esterno
server web.
Utilizza
ssh
per connetterti all'istanza.Console
Per utilizzare la console per connetterti alla VM tramite SSH, segui questi passaggi:
Vai alla pagina Istanze VM nella console Google Cloud.
Fai clic sul pulsante SSH per la VM da configurare.
gcloud
Per utilizzare Google Cloud CLI per connetterti alla VM tramite SSH, esegui seguente comando:
gcloud compute instances ssh VM_NAME
Sostituisci
VM_NAME
con il nome della VM che stai a cui connetterti.Sulla tua istanza, esegui
ntpq -p
per controllare lo stato attuale Configurazione NTP:$ ntpq -p
L'output è simile al seguente:
remote refid st t when poll reach delay offset jitter ============================================================================== *metadata.google 255.28.23.83 2 u 27 64 1 0.634 -2.537 2.285 *217.162.232.173 130.149.17.8 2 u 191 1024 176 79.245 3.589 27.454
Se vedi un singolo record che punta a
metadata.google
ometadata.google.internal
, non devi apportare alcuna modifica. Se visualizza più fonti, combinate trametadata.google
e una fonte pubblica comepool.ntp.org
, devi aggiornare le tue fonti per rimuovere eventuali server NTP esterni.Nell'output di esempio sono presenti due record, uno che punta a
metadata.google
e un'altra che punta a un indirizzo esterno. Poiché da più fonti, devi aggiornare i server NTP per rimuovere l'indirizzo*217.162.232.173
, come descritto nel prossimo passaggio.Configura i server NTP in modo che rimuovano le origini esterne.
Per configurare i server NTP, modifica il file
/etc/ntp.conf
utilizzando editor di testo preferito. Trova la sezioneservers
della configurazione, e rimuovi tutte le sorgenti NTP non Google, ad esempio:vim /etc/ntp.conf
# You do need to talk to an NTP server or two (or three). #server ntp.your-provider.example ... server metadata.google.internal iburst
Dopo aver modificato il file
/etc/ntp.conf
, riavvia il servizio NTP. La di riavvio può variare in base alla distribuzione Linux:sudo service ntp reload
Verifica la configurazione eseguendo di nuovo il comando
ntpq -p
:ntpq -p
remote refid st t when poll reach delay offset jitter ============================================================================== *metadata.google 255.28.23.83 2 u 27 64 1 0.634 -2.537 2.285
Windows
Vai alla pagina Istanze VM nella console Google Cloud.
Fai clic sul pulsante RDP accanto all'istanza Windows che vuoi connettere a.
Dopo aver effettuato l’accesso, fai clic con il tasto destro del mouse sull’icona di PowerShell e seleziona Esegui come amministratore.
Quando viene caricato il prompt di comando, esegui questo comando per visualizzare configurazione NTP attuale:
w32tm /query /configuration
[Configuration] ... Type: NTP (Local) NtpServer: metadata.google.internal, ...
Se vedi un singolo record che punta a
metadata.google
ometadata.google.internal
, non devi apportare alcuna modifica. Se visualizzare più fonti, miste trametadata.google
e un devi rimuovere il server esterno. Segui le Windows guida per configurare il server NTP.Per garantire la compatibilità software più diffusa sulle VM Windows, Google consiglia di utilizzare driver gVNIC per assicurarti precisione NTP inferiore al millisecondo con
metadata.google
.Se devi utilizzare VirtIO con la VM Windows, per ottenere un'accuratezza inferiore al millisecondo con i server NTP, Google consiglia di non utilizzare il servizio orario di Windows (interrompi e annulla la registrazione
w32tm
).Interrompi il servizio Windows Time:
net stop w32time
Rimuovi Windows Time Service dal Registro di sistema:
w32tm /unregister
Dopo che Windows Time Service è stato interrotto e rimosso dal , installa il Cliente NTP di Menberg.
Segui le istruzioni di configurazione fornite nel documento documentazione.
Configura il server NTP per il client NTP di Meinberg come
metadata.google.internal
.Dopo aver configurato NTP, attendi da 5 a 15 minuti che orologio di sistema nella VM per stabilizzarsi con il server NTP.
Per informazioni sul perché non è consigliabile utilizzare w32tm, consulta Documentazione sui problemi noti.
Utilizzo dell'iap smearing con sistemi esterni a Google Cloud
La funzionalità di smagliamento rapido di I server NTP di Google rappresentano un modo conveniente per gestire il rischio legato ripetere un secondo su sistemi sensibili al tempo. Altri servizi NTP possono fornire è accettabile per la maggior parte dei sistemi software. Tuttavia, è importante che non combini i servizi NTP di Google con i passi NTP pubblici i servizi di machine learning.
Per sincronizzare i dispositivi esterni a Google Cloud con il tempo frazionato, puoi utilizzare Google Public NTP per questi dispositivi. NTP pubblico di Google utilizza la stessa distribuzione dei secondi intercalari fornita alle VM Compute Engine.
Passaggi successivi
- Scopri di più su Conformità allo standard di sicurezza dei dati PCI.
- Consulta le domande frequenti su Google Public NTP.