Deriva del tempo dell'host Vmware


10

In che modo si garantisce che gli host Linux, in esecuzione su VMware infrastruction 3 o VMware 3 esxi, rimangano sincronizzati con il server NTTP. Ho scoperto che un guest linux funzionante con esx o esxi ha la tendenza a far andare l'orologio in futuro.

Come si può garantire che l'ora rimanga sincronizzata con il time server? Devo distribuire strumenti vmware sull'host linux? e quindi sincronizzare l'host con il server ntp, il guest con l'host e con il server ntp?

Risposte:


6

Questo è un problema che ho riscontrato e talvolta le derive sono così grandi che il servizio NTTP si è rifiutato di sincronizzarsi.

Ho scoperto che se installi gli strumenti vmware sul guest, sincronizzerà automaticamente il suo tempo con quello dell'host.


Ho anche scoperto che dovevo aggiungere clocksource = pit alla bootline del kernel grub.
Scott,

9

Risposta breve: parametri del kernel corretti e configurazione ntpd

Risposta lunga: VMware ha un documento sulle best practice abbastanza buono su questo, http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1006427

Nota che è in qualche modo contrario ad alcune delle informazioni in questo thread. Ad esempio, si raccomanda specificamente di non utilizzare più la funzione timesync di vmware-tools.


Temo che diverse installazioni host / guest necessitino di una diversa combinazione di soluzioni. Ho lavorato con una scatola virtuale in un altro lavoro con il quale non siamo riusciti a risolvere il problema della sincronizzazione temporale, indipendentemente da ciò che abbiamo provato.
staticsan

4

Sì, l'installazione di vmware-tools per lo strumento di sincronizzazione dell'orologio è importante, ma potrebbe non essere sufficiente.

Ciò che ha funzionato per me è l'aggiunta del parametro di avvio del kernel:

clock=pit notsc

Questo imposta l'orologio su qualcosa che vmware mantiene aggiornato e disabilita il contatore della sincronizzazione temporale.

Forse non correlato, ma su kernel abbastanza recenti aggiungo sempre anche:

divider=10

che riduce significativamente l'utilizzo della CPU guest.

Entrambi sono utili anche con o senza gli strumenti vmware installati e aiutano a mantenere gli orologi più strettamente sincronizzati (piuttosto che una lotta costante tra un orologio alla deriva veloce e il servizio di sincronizzazione dell'orologio degli strumenti vmware).


3

Sì, devi installare vmware-tools sul client VM. Quindi è possibile impostare la casella "Sincronizza tempo ospite con host" nella schermata Opzioni della VM.


1

C'è una risposta che è già selezionata (ed è la risposta migliore, poiché gli strumenti vmware ti offrono molti altri vantaggi), ma un'altra opzione è anche quella di eseguire i normali comandi ntpdate nel cron. Questo corregge il tuo orologio, tuttavia non gestisce la deriva dell'orologio, ma funziona in un pizzico.


1

Fai attenzione con ntpdate o rdate, di solito non è una saggia idea spostare l'ora nel modo più duro, poiché molte applicazioni server dipendono da un tempo continuo.

Dovecot, ad esempio, si fermerà se rileva un grande spostamento di tempo.


Inoltre, non utilizzare mai ntpdate insieme alla funzione di sincronizzazione temporale di VMWare. Puoi finire con VMWare a stabilire una connessione drift-base significativa dopo che ntpdate ha aggiornato l'orologio rendendo le cose così imprecise come nella direzione opposta.
David Spillett,

1

Se si utilizza un kernel "tickless" (2.6.22+ è di default IIRC) nei guest, la deriva dell'orologio è più facile da gestire. Ho scoperto che l'utilizzo di NTP è più accurato dello strumento di VMWare, ma non l'ho testato scientificamente.

Per fermare NTP semplicemente rinunciare se un carico pesante o qualche altro problema fa andare l'orologio troppo lontano (questo molto più raro con i kernel più recenti ma può ancora succedere) assicurati di avere la linea "tinker panic 0" in cima / vicino alla cima del tuo ntp.conf.

Per essere premurosi, sincronizza l'orologio delle macchine host con gli orologi pubblici e le macchine virtuali con l'host: non tutte le macchine virtuali contattano separatamente i server dei tempi pubblici.

Inoltre: non utilizzare la sincronizzazione guest clock di VMWare contemporaneamente a NTPD. I due inciamperanno l'uno sull'altro lasciando l'orologio della VM in uno stato indefinito e inaffidabile.



0

Se installi il demone NTP sul tuo guest Linux come client, controllerà periodicamente e assicurerà che i tuoi orologi non si spostino nel lungo periodo. Non è necessario eseguire alcuna sincronizzazione di tipo host-guest, poiché il server è solo ... in rete. :)


1
Molto probabilmente NTP in una VM NON risolverà questo problema. Il problema con l'esecuzione come macchina virtuale è che non si ottiene necessariamente un numero consistente di tick al secondo di CPU. In queste condizioni, ntp di solito rinuncia ai tentativi di sincronizzazione abbastanza rapidamente. Devi seguire il percorso di vmware-tools o fare un rozzo 'rdate -s $ SERVER' da cron per spostare l'orologio.
David Mackintosh,

0

Questo potrebbe essere utile ..

Parametro di avvio del kernel guest:

 clock=pit
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.