Hyper-V Time Sync per controller di dominio VM


13

Abbiamo 2 server hyper-V fisici che eseguono 8 VM tra di loro, ogni server fisico ha un controller di dominio su di esso in esecuzione in una VM e tutti i server sono 2008R2

VM PDC è impostato su NTP e per la sincronizzazione con time.microsoft.com e gli altri, inclusi i server fisici, sono NT5DS. Questo PDC VM principale detiene sicuramente il FSMO ed è UDP 123 attivo

quando eseguo w32tm / query / status

Sto ottenendo il provider di sincronizzazione dell'ora VM IC su entrambi i controller di dominio VM, so che questo significa sincronizzarsi con l'host.

Quando eseguo w32tm / resync / rediscover

Ho ottenuto "non si è risincronizzato perché non erano disponibili dati temporali" e un ID evento 134 nei log ha qualche idea al riguardo?

Ho anche controllato i registri e ho ricevuto gli eventi 144 e 12

Ho seguito i dettagli di MS KB sull'impostazione di un'origine temporale esterna e ho apportato tutte le modifiche al registro ma penso che il DNS mi stia ottenendo?

Ma quando cambio l'ora su una delle macchine fisiche, è da lì che viene impostata l'ora. Forse se li annulla tutti e mi registro, aggiorno e sincronizzo, ma temo di creare un problema più grande!

Sto cercando di lasciare la sincronizzazione del tempo tra la VM e Hyper-V Host abilitata poiché credo che questa sia la migliore pratica da quello che ho letto.

Grazie per l'aiuto



Finalmente ce l'ho fatta! L'obiettivo di questo è aiutare le persone che iniziano all'inizio dell'impostazione di un orario di domini.

In questo esempio tutti i server, il controller di dominio primario (PDC), altri controller di dominio (DC) e altri server eseguono Windows 2008 R2 e sono virtualizzati con Hyper-V.

Per prima cosa leggerai per disabilitare il 'Servizio di integrazione della sincronizzazione temporale' su qualsiasi macchina virtuale all'interno di Hyper-V ma invece dovresti manipolare il Servizio ora di Windows (servizio w32tm) dall'interno del controller di dominio virtuale, non dovresti disabilitarlo perché quando un Il riavvio della macchina virtuale causerà problemi, dovrebbe essere fatto con w32tm. http://blogs.msdn.com/b/virtual_pc_guy/archive/2010/11/19/time-synchronization-in-hyper-v.aspx

Dovrai scoprire quale server è il PDC ed eseguire ruoli FSMO. Esegui questo: netdom query fsmo Il risultato dovrebbe essere il tuo PDC ed è qui che apporti la maggior parte delle modifiche.

Assicurati che nel firewall sia presente una regola "In uscita" su UDP123 e che il programma sia% SystemRoot% \ System32 \ w32tm.exe, passa alla directory di Windows e trova l'exe per tempo

Qui è dove le modifiche al registro diminuiscono! HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ W32Time

Assicurati che il PDC in configurazione nell'indirizzo di registro sopra sia impostato su NTP per "tipo" e che tutti gli altri server siano NT5DS, ciò significa che NTP è il papà! La migliore pratica qui è far sì che il PDC guardi esternamente il tempo e tutto si sincronizzi con esso.

Esegui questo su tutti i controller di dominio (incluso PDC), disabiliterà parzialmente l'orario di Windows in modo da non guardare il computer host per tempo, importante perché siamo virtualizzati. reg add HKLM \ SYSTEM \ CurrentControlSet \ Services \ W32Time \ TimeProviders \ VMICTimeProvider / v Enabled / t reg_dword / d 0

Puoi visitare il sito Web ntp.org http://support.ntp.org/bin/view/Servers/WebHome per trovare un server più vicino a te per sincronizzare il tuo tempo esterno. Consiglio di non usare Microsoft perché sono molto usati e possono scivolare via per questo.

Il comando seguente imposterà il PDC affinché guardi esternamente ma controlla anche le impostazioni del registro come definite qui per la sincronizzazione esternamente (devi fare entrambe le cose) http://support.microsoft.com/kb/816042

Esegui questo su PDC w32tm / config /manualpeerlist: annunciato0.pool.ntp.org,0x1 "/ syncfromflags: MANUAL / affidabile: sì w32tm / config / update w32tm / resync w32tm / resync / rediscover

Esegui questi 2 comandi in qualsiasi momento su qualsiasi server per vedere la loro fonte e quando sono stati aggiornati per l'ultima volta, verranno utilizzati durante questo esercizio per assicurarti che il tuo PDC e altri server stiano ricevendo il tempo dal posto giusto w32tm / query / status w32tm / query /fonte

Quindi eseguilo su tutti i controller di dominio esclusi il PDC, li farà guardare al PDC per tempo e risincronizzerà con esso w32tm / config / syncfromflags: DOMHIER / update net stop w32time net start w32time w32tm / resync / force

Problemi: quando si esegue la query Stato o Origine, dare loro un minuto o 2 dopo le modifiche, non si dovrebbe guardare l'orologio CMOS locale e non si dovrebbe usare neanche il provider di sincronizzazione dell'ora VM come sorgente.

In caso di successo, il PDC dovrebbe leggere il sito esterno impostato e gli altri server dovrebbero indicare il PDC come sorgente

Spero che questo aiuti le persone in bocca al lupo!


Salve, le risposte vanno nella sezione Risposta, non come modifiche alla Domanda.
Michael Hampton

2
Questo non funziona completamente nel nuovo Hyper-V 2012R2 con gli ultimi aggiornamenti di integrazione, poiché il tempo ritorna immediatamente all'host sottostante dopo essere stato impostato dal server NTP. Anche dopo essere rimasto seduto per un po ', è stato bloccato nel momento sbagliato. Ho scoperto che modificando anche la chiave del Registro di sistema TimeProviders / VMICTimeProvider / InputProvider = 0, il server ha smesso di tornare così rapidamente all'host sottostante.
Brain2000,

1
Ho formattato la tua risposta di seguito per una migliore leggibilità. Potrebbe voler rimuovere la risposta dalla tua domanda e fare riferimento solo alla tua risposta.
Tilo,

Risposte:


12

@PSaul è per lo più corretto. Non si desidera utilizzare time.microsofto time.windows.comcome origine temporale per il proprio controller di dominio che detiene il ruolo FSMO dell'emulatore PDC. Come impostazione predefinita sono ampiamente utilizzati, spesso lenti a causa della mancanza di località e talvolta non disponibili. Scegli un pool NTP più vicino a te.

Tuttavia, non disabilitare l'integrazione della sincronizzazione temporale Hyper-V. È necessario per alcune funzioni come il ripristino del tempo dopo un riavvio o quando la macchina virtuale ritorna da uno stato salvato. Quello che vuoi fare è dire ai tuoi controller di dominio virtualizzati di ignorare il loro host Hyper-V come fonte temporale.

Questo può essere fatto come segue:

reg add HKLM\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\VMICTimeProvider /v Enabled /t reg_dword /d 0

Questo comando rimuove l'origine temporale Hyper-V come possibile sorgente per W32Time.

w32tm /config /syncfromflags:DOMHIER /update

Ora dì a W32Time di cercare la migliore fonte di tempo possibile nella gerarchia di domini. Se si desidera utilizzare una fonte esterna per entrambi i controller di dominio, è possibile configurarlo per farlo utilizzando i comandi @PSaul pubblicati o da qui . In generale, il controller di dominio che detiene il ruolo di emulatore PDC dovrebbe sincronizzarsi da una fonte esterna e gli altri controller di dominio dovrebbero sincronizzarsi da esso.

net stop w32time & net start w32time
w32tm /resync /force

Riavviare il servizio orario e forzare una risincronizzazione.

w32tm /query /source

Infine, dovresti confermare che i tuoi controller di dominio hanno l'origine temporale corretta.

Vedi l'eccellente post sul blog di Ben Armstrong per maggiori dettagli.


Grazie per le informazioni, avevo letto il blog di Ben Armstrongs e volevo attenermi alle migliori pratiche. Sulla VM che è il PDC oggi ho eseguito: w32tm / config /manualpeerlist:en0.pool.ntp.org,0x1 "/ syncfromflags: MANUAL / affidabile: si w32tm / config / update w32tm / resync w32tm / resync / rediscover
Karl

Nel registro 0.pool.ntp.org, 0x1 è ora il valore per il server NTP. Posso ping 0.pool.ntp.org dal PDC ma ancora non posso ping time.windows.com che pensavo fosse strano! Il tempo è impostato da uno degli host, ne sono sicuro, ma è impostato su NT5DS e / query / status mi sta dicendo che sta usando il PDC, devo eseguire alcuni comandi sull'host per farlo risincronizzare al VM PDC? Ho visto il comando reg add e suppongo che questo debba essere fatto su tutti i controller di dominio? Mi chiedo se w32tm / config / syncfromflags: DOMHIER / update debbano essere eseguiti anche sul PDC o su tutti gli altri controller di dominio?
Karl

Penso che manchi la fine del primo commento, dopo aver eseguito i comandi seguenti sul PDC. Tutto ciò ha funzionato con successo ma quando ho eseguito w32tm / query / status avevo ancora una fonte di "provider di sincronizzazione del tempo vm ic" w32tm / config /manualpeerlist:en0.pool.ntp.org,0x1 "/ syncfromflags: MANUAL / affidabile: si w32tm / config / update w32tm / resync w32tm / resync / rediscover e avvio e arresto
Karl

Grazie per tutti i consigli, penso di averlo finalmente ricevuto, ma me ne andrò per alcuni giorni per confermare e poi aggiornerò ciò che ho fatto per risolvere
Karl


5

Finalmente ce l'ho fatta! L'obiettivo di questo è aiutare le persone che iniziano all'inizio dell'impostazione di un orario di domini.

In questo esempio tutti i server, il controller di dominio primario (PDC), altri controller di dominio (DC) e altri server eseguono Windows 2008 R2 e sono virtualizzati con Hyper-V.

Per prima cosa leggerai per disabilitare il 'Servizio di integrazione della sincronizzazione temporale' su qualsiasi macchina virtuale all'interno di Hyper-V ma invece dovresti manipolare il Servizio ora di Windows (servizio w32tm) dall'interno del controller di dominio virtuale, non dovresti disabilitarlo perché quando un Il riavvio della macchina virtuale causerà problemi, dovrebbe essere fatto con w32tm. Informazioni MSDN

Dovrai scoprire quale server è il PDC ed eseguire ruoli FSMO. Esegui questo: netdom query fsmo Il risultato dovrebbe essere il tuo PDC ed è qui che apporti la maggior parte delle modifiche.

Assicurati che nel firewall sia presente una regola "In uscita" su UDP123 e che il programma sia % SystemRoot% \ System32 \ w32tm.exe, passa alla directory di Windows e trova l'exe per tempo

Qui è dove le modifiche al registro diminuiscono!

HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ W32Time

Assicurati che il PDC in configurazione nell'indirizzo di registro sopra sia impostato su NTP per " Tipo " e che tutti gli altri server siano NT5DS, ciò significa che NTP è il papà! La migliore pratica qui è far sì che il PDC guardi esternamente il tempo e tutto si sincronizzi con esso.

Esegui questo su tutti i controller di dominio (incluso PDC), disabiliterà parzialmente l'orario di Windows in modo da non guardare il computer host per tempo, importante perché siamo virtuali.

reg add HKLM\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\VMICTimeProvider /v Enabled /t reg_dword /d 0

Puoi visitare il sito ntp.org per trovare il server più vicino a te per sincronizzare il tuo tempo esterno. Consiglio di non usare Microsoft perché sono molto usati e possono scivolare via per questo.

Il comando seguente imposterà il PDC affinché guardi esternamente ma controlla anche le impostazioni del registro come definite qui per la sincronizzazione esternamente (devi fare entrambe le cose) MS KB 816042

Esegui questo su PDC

w32tm /config /manualpeerlist:"0.pool.ntp.org,0x1" /syncfromflags:MANUAL /reliable:yes   
w32tm /config /update   
w32tm /resync 
w32tm /resync /rediscover

Esegui questi 2 comandi in qualsiasi momento su qualsiasi server per vedere la loro fonte e quando sono stati aggiornati per l'ultima volta, verranno utilizzati durante questo esercizio per assicurarti che il tuo PDC e altri server stiano ricevendo il tempo dal posto giusto

w32tm /query /status  
w32tm /query /source

Quindi esegui questo su tutti i controller di dominio tranne il PDC , li farà guardare il PDC per tempo e risincronizzarlo

w32tm /config /syncfromflags:DOMHIER /update 
net stop w32time 
net start w32time 
w32tm /resync /force

Problemi : quando si esegue la query Stato o Origine, dare loro un minuto o 2 dopo le modifiche, non si dovrebbe guardare l' orologio CMOS locale e non utilizzare neanche il provider di sincronizzazione dell'ora VM come sorgente.

In caso di successo, il PDC dovrebbe leggere il sito esterno impostato e gli altri server dovrebbero indicare il PDC come sorgente

Spero che questo aiuti le persone in bocca al lupo!


Altre due cose: utilizzare un oggetto Criteri di gruppo per configurare l'ora NTP sul PDCE; ciò significa che verrà configurato automaticamente se si sposta il ruolo PDCE: www.sysadminlab.net/windows/configuring-ntp-on-windows-using-gpo.
Trix

Per impostare i flag sul servizio NTP, prendi in considerazione l'utilizzo di 0x8, ciò significa che è una fonte di tempo affidabile che si sincronizza con un orologio hardware da qualche parte. Considera anche di non utilizzare lo 0x1 per "intervallo di tempo speciale". A meno che non sia necessario sincronizzare l'orologio a intervalli specifici, al giorno d'oggi non è necessario. Se il controller di dominio non trova l'ora subito dopo l'avvio (ad es. Rete non pronta), attende l'intero intervallo. Oppure, se si utilizza 0x1 / 0x9, impostare un'altra fonte con 0xa - sorgente di fallback, viene immediatamente interrogata se le fonti primarie non rispondono.
Trix

1

Io suggerirei:

  • NON abilitare la sincronizzazione temporale tra l'host HyperV e le VM guest, in particolare per i controller di dominio. Il detentore del ruolo PDC dovrebbe aggiornare tramite NTP da diverse fonti valide. L'orologio dell'host può essere aggiornato anche tramite NTP ma si desidera che il PDC sia il "master" per altri controller di dominio e server membri. (almeno con VMwre, presumo lo stesso con HyperV)
  • Assicurati di avere la porta UDP 123 aperta per il traffico in uscita.
  • Che puoi risolvere il nome FQDN dei server NTP (puoi eseguirne il PING?)
  • Tutti gli altri controller di dominio e macchine membri devono aggiornarsi automaticamente.

Non utilizzare SOLO time.windows.com o time.microsoft.com, utilizzare uno dei server * .pool.ntp.org. Uso north-america.pool.ntp.org o ca.north-america.pool.ntp.org - più vicino è, meglio è. Puoi controllare: http://www.pool.ntp.org/ per trovare i server vicini a te.

Quindi esegui qualcosa del tipo:

w32tm /config /manualpeerlist:"north-america.pool.ntp.org 0.pool.ntp.org" /syncfromflags:MANUAL /update /reliable:YES

(Aggiungi qualunque server NTP desideri. In Canada uso anche time.nrc.ca)

Seguito da:

net stop w32time
net start w32time

Puoi controllare i peer con:

w32tm /query /peers

Controllare il registro di sistema per vedere se si sta aggiornando. Dovresti essere in grado di impostare l'orologio avanti di 1 minuto, riavviare il servizio w32time e si aggiornerà entro 30 secondi. [è accettabile un'inclinazione inferiore a 5 minuti in un dominio AD]


0

Come raccomandato da altri, sicuramente non c'è sincronizzazione dell'ora hardware dall'host al guest. È inoltre necessario eseguire la sincronizzazione con server NTP esterni solo dal controller di dominio che detiene il ruolo di emulatore PDC della radice della foresta. Se il controller di dominio del ruolo dell'emulatore PDC della foresta non è sincronizzato, i controller di dominio che si basano su di esso avranno problemi.

È inoltre possibile provare il seguente aggiornamento rapido:

La sincronizzazione dell'ora non viene eseguita anche se il servizio W32Time è stato avviato correttamente in Windows Server 2008 o Windows Server 2008 R2

http://support.microsoft.com/kb/2493006

Potresti trovare più utile se usi il flag / verbose per w32tm:

w32tm /query /status /verbose /computer:dcname

Informazioni aggiuntive:

https://technet.microsoft.com/en-us/library/virtual_active_directory_domain_controller_virtualization_hyperv%28WS.10%29.aspx

"Per le macchine virtuali configurate come controller di dominio, si consiglia di disabilitare la sincronizzazione dell'ora tra il sistema host e il sistema operativo guest che funge da controller di dominio. Ciò consente al controller di dominio guest di sincronizzare l'ora dalla gerarchia del dominio."

"Per disabilitare il provider di sincronizzazione dell'ora Hyper-V, arrestare la macchina virtuale e deselezionare la casella di controllo Sincronizzazione ora in Integration Services."

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.