Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial Internet of Things >> Incrustado

Ingenieros de Facebook publican como código abierto un dispositivo de tiempo de precisión para centros de datos

El equipo de ingeniería de Facebook ha diseñado y publicado un dispositivo de tiempo de alta precisión, un elemento clave de la infraestructura de temporización moderna de los centros de datos. Al crear la tarjeta de tiempo (time card), una tarjeta PCIe que transforma cualquier servidor commodity en una fuente de tiempo Estrato 1, y asociarse con el Open Compute Project (OCP), han puesto a disposición cada componente del Open Time Server bajo una licencia de código abierto.

En marzo de 2020, Facebook anunció la migración de sus servidores de centros de datos y productos de consumo a un nuevo servicio interno de Protocolo de Tiempo de Red (NTP). La actualización elevó la precisión del mantenimiento del tiempo de 10 ms a 100 µs, permitiendo un control de infraestructura más fino y un rendimiento más rápido de bases de datos distribuidas.

La nueva arquitectura NTP se basa en una fuente Estrato 1, vinculada directamente a un reloj autoritativo como un Sistema de Navegación por Satélite Global (GNSS) o un reloj de cesio:

Ingenieros de Facebook publican como código abierto un dispositivo de tiempo de precisión para centros de datos

Los pools NTP públicos (p. ej., time.facebook.com) son convenientes pero introducen dependencias de conectividad a Internet y exponen los sistemas a posibles interrupciones o deriva. Para eliminar estos riesgos, construimos un dispositivo de hardware dedicado que integra un receptor GNSS con un reloj atómico miniaturizado (MAC). La tarjeta de tiempo encapsula esta funcionalidad en una placa PCIe, permitiendo que cualquier servidor x86 equipado con una NIC con timestamping de hardware se convierta en una fuente Estrato 1.

¿Por qué un nuevo dispositivo de tiempo?

Los dispositivos de tiempo comerciales están probados en batalla y suelen ser estables, pero vienen con inconvenientes significativos:

Estas limitaciones obligaron a muchas organizaciones a aceptar compromisos. Decidimos explorar una alternativa: un dispositivo de tiempo de propósito específico, de código abierto, construido sobre hardware x86.

Prototipado del dispositivo de tiempo

Nuestro concepto inicial combinaba un receptor GNSS, un oscilador de alta estabilidad y procesamiento basado en FPGA en una sola tarjeta PCIe; vea el diagrama de bloques a continuación:

Ingenieros de Facebook publican como código abierto un dispositivo de tiempo de precisión para centros de datos

El módulo GNSS entrega tanto la hora del día (ToD) como una señal de un pulso por segundo (PPS). Cuando se combina con un oscilador de alta estabilidad, como un oscilador de rubidio o un oscilador de cristal controlado por horno, el sistema puede alcanzar precisión a nivel de nanosegundos. El PPS y el ToD se alimentan a una NIC de alto rendimiento (p. ej., NVIDIA Mellanox ConnectX-6 Dx) que soporta timestamping de hardware y PPS entrada/salida.

Usando la herramienta ts2phc, sincronizamos el reloj físico de la NIC con el PPS del GNSS dentro de unas pocas decenas de nanosegundos, validando nuestro enfoque:

Ingenieros de Facebook publican como código abierto un dispositivo de tiempo de precisión para centros de datos

Para mejorar la fiabilidad, separamos el diseño en dos bloques lógicos: la carga útil (motor de tiempo de precisión) y la entrega (la NIC). La carga útil interpola el tiempo entre pulsos PPS consecutivos usando un motor basado en FPGA y un oscilador local. En caso de pérdida de GNSS, el motor confía en la estabilidad inherente del reloj atómico.

Ingenieros de Facebook publican como código abierto un dispositivo de tiempo de precisión para centros de datos

El motor de tiempo implementa filtrado, sincronización, comprobación de errores y subsistemas PCIe. Calibra continuamente el MAC comparando su contador con el PPS del GNSS, logrando precisión sub-nanosegundo durante períodos prolongados.

Ingenieros de Facebook publican como código abierto un dispositivo de tiempo de precisión para centros de datos

Aprovechando una referencia de 10 MHz (de un reloj de rubidio o entrada SMA externa), convertimos a 125 MHz (períodos de 8 ns) y asociamos incrementos de sub-segundo a pasos de 250 ps. Un bucle proporcional-integral afina la frecuencia mediante un PLL de 12,5x y, si es necesario, ajustes directos al oscilador.

El holdover (pérdida de precisión de tiempo cuando GNSS no está disponible) es una métrica crítica. Nuestro prototipo logró menos de 300 ns de deriva en 24 horas, bien dentro de las especificaciones del MAC SA.53s.

El dispositivo de tiempo en acción

Una vez instalado, la tarjeta de tiempo convierte cualquier servidor x86 compatible en una fuente de tiempo Estrato 1, independiente de NTP, PTP, SyncE u otros protocolos. La precisión del sistema es suficiente para la mayoría de las necesidades de sincronización de tiempo empresariales.

Ingenieros de Facebook publican como código abierto un dispositivo de tiempo de precisión para centros de datos

La configuración es sencilla: instale el kernel de Linux 5.15+ (o compile el controlador desde el repositorio GitHub de OCP en kernel 5.12+). El controlador expone dispositivos PHC, GNSS, PPS y MAC bajo /sys/class/timecard/ocp0/:

$ ls -l /sys/class/timecard/ocp0/ lrwxrwxrwx. 1 root 0 Aug 3 19:49 device -> ../../../0000:04:00.0/ -r--r--r--. 1 root 4096 Aug 3 19:49 gnss_sync lrwxrwxrwx. 1 root 0 Aug 3 19:49 i2c -> ../../xiic-i2c.1024/i2c-2/ lrwxrwxrwx. 1 root 0 Aug 3 19:49 pps -> ../../../../../virtual/pps/pps1/ lrwxrwxrwx. 1 root 0 Aug 3 19:49 ptp -> ../../ptp/ptp2/ lrwxrwxrwx. 1 root 0 Aug 3 19:49 ttyGNSS -> ../../tty/ttyS7/ lrwxrwxrwx. 1 root 0 Aug 3 19:49 ttyMAC -> ../../tty/ttyS8/ 

Configure chrony o un daemon PTP para usar el PHC como reloj de referencia:

# chrony refclock PHC /dev/ptp2 tai poll 0 trust 

La validación con un Calnex Sentinel muestra estabilidad NTP de ±40 µs en 48 horas y offsets PTP sub-nanosegundo. El error combinado de PPS entre la tarjeta de tiempo y el Sentinel permanece dentro de ±200 ns.

Ingenieros de Facebook publican como código abierto un dispositivo de tiempo de precisión para centros de datos
Ingenieros de Facebook publican como código abierto un dispositivo de tiempo de precisión para centros de datos
Ingenieros de Facebook publican como código abierto un dispositivo de tiempo de precisión para centros de datos

El diseño modular también permite cambiar el MAC por un OCXO o TCXO rentable, intercambiando rendimiento de holdover por presupuesto.

Publicación del diseño como código abierto

Para ampliar el impacto, nos asociamos con el Open Compute Project para lanzar el Time Appliance Project (TAP). Todas las especificaciones, esquemáticos, BOMs, dibujos mecánicos y código fuente están disponibles públicamente en el repositorio GitHub de TAP. Proveedores como Orolia y NVIDIA ya están produciendo la tarjeta de tiempo y las NICs de temporización de precisión, respectivamente.

Nuestra especificación del Open Time Server detalla cómo ensamblar la pila de hardware y software para crear un dispositivo de tiempo robusto y totalmente controlado. Al poseer todo el sistema, los ingenieros ganan visibilidad más profunda, seguridad más estricta y mantenimiento más simple.

Aunque el dispositivo actual representa un gran avance, continuaremos refinando la precisión, escalando la sincronización en la infraestructura global de Facebook y compartiendo avances con la comunidad de computación abierta.

Incrustado

  1. Maximice la productividad: cómo el software de mantenimiento reduce costes y ahorra tiempo
  2. El reloj de arena: historia, artesanía y atractivo moderno
  3. Crescent Crown Aumenta Eficiencia y Ahorra Costes con Automatización AP DocStar ECM
  4. Dominando Cálculos de Constante de Tiempo para Circuitos RC y RL
  5. Repensando la gestión de inventario: Estrategias modernas para fabricantes
  6. Líderes de Cadena de Suministro: Adopten una Estrategia Ofensiva para Crecimiento y Resiliencia
  7. Los gemelos digitales mejoran la fiabilidad puntual de la línea principal de la Costa Oeste
  8. Entendiendo las Interfaces Hombre-Máquina (HMI) en la industria moderna
  9. Optimice su Manufactura y Envío: Estrategias Comprobadas para Reducir Costos e Impulsar Eficiencia
  10. Dominar time.sleep() en Python: Mejores Prácticas, Multihilo y Ejemplos Reales
  11. Dominando fechas y horas en Python: Guía práctica