В отличие от широко известного протокола сетевой координации времени NTP, разработанный изначально для локальных сетей, PTP (Precision Time Protocol, IEEE 1588) способен обеспечивать точность синхронизации в пределах десятков наносекунд, тогда как у NTP это значение находится в диапазоне единиц или десятков миллисекунд.
С точки зрения владельцев крупных ЦОД возможность повысить точность синхронизации может представлять существенный интерес, поскольку позволяет точнее привести серверы к единому времени. И такой возможностью заинтересовалась компания Meta✴, которая в течение некоторого времени тестировала PTP локально, а в настоящее время заявила о переводе всех серверов на новый стандарт синхронизации.
Поскольку масштабы сети серверов Meta✴ действительно велики, влияние неточностей при использовании NTP может накапливаться и приводить к задержкам, сбоям или даже сетевым отказам. Тем более сверхточная синхронизация важна для проекта метавселенной, в котором огромная виртуальная вселенная должна функционировать как единое целое.
Однако внедрение PTP требует поддержки со стороны не только программного, но и аппаратного обеспечения, поэтому компания разработала в рамках OCP систему Open Time Server, в основе которой лежит плата точного времени Facebook✴ Time Card с приёмником сигналов GNSS. Требований со стороны сервера немного: использование сетевых интерфейсов с поддержкой PPS и Hardware Timestamps и процессоров с VT-d.
Программная часть состоит из ОС Linux с драйвером ocp_ptp и демонов Chrony/NTPd и ptp4u/ptp4l, работающих с устройствами dev/ptpX карты времени и сетевого адаптера. В официальном репозитории Open Time Server приведена подробная информация на этот счёт. На уровне ЦОД это означает появление выделенных стоек PTP, оснащённых соответствующим оборудованием.
Подчёркивается также важность наличия качественной антенны для приёма GNSS-сигналов, гарантирующей точность позиционирования менее 10 м — лишь при такой точности можно вести речь о наносекундном уровне синхронизации. Каждая стойка PTP также содержит устройство Calnex Sentinel 2.0, ответственное за мониторинг состояния системы: расхождение между Time Card и сетевым адаптером должно укладываться в окно размером не более 50 нс.
Источник: