Hyper-V Time Sync para VM Domain Controller

13

Tenemos 2 servidores físicos de Hyper-V que ejecutan 8 máquinas virtuales entre ellos, cada servidor físico tiene un controlador de dominio que se ejecuta en una máquina virtual y todos los servidores son 2008R2

El VM PDC está configurado en NTP y se sincroniza con time.microsoft.com y el resto, incluidos los servidores físicos, son NT5DS. Este PDC de VM principal contiene definitivamente el FSMO y su UDP 123 está activo

cuando ejecuto w32tm / query / status

Estoy obteniendo VM IC Time Synchronization Provider en ambas VM DC, sé que esto significa sincronizar con el host.

Cuando ejecuto w32tm / resync / rediscover

Obtuve "no volví a sincronizar porque no había datos de tiempo disponibles" y una ID de evento 134 en los registros ¿alguna idea al respecto?

También miré a través de los registros y obtuve los eventos 144 y 12

He seguido los detalles de MS KB sobre cómo configurar una fuente de tiempo externa e hice todos los cambios en el registro, pero creo que el DNS me está afectando.

Pero cuando cambio la hora en una de las máquinas físicas, aquí es donde se establece la hora. ¡Tal vez si anulo el registro de todos y me registro y actualizo y sincronizo pero temo que crearé un problema mayor!

Estoy tratando de dejar la sincronización de tiempo entre la VM y el host Hyper-V habilitado, ya que creo que esta es la mejor práctica de lo que he leído.

Gracias por tu ayuda



¡Finalmente lo tengo funcionando! El objetivo de esto es ayudar a las personas que están comenzando al comienzo de establecer un tiempo de Dominios.

En este ejemplo, todos los servidores, el controlador de dominio primario (PDC), otros controladores de dominio (DC) y otros servidores ejecutan Windows 2008 R2 y están virtualizados con Hyper-V.

Lo primero es lo primero que leerá para deshabilitar el 'Servicio de integración de sincronización de hora' en cualquier máquina virtual dentro de Hyper-V, pero en su lugar debe manipular el Servicio de hora de Windows (servicio w32tm) desde el DC virtual, no debe deshabilitar esto porque cuando VM reinicia esto causará problemas, debe hacerse con w32tm. http://blogs.msdn.com/b/virtual_pc_guy/archive/2010/11/19/time-synchronization-in-hyper-v.aspx

Deberá averiguar qué servidor es el PDC y qué funciones FSMO se ejecutan. Ejecute esto: netdom query fsmo El resultado debería ser su PDC y aquí es donde realiza la mayoría de sus cambios.

Asegúrese de que en el cortafuegos haya una regla de "Salida" en UDP123 y que el programa sea% SystemRoot% \ System32 \ w32tm.exe simplemente busque el directorio de Windows y encuentre el exe por tiempo

Aquí es donde caen los cambios en el registro. HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ services \ W32Time

Asegúrese de que el PDC bajo config en la dirección de registro anterior esté configurado en NTP para "tipo" y todos los demás servidores sean NT5DS, ¡esto significa que NTP es el papá! La mejor práctica aquí es hacer que el PDC mire externamente el tiempo y que todo se sincronice con él.

Ejecute esto en todos los controladores de dominio (incluido PDC), deshabilitará parcialmente el tiempo de Windows para que no vea la máquina host por tiempo, importante porque estamos virtualizados. reg agregar HKLM \ SYSTEM \ CurrentControlSet \ Services \ W32Time \ TimeProviders \ VMICTimeProvider / v Enabled / t reg_dword / d 0

Puede ir al sitio ntp.org http://support.ntp.org/bin/view/Servers/WebHome para encontrar el servidor más cercano a usted para sincronizar su hora externa. Recomiendo no usar Microsoft, ya que son muy utilizados y pueden deslizarse debido a esto.

El siguiente comando configurará el PDC para que se vea externamente, pero también verificará la configuración del registro tal como se define aquí para sincronizar externamente (debe hacer ambas cosas) http://support.microsoft.com/kb/816042

Ejecuta esto en PDC w32tm / config /manualpeerlist: detectar0.pool.ntp.org,0x1 ”/ syncfromflags: MANUAL / confiable: sí w32tm / config / update w32tm / resync w32tm / resync / rediscover

Ejecute estos 2 comandos en cualquier momento en cualquier servidor para ver su fuente y cuando se actualizaron por última vez, se usarán durante este ejercicio para asegurarse de que su PDC y otros servidores obtengan el tiempo del lugar correcto w32tm / query / status w32tm / query /fuente

Luego ejecute esto en todos los DC, excepto el PDC, los hará mirar el PDC por tiempo y volver a sincronizarlo w32tm / config / syncfromflags: DOMHIER / update net stop w32time net start w32time w32tm / resync / force

Problemas: cuando ejecuta la consulta de estado o fuente, déles uno o dos minutos después de los cambios, no debería mirar el reloj CMOS local y tampoco debería usar el proveedor de sincronización de hora vm ic como fuente.

Si tiene éxito, el PDC debe leer el sitio externo que ha configurado y los otros servidores deben decir el PDC como fuente

Espero que esto ayude a la gente buena suerte!

Karl
fuente
Hola, las respuestas van en la sección Respuesta, no como modificaciones de la Pregunta.
Michael Hampton
2
Esto no funciona por completo en el nuevo Hyper-V 2012R2 con las últimas actualizaciones de integración, ya que el tiempo vuelve inmediatamente al host subyacente después de ser configurado por el servidor NTP. Incluso después de estar sentado por un tiempo, estaba atrapado en el momento equivocado. Descubrí que al modificar también la clave de registro TimeProviders / VMICTimeProvider / InputProvider = 0, el servidor dejó de regresar tan rápidamente al host subyacente.
Brain2000
1
He formateado su respuesta a continuación para una mejor legibilidad. Es posible que desee eliminar la respuesta de su pregunta y solo una referencia a su respuesta.
Tilo

Respuestas:

12

@PSaul es en su mayoría correcto. No desea usar time.microsofto time.windows.comcomo su fuente de tiempo para su controlador de dominio que tiene el rol de PDC Emulator FSMO. Por defecto, se usan mucho, a menudo son lentos debido a la falta de localidad y, a veces, no están disponibles. Elija un grupo de NTP que esté más cerca de usted.

Sin embargo, no deshabilite la integración de sincronización de tiempo de Hyper-V. Es necesario para ciertas funciones, como restablecer el tiempo después de un reinicio o cuando la máquina virtual regresa de un estado guardado. Lo que quiere hacer es decirle a sus controladores de dominio virtualizados que ignoren su host Hyper-V como fuente de tiempo.

Esto puede hacerse de la siguiente manera:

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

Este comando elimina la fuente de tiempo de Hyper-V como una posible fuente para W32Time.

w32tm /config /syncfromflags:DOMHIER /update

Ahora dígale a W32Time que busque el mejor origen de tiempo posible en la jerarquía de dominio. Si desea utilizar una fuente externa para ambos controladores de dominio, puede configurarlo para que lo haga utilizando los comandos publicados por @PSaul o desde aquí . En términos generales, el controlador de dominio que tiene el rol de emulador PDC debe sincronizarse desde la fuente externa y sus otros controladores de dominio deben sincronizarse desde él.

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

Reinicie el servicio horario y fuerce una resincronización.

w32tm /query /source

Finalmente, debe confirmar que sus controladores de dominio tienen la fuente de tiempo correcta.

Vea la excelente publicación de blog de Ben Armstrong para más detalles.


fuente
Gracias por la información, había leído el blog de Ben Armstrong y quería seguir las mejores prácticas. En la VM que hoy es el PDC, ejecuté: w32tm / config /manualpeerlist: detectar0.pool.ntp.org,0x1 ”/ syncfromflags: MANUAL / confiable: sí w32tm / config / update w32tm / resync w32tm / resync / rediscover
Karl
En el registro 0.pool.ntp.org, 0x1 es ahora el valor para el servidor NTP. Puedo hacer ping a 0.pool.ntp.org desde el PDC, pero aún no puedo hacer ping a time.windows.com, ¡lo que me pareció extraño! El tiempo lo está configurando uno de los hosts, estoy seguro de eso, pero está configurado en NT5DS y / query / status me dice que está usando el PDC, ¿necesito ejecutar algunos comandos en el host para que se vuelva a sincronizar? a la VM PDC? He visto el comando reg add y supongo que esto debe hacerse en todos los DC. Me pregunto si w32tm / config / syncfromflags: DOMHIER / update también debe ejecutarse en el PDC o en todos los demás DC.
Karl
Creo que falta el final del primer comentario, después de ejecutar los siguientes comandos en el PDC. Todos dijeron que fue exitoso, pero cuando ejecuté w32tm / query / status todavía tenía una fuente de "proveedor de sincronización de tiempo vm ic" w32tm / config /manualpeerlist: anal0.pool.ntp.org,0x1 "/ syncfromflags: MANUAL / confiable: sí w32tm / config / update w32tm / resync w32tm / resync / redescubrir e iniciar y detener
Karl
Gracias por todos los consejos, creo que finalmente lo tengo, pero me iré unos días para confirmar y luego actualizaré lo que hice para solucionarlo
Karl
5

¡Finalmente lo tengo funcionando! El objetivo de esto es ayudar a las personas que están comenzando al comienzo de establecer un tiempo de Dominios.

En este ejemplo, todos los servidores, el controlador de dominio primario (PDC), otros controladores de dominio (DC) y otros servidores ejecutan Windows 2008 R2 y están virtualizados con Hyper-V.

Lo primero es lo primero que leerá para deshabilitar el 'Servicio de integración de sincronización de hora' en cualquier máquina virtual dentro de Hyper-V, pero en su lugar debe manipular el Servicio de hora de Windows (servicio w32tm) desde el DC virtual, no debe deshabilitar esto porque cuando VM reinicia esto causará problemas, debe hacerse con w32tm. Información de MSDN

Deberá averiguar qué servidor es el PDC y qué funciones FSMO se ejecutan. Ejecute esto: netdom query fsmo El resultado debería ser su PDC y aquí es donde realiza la mayoría de sus cambios.

Asegúrese de que en el cortafuegos haya una regla de "Salida" en UDP123 y que el programa sea % SystemRoot% \ System32 \ w32tm.exe simplemente busque el directorio de Windows y encuentre el exe por tiempo

Aquí es donde caen los cambios en el registro.

HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ services \ W32Time

Asegúrese de que el PDC bajo config en la dirección de registro anterior esté configurado en NTP para " Tipo " y todos los demás servidores sean NT5DS, ¡esto significa que NTP es el papá! La mejor práctica aquí es hacer que el PDC mire externamente el tiempo y que todo se sincronice con él.

Ejecute esto en todos los controladores de dominio (incluido PDC), deshabilitará parcialmente el tiempo de Windows, por lo que no mira la máquina host por tiempo, importante porque somos virtuales.

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

Puede ir al sitio ntp.org para encontrar el servidor más cercano a usted para sincronizar su hora externa. Recomiendo no usar Microsoft, ya que son muy utilizados y pueden deslizarse debido a esto.

El siguiente comando configurará el PDC para que se vea externamente, pero también verificará la configuración del registro tal como se define aquí para sincronizar externamente (debe hacer ambas cosas) MS KB 816042

Ejecute esto en PDC

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

Ejecute estos 2 comandos en cualquier momento en cualquier servidor para ver su fuente y cuando se actualizaron por última vez, se utilizarán durante este ejercicio para asegurarse de que su PDC y otros servidores obtengan el tiempo del lugar correcto

w32tm /query /status  
w32tm /query /source

Luego ejecute esto en todos los DC excepto el PDC , los hará mirar el PDC por tiempo y volver a sincronizarlo

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

Problemas : cuando ejecuta la consulta de estado o fuente, déles uno o dos minutos después de los cambios, no debería mirar el reloj CMOS local y tampoco debería usar el proveedor de sincronización de tiempo VM IC como fuente.

Si tiene éxito, el PDC debe leer el sitio externo que ha configurado y los otros servidores deben decir el PDC como fuente

Espero que esto ayude a la gente buena suerte!

Karl
fuente
Dos cosas más: use un GPO para configurar el tiempo NTP en el PDCE; esto significa que se configurará automáticamente si la función PDCE se mueve: www.sysadminlab.net/windows/configuring-ntp-on-windows-using-gpo.
Trix
Para configurar los indicadores en el servicio NTP, considere usar 0x8, esto significa que es una fuente de tiempo confiable que se sincroniza con un reloj de hardware en alguna parte. También considere no usar el 0x1 para "intervalo de tiempo especial". A menos que necesite sincronizar su reloj a intervalos específicos, es innecesario en estos días. Si el DC no obtiene su tiempo inmediatamente después del arranque (por ejemplo, la red no está lista), espera ese intervalo completo. O si usa 0x1 / 0x9, configure otra fuente con 0xa - fuente de reserva, se le consultará de inmediato si las fuentes primarias no responden.
Trix
1

Yo sugeriría:

  • NO habilita la sincronización de tiempo entre el host HyperV y las máquinas virtuales invitadas, especialmente para DC. El titular de la función PDC debe actualizarse a través de NTP desde varias fuentes de tiempo buenas. El reloj del Host también puede actualizarse a través de NTP, pero desea que el PDC sea el "maestro" para otros DC y servidores miembros. (al menos con VMwre, supongo lo mismo con HyperV)
  • Asegúrese de tener el puerto UDP 123 abierto para el tráfico saliente.
  • Que puede resolver el FQDN de los servidores NTP (¿puede hacer PING?)
  • Todos los demás DC y máquinas miembro deben actualizarse automáticamente.

No use SOLO time.windows.com o time.microsoft.com, use uno de los servidores * .pool.ntp.org. Uso north-america.pool.ntp.org o ca.north-america.pool.ntp.org: cuanto más cerca mejor. Puede consultar: http://www.pool.ntp.org/ para encontrar servidores cercanos a usted.

Luego ejecuta algo como:

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

(Agregue los servidores NTP que desee. En Canadá también uso time.nrc.ca)

Seguido por:

net stop w32time
net start w32time

Puede consultar a los pares con:

w32tm /query /peers

Verifique el registro del sistema para ver si se está actualizando. Debería poder adelantar el reloj 1 minuto, reiniciar el servicio w32time y se actualizará en 30 segundos. [el sesgo de tiempo de menos de 5 minutos es aceptable dentro de un dominio AD]

PSaul
fuente
0

Según lo recomendado por otros, definitivamente no tiene sincronización de tiempo de hardware del host al invitado. También debe sincronizar con servidores NTP externos solo desde el controlador de dominio que tiene la función de emulador PDC raíz del bosque. Si el controlador de dominio de rol del emulador PDC raíz del bosque no se sincroniza, los DC que confían en él tendrán problemas.

También puede probar la siguiente revisión:

La sincronización de hora no se realiza aunque el servicio W32Time se inicie correctamente en Windows Server 2008 o en Windows Server 2008 R2

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

Puede resultarle más útil si usa el indicador / verbose para w32tm:

w32tm /query /status /verbose /computer:dcname

Información Adicional:

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

"Para las máquinas virtuales que están configuradas como controladores de dominio, se recomienda que desactive la sincronización horaria entre el sistema host y el sistema operativo invitado que actúa como un controlador de dominio. Esto permite que su controlador de dominio invitado sincronice la hora desde la jerarquía de dominio".

"Para deshabilitar el proveedor de sincronización horaria de Hyper-V, apague la máquina virtual y desactive la casilla de verificación Sincronización horaria en Servicios de integración".

Greg Askew
fuente