Pregunta

El reloj de mi máquina virtual se desvía bastante.Existe documentación sobre cómo abordar esto, pero nada parece funcionar muy bien.

Alguien tiene alguna sugerencia, cosas que le hayan funcionado bien,...

Supuestamente actualizar periódicamente a través de ntp no es una buena solución.

¿Fue útil?

Solución

vmware tiene un documento PDF realmente bueno sobre este problema.

Básicamente, el anfitrión cambiará los ticks entregados a sus invitados lo mejor que pueda.No ejecute NTP o cronometrado o basura así.Simplemente instale vmware-guestd y deje que el host controle sus tics.Si aún pierde tics, cualquier otra solución también tendrá una deriva importante.

Si puede, utilice un sistema operativo invitado que tenga una tasa de tics de baja frecuencia.Las versiones más nuevas de Linux vienen con ticks de 1000 Hz, pero antes solo eran 100 Hz.Eso parece más fácil de cumplir para el anfitrión.Generalmente se necesita una reconstrucción del kernel para cambiar el valor de HZ.

Otros consejos

  1. Lea atentamente la documentación de vmware antes de escuchar a nadie.Estamos ejecutando ESX5.

Las mejores prácticas de cronometraje para invitados de Linux, entre otras cosas, dicen:Árbitro: http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1006427

Nota de recomendaciones de NTP:VMware recomienda utilizar NTP en lugar de la sincronización horaria periódica de VMware Tools.NTP es un estándar de la industria y garantiza la hora exacta de su huésped.Es posible que tengas que abrir el firewall (UDP 123) para permitir el tráfico NTP.

Este es un ejemplo de /etc/ntp.conf:

tinker panic 0
restrict 127.0.0.1
restrict default kod nomodify notrap
server 0.vmware.pool.ntp.org
server 1.vmware.pool.ntp.org
server 2.vmware.pool.ntp.org
driftfile /var/lib/ntp/drift

Este es un ejemplo (específico de RedHat) /etc/ntp/step-tickers:

0.vmware.pool.ntp.org
1.vmware.pool.ntp.org

La directiva de configuración tinker pánico 0 indica a NTP que no se dé por vencido si ve un gran salto en el tiempo.Esto es importante para hacer frente a grandes desvíos de tiempo y también para reanudar las máquinas virtuales desde su estado suspendido.

Nota:La directiva tinker pánico 0 debe estar en la parte superior del archivo ntp.conf.

También es importante no utilizar el reloj local como fuente de tiempo, a menudo denominado reloj local indisciplinado.NTP tiende a recurrir a esto con preferencia a los servidores remotos cuando hay una gran cantidad de tiempo desviado.

Un ejemplo de tal configuración es:

server 127.127.1.0
fudge 127.127.1.0 stratum 10

Comente ambas líneas.

Después de realizar cambios en la configuración de NTP, se debe reiniciar el demonio NTP.Consulte la documentación del proveedor de su sistema operativo.

Sólo para agregar algunos datos sobre por qué NTPD no es una buena solución.NTPD es un demonio que intenta compensar la desviación del reloj local;Si el "reloj interno" se aleja X número de segundos en un día, entonces, en lugar de avanzar/retroceder como un comando forzado como en "ntpdate", NTPD intenta agregar/eliminar algunos ciclos al reloj para que, a tiempo, normalmente en 15 minutos, el reloj corre con suficiente precisión y la compensación supera estos X números de segundos que los servidores ganan/pierden en un día.Esto tiene la ventaja de que no verá ningún momento del día repetido, lo cual es IMPRESCINDIBLE para los sistemas transaccionales.

Pero para poder hacer esto, NTPD requiere que el reloj local haga un trabajo razonablemente bueno, lo que normalmente significa que el reloj local no se desviará más de 42 segundos por día (más o menos;No estoy seguro del número exacto).Esto normalmente es un problema en las Máquinas Virtuales, ya que el reloj está controlado por software, por lo que si el HOST tiene demasiada sobrecarga, podría ver que el reloj del CLIENTE funcionará más lento, y si no es así entonces el reloj podría funcionar también. rápido.El problema aquí para NTPD es que el reloj local no es confiable y no tiene una variación constante en el tiempo;puede ser más o menos dependiendo de la sobrecarga del sistema HOST.

Entonces, en este caso, es mejor instalar las herramientas del cliente como se sugirió y sincronizar el reloj del CLIENTE con el reloj del ANFITRIÓN (normalmente denominado "reloj de pared")

No hay una respuesta definitiva porque existen varios métodos, cada uno con sus pros y sus contras.Cuál elegir depende de sus tareas, carga del servidor, sistema operativo, etc.

Leer vmware_cronometraje.pdf para una comprensión profunda del problema.

Las recetas rápidas para Linux se pueden encontrar en una publicación separada. artículo de la base de conocimientos

¿La instalación de las adiciones (herramientas) de la máquina virtual no sincroniza el reloj entre el sistema operativo invitado y el host?

Supuestamente actualizar regularmente a través de NTP no es una buena solución

Sin embargo, esa es la solución que recomendaría.¿Por qué no se considera bueno en su ubicación?

Instale NTP si aún no lo tiene.

ntpdate configurará el reloj correctamente, luego ntpd puede mantener el reloj preciso.

El Proyecto de grupo NTP proporciona un gran conjunto de servidores NTP para elegir.

Editar Acabo de notar que usted dijo que cree que NTP no es una buena solución, ¿por qué?Si le preocupa el efecto del cambio del reloj, NTP es lo ideal, ya que ntpd no hace saltar el reloj hacia adelante o hacia atrás, sino que lo "gira" acelerándolo ligeramente hacia arriba o hacia abajo hasta que vuelve a estar en línea con el tiempo correcto.

Tuve el mismo problema y lo resolví

  1. instalando vmware-guestd
  2. enviando al kernel una opción clocksource=acpi_pm
  3. ejecutando hwclock -s cada hora como root.

Este es un tema antiguo pero que nos estaba afectando recientemente.Lo que descubrí fue que cualquiera de nuestras máquinas virtuales que ejecutaban herramientas vmware se vio afectada por el problema.

Más recientemente, comenzamos a usar open-vm-tools y en esas máquinas virtuales la opción no estaba configurada.Dado que open-vm-tools es totalmente compatible y recomendado por Vmware, sugeriría usarlo en lugar de vmware tools: http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2073803

Si open-vm-tools está en un repositorio que utiliza, también es sencillo de instalar a través de yum install o apt-get install etc.

Puedes usar el cmd y

net time \\computer_name /set

configurar el reloj de forma remota (o en un script, por ejemplo)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top