Qué ocurre con los servidores cuando cambia la hora
Qué ocurre con los servidores cuando cambia la hora
Los cambios entre horario de verano e invierno afectan a la infraestructura informática de formas que no siempre son evidentes. Este artículo explica de forma práctica qué sucede en servidores, virtual machines y contenedores, qué riesgos aparecen y qué medidas tomar para minimizar problemas antes, durante y después del cambio de hora.
Cómo se ajusta la hora en un servidor
En los servidores coexisten varios relojes y mecanismos que intervienen en el ajuste horario:
- Reloj del sistema (system clock): es el reloj gestionado por el sistema operativo y que usan la mayoría de las aplicaciones.
- Reloj de hardware (hardware clock o RTC): reloj físico de la placa base que persiste entre reinicios.
- Servicios de sincronización (NTP, chrony, systemd-timesyncd): sincronizan el reloj del sistema con servidores de referencia.
- Base de datos de zonas horarias (tzdata): define cuándo empiezan y terminan los horarios de verano/invierno para cada zona.
Cuando llega el momento del cambio de hora, el sistema actúa según su configuración: aplica la regla de la zona horaria (a partir de tzdata) para mostrar la hora local y mantiene el tiempo UTC en el núcleo; los servicios de sincronización pueden corregir diferencias importantes ya sea “pisando” (step) la hora o ajustándola gradualmente (slew).
Efectos comunes del cambio de hora en servidores
- Tareas programadas: cron, schedulers y tareas programadas pueden ejecutarse dos veces o no ejecutarse si el cambio crea una hora duplicada o la elimina.
- Registros (logs): la hora local duplicada genera entradas con la misma marca temporal local, lo que dificulta auditorías si no se usa UTC o no se incluye offset.
- Replicación y bases de datos: la desincronización horaria entre nodos puede introducir problemas de ordenación, conflictos o rechazo de transacciones si se usan marcas de tiempo locales.
- Autenticación y certificados: protocolos como Kerberos o validaciones TLS pueden fallar si la hora del servidor está fuera del rango de tolerancia de los clientes.
- Monitorización y alertas: umbrales basados en intervalos de tiempo pueden dispararse indebidamente o no dispararse.
- Contenedores y máquinas virtuales: heredan la hora del host; si el host cambia la hora, los contenedores la verán inmediatamente.
Sistemas concretos y comportamiento típico
Linux
En Linux es habitual usar NTP o chrony. Muchas distribuciones ofrecen tools como timedatectl para controlar la configuración de zona horaria y sincronización. Recomendaciones prácticas:
- Configurar el servidor para que mantenga la hora en UTC y aplicar la zona horaria sólo en capas de presentación.
- Configurar el reloj de hardware para UTC si se administran sistemas heterogéneos.
- Comprobar qué hace el servicio NTP/chrony ante diferencias grandes: algunas configuraciones hacen step (cambian la hora de golpe) y otras hacen slew (ajustan gradualmente).
- Verificar cómo se comporta cron: según la implementación y la versión, un cambio de hora puede provocar ejecuciones dobles o ausentes; considerar systemd timers para mayor control en distribuciones con systemd.
Windows
Windows usa el servicio Windows Time para sincronizar la hora y el Programador de Tareas para tareas programadas. El Programador suele basarse en la hora local y, por tanto, puede verse afectado por los cambios de hora; conviene revisar tareas críticas y probar su comportamiento en entornos controlados.
Contenedores y máquinas virtuales
Los contenedores comparten el kernel del host y, por tanto, ven la misma hora que el host. Las máquinas virtuales pueden sincronizar su reloj con el host o con servidores NTP externos según la configuración de la hipervisora. Es importante decidir una política única de tiempo para todo el entorno.
Bases de datos y almacenamiento de marcas temporales
- Almacenar timestamps en UTC evita ambigüedades entre nodos y permite una interpretación uniforme. Evitar columnas que conviertan automáticamente al huso local sin control.
- Revisar tipos de columna: algunos motores convierten entre UTC y local al mostrar o al insertar, lo que puede provocar resultados inesperados tras cambios de hora.
Problemas frecuentes y cómo mitigarlos
| Problema | Síntoma | Mitigación |
|---|---|---|
| Tareas programadas erráticas | Ejecuciones dobles o saltadas | Usar UTC en servidores, usar timers basados en intervalo (monotonic) o systemd timers bien configurados; comprobar implementación de cron. |
| Logs ambiguos | Entradas con la misma hora local | Registrar en UTC con offset (ISO 8601) e incluir identificador de zona; rotar y etiquetar logs antes del cambio. |
| Fallos de autenticación | Errores en Kerberos, fallos TLS | Sincronizar con NTP/chrony; verificar tolerancias temporales y sincronización en todos los controladores de dominio y servidores críticos. |
| Replicación incoherente | Ordenación incorrecta de operaciones | Usar marcas de tiempo lógicas o UTC, asegurar sincronización entre nodos. |
Checklist antes, durante y después del cambio de hora
- Antes:
- Comprobar que tzdata está actualizado en todos los servidores si se esperan cambios de normativa de zonas horarias.
- Verificar que NTP/chrony están activos y sincronizados; revisar logs de sincronización.
- Auditar tareas programadas críticas y documentar su comportamiento esperado en caso de hora duplicada o perdida.
- Informar a equipos que dependen de la hora (seguridad, backup, operaciones).
- Durante:
- Supervisar sincronización y alertas de tiempo; estar preparado para forzar una sincronización manual si hay desviaciones importantes.
- Evitar despliegues masivos o cambios de base de datos sensibles durante la ventana del cambio de hora si es posible.
- Después:
- Revisar logs y tareas críticas para confirmar ejecuciones correctas.
- Validar replicación y consistencia en bases de datos distribuidas.
- Actualizar documentación y ajustar políticas si se detectaron problemas.
Buenas prácticas recomendadas
- Mantener servidores en UTC y aplicar zona horaria solo en las capas de presentación y cliente.
- Sincronizar todos los hosts con un servicio de tiempo fiable (NTP/chrony) y monitorizar la salud de esa sincronización.
- Usar timers monótonos para medir intervalos y evitar depender del reloj del sistema para temporización crítica.
- Registrar timestamps en UTC con formato ISO 8601 y, si es necesario, añadir el offset local para lectura humana.
- Probar el comportamiento de tareas programadas y de recuperación en entornos de staging antes del cambio real.
- Revisar y mantener actualizada la base de datos de zonas horarias (tzdata) en sistemas que dependan de reglas locales.
Recursos de referencia
Si necesitas información práctica sobre cuándo se producen los cambios de hora o cómo funcionan los periodos de horario de verano e invierno, consulta nuestros contenidos sobre cambios de hora, horario de verano, horario de invierno y la hora actual por países. Para planificar despliegues y calendarios, la sección de calendarios y fechas importantes puede ser de utilidad.
Conclusión
El cambio de hora no debe coger desprevenido a un administrador: con una política clara (usar UTC en servidores), sincronización fiable, pruebas en entornos no productivos y buenas prácticas en el registro de tiempos y programación de tareas, es posible minimizar la mayoría de los problemas. Revisar la configuración de sincronización, el comportamiento de las tareas programadas y la forma de almacenar marcas temporales suele resolver el 90% de los incidentes derivados del cambio de hora.
¿Debo cambiar la hora del servidor manualmente?
No es recomendable ajustar la hora manualmente en servidores en producción. Lo correcto es tener un servicio de sincronización (NTP/chrony) configurado y dejar que él ajuste el reloj. En casos excepcionales y controlados, un ajuste manual puede ser necesario, pero debe registrarse y coordinarse para evitar inconsistencias entre nodos.
¿Es mejor poner los servidores en UTC?
Sí: configurar los servidores en UTC reduce ambigüedades y problemas entre nodos en distintas zonas horarias. La presentación de la hora local puede hacerse en capas de aplicación o en la interfaz de usuario.
¿Qué pasa con las tareas programadas (cron) al cambiar la hora?
Depende de la implementación del programador y de la configuración del sistema. Un cambio que añade una hora puede provocar ejecuciones dobles; uno que elimina una hora puede hacer que una ejecución no ocurra. Revisar cómo se comporta la versión específica de cron o usar alternativas (por ejemplo, systemd timers o soluciones basadas en colas) ayuda a controlar el comportamiento.
¿Cómo afectan los cambios de hora a los contenedores y máquinas virtuales?
Los contenedores comparten la hora del host y reflejarán cualquier cambio inmediato. Las máquinas virtuales pueden sincronizarse con el host o con NTP externo según la configuración. Es importante aplicar una política homogénea de tiempo en todo el entorno virtualizado y comprobar la sincronización tras el cambio.
¿Cómo evito problemas con los registros y auditorías?
Registra siempre en UTC y usa un formato que incluya la zona u offset (por ejemplo, ISO 8601). Si necesitas mostrar hora local, conviértela en la capa de presentación, pero conserva los registros originales en UTC para auditoría y correlación entre sistemas.
Te avisamos 24 horas antes
Un solo email antes de cada cambio de hora. Sin boletines ni otros envíos.