Hyper-V e il tempo (1)

In una rete Windows, solitamente le macchine sincronizzano l’orologio con il domain controller che simula il PDC. Una classica configurazione prevede quindi che il PDC sincronizzi l’orologio con un server NTP in Internet. In questo modo tutte le macchine sono coerenti.

Ieri mi è capitato un effetto interessante. Un cliente aveva il server con il ruolo PDC virtuale su un server virtuale ospitato in Hyper-V. Questo server virtuale si collegava ad un server NTP pubblico ma non riusciva ad sincronizzare l’orologio. Tutte le macchine del dominio avevano un orario più avanti di circa 15 minuti.

Il fatto è che una macchina ospitata solitamente utilizza una serie di servizi forniti dall’ipervisore. Tra questi vi sono i servizi di Time Synchronization che fanno si che la macchina sincronizzi l’orario sulla base di quello dell’ipervisore. Quindi se l’ipervisore ha un orario errato (era il nostro caso) anche le macchine ospitate che usano questi servizi avranno un orario errato. Cambiare l’orario in una macchina ospitata non sortisce alcun effetto.

Per risolvere il problema si possono seguire varie strade. Ad esempio si sposta il PDC su un server fisico e si fa in modo che questo si sincronizzi con il server NTP. Oppure si fa in modo che l’ipervisore si sincronizzi via NTP così, di conseguenza, le macchine virtuali ospitate avranno l’ora corretta (ma questo potrebbe provocare una retroazione). Oppure, soluzione da me scelta in questo particolare caso, si disabilita il servizio di Time Synchronization per la macchina virtuale che ha il ruolo di PDC.

image

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: