Facebook-ingenieurs open-sourcen Precision Time Appliance voor datacenters
Het engineering-team van Facebook heeft een hoge-precisie tijd-appliance ontworpen en vrijgegeven, een cruciaal element van moderne datacenter-timing-infrastructuur. Door de time card te creëren – een PCIe-kaart die elke commodity-server omzet in een Stratum-1 tijdbron – en samen te werken met het Open Compute Project (OCP), hebben we elk component van de Open Time Server onder een open-source-licentie beschikbaar gesteld.
In maart 2020 kondigde Facebook de migratie van zijn datacenter- en consumentenproduct-servers naar een nieuwe, intern ontwikkelde Network Time Protocol (NTP)-service aan. De upgrade verbeterde de tijdnauwkeurigheid van 10 ms naar 100 µs, wat fijner infrastructuurbeheer en snellere gedistribueerde databaseprestaties mogelijk maakte.
De nieuwe NTP-architectuur berust op een Stratum-1-bron – direct gekoppeld aan een autoritatieve klok zoals een Global Navigation Satellite System (GNSS) of een cesiumklok:

Publieke NTP-pools (bijv. time.facebook.com) zijn handig, maar introduceren afhankelijkheid van internetconnectiviteit en blootstellen systemen aan mogelijke uitvallen of drift. Om deze risico's te elimineren, bouwden we een toegewijde hardware-appliance die een GNSS-ontvanger integreert met een geminiaturiseerde atoomklok (MAC). De time card inkapselt deze functionaliteit op een PCIe-bord, waardoor elke x86-server uitgerust met een hardware-timestamping NIC een Stratum-1-bron kan worden.
Waarom een nieuw tijdapparaat?
Commerciële tijdapparaten zijn uitgetest en vaak stabiel, maar hebben significante nadelen:
- Ze kunnen verouderd zijn en kwetsbaar voor beveiligingslekken, met patch-cycli van maanden of jaren.
- Gesloten firmware beperkt configuratie en monitoring; proprietaire CLI's of web UI's belemmeren automatisering.
- Proprietaire hardware is niet servicebaar – componentenfalen vereist vendor-reparatie of een nieuwe unit.
- Lage productievolumes leiden tot hoge marges, wat langdurige exploitatie duur maakt.
Deze beperkingen deden veel organisaties toegeven aan trade-offs. We besloten een alternatief te verkennen: een doelgericht, open-source tijdapparaat gebouwd op x86-hardware.
Prototyping van de Time Appliance
Ons initiële concept combineerde een GNSS-ontvanger, een hoge-stabiliteit oscillator, en FPGA-gebaseerde verwerking in een enkele PCIe-kaart – zie het blokdiagram:

De GNSS-module levert zowel time-of-day (ToD) als een one-pulse-per-second (PPS) signaal. Gepaard met een hoge-stabiliteit oscillator – zoals een rubidium- of oven-controlled crystal oscillator – kan het systeem nanoseconde-nauwkeurigheid bereiken. De PPS en ToD worden doorgegeven aan een hoge-prestatie NIC (bijv. NVIDIA Mellanox ConnectX-6 Dx) die hardware time-stamping en PPS in/out ondersteunt.
Met het ts2phc-tool synchroniseerden we de fysieke klok van de NIC met de GNSS PPS binnen enkele tientallen nanoseconden, wat onze benadering valideerde:

Om betrouwbaarheid te verbeteren, splitsden we het ontwerp in twee logische blokken: de payload (de precisie-tijdmotor) en de delivery (de NIC). De payload interpoleert tijd tussen opeenvolgende PPS-pulsen met een FPGA-gebaseerde motor en een lokale oscillator. Bij verlies van GNSS, vertrouwt de motor op de inherente stabiliteit van de atoomklok.

De tijdmotor implementeert filtering, synchronisatie, foutcontrole en PCIe-subsystemen. Het kalibreert continu de MAC door de teller te vergelijken met de GNSS PPS, wat sub-nanoseconde precisie over lange periodes oplevert.

Door een 10 MHz referentie (van een rubidiumklok of externe SMA-invoer) te benutten, converteren we op naar 125 MHz (8-ns periodes) en koppelen sub-seconde incrementen aan 250-ps stappen. Een proportioneel-integraal lus verfijnt de frequentie via een 12.5× PLL en, indien nodig, directe aanpassingen aan de oscillator.
Holdover – tijdnauwkeurigheidsverlies wanneer GNSS onbeschikbaar is – is een kritieke metriek. Onze prototype bereikte minder dan 300 ns drift over 24 uur, wel binnen de specificaties van de SA.53s MAC.
De Time Appliance in actie
Eenmaal geïnstalleerd, zet de time card elke compatibele x86-server om in een Stratum-1 tijdbron, onafhankelijk van NTP, PTP, SyncE of andere protocollen. De systeemprecisie is voldoende voor de meeste enterprise tijd-synchronisatiebehoeftes.

Installatie is eenvoudig: installeer Linux kernel 5.15+ (of bouw de driver vanuit de OCP GitHub repository op kernel 5.12+). De driver exposeert PHC, GNSS, PPS en MAC devices onder /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/
Configureer chrony of een PTP-daemon om de PHC als referentieklok te gebruiken:
# chrony refclock PHC /dev/ptp2 tai poll 0 trust
Validatie met een Calnex Sentinel toont ±40 µs NTP-stabiliteit over 48 uur en sub-nanoseconde PTP-offsets. De gecombineerde PPS-fout tussen de time card en de Sentinel blijft binnen ±200 ns.



Het modulaire ontwerp stelt ook in staat de MAC te ruilen voor een kosteneffectieve OCXO of TCXO, wat holdover-prestaties ruilt voor budget.
Open-sourcen van het ontwerp
Om de impact te vergroten, gingen we een partnerschap aan met het Open Compute Project om het Time Appliance Project (TAP) te lanceren. Alle specificaties, schema's, BOM's, mechanische tekeningen en broncode zijn publiekelijk beschikbaar op de TAP GitHub repository. Leveranciers zoals Orolia en NVIDIA produceren al de time card respectievelijk precision-timing NICs.
Onze Open Time Server specificatie beschrijft hoe de hardware- en softwarestack te assembleren tot een robuust, volledig gecontroleerd tijdapparaat. Door het hele systeem te bezitten, krijgen ingenieurs dieper inzicht, strakkere beveiliging en eenvoudiger onderhoud.
Hoewel de huidige appliance een grote sprong voorwaarts vertegenwoordigt, zullen we doorgaan met het verfijnen van nauwkeurigheid, het schalen van synchronisatie over Facebook's wereldwijde infrastructuur en het delen van vooruitgang met de open-compute gemeenschap.
Ingebed
- Productiviteit Maximimalen: Hoe Onderhoudssoftware Kosten Verlaagt en Tijd Bespaart
- De Zandloper: Geschiedenis, Vakmanschap en Moderne Aantrekkingskracht
- Crescent Crown Verhoogt Efficiëntie en Bespaart Kosten met DocStar ECM AP Automatisering
- Time Constant Berekeningen Beheersen voor RC en RL Circuits
- Heruitvinding van Voorraadbeheer: Moderne Strategieën voor Fabrikanten
- Supply chain-leiders: omarm een offensieve strategie voor groei en veerkracht
- Digitale tweelingen boosten on-time betrouwbaarheid West Coast Mainline
- Human-Machine Interfaces (HMI's) begrijpen in de moderne industrie
- Uw productie & verzending stroomlijnen: bewezen strategieën om kosten te snijden & efficiëntie te boosten
- Python's time.sleep() onder de knie krijgen: best practices, multithreading en real-world voorbeelden
- Datums & Tijden in Python Beheersen: Een Praktische Gids