Soporte para Segundos Intercalares en FreeBSD

2015-11-10 15:56:25Z por wblock.
[ Split HTML / Single HTML ]

Tabla de contenidos
1. Introducción
2. Manejo por defecto de los segundos intercalares en FreeBSD
3. Precauciones
4. Pruebas
5. Conclusión

1. Introducción

Un segundo intercalar es una correción ad hoc de un segundo para sincronizar escalas de tiempo atómicas con la rotación de la tierra. Este artí­culo describe como interactúa FreeBSD con los segundos intercalares.

En el momento de escribir estas líneas, el próximo segundo intercalar ocurrira el 30 de Junio del 2015 a las 23:59:60 UTC. Este segundo intercalar ocurrirá durante un dí­a laboral para América del Norte y del Sur y la región Asia/Pací­fico.

Los segundos intercalares son anunciados por el IERS en el Boletín C.

El comportamiento estándar de los segundos intercalares se describe en RFC 7164. Véase también time2posix(3).

2. Manejo por defecto de los segundos intercalares en FreeBSD

La manera mas fácil de manejar segundos intercalares es con las reglas de tiempo de POSIX que FreeBSD utiliza por defecto, combinadas con NTP. Cuando ntpd(8) se esté ejecutando y el tiempo esté sincronizado con servidores remotos de NTP que manejen segundos intercalares correctamente, dicho segundo intercalar hará que el tiempo del sistema automáticamente repita el último segundo del dí­a. Ningún otro ajuste es necesario.

Si los servidores remotos de NTP no manejan los segundos intercalares correctamente, ntpd(8) saltará un segundo de tiempo,después de que el servidor errático lo haya notado y haya saltado él mismo ese segundo.

Si NTP no está siendo usado, se requerirá el ajuste manual del reloj del sistema una vez que el segundo intercalar haya pasado.

3. Precauciones

Los segundos intercalares se insertan en el mismo instante en todo el mundo: a medianoche según UTC. En Japón esto ocurre a media mañana, en el Pacífico al mediodia, en América es por la tarde-noche y en Europa por la noche.

Creemos y esperamos que FreeBSD, asumiendo que el servicio NTP sea correcto y estable, funcionará como fue diseñado durante este segundo intercalar, de la misma manera que lo hizo durantes los anteriores.

De todas formas, asumimos que prácticamente ninguna aplicación ha requerido información del kernel acerca de los segundos intercalares. En nuestra experiencia, los segundos intercalares son esencialmente una repetición del segundo antes del segundo intercalar, y esto es una sorpresa para la mayoría de los programadores de aplicaciones.

Otros sistemas operativos y computadoras pueden o no manejar el segundo intercalar de la misma manera que FreeBSD, y sistemas sin un servicio NTP que sea correcto y estable no sabrán absolutamente nada acerca de los segundos intercalares.

No es inaudito que las computadoras fallen a causa de los segundos intercalares, y la experiencia ha demostrado que una gran parte de los servidores públicos de NTP pueden manejar y anunciar incorrectamente el segundo intercalar.

Por favor, intente asegurarse de que nada horrible ocurra a causa del segundo intercalar.

4. Pruebas

Es posible probar si un segundo intercalar será usado. Debido a la naturaleza de NTP, la prueba puede funcionar hasta 24 horas antes del segundo intercalar. Algunas fuentes importantes de referencia de tiempo solo anuncian segundos intercalares una hora antes del acontecimiento. Realice una consulta al demonio de NTP:

% ntpq -c 'rv 0 leap'

Una salida que incluya leap_add_sec indica soporte para el segundo intercalar. Cuando falten mas de 24 horas para el segundo intercalar, o cuando este haya pasado, leap_none será mostrado por pantalla.

5. Conclusión

En la practica, los segundos intercalares no suelen ser un problema en FreeBSD. Esperamos que esta breve reseña ayude a clarificar qué esperar y cómo hacer que el segundo intercalar pase sin contratiempos.